diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 00000000..48f0b8d1 --- /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 00000000..538e95a2 --- /dev/null +++ b/README.md @@ -0,0 +1,179 @@ +# Overview + +Dreambuilder is my attempt to give the player pretty much everything they'll ever want to build with, and all the tools they should ever need to actually get the job done. + +This game is in use on my Creative server and on my Survival server, which also has a few extra mods installed for its specific needs. It should give you a pretty good idea nonetheless. Expect lag, as it's a significantly-developed multiplayer server, after all. + +##   + +# What's in it? What's changed from the default stuff? + +* This game retains the light-colored user interface theme that was once present in old versions of minetest_game, because I don't like feeling like I live in a cave when I open a formspec/menu. +* The complete Plantlife Modpack along with More Trees and Vines mods add a huge amount of variation to your landscape (as a result, they will add mapgen lag). Active spawning of Horsetail ferns is disabled by default, and I've added papyrus growth on dirt/grass with leaves (using a copy of the default growth ABM). +* This game includes the Unified Inventory mod, which overrides the old default inventory to give you a much more powerful user interface, with crafting guide, bags, and more, and it also means that if you're using this game in creative mode, your stacks wil behave as if they're infinite, but can still have a proper stack count so that you can craft easily when needed. +* The default bones and TNT mods have been disabled. They're not exactly useful for building stuff with. +* Stu's split-limb player model replaces the default one. +* The default hotbar HUD holds 16 items instead of 8, taken from the top two rows of your inventory. The first 10 slots can be accessed by number keys 1-9 and 0, the rest via your mouse wheel. You can use `/hotbar ##` to change the number of slots from 1 to 23. +* The default lavacooling code has been supplanted by better, safer code from my Gloopblocks mod. That mod also provides stone/cobble --> mossy stone/cobble transformation in the presence of water. +* An extensive selection of administration tools for single-player and server use are included, such as areas, maptools, worldedit, xban, and more. +* A few textures here and there are different. +* The mapgen won't spawn apples on default trees, nor will they appear on a sapling-grown default tree. Only the *real* apple trees supplied by the Moretrees mod will bear apples (both at mapgen time and sapling-grown). Or at least that's how it's supposed to work. :stuck_out_tongue: While on that subject, apples now use a 3d model instead of the plantlike version. + +##   + +# Okay, what else? + +A whole boatload of other mods have been added, which is where most of the content actually comes from. To be a little more specific, as of February 2021, this game has a total of 208 mods (counting all of the various components that themselves come as part of some modpack, such as mesecons or homedecor) and supplies over 3100 items in the inventory/craft guide (there are tens of thousands of unique items in total, counting everything that isn't displayed in the inventory)! A mostly-complete list of mods is as follows: + +ambience redo +arrowboards +bakedclay +basic_materials +basic_signs +bedrock +bees +biome_lib +blox +bobblocks +bonemeal +caverealms_lite +cblocks +coloredwood +cottages +currency +datastorage +digidisplay +digilines +digistuff +display_blocks_redo +dreambuilder_hotbar +extra_stairsplus +facade +farming +framedglass +function_delayer +gardening +gloopblocks +glooptest +ilights +invsaw +item_drop +jumping +led_marquee +locks +maptools +memorandum +misc_overrides +moreblocks +moreores +moretrees +mymillwork +new_campfire +nixie_tubes +pipeworks +plasticbox +player_textures +prefab_redo +quartz +replacer +rgblightstone +signs_lib +simple_streetlights +solidcolor +stained_glass +street_signs +titanium +travelnet +unifiedbricks +unifieddyes +unified_inventory +unifiedmesecons +windmill +The full Home Decor modpack +The full Technic modpack +The full Plantlife modpack +Cheapie's Roads modpack +Zeg9's Steel modpack +Zeg9's UFO modpack +The full Mesecons modpack +Jeija's Jumping modpack +The full Worldedit modpack + +### Your Inventory Display + +This game, as previously mentioned, replaces the standard inventory with Unified Inventory, which almost defies description here. Unified Inventory includes waypoints, a crafting guide, set/go home buttons, set day/set night buttons, a full creative inventory on the right if you're playing in that mode - and you only have to click/tap the item once to get the it, instead of multiple clicks/drag and drop, a trash slot, a clear all inventory button, a search feature for the inventory, and more. Basically, you just need to use it a few times and you'll find yourself wondering how you ever got along with the standard inventory! + +### The Circular Saw + +This game uses the More Blocks mod, which comes with the Stairsplus mod and more importantly, the Circular Saw mod by Sokomine and co. This mod replaces the traditional method of creating stairs, slabs, and the like: rather that crafting a stairs block by placing several of the material into your crafting grid, you must first craft a circular saw (really, a table saw), place that on the ground, and then use that to shape the material you had in mind. It can create dozens of shapes, including the standard stairs and slabs. Give it a try and see for yourself! + +### Land Ownership + +This game uses ShadowNinja's areas mod for land protection, as well as cheapie's protector blocks. Of course, land protection is only useful if you're using this game on a public server. + +#### Protection blocks: +These are easy. Craft one, place it, and everything within 15m of it becomes yours immediately (if someone else doesn't own some of the land therein, of course). If you dig one of these, the area protection it created is removed; if you shift-dig, the protection is preserved, but the block is deleted, giving back some steel ingots if you're in survival mode, or nothing at all if in creative mode. + +#### Areas: +If you want fine control, use the areas mod's commands. There are three ways to select a region to protect: + +**Option A:** + +Just type `/area_pos set` and then punch two nodes that are diagonally opposite one another, so that they form a 3d box that fully encloses the area you want to claim. A black **`[1]`** or **`[2]`** will appear where you punched. + +**Option B:** + +1. Move to one corner, on the ground. +2. Type `/area_pos1` and press enter. A black **`[1]`** will appear. +3. Move to the other corner and go up a ways above your area - not too high though. +4. Type `/area_pos2` and press enter. A black **`[2]`** will appear. + +**Option C:** + +Just give actual coordinates to the `/area_xxx` commands, e.g.: +`/area_pos1 123,45,678 /area_pos2 987,654,321` + +**Claim it:** + +Once you've marked your area using one of the above methods, you must actually claim it. This is the step that actually protects it against vandalism and unauthorized access. Just type: +/protect some description here + +By default, users may protect up to 3 zones with these commands, and each can be up to 50x100x50 meters in size, but this can be changed by plugging appropriate settings into your minetest.conf. + +**Sublet it:** + +Ok, you've claimed an area, and you want to let someone else build there. Simple. Set the coordinates of the box you want to let them build in, using the commands above (Options A, B, or C). Then do: +`/add_owner your_area# their_name description here` + +For example, if you own area #123 and the other person's name is "Mike", and you want to sublet them some area called "Mike's home", you might do something like this: + +`/add_owner 123 Mike Mikes Home` + +You can add as many users as you like to your areas. You will need to issue one such command per user. + +## Dependencies: +This game requires Minetest 5.3.0 or later, and a corresponding copy of minetest_game. Anything too old will likely either crash, show nodes with the wrong shape or colors, throw nonsensical warnings/errors, or open up wormholes. + +## Hardware requirements: +This game defines a very large number of items and produces a well-detailed landscape, and so it requires a significant amount of resources compared to vanilla Minetest game. At least a 2 GHz dual core CPU and 2 GB free RAM are required for good performance. If you use my HDX texture pack, you'll need more RAM (at least 4 GB free recommended). + +This game is NOT intended for use on mobile devices. + +## Download/Install: +...if you're reading this, you're either on the Dreambuilder Gitlab repo page, so clone it from there, or download the ZIP... or maybe you already have it. ;-) + +Just rename the project folder to "dreambuilder_game", if necessary, and move it to your Minetest mods directory. Then select and enable it for the world you want to use it in. Depending on the condition of the world you are using, and for brand new maps, this game may take a minute or two to start, during which time you may see the hotbar and hand, all-grey window content where the world should be, or other odd-looking things. Just wait it out, it will eventually start and settle down. + +## License: +Each of the base mods in this game retains the standard license that its author has assigned, even if the license file is missing from the archive. All changes and any supplemental content made by me is WTFPL unless explicitly stated otherwise. + +# Open Source Software +This game is open source, or at least as much so as I have control over. Since it started from the standard minetest_game distribution, you'll want to look at that. You can find it at its usual Github repository, here: +[url]https://github.com/minetest/minetest_game[/url] + +An online copy of the archive of mods the game is built from can be found here (with full git histories, including my changes and any files that went missing from the completed game, where applicable): +[url]http://minetest.daconcepts.com/my-main-mod-archive/[/url] + +# Notes: +For best results, I recommend adding the following to your minetest.conf (perhaps to a secondary copy of that file that you only use when playing worlds with this game): + diff --git a/ambience/init.lua b/ambience/init.lua deleted file mode 100644 index e9cac034..00000000 --- a/ambience/init.lua +++ /dev/null @@ -1,329 +0,0 @@ - -ambience = {} - --- override default water sounds -minetest.override_item("default:water_source", { sounds = {} }) -minetest.override_item("default:water_flowing", { sounds = {} }) -minetest.override_item("default:river_water_source", { sounds = {} }) -minetest.override_item("default:river_water_flowing", { sounds = {} }) - --- settings -local SOUNDVOLUME = 1.0 -local MUSICVOLUME = 1.0 -local play_music = minetest.settings:get_bool("ambience_music") ~= false -local pplus = minetest.get_modpath("playerplus") -local radius = 6 -local playing = {} -local sound_sets = {} -- all the sounds and their settings -local sound_set_order = {} -- needed because pairs loops randomly through tables -local set_nodes = {} -- all the nodes needed for sets - - --- global functions - --- add set to list -ambience.add_set = function(set_name, def) - - if not set_name or not def then - return - end - - sound_sets[set_name] = { - frequency = def.frequency or 50, - sounds = def.sounds, - sound_check = def.sound_check, - nodes = def.nodes - } - - -- add set name to the sound_set_order table - local can_add = true - - for i = 1, #sound_set_order do - - if sound_set_order[i] == set_name then - can_add = false - end - end - - if can_add then - table.insert(sound_set_order, set_name) - end - - -- add any missing nodes to the set_nodes table - if def.nodes then - - for i = 1, #def.nodes do - - can_add = def.nodes[i] - - for j = 1, #set_nodes do - - if def.nodes[i] == set_nodes[j] then - can_add = false - end - end - - if can_add then - table.insert(set_nodes, can_add) - end - end - end -end - - --- return set from list using name -ambience.get_set = function(set_name) - - if sound_sets[set_name] then - return sound_sets[set_name] - end -end - - --- remove set from list -ambience.del_set = function(set_name) - - sound_sets[set_name] = nil - - local can_del = false - - for i = 1, #sound_set_order do - - if sound_set_order[i] == set_name then - can_del = i - end - end - - if can_del then - table.remove(sound_set_order, can_del) - end -end - - --- plays music and selects sound set -local get_ambience = function(player, tod, name) - - -- play server or local music if available - if play_music and playing[name] then - - -- play at midnight - if tod >= 0.0 and tod <= 0.01 then - - if not playing[name].music then - - playing[name].music = minetest.sound_play("ambience_music", { - to_player = player:get_player_name(), - gain = MUSICVOLUME - }) - end - - elseif tod > 0.1 and playing[name].music then - - playing[name].music = nil - end - end - - - -- get foot and head level nodes at player position - local pos = player:get_pos() - - pos.y = pos.y + 1.4 -- head level - - local nod_head = pplus and name and playerplus[name].nod_head or - minetest.get_node(pos).name - - pos.y = pos.y - 1.2 -- foot level - - local nod_feet = pplus and name and playerplus[name].nod_feet or - minetest.get_node(pos).name - - pos.y = pos.y - 0.2 -- reset pos - - -- get all set nodes around player - local ps, cn = minetest.find_nodes_in_area( - {x = pos.x - radius, y = pos.y - radius, z = pos.z - radius}, - {x = pos.x + radius, y = pos.y + radius, z = pos.z + radius}, set_nodes) - - -- loop through sets in order and choose first that meets it's conditions - for n = 1, #sound_set_order do - - local set = sound_sets[ sound_set_order[n] ] - - if set and set.sound_check then - - -- pass settings to function for condition check - local set_name, gain = set.sound_check({ - player = player, - pos = pos, - tod = tod, - totals = cn, - positions = ps, - head_node = nod_head, - feet_node = nod_feet - }) - - -- if conditions met return set name and gain value - if set_name then - return set_name, gain - end - end - end -end - - -local timer = 0 -local random = math.random - --- players routine -minetest.register_globalstep(function(dtime) - - -- one second timer - timer = timer + dtime - if timer < 1 then return end - timer = 0 - - -- get list of players and set some variables - local players = minetest.get_connected_players() - local player_name, number, chance, ambience, handler, ok - local tod = minetest.get_timeofday() - - -- loop through players - for n = 1, #players do - - player_name = players[n]:get_player_name() - ---local t1 = os.clock() - - local set_name, MORE_GAIN = get_ambience(players[n], tod, player_name) - ---print(string.format("elapsed time: %.4f\n", os.clock() - t1)) - - ok = true -- everything starts off ok - - -- stop current sound if another set active or gain changed - if playing[player_name] - and playing[player_name].handler then - - if playing[player_name].set ~= set_name - or (playing[player_name].set == set_name - and playing[player_name].gain ~= MORE_GAIN) then - ---print ("-- change stop", set_name, playing[player_name].old_handler) - - minetest.sound_stop(playing[player_name].old_handler) - - playing[player_name].set = nil - playing[player_name].handler = nil - playing[player_name].gain = nil - else - ok = false -- sound set still playing, skip new sound - end - end - - -- set random chance and reset seed - chance = random(1, 1000) - - math.randomseed(tod + chance) - - -- if chance is lower than set frequency then select set - if ok and set_name and chance < sound_sets[set_name].frequency then - - -- choose random sound from set - number = random(#sound_sets[set_name].sounds) - ambience = sound_sets[set_name].sounds[number] - - -- play sound - handler = minetest.sound_play(ambience.name, { - to_player = player_name, - gain = ((ambience.gain or 0.3) + (MORE_GAIN or 0)) * SOUNDVOLUME, - pitch = ambience.pitch or 1.0 - }, ambience.ephemeral) - ---print ("playing... " .. ambience.name .. " (" .. chance .. " < " --- .. sound_sets[set_name].frequency .. ") @ ", MORE_GAIN, handler) - - -- only continue if sound playing returns handler - if handler then - ---print("-- current handler", handler) - - -- set what player is currently listening to - playing[player_name] = { - set = set_name, gain = MORE_GAIN, - handler = handler, old_handler = handler - } - - -- set timer to stop sound - minetest.after(ambience.length, function() - ---print("-- after", set_name, handler) - - -- make sure we are stopping same sound we started - if playing[player_name] - and playing[player_name].handler - and playing[player_name].old_handler == handler then - ---print("-- timed stop", set_name, handler) - - --minetest.sound_stop(playing[player_name].handler) - minetest.sound_stop(handler) - - -- reset player variables and backup handler - playing[player_name] = { - set = nil, gain = nil, - handler = nil, old_handler = nil - } - end - end) - end - end - end -end) - - --- sound volume command -minetest.register_chatcommand("svol", { - params = "", - description = "set sound volume (0.1 to 1.0)", - privs = {server = true}, - - func = function(name, param) - - SOUNDVOLUME = tonumber(param) or SOUNDVOLUME - - if SOUNDVOLUME < 0.1 then SOUNDVOLUME = 0.1 end - if SOUNDVOLUME > 1.0 then SOUNDVOLUME = 1.0 end - - return true, "Sound volume set to " .. SOUNDVOLUME - end, -}) - - --- music volume command (0 stops music) -minetest.register_chatcommand("mvol", { - params = "", - description = "set music volume (0.1 to 1.0)", - privs = {server = true}, - - func = function(name, param) - - MUSICVOLUME = tonumber(param) or MUSICVOLUME - - -- ability to stop music just as it begins - if MUSICVOLUME == 0 and playing[name].music then - minetest.sound_stop(playing[name].music) - end - - if MUSICVOLUME < 0.1 then MUSICVOLUME = 0.1 end - if MUSICVOLUME > 1.0 then MUSICVOLUME = 1.0 end - - return true, "Music volume set to " .. MUSICVOLUME - end, -}) - - --- load default sound sets -dofile(minetest.get_modpath("ambience") .. "/soundsets.lua") - - -print("[MOD] Ambience Lite loaded") diff --git a/bonemeal/init.lua b/bonemeal/init.lua deleted file mode 100644 index 6f289224..00000000 --- a/bonemeal/init.lua +++ /dev/null @@ -1,679 +0,0 @@ - -bonemeal = {} - -local path = minetest.get_modpath("bonemeal") -local min, max, random = math.min, math.max, math.random - - --- Load support for intllib. -local S = minetest.get_translator and minetest.get_translator("bonemeal") or - dofile(path .. "/intllib.lua") - - --- creative check -local creative_mode_cache = minetest.settings:get_bool("creative_mode") -function bonemeal.is_creative(name) - return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) -end - - --- default crops -local crops = { - {"farming:cotton_", 8, "farming:seed_cotton"}, - {"farming:wheat_", 8, "farming:seed_wheat"} -} - - --- special pine check for nearby snow -local function pine_grow(pos) - - if minetest.find_node_near(pos, 1, - {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then - - default.grow_new_snowy_pine_tree(pos) - else - default.grow_new_pine_tree(pos) - end -end - - --- default saplings -local saplings = { - {"default:sapling", default.grow_new_apple_tree, "soil"}, - {"default:junglesapling", default.grow_new_jungle_tree, "soil"}, - {"default:emergent_jungle_sapling", default.grow_new_emergent_jungle_tree, "soil"}, - {"default:acacia_sapling", default.grow_new_acacia_tree, "soil"}, - {"default:aspen_sapling", default.grow_new_aspen_tree, "soil"}, - {"default:pine_sapling", pine_grow, "soil"}, - {"default:bush_sapling", default.grow_bush, "soil"}, - {"default:acacia_bush_sapling", default.grow_acacia_bush, "soil"}, - {"default:large_cactus_seedling", default.grow_large_cactus, "sand"}, - {"default:blueberry_bush_sapling", default.grow_blueberry_bush, "soil"}, - {"default:pine_bush_sapling", default.grow_pine_bush, "soil"} -} - --- helper tables ( "" denotes a blank item ) -local green_grass = { - "default:grass_2", "default:grass_3", "default:grass_4", - "default:grass_5", "", "" -} - -local dry_grass = { - "default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4", - "default:dry_grass_5", "", "" -} - --- add all in-game flowers except waterlily -local flowers = {} - -for node, def in pairs(minetest.registered_nodes) do - - if def.groups.flower and not node:find("waterlily") then - flowers[#flowers + 1] = node - end -end - --- add additional bakedclay flowers if enabled -if minetest.get_modpath("bakedclay") then - flowers[#flowers + 1] = "bakedclay:delphinium" - flowers[#flowers + 1] = "bakedclay:thistle" - flowers[#flowers + 1] = "bakedclay:lazarus" - flowers[#flowers + 1] = "bakedclay:mannagrass" - flowers[#flowers + 1] = "" -end - --- default biomes deco -local deco = { - {"default:dirt_with_dry_grass", dry_grass, flowers}, - {"default:sand", {}, {"default:dry_shrub", "", "", ""} }, - {"default:desert_sand", {}, {"default:dry_shrub", "", "", ""} }, - {"default:silver_sand", {}, {"default:dry_shrub", "", "", ""} }, -} - - --- --- local functions --- - - --- particles -local function particle_effect(pos) - - minetest.add_particlespawner({ - amount = 4, - time = 0.15, - minpos = pos, - maxpos = pos, - minvel = {x = -1, y = 2, z = -1}, - maxvel = {x = 1, y = 4, z = 1}, - minacc = {x = -1, y = -1, z = -1}, - maxacc = {x = 1, y = 1, z = 1}, - minexptime = 1, - maxexptime = 1, - minsize = 1, - maxsize = 3, - texture = "bonemeal_particle.png" - }) -end - - --- tree type check -local function grow_tree(pos, object) - - if type(object) == "table" and object.axiom then - -- grow L-system tree - minetest.remove_node(pos) - minetest.spawn_tree(pos, object) - - elseif type(object) == "string" and minetest.registered_nodes[object] then - -- place node - minetest.set_node(pos, {name = object}) - - elseif type(object) == "function" then - -- function - object(pos) - end -end - - --- sapling check -local function check_sapling(pos, nodename) - - -- what is sapling placed on? - local under = minetest.get_node({ - x = pos.x, - y = pos.y - 1, - z = pos.z - }) - - local can_grow, grow_on - - -- check list for sapling and function - for n = 1, #saplings do - - if saplings[n][1] == nodename then - - grow_on = saplings[n][3] - - -- sapling grows on top of specific node - if grow_on - and grow_on ~= "soil" - and grow_on ~= "sand" - and grow_on == under.name then - can_grow = true - end - - -- sapling grows on top of soil (default) - if can_grow == nil - and (grow_on == nil or grow_on == "soil") - and minetest.get_item_group(under.name, "soil") > 0 then - can_grow = true - end - - -- sapling grows on top of sand - if can_grow == nil - and grow_on == "sand" - and minetest.get_item_group(under.name, "sand") > 0 then - can_grow = true - end - - -- check if we can grow sapling - if can_grow then - particle_effect(pos) - grow_tree(pos, saplings[n][2]) - return true - end - end - end -end - - --- crops check -local function check_crops(pos, nodename, strength) - - local mod, crop, stage, nod, def - - -- grow registered crops - for n = 1, #crops do - - if nodename:find(crops[n][1]) - or nodename == crops[n][3] then - - -- separate mod and node name - mod = nodename:split(":")[1] .. ":" - crop = nodename:split(":")[2] - - -- get stage number or set to 0 for seed - stage = tonumber( crop:split("_")[2] ) or 0 - stage = min(stage + strength, crops[n][2]) - - -- check for place_param setting - nod = crops[n][1] .. stage - def = minetest.registered_nodes[nod] - def = def and def.place_param2 or 0 - - minetest.set_node(pos, {name = nod, param2 = def}) - - particle_effect(pos) - - return true - end - end -end - - --- check soil for specific decoration placement -local function check_soil(pos, nodename, strength) - - -- set radius according to strength - local side = strength - 1 - local tall = max(strength - 2, 0) - local floor - local groups = minetest.registered_items[nodename] - and minetest.registered_items[nodename].groups or {} - - -- only place decoration on one type of surface - if groups.soil then - floor = {"group:soil"} - elseif groups.sand then - floor = {"group:sand"} - else - floor = {nodename} - end - - -- get area of land with free space above - local dirt = minetest.find_nodes_in_area_under_air( - {x = pos.x - side, y = pos.y - tall, z = pos.z - side}, - {x = pos.x + side, y = pos.y + tall, z = pos.z + side}, floor) - - -- set default grass and decoration - local grass = green_grass - local decor = flowers - - -- choose grass and decoration to use on dirt patch - for n = 1, #deco do - - -- do we have a grass match? - if nodename == deco[n][1] then - grass = deco[n][2] or {} - decor = deco[n][3] or {} - end - end - - local pos2, nod, def - - -- loop through soil - for _, n in pairs(dirt) do - - if random(5) == 5 then - if decor and #decor > 0 then - -- place random decoration (rare) - local dnum = #decor or 1 - nod = decor[random(dnum)] or "" - end - else - if grass and #grass > 0 then - -- place random grass (common) - local dgra = #grass or 1 - nod = #grass > 0 and grass[random(dgra)] or "" - end - end - - pos2 = n - - pos2.y = pos2.y + 1 - - if nod and nod ~= "" then - - -- get crop param2 value - def = minetest.registered_nodes[nod] - def = def and def.place_param2 - - -- if param2 not preset then get from existing node - if not def then - local node = minetest.get_node_or_nil(pos2) - def = node and node.param2 or 0 - end - - minetest.set_node(pos2, {name = nod, param2 = def}) - end - - particle_effect(pos2) - end -end - - --- global functions - - --- add to sapling list --- {sapling node, schematic or function name, "soil"|"sand"|specific_node} ---e.g. {"default:sapling", default.grow_new_apple_tree, "soil"} - -function bonemeal:add_sapling(list) - - for n = 1, #list do - saplings[#saplings + 1] = list[n] - end -end - - --- add to crop list to force grow --- {crop name start_, growth steps, seed node (if required)} --- e.g. {"farming:wheat_", 8, "farming:seed_wheat"} -function bonemeal:add_crop(list) - - for n = 1, #list do - crops[#crops + 1] = list[n] - end -end - - --- add grass and flower/plant decoration for specific dirt types --- {dirt_node, {grass_nodes}, {flower_nodes} --- e.g. {"default:dirt_with_dry_grass", dry_grass, flowers} --- if an entry already exists for a given dirt type, it will add new entries and all empty --- entries, allowing to both add decorations and decrease their frequency. -function bonemeal:add_deco(list) - - for l = 1, #list do - - for n = 1, #deco do - - -- update existing entry - if list[l][1] == deco[n][1] then - - -- adding grass types - for _, extra in pairs(list[l][2]) do - - if extra ~= "" then - - for _, entry in pairs(deco[n][2]) do - - if extra == entry then - extra = false - break - end - end - end - - if extra then - deco[n][2][#deco[n][2] + 1] = extra - end - end - - -- adding decoration types - for _, extra in ipairs(list[l][3]) do - - if extra ~= "" then - - for __, entry in pairs(deco[n][3]) do - - if extra == entry then - extra = false - break - end - end - end - - if extra then - deco[n][3][#deco[n][3] + 1] = extra - end - end - - list[l] = false - break - end - end - - if list[l] then - deco[#deco + 1] = list[l] - end - end -end - - --- definitively set a decration scheme --- this function will either add a new entry as is, or replace the existing one -function bonemeal:set_deco(list) - - for l = 1, #list do - - for n = 1, #deco do - - -- replace existing entry - if list[l][1] == deco[n][1] then - deco[n][2] = list[l][2] - deco[n][3] = list[l][3] - list[l] = false - break - end - end - - if list[l] then - deco[#deco + 1] = list[l] - end - end -end - - --- global on_use function for bonemeal -function bonemeal:on_use(pos, strength, node) - - -- get node pointed at - local node = node or minetest.get_node(pos) - - -- return if nothing there - if node.name == "ignore" then - return - end - - -- make sure strength is between 1 and 4 - strength = strength or 1 - strength = max(strength, 1) - strength = min(strength, 4) - - -- papyrus and cactus - if node.name == "default:papyrus" then - - default.grow_papyrus(pos, node) - particle_effect(pos) - return true - - elseif node.name == "default:cactus" then - - default.grow_cactus(pos, node) - particle_effect(pos) - return true - end - - -- grow grass and flowers - if minetest.get_item_group(node.name, "soil") > 0 - or minetest.get_item_group(node.name, "sand") > 0 - or minetest.get_item_group(node.name, "can_bonemeal") > 0 then - check_soil(pos, node.name, strength) - return true - end - - -- light check depending on strength (strength of 4 = no light needed) - if (minetest.get_node_light(pos) or 0) < (12 - (strength * 3)) then - return - end - - -- check for tree growth if pointing at sapling - if minetest.get_item_group(node.name, "sapling") > 0 - and random(5 - strength) == 1 then - check_sapling(pos, node.name) - return true - end - - -- check for crop growth - if check_crops(pos, node.name, strength) then - return true - end -end - - --- --- items --- - - --- mulch (strength 1) -minetest.register_craftitem("bonemeal:mulch", { - description = S("Mulch"), - inventory_image = "bonemeal_mulch.png", - - on_use = function(itemstack, user, pointed_thing) - - -- did we point at a node? - if pointed_thing.type ~= "node" then - return - end - - -- is area protected? - if minetest.is_protected(pointed_thing.under, user:get_player_name()) then - return - end - - -- call global on_use function with strength of 1 - if bonemeal:on_use(pointed_thing.under, 1) then - - -- take item if not in creative - if not bonemeal.is_creative(user:get_player_name()) then - itemstack:take_item() - end - end - - return itemstack - end -}) - - --- bonemeal (strength 2) -minetest.register_craftitem("bonemeal:bonemeal", { - description = S("Bone Meal"), - inventory_image = "bonemeal_item.png", - - on_use = function(itemstack, user, pointed_thing) - - -- did we point at a node? - if pointed_thing.type ~= "node" then - return - end - - -- is area protected? - if minetest.is_protected(pointed_thing.under, user:get_player_name()) then - return - end - - -- call global on_use function with strength of 2 - if bonemeal:on_use(pointed_thing.under, 2) then - - -- take item if not in creative - if not bonemeal.is_creative(user:get_player_name()) then - itemstack:take_item() - end - end - - return itemstack - end -}) - - --- fertiliser (strength 3) -minetest.register_craftitem("bonemeal:fertiliser", { - description = S("Fertiliser"), - inventory_image = "bonemeal_fertiliser.png", - - on_use = function(itemstack, user, pointed_thing) - - -- did we point at a node? - if pointed_thing.type ~= "node" then - return - end - - -- is area protected? - if minetest.is_protected(pointed_thing.under, user:get_player_name()) then - return - end - - -- call global on_use function with strength of 3 - if bonemeal:on_use(pointed_thing.under, 3) then - - -- take item if not in creative - if not bonemeal.is_creative(user:get_player_name()) then - itemstack:take_item() - end - end - - return itemstack - end -}) - - --- bone -minetest.register_craftitem("bonemeal:bone", { - description = S("Bone"), - inventory_image = "bonemeal_bone.png", - groups = {bone = 1} -}) - --- gelatin powder -minetest.register_craftitem("bonemeal:gelatin_powder", { - description = S("Gelatin Powder"), - inventory_image = "bonemeal_gelatin_powder.png", - groups = {food_gelatin = 1, flammable = 2} -}) - - --- --- crafting recipes --- - - --- gelatin powder -minetest.register_craft({ - output = "bonemeal:gelatin_powder 4", - recipe = { - {"group:bone", "group:bone", "group:bone"}, - {"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"}, - {"bucket:bucket_water", "default:torch", "bucket:bucket_water"}, - }, - replacements = { - {"bucket:bucket_water", "bucket:bucket_empty 5"}, - } -}) - --- bonemeal (from bone) -minetest.register_craft({ - type = "shapeless", - output = "bonemeal:bonemeal 2", - recipe = {"group:bone"} -}) - --- bonemeal (from player bones) -minetest.register_craft({ - type = "shapeless", - output = "bonemeal:bonemeal 4", - recipe = {"bones:bones"} -}) - --- bonemeal (from coral skeleton) -minetest.register_craft({ - type = "shapeless", - output = "bonemeal:bonemeal 2", - recipe = {"default:coral_skeleton"} -}) - --- mulch -minetest.register_craft({ - type = "shapeless", - output = "bonemeal:mulch 4", - recipe = { - "group:tree", "group:leaves", "group:leaves", - "group:leaves", "group:leaves", "group:leaves", - "group:leaves", "group:leaves", "group:leaves" - } -}) - -minetest.register_craft({ - type = "shapeless", - output = "bonemeal:mulch", - recipe = { - "group:seed", "group:seed", "group:seed", - "group:seed", "group:seed", "group:seed", - "group:seed", "group:seed", "group:seed" - } -}) - --- fertiliser -minetest.register_craft({ - type = "shapeless", - output = "bonemeal:fertiliser 2", - recipe = {"bonemeal:bonemeal", "bonemeal:mulch"} -}) - - --- add bones to dirt -minetest.override_item("default:dirt", { - drop = { - max_items = 1, - items = { - { - items = {"bonemeal:bone"}, - rarity = 40 - }, - { - items = {"default:dirt"} - } - } - } -}) - - --- add support for other mods -dofile(path .. "/mods.lua") -dofile(path .. "/lucky_block.lua") - -print (S("[MOD] bonemeal loaded")) diff --git a/cottages/nodes_anvil.lua b/cottages/nodes_anvil.lua deleted file mode 100644 index 9456ed18..00000000 --- a/cottages/nodes_anvil.lua +++ /dev/null @@ -1,303 +0,0 @@ ---------------------------------------------------------------------------------------- --- simple anvil that can be used to repair tools ---------------------------------------------------------------------------------------- --- * can be used to repair tools --- * the hammer gets dammaged a bit at each repair step ---------------------------------------------------------------------------------------- --- License of the hammer picture: CC-by-SA; done by GloopMaster; source: --- https://github.com/GloopMaster/glooptest/blob/master/glooptest/textures/glooptest_tool_steelhammer.png - -local S = cottages.S - --- the hammer for the anvil -minetest.register_tool("cottages:hammer", { - description = S("Steel hammer for repairing tools on the anvil"), - image = "glooptest_tool_steelhammer.png", - inventory_image = "glooptest_tool_steelhammer.png", - - tool_capabilities = { - full_punch_interval = 0.8, - max_drop_level=1, - groupcaps={ - -- about equal to a stone pick (it's not intended as a tool) - cracky={times={[2]=2.00, [3]=1.20}, uses=30, maxlevel=1}, - }, - damage_groups = {fleshy=6}, - } -}) - - -local cottages_anvil_formspec = - "size[8,8]".. - "image[7,3;1,1;glooptest_tool_steelhammer.png]".. --- "list[current_name;sample;0,0.5;1,1;]".. - "list[current_name;input;2.5,1.5;1,1;]".. --- "list[current_name;material;5,0;3,3;]".. - "list[current_name;hammer;5,3;1,1;]".. --- "label[0.0,0.0;Sample:]".. --- "label[0.0,1.0;(Receipe)]".. - "label[2.5,1.0;"..S("Workpiece:").."]".. --- "label[6.0,-0.5;Materials:]".. - "label[6.0,2.7;"..S("Optional").."]".. - "label[6.0,3.0;"..S("storage for").."]".. - "label[6.0,3.3;"..S("your hammer").."]".. - - "label[0,-0.5;"..S("Anvil").."]".. - "label[0,3.0;"..S("Punch anvil with hammer to").."]".. - "label[0,3.3;"..S("repair tool in workpiece-slot.").."]".. - "list[current_player;main;0,4;8,4;]"; - - -minetest.register_node("cottages:anvil", { - drawtype = "nodebox", - description = S("anvil"), - tiles = {"cottages_stone.png"}, -- TODO default_steel_block.png, default_obsidian.png are also nice - paramtype = "light", - paramtype2 = "facedir", - groups = {cracky=2}, - -- the nodebox model comes from realtest - node_box = { - type = "fixed", - fixed = { - {-0.5,-0.5,-0.3,0.5,-0.4,0.3}, - {-0.35,-0.4,-0.25,0.35,-0.3,0.25}, - {-0.3,-0.3,-0.15,0.3,-0.1,0.15}, - {-0.35,-0.1,-0.2,0.35,0.1,0.2}, - }, - }, - selection_box = { - type = "fixed", - fixed = { - {-0.5,-0.5,-0.3,0.5,-0.4,0.3}, - {-0.35,-0.4,-0.25,0.35,-0.3,0.25}, - {-0.3,-0.3,-0.15,0.3,-0.1,0.15}, - {-0.35,-0.1,-0.2,0.35,0.1,0.2}, - } - }, - on_construct = function(pos) - - local meta = minetest.get_meta(pos); - meta:set_string("infotext", S("Anvil")); - local inv = meta:get_inventory(); - inv:set_size("input", 1); --- inv:set_size("material", 9); --- inv:set_size("sample", 1); - inv:set_size("hammer", 1); - meta:set_string("formspec", cottages_anvil_formspec ); - end, - - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos); - meta:set_string("owner", placer:get_player_name() or ""); - meta:set_string("infotext", S("Anvil (owned by %s)"):format((meta:get_string("owner") or ""))); - meta:set_string("formspec", - cottages_anvil_formspec, - "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"); - end, - - can_dig = function(pos,player) - - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory(); - local owner = meta:get_string('owner'); - - if( not( inv:is_empty("input")) --- or not( inv:is_empty("material")) --- or not( inv:is_empty("sample")) - or not( inv:is_empty("hammer")) - or not( player ) - or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then - - return false; - end - return true; - end, - - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - if( player and player:get_player_name() ~= meta:get_string('owner' ) and from_list~="input") then - return 0 - end - return count; - end, - - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if( player and player:get_player_name() ~= meta:get_string('owner' ) and listname~="input") then - return 0; - end - if( listname=='hammer' and stack and stack:get_name() ~= 'cottages:hammer') then - return 0; - end - if( listname=='input' - and( stack:get_wear() == 0 - or stack:get_name() == "technic:water_can" - or stack:get_name() == "technic:lava_can" )) then - - minetest.chat_send_player( player:get_player_name(), - S('The workpiece slot is for damaged tools only.')); - return 0; - end - return stack:get_count() - end, - - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if( player and player:get_player_name() ~= meta:get_string('owner' ) and listname~="input") then - return 0 - end - return stack:get_count() - end, - - - on_punch = function(pos, node, puncher) - if( not( pos ) or not( node ) or not( puncher )) then - return; - end - -- only punching with the hammer is supposed to work - local wielded = puncher:get_wielded_item(); - if( not( wielded ) or not( wielded:get_name() ) or wielded:get_name() ~= 'cottages:hammer') then - return; - end - local name = puncher:get_player_name(); - - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory(); - - local input = inv:get_stack('input',1); - - -- only tools can be repaired - if( not( input ) - or input:is_empty() - or input:get_name() == "technic:water_can" - or input:get_name() == "technic:lava_can" ) then - - meta:set_string("formspec", - cottages_anvil_formspec, - "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"); - return; - end - - -- 65535 is max damage - local damage_state = 40-math.floor(input:get_wear()/1638); - - local tool_name = input:get_name(); - local hud_image = ""; - if( tool_name - and minetest.registered_items[ tool_name ] ) then - if( minetest.registered_items[ tool_name ].inventory_image ) then - hud_image = minetest.registered_items[ tool_name ].inventory_image; - elseif( minetest.registered_items[ tool_name ].textures - and type(minetest.registered_items[ tool_name ].textures)=='table') then - hud_image = minetest.registered_items[ tool_name ].textures[1]; - elseif( minetest.registered_items[ tool_name ].textures - and type(minetest.registered_items[ tool_name ].textures)=='string') then - hud_image = minetest.registered_items[ tool_name ].textures; - end - end - - local hud1 = puncher:hud_add({ - hud_elem_type = "image", - scale = {x = 15, y = 15}, - text = hud_image, - position = {x = 0.5, y = 0.5}, - alignment = {x = 0, y = 0} - }); - local hud2 = nil; - local hud3 = nil; - if( input:get_wear()>0 ) then - hud2 = puncher:hud_add({ - hud_elem_type = "statbar", - text = "default_cloud.png^[colorize:#ff0000:256", - number = 40, - direction = 0, -- left to right - position = {x=0.5, y=0.65}, - alignment = {x = 0, y = 0}, - offset = {x = -320, y = 0}, - size = {x=32, y=32}, - }) - hud3 = puncher:hud_add({ - hud_elem_type = "statbar", - text = "default_cloud.png^[colorize:#00ff00:256", - number = damage_state, - direction = 0, -- left to right - position = {x=0.5, y=0.65}, - alignment = {x = 0, y = 0}, - offset = {x = -320, y = 0}, - size = {x=32, y=32}, - }); - end - minetest.after(2, function() - if( puncher ) then - puncher:hud_remove(hud1); - puncher:hud_remove(hud2); - puncher:hud_remove(hud3); - end - end) - - -- tell the player when the job is done - if( input:get_wear() == 0 ) then --- minetest.chat_send_player( puncher:get_player_name(), --- S('Your tool has been repaired successfully.')); - return; - end - - -- do the actual repair - input:add_wear( -5000 ); -- equals to what technic toolshop does in 5 seconds - inv:set_stack("input", 1, input) - - -- damage the hammer slightly - wielded:add_wear( 100 ); - puncher:set_wielded_item( wielded ); - - -- do not spam too much --- if( math.random( 1,5 )==1 ) then --- minetest.chat_send_player( puncher:get_player_name(), --- S('Your workpiece improves.')); --- end - end, - is_ground_content = false, -}) - - - ---------------------------------------------------------------------------------------- --- crafting receipes ---------------------------------------------------------------------------------------- -minetest.register_craft({ - output = "cottages:anvil", - recipe = { - {cottages.craftitem_steel,cottages.craftitem_steel,cottages.craftitem_steel}, - {'', cottages.craftitem_steel,'' }, - {cottages.craftitem_steel,cottages.craftitem_steel,cottages.craftitem_steel} }, -}) - - --- the castle-mod has an anvil as well - with the same receipe. convert the two into each other -if ( minetest.get_modpath("castle") ~= nil ) then - - minetest.register_craft({ - output = "cottages:anvil", - recipe = { - {'castle:anvil'}, - }, - }) - - minetest.register_craft({ - output = "castle:anvil", - recipe = { - {'cottages:anvil'}, - }, - }) -end - - - -minetest.register_craft({ - output = "cottages:hammer", - recipe = { - {cottages.craftitem_steel}, - {'cottages:anvil'}, - {cottages.craftitem_stick} } -}) - diff --git a/cottages/nodes_straw.lua b/cottages/nodes_straw.lua deleted file mode 100644 index d26f6b81..00000000 --- a/cottages/nodes_straw.lua +++ /dev/null @@ -1,585 +0,0 @@ ---------------------------------------------------------------------------------------- --- straw - a very basic material ---------------------------------------------------------------------------------------- --- * straw mat - for animals and very poor NPC; also basis for other straw things --- * straw bale - well, just a good source for building and decoration - -local S = cottages.S - - --- an even simpler from of bed - usually for animals --- it is a nodebox and not wallmounted because that makes it easier to replace beds with straw mats -minetest.register_node("cottages:straw_mat", { - description = S("layer of straw"), - drawtype = 'nodebox', - tiles = { cottages.straw_texture }, -- done by VanessaE - wield_image = cottages.straw_texture, - inventory_image = cottages.straw_texture, - sunlight_propagates = true, - paramtype = 'light', - paramtype2 = "facedir", - walkable = false, - groups = { hay = 3, snappy = 2, oddly_breakable_by_hand = 2, flammable=3 }, - sounds = cottages.sounds.leaves, - node_box = { - type = "fixed", - fixed = { - {-0.48, -0.5,-0.48, 0.48, -0.45, 0.48}, - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.48, -0.5,-0.48, 0.48, -0.25, 0.48}, - } - }, - is_ground_content = false, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - return cottages.sleep_in_bed( pos, node, clicker, itemstack, pointed_thing ); - end -}) - --- straw bales are a must for farming environments; if you for some reason do not have the darkage mod installed, this here gets you a straw bale -minetest.register_node("cottages:straw_bale", { - drawtype = "nodebox", - description = S("straw bale"), - tiles = {"cottages_darkage_straw_bale.png"}, - paramtype = "light", - groups = { hay = 3, snappy = 2, oddly_breakable_by_hand = 2, flammable=3 }, - sounds = cottages.sounds.leaves, - -- the bale is slightly smaller than a full node - node_box = { - type = "fixed", - fixed = { - {-0.45, -0.5,-0.45, 0.45, 0.45, 0.45}, - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.45, -0.5,-0.45, 0.45, 0.45, 0.45}, - } - }, - is_ground_content = false, -}) - --- just straw -if( not(minetest.registered_nodes["farming:straw"])) then - minetest.register_node("cottages:straw", { - drawtype = "normal", - description = S("straw"), - tiles = {cottages.straw_texture}, - groups = { hay = 3, snappy = 2, oddly_breakable_by_hand = 2, flammable=3 }, - sounds = cottages.sounds.leaves, - -- the bale is slightly smaller than a full node - is_ground_content = false, - }) -else - minetest.register_alias("cottages:straw", "farming:straw") -end - - -local cottages_formspec_treshing_floor = - "size[8,8]".. - "image[1.5,0;1,1;"..cottages.texture_stick.."]".. - "image[0,1;1,1;farming_wheat.png]".. - "button_exit[6.8,0.0;1.5,0.5;public;"..S("Public?").."]".. - "list[current_name;harvest;1,1;2,1;]".. - "list[current_name;straw;5,0;2,2;]".. - "list[current_name;seeds;5,2;2,2;]".. - "label[1,0.5;"..S("Harvested wheat:").."]".. - "label[4,0.0;"..S("Straw:").."]".. - "label[4,2.0;"..S("Seeds:").."]".. - "label[0,-0.5;"..S("Threshing floor").."]".. - "label[0,2.5;"..S("Punch threshing floor with a stick").."]".. - "label[0,3.0;"..S("to get straw and seeds from wheat.").."]".. - "list[current_player;main;0,4;8,4;]"; - -minetest.register_node("cottages:threshing_floor", { - drawtype = "nodebox", - description = S("threshing floor"), --- TODO: stone also looks pretty well for this - tiles = {"cottages_junglewood.png^farming_wheat.png","cottages_junglewood.png","cottages_junglewood.png^"..cottages.texture_stick}, - paramtype = "light", - paramtype2 = "facedir", - -- can be digged with axe and pick - groups = {cracky=2, choppy=2}, - is_ground_content = false, - node_box = { - type = "fixed", - fixed = { - {-0.50, -0.5,-0.50, 0.50, -0.40, 0.50}, - - {-0.50, -0.4,-0.50,-0.45, -0.20, 0.50}, - { 0.45, -0.4,-0.50, 0.50, -0.20, 0.50}, - - {-0.45, -0.4,-0.50, 0.45, -0.20,-0.45}, - {-0.45, -0.4, 0.45, 0.45, -0.20, 0.50}, - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.50, -0.5,-0.50, 0.50, -0.20, 0.50}, - } - }, - on_construct = function(pos) - local meta = minetest.get_meta(pos); - meta:set_string("infotext", S("Public threshing floor")); - local inv = meta:get_inventory(); - inv:set_size("harvest", 2); - inv:set_size("straw", 4); - inv:set_size("seeds", 4); - meta:set_string("formspec", cottages_formspec_treshing_floor ); - meta:set_string("public", "public") - end, - - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos); - meta:set_string("owner", placer:get_player_name() or ""); - meta:set_string("infotext", S("Private threshing floor (owned by %s)"):format(meta:get_string("owner") or "")); - meta:set_string("formspec", - cottages_formspec_treshing_floor.. - "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string("owner") or "").."]" ); - meta:set_string("public", "private") - end, - - on_receive_fields = function(pos, formname, fields, sender) - cottages.switch_public(pos, formname, fields, sender, 'threshing floor') - end, - - can_dig = function(pos,player) - - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory(); - local owner = meta:get_string('owner'); - - if( not( inv:is_empty("harvest")) - or not( inv:is_empty("straw")) - or not( inv:is_empty("seeds")) - or not( player ) - or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then - - return false; - end - return true; - end, - - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - if( not( cottages.player_can_use( meta, player ))) then - return 0 - end - return count; - end, - - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - -- only accept input the threshing floor can use/process - if( listname=='straw' - or listname=='seeds' - or (listname=='harvest' and stack and stack:get_name() ~= 'farming:wheat' )) then - return 0; - end - - if( not( cottages.player_can_use( meta, player ))) then - return 0 - end - return stack:get_count() - end, - - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if( not( cottages.player_can_use( meta, player ))) then - return 0 - end - return stack:get_count() - end, - - - on_punch = function(pos, node, puncher) - if( not( pos ) or not( node ) or not( puncher )) then - return; - end - -- only punching with a normal stick is supposed to work - local wielded = puncher:get_wielded_item(); - if( not( wielded ) - or not( wielded:get_name() ) - or not( minetest.registered_items[ wielded:get_name() ]) - or not( minetest.registered_items[ wielded:get_name() ].groups ) - or not( minetest.registered_items[ wielded:get_name() ].groups.stick )) then - return; - end - local name = puncher:get_player_name(); - - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory(); - - local input = inv:get_list('harvest'); - -- we have two input slots - local stack1 = inv:get_stack( 'harvest', 1); - local stack2 = inv:get_stack( 'harvest', 2); - - if( ( stack1:is_empty() and stack2:is_empty()) - or( not( stack1:is_empty()) and stack1:get_name() ~= 'farming:wheat') - or( not( stack2:is_empty()) and stack2:get_name() ~= 'farming:wheat')) then - --- minetest.chat_send_player( name, 'One of the input slots contains something else than wheat, or there is no wheat at all.'); - -- update the formspec - meta:set_string("formspec", - cottages_formspec_treshing_floor.. - "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string("owner") or "").."]" ); - return; - end - - -- on average, process 25 wheat at each punch (10..40 are possible) - local anz_wheat = 10 + math.random( 0, 30 ); - -- we already made sure there is only wheat inside - local found_wheat = stack1:get_count() + stack2:get_count(); - - -- do not process more wheat than present in the input slots - if( found_wheat < anz_wheat ) then - anz_wheat = found_wheat; - end - - local overlay1 = "^farming_wheat.png"; - local overlay2 = "^"..cottages.straw_texture; - local overlay3 = "^"..cottages.texture_wheat_seed; - - -- this can be enlarged by a multiplicator if desired - local anz_straw = anz_wheat; - local anz_seeds = anz_wheat; - - if( inv:room_for_item('straw','cottages:straw_mat '..tostring( anz_straw )) - and inv:room_for_item('seeds',cottages.craftitem_seed_wheat..' '..tostring( anz_seeds ))) then - - -- the player gets two kind of output - inv:add_item("straw",'cottages:straw_mat '..tostring( anz_straw )); - inv:add_item("seeds",cottages.craftitem_seed_wheat..' '..tostring( anz_seeds )); - -- consume the wheat - inv:remove_item("harvest", 'farming:wheat '..tostring( anz_wheat )); - - local anz_left = found_wheat - anz_wheat; - if( anz_left > 0 ) then --- minetest.chat_send_player( name, S('You have threshed %s wheat (%s are left).'):format(anz_wheat,anz_left)); - else --- minetest.chat_send_player( name, S('You have threshed the last %s wheat.'):format(anz_wheat)); - overlay1 = ""; - end - end - - local hud0 = puncher:hud_add({ - hud_elem_type = "image", - scale = {x = 38, y = 38}, - text = "cottages_junglewood.png^[colorize:#888888:128", - position = {x = 0.5, y = 0.5}, - alignment = {x = 0, y = 0} - }); - - local hud1 = puncher:hud_add({ - hud_elem_type = "image", - scale = {x = 15, y = 15}, - text = "cottages_junglewood.png"..overlay1, - position = {x = 0.4, y = 0.5}, - alignment = {x = 0, y = 0} - }); - local hud2 = puncher:hud_add({ - hud_elem_type = "image", - scale = {x = 15, y = 15}, - text = "cottages_junglewood.png"..overlay2, - position = {x = 0.6, y = 0.35}, - alignment = {x = 0, y = 0} - }); - local hud3 = puncher:hud_add({ - hud_elem_type = "image", - scale = {x = 15, y = 15}, - text = "cottages_junglewood.png"..overlay3, - position = {x = 0.6, y = 0.65}, - alignment = {x = 0, y = 0} - }); - - local hud4 = puncher:hud_add({ - hud_elem_type = "text", - text = tostring( found_wheat-anz_wheat ), - number = 0x00CC00, - alignment = {x = 0, y = 0}, - scale = {x = 100, y = 100}, -- bounding rectangle of the text - position = {x = 0.4, y = 0.5}, - }); - if( not( anz_straw )) then - anz_straw = "0"; - end - if( not( anz_seed )) then - anz_seed = "0"; - end - local hud5 = puncher:hud_add({ - hud_elem_type = "text", - text = '+ '..tostring( anz_straw )..' straw', - number = 0x00CC00, - alignment = {x = 0, y = 0}, - scale = {x = 100, y = 100}, -- bounding rectangle of the text - position = {x = 0.6, y = 0.35}, - }); - local hud6 = puncher:hud_add({ - hud_elem_type = "text", - text = '+ '..tostring( anz_seed )..' seeds', - number = 0x00CC00, - alignment = {x = 0, y = 0}, - scale = {x = 100, y = 100}, -- bounding rectangle of the text - position = {x = 0.6, y = 0.65}, - }); - - - - minetest.after(2, function() - if( puncher ) then - puncher:hud_remove(hud1); - puncher:hud_remove(hud2); - puncher:hud_remove(hud3); - puncher:hud_remove(hud4); - puncher:hud_remove(hud5); - puncher:hud_remove(hud6); - puncher:hud_remove(hud0); - end - end) - end, -}) - - -local cottages_handmill_formspec = "size[8,8]".. - "image[0,1;1,1;"..cottages.texture_wheat_seed.."]".. - "button_exit[6.0,0.0;1.5,0.5;public;"..S("Public?").."]".. - "list[current_name;seeds;1,1;1,1;]".. - "list[current_name;flour;5,1;2,2;]".. - "label[0,0.5;"..S("Wheat seeds:").."]".. - "label[4,0.5;"..S("Flour:").."]".. - "label[0,-0.3;"..S("Mill").."]".. - "label[0,2.5;"..S("Punch this hand-driven mill").."]".. - "label[0,3.0;"..S("to convert wheat seeds into flour.").."]".. - "list[current_player;main;0,4;8,4;]"; - -minetest.register_node("cottages:handmill", { - description = S("mill, powered by punching"), - drawtype = "mesh", - mesh = "cottages_handmill.obj", - tiles = {"cottages_stone.png"}, - paramtype = "light", - paramtype2 = "facedir", - groups = {cracky=2}, - is_ground_content = false, - selection_box = { - type = "fixed", - fixed = { - {-0.50, -0.5,-0.50, 0.50, 0.25, 0.50}, - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.50, -0.5,-0.50, 0.50, 0.25, 0.50}, - } - }, - on_construct = function(pos) - local meta = minetest.get_meta(pos); - meta:set_string("infotext", S("Public mill, powered by punching")); - local inv = meta:get_inventory(); - inv:set_size("seeds", 1); - inv:set_size("flour", 4); - meta:set_string("formspec", cottages_handmill_formspec ); - meta:set_string("public", "public") - end, - - after_place_node = function(pos, placer) - local meta = minetest.get_meta(pos); - meta:set_string("owner", placer:get_player_name() or ""); - meta:set_string("infotext", S("Private mill, powered by punching (owned by %s)"):format(meta:get_string("owner") or "")); - meta:set_string("formspec", - cottages_handmill_formspec.. - "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]" ); - meta:set_string("public", "private") - end, - - on_receive_fields = function(pos, formname, fields, sender) - cottages.switch_public(pos, formname, fields, sender, 'mill, powered by punching') - end, - - can_dig = function(pos,player) - - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory(); - local owner = meta:get_string('owner'); - - if( not( inv:is_empty("flour")) - or not( inv:is_empty("seeds")) - or not( player ) - or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then - - return false; - end - return true; - end, - - allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) - local meta = minetest.get_meta(pos) - if( not( cottages.player_can_use( meta, player ))) then - return 0 - end - return count; - end, - - allow_metadata_inventory_put = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - -- only accept input the threshing floor can use/process - if( listname=='flour' - or (listname=='seeds' and stack and not( cottages.handmill_product[ stack:get_name()] ))) then - return 0; - end - - if( not( cottages.player_can_use( meta, player ))) then - return 0 - end - return stack:get_count() - end, - - allow_metadata_inventory_take = function(pos, listname, index, stack, player) - local meta = minetest.get_meta(pos) - if( not( cottages.player_can_use( meta, player ))) then - return 0 - end - return stack:get_count() - end, - - -- this code is very similar to the threshing floor; except that it has only one input- and output-slot - -- and does not require the usage of a stick - on_punch = function(pos, node, puncher) - if( not( pos ) or not( node ) or not( puncher )) then - return; - end - local name = puncher:get_player_name(); - - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory(); - - local input = inv:get_list('seeds'); - local stack1 = inv:get_stack( 'seeds', 1); - - if( ( stack1:is_empty()) - or( not( stack1:is_empty()) - and not( cottages.handmill_product[ stack1:get_name() ] ))) then - - if not( stack1:is_empty() ) then - minetest.chat_send_player(name,"Nothing happens...") - end - -- update the formspec - meta:set_string("formspec", - cottages_handmill_formspec.. - "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]" ); - return; - end - - -- turning the mill is a slow process; 1-21 flour are generated per turn - local anz = 1 + math.random( cottages.handmill_min_per_turn, cottages.handmill_max_per_turn ); - -- we already made sure there is only wheat inside - local found = stack1:get_count(); - - -- do not process more wheat than present in the input slots - if( found < anz ) then - anz = found; - end - - local product_stack = ItemStack( cottages.handmill_product[ stack1:get_name() ]); - local anz_result = anz; - -- items that produce more - if( product_stack:get_count()> 1 ) then - anz_result = anz * product_stack:get_count(); - end - - if( inv:room_for_item('flour', product_stack:get_name()..' '..tostring( anz_result ))) then - - inv:add_item( 'flour', product_stack:get_name()..' '..tostring( anz_result )); - inv:remove_item( 'seeds', stack1:get_name()..' '..tostring( anz )); - - local anz_left = found - anz; - if( anz_left > 0 ) then - minetest.chat_send_player( name, S('You have ground a %s (%s are left).'):format(stack1:get_definition().description,(anz_left))); - else - minetest.chat_send_player( name, S('You have ground the last %s.'):format(stack1:get_definition().description)); - end - - -- if the version of MT is recent enough, rotate the mill a bit - if( minetest.swap_node ) then - node.param2 = node.param2 + 1; - if( node.param2 > 3 ) then - node.param2 = 0; - end - minetest.swap_node( pos, node ); - end - end - end, -}) - - - - ---------------------------------------------------------------------------------------- --- crafting receipes ---------------------------------------------------------------------------------------- --- this returns corn as well --- the replacements work only if the replaced slot gets empty... -minetest.register_craft({ - output = "cottages:straw_mat 6", - recipe = { - {cottages.craftitem_stone,'',''}, - {"farming:wheat", "farming:wheat", "farming:wheat", }, - }, - replacements = {{ cottages.craftitem_stone, cottages.craftitem_seed_wheat.." 3" }}, -}) - --- this is a better way to get straw mats -minetest.register_craft({ - output = "cottages:threshing_floor", - recipe = { - {cottages.craftitem_junglewood, cottages.craftitem_chest_locked, cottages.craftitem_junglewood, }, - {cottages.craftitem_junglewood, cottages.craftitem_stone, cottages.craftitem_junglewood, }, - }, -}) - --- and a way to turn wheat seeds into flour -minetest.register_craft({ - output = "cottages:handmill", - recipe = { - {cottages.craftitem_stick, cottages.craftitem_stone, "", }, - {"", cottages.craftitem_steel, "", }, - {"", cottages.craftitem_stone, "", }, - }, -}) - -minetest.register_craft({ - output = "cottages:straw_bale", - recipe = { - {"cottages:straw_mat"}, - {"cottages:straw_mat"}, - {"cottages:straw_mat"}, - }, -}) - -minetest.register_craft({ - output = "cottages:straw", - recipe = { - {"cottages:straw_bale"}, - }, -}) - -minetest.register_craft({ - output = "cottages:straw_bale", - recipe = { - {"cottages:straw"}, - }, -}) - -minetest.register_craft({ - output = "cottages:straw_mat 3", - recipe = { - {"cottages:straw_bale"}, - }, -}) diff --git a/digistuff/README b/digistuff/README deleted file mode 100644 index 31a49352..00000000 --- a/digistuff/README +++ /dev/null @@ -1,128 +0,0 @@ -Digilines Stuff -=============== - - -License: -Code - LGPL v3 or later (contains some code from mesecons and digilines) -Textures WITHOUT "adwaita" in the file name - CC BY-SA 3.0 Generic (contains modified versions of textures from mesecons and digilines) -Textures WITH "adwaita" in the file name - These are icons by the GNOME Project, licensed under GNU LGPL v3 or CC BY-SA 3.0. - - -Depends: -Required: digilines (base only) and mesecons (base only) -Optional: mesecons_noteblock (for digilines noteblock), mesecons_mvps (for digilines piston and movestone), mesecons_luacontroller (for I/O expander) -Only needed for craft recipes: default, basic_materials - - -How to use digilines buttons: -Connect to a digiline (or digimese), right-click, and set a channel and message. -When the button is pressed (right-click), it will send that message on that channel, over digilines. -If the "Protected" checkbox is checked, only players allowed to interact in the area can push the button. -If the "Manual Light Control" checkbox is checked, the light will not illuminate automatically when the button is pushed - use the "light_on" and "light_off" commands to control it. -Note that the settings cannot be changed after setting - you must dig and re-place the button to do so. - - -How to use the wall knob: -Connect to a digiline, right-click, and set the channel and the minimum and maximum values. -Left-click to decrease the current setting or right-click to increase it. If the "protected" checkbox was checked, then only players allowed to interact in the area can do this. -Each time the setting is changed, the new setting is sent on the selected channel. -Note that the settings cannot be changed after setting - you must dig and re-place the knob to do so. - - -How to use digimese: -It conducts digilines signals (like digilines) in all directions (like mese). That's about it, really. - - -How to use vertical/insulated digilines: -These work exactly like the mesecons equivalents, that is: -Vertical digilines will automatically connect to other vertical digilines directly above or below them, and form "plates" on each end of the stack. Signals can only be conducted into or out of the stack at these "plates". -Insulated digilines conduct like regular digilines, but only into/out of the ends of the "wire" or at locations where an intermediate connection has been placed. - - -How to use the digilines player detector: -Set a channel and radius (radius must be a number >0 and <10 - anything invalid will be ignored and "6" used instead). -Every second while a player is within the radius, a table listing the players in range will be sent via digilines on the chosen channel. - - -How to use the digilines control panel: -Once a channel is set, any messages sent on that channel will be shown on the "LCD". The buttons, when pressed, send the messages "up", "down", "left", "right", "back", and "enter" on the same channel. If the panel is placed in a protected area (all standard protection mods are supported), only the owner of the area (and players with the protection_bypass privilege) can set the channel. There is also a "lock" function in the bottom-right of the "LCD" area. Click the padlock icon to lock/unlock it. If locked, only the owner of the area is allowed to use the buttons. If unlocked, anyone can use the buttons, although channel setting and (for reasons that shuld be obvious) locking/unlocking is still limited to the area owner and players with protection_bypass. - - -How to use the NIC: -Send a digilines signal with the URL you want to download. The HTTPRequestResult table will be sent back on the same channel. - - -How to use the camera: -Set the channel, distance, and radius. The camera will search for a node "distance" meters away and up to 10m down. -Every second while a player is within "radius" meters of that point, a table listing the players in range will be sent via digilines on the chosen channel. - - -How to use the dimmable lights: -After setting the channel, send a number from 0 to 14 to set the light level. - - -How to use the timer: -Send a number representing a time in seconds, from 0.5 to 3600. When the time expires, the timer will send "done" back on the same channel. If the loop feature is enabled (use the commands "loop_on" and "loop_off" to set this) the timer will automatically be set for the same time again each time it expires. - -How to use the junction box: -These are just plain digilines conductors (like digimese) but can skip over one node to another junction box or certain other nodes. -As in, [digiline][junction box][dirt][junction box][digiline] will work to transmit signals "through" the dirt. - -How to use the I/O expander: -After setting a channel, send a table (same format as a Luacontroller's "port" table) to set the output states. -A table in this same format will be sent back whenever an input changes or you manually poll it by sending a "GET" message. - -How to use the card reader: -After setting a channel, swiping a card (punch the reader with the card to swipe) will send a message in the following format: - {event = "read",data = "The data that was on the card"} -To write a card, send a command in the following format: - {command = "write",data = "The data to put on the card",description = "A description of what the card is for"} -After sending the write command, swipe the card to be written and the reader will send back the following message: - {event = "write"} -Both blank and previously written cards can be written to. If the card was not blank, it will be overwritten. - -How to use the game controller: -After setting a channel, right-click the controller to start/stop using it. -While using a controller, it will send a table with the control inputs, pitch, yaw, look vector, and name of the player using the controller each time one of these values changes, up to 5 times per second. -When a player leaves a controller, the string "player_left" is sent. -In addition to right-clicking the controller in use to stop using it, the following will also cause a player to stop using the controller: -* The controller is moved or removed -* The player leaves the game -* The player is teleported away from the controller -* The controller receives the string "release" on its digilines channel - -How to use the RAM and EEPROM chips: -First, set a channel. -Messages should consist of a table, with "command" set to either "read" or "write". "address" should be set to the number (0-31) of the 512-character block to read or write, and if writing then "data" should contain the data to write. -Example (to write - reading is similar, but with no data): - {command = "write",address = 7,data = "9a91a9e451b94dc262972557ab0d406f"} - -The RAM and EEPROM chips behave identically, except that the RAM chip loses its contents when dug whereas the EEPROM does not. - -How to use the 2D graphics processor: -Please see gpu.txt for information on this part. - -How to use the digilines pistons: -The following commands are accepted as strings: "extend" (extend the piston), "retract" (retract the piston), and "retract_sticky" (retract the piston, pulling one node like a sticky piston) -You can also send a command as a table. If so, the fields that can be used in the table are as follows: -* action: "extend" or "retract" -* max: The maximum number of nodes to push/pull, cannot be set higher than 16. Set to 0 (or omit) when retracting to perform a non-sticky retraction. -* allsticky: Pull a whole stack of nodes (like movestone), not just one. -* sound: The sound to make. "mesecons" for the mesecons piston sounds, "digilines" for the digilines piston sounds (default), or "none" for no sounds at all. - -How to use the digilines movestone: -Commands for this node are in the form of a table, with the field "command" set to the desired action, and other fields providing parameters. -The commands are as follows: -* "getstate": Returns a table containing the following elements: "targetpos" (table representing the target position), "pos" (table representing the current position), and "moveaxis" (the current axis being moved along, nil if not moving) -* "absmove": Moves to the absolute position specified by "x" "y" and "z". No axis can move more than 50m as a result of one command. If movements along more than one axis are needed, they are processed in alphabetical order (X,Y,Z). -* "relmove": Same as absmove, but relative to the current position (for example, y=1 moves up 1m, not *to* Y=1) -The available parameters for absmove and relmove are: -* x: Target X position (for absmove) or target change in X position (for relmove) -* y: Same, but for Y -* z: Same, but for Z -* sticky: Whether to pull nodes along behind the movestone -* allsticky: Whether to pull a full stack of nodes like normal movestone (true) or just one like a sticky piston (false) -* maxstack: The maximum number of nodes to push/pull, with the movestone itself counting as 1. Cannot be set higher than 50. -* sound: "mesecons" to have the mesecons movestone sound play or "none" for no sound at all -If any of x/y/z are omitted, then they default to the current position (for absmove) or 0 (for relmove). -If any of maxstack/sticky/allsticky/sound are omitted, they default to the values last used. diff --git a/digistuff/controller.lua b/digistuff/controller.lua deleted file mode 100644 index 4d2fdf73..00000000 --- a/digistuff/controller.lua +++ /dev/null @@ -1,238 +0,0 @@ -local digiline_rules = { - {x = 1,y = 0,z = 0}, - {x = -1,y = 0,z = 0}, - {x = 0,y = 0,z = 1}, - {x = 0,y = 0,z = -1}, - {x = 0,y = -1,z = 0}, - {x = 1,y = -1,z = 0}, - {x = -1,y = -1,z = 0}, - {x = 0,y = -1,z = 1}, - {x = 0,y = -1,z = -1}, -} - -local players_on_controller = {} - -local last_seen_inputs = {} - -local function process_inputs(pos) - local meta = minetest.get_meta(pos) - local hash = minetest.hash_node_position(pos) - if minetest.get_node(pos).name ~= "digistuff:controller_programmed" then - local player = minetest.get_player_by_name(players_on_controller[hash]) - if player then - player:set_physics_override({speed = 1,jump = 1,}) - player:set_pos(vector.add(pos,vector.new(0.25,0,0.25))) - minetest.chat_send_player(players_on_controller[hash],"You are now free to move.") - end - last_seen_inputs[players_on_controller[hash]] = nil - players_on_controller[hash] = nil - return - end - local name = players_on_controller[hash] - local player = minetest.get_player_by_name(name) - if not player then - digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") - minetest.get_meta(pos):set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") - players_on_controller[hash] = nil - return - end - local distance = vector.distance(pos,player:get_pos()) - if distance > 1 then - digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") - minetest.get_meta(pos):set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") - player:set_physics_override({speed = 1,jump = 1,}) - players_on_controller[hash] = nil - return - end - local inputs = player:get_player_control() - inputs.pitch = player:get_look_vertical() - inputs.yaw = player:get_look_horizontal() - local send_needed = false - if not last_seen_inputs[name] then - send_needed = true - else - for k,v in pairs(inputs) do - if v ~= last_seen_inputs[name][k] then - send_needed = true - break - end - end - end - last_seen_inputs[name] = inputs - if send_needed then - local channel = meta:get_string("channel") - local inputs = table.copy(inputs) - inputs.look_vector = player:get_look_dir() - inputs.name = name - digiline:receptor_send(pos,digiline_rules,channel,inputs) - end -end - -local function release_player(pos) - local hash = minetest.hash_node_position(pos) - local player = minetest.get_player_by_name(players_on_controller[hash]) - if player then - player:set_physics_override({speed = 1,jump = 1,}) - player:set_pos(vector.add(pos,vector.new(0.25,0,0.25))) - minetest.chat_send_player(players_on_controller[hash],"You are now free to move.") - end - local meta = minetest.get_meta(pos) - meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") - last_seen_inputs[players_on_controller[hash]] = nil - players_on_controller[hash] = nil - digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") -end - -local function trap_player(pos,player) - local hash = minetest.hash_node_position(pos) - local oldname = players_on_controller[hash] - local newname = player:get_player_name() - if oldname and minetest.get_player_by_name(oldname) then - minetest.chat_send_player(player:get_player_name(),"Controller is already occupied by "..oldname) - return - else - players_on_controller[hash] = newname - player:set_pos(vector.add(pos,vector.new(0,-0.4,0))) - player:set_physics_override({speed = 0,jump = 0,}) - minetest.chat_send_player(newname,"You are now using a digilines game controller. Right-click the controller again to be released.") - local meta = minetest.get_meta(pos) - meta:set_string("infotext","Digilines Game Controller\nIn use by: "..newname) - process_inputs(pos) - end -end - -local function toggle_trap_player(pos,player) - if players_on_controller[minetest.hash_node_position(pos)] then - release_player(pos) - else - trap_player(pos,player) - end -end - -minetest.register_node("digistuff:controller", { - description = "Digilines Game Controller", - tiles = { - "digistuff_controller_top.png", - "digistuff_controller_sides.png", - }, - paramtype = "light", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.5,-0.5,-0.5,0.5,-0.45,0.5}, - } - }, - _digistuff_channelcopier_fieldname = "channel", - _digistuff_channelcopier_onset = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec","") - meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") - minetest.swap_node(pos,{name = "digistuff:controller_programmed",}) - end, - groups = {cracky = 1,}, - is_ground_content = false, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec","field[channel;Channel;${channel}") - end, - on_receive_fields = function(pos, formname, fields, sender) - local name = sender:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - if fields.channel then - meta:set_string("channel",fields.channel) - meta:set_string("formspec","") - meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") - minetest.swap_node(pos,{name = "digistuff:controller_programmed",}) - end - end, - digiline = { - receptor = {}, - wire = { - rules = digiline_rules, - }, - }, -}) - -minetest.register_node("digistuff:controller_programmed", { - description = "Digilines Game Controller (programmed state - you hacker you!)", - drop = "digistuff:controller", - tiles = { - "digistuff_controller_top.png", - "digistuff_controller_sides.png", - }, - paramtype = "light", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.5,-0.5,-0.5,0.5,-0.45,0.5}, - } - }, - _digistuff_channelcopier_fieldname = "channel", - groups = {cracky = 1,not_in_creative_inventory = 1,}, - is_ground_content = false, - on_rightclick = function(pos,_,clicker) - if clicker and clicker:get_player_name() then - toggle_trap_player(pos,clicker) - end - end, - _digistuff_channelcopier_fieldname = "channel", - digiline = { - receptor = {}, - wire = { - rules = digiline_rules, - }, - effector = { - action = function(pos,node,channel,msg) - local setchannel = minetest.get_meta(pos):get_string("channel") - if channel ~= setchannel then return end - if msg == "release" then - local hash = minetest.hash_node_position(pos) - if players_on_controller[hash] then - release_player(pos) - end - end - end, - }, - }, -}) - -local acc_dtime = 0 - -minetest.register_globalstep(function(dtime) - acc_dtime = acc_dtime + dtime - if acc_dtime < 0.2 then return end - acc_dtime = 0 - for hash in pairs(players_on_controller) do - local pos = minetest.get_position_from_hash(hash) - process_inputs(pos) - end -end) - -minetest.register_lbm({ - name = "digistuff:reset_controllers", - label = "Reset game controllers to idle", - nodenames = {"digistuff:controller_programmed"}, - run_at_every_load = true, - action = function(pos) - if not players_on_controller[minetest.hash_node_position(pos)] then - local meta = minetest.get_meta(pos) - digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") - meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") - end - end, -}) - -minetest.register_craft({ - output = "digistuff:controller", - recipe = { - {"","digistuff:button","",}, - {"digistuff:button","group:wool","digistuff:button",}, - {"","digistuff:button","",}, - }, -}) diff --git a/digistuff/depends.txt b/digistuff/depends.txt deleted file mode 100644 index 5a8efa07..00000000 --- a/digistuff/depends.txt +++ /dev/null @@ -1,6 +0,0 @@ -default? -digilines -mesecons? -mesecons_mvps? -screwdriver? -pipeworks? diff --git a/digistuff/gpu.lua b/digistuff/gpu.lua deleted file mode 100644 index 87ff6ea0..00000000 --- a/digistuff/gpu.lua +++ /dev/null @@ -1,431 +0,0 @@ -local font = dofile(minetest.get_modpath("digistuff")..DIR_DELIM.."gpu-font.lua") - -local function explodebits(input) - local output = {} - for i=0,7,1 do - output[i] = input%(2^(i+1)) >= 2^i - end - return output -end - -local function implodebits(input) - local output = 0 - for i=0,7,1 do - output = output + (input[i] and 2^i or 0) - end - return output -end - -local function rgbtohsv(r,g,b) - r = r/255 - g = g/255 - b = b/255 - max = math.max(r,g,b) - min = math.min(r,g,b) - delta = max-min - local hue = 0 - if delta > 0 then - if max == r then - hue = (g-b)/delta - hue = (hue%6)*60 - elseif max == g then - hue = (b-r)/delta - hue = 60*(hue+2) - elseif max == b then - hue = (r-g)/delta - hue = 60*(hue+4) - end - hue = hue/360 - end - local sat = 0 - if max > 0 then - sat = delta/max - end - return math.floor(hue*255),math.floor(sat*255),math.floor(max*255) -end - -local function hsvtorgb(h,s,v) - h = h/255*360 - s = s/255 - v = v/255 - local c = s*v - local x = (h/60)%2 - x = 1-math.abs(x-1) - x = x*c - local m = v-c - local r = 0 - local g = 0 - local b = 0 - if h < 60 then - r = c - g = x - elseif h < 120 then - r = x - g = c - elseif h < 180 then - g = c - b = x - elseif h < 240 then - g = x - b = c - elseif h < 300 then - r = x - b = c - else - r = c - b = x - end - r = r+m - g = g+m - b = b+m - return math.floor(r*255),math.floor(g*255),math.floor(b*255) -end - -local function bitwiseblend(srcr,dstr,srcg,dstg,srcb,dstb,mode) - local srbits = explodebits(srcr) - local sgbits = explodebits(srcg) - local sbbits = explodebits(srcb) - local drbits = explodebits(dstr) - local dgbits = explodebits(dstg) - local dbbits = explodebits(dstb) - for i=0,7,1 do - if mode == "and" then - drbits[i] = srbits[i] and drbits[i] - dgbits[i] = sgbits[i] and dgbits[i] - dbbits[i] = sbbits[i] and dbbits[i] - elseif mode == "or" then - drbits[i] = srbits[i] or drbits[i] - dgbits[i] = sgbits[i] or dgbits[i] - dbbits[i] = sbbits[i] or dbbits[i] - elseif mode == "xor" then - drbits[i] = srbits[i] ~= drbits[i] - dgbits[i] = sgbits[i] ~= dgbits[i] - dbbits[i] = sbbits[i] ~= dbbits[i] - elseif mode == "xnor" then - drbits[i] = srbits[i] == drbits[i] - dgbits[i] = sgbits[i] == dgbits[i] - dbbits[i] = sbbits[i] == dbbits[i] - elseif mode == "not" then - drbits[i] = not srbits[i] - dgbits[i] = not sgbits[i] - dbbits[i] = not sbbits[i] - elseif mode == "nand" then - drbits[i] = not (srbits[i] and drbits[i]) - dgbits[i] = not (sgbits[i] and dgbits[i]) - dbbits[i] = not (sbbits[i] and dbbits[i]) - elseif mode == "nor" then - drbits[i] = not (srbits[i] or drbits[i]) - dgbits[i] = not (sgbits[i] or dgbits[i]) - dbbits[i] = not (sbbits[i] or dbbits[i]) - end - end - return string.format("%02X%02X%02X",implodebits(drbits),implodebits(dgbits),implodebits(dbbits)) -end - -local function blend(src,dst,mode,transparent) - local srcr = tonumber(string.sub(src,1,2),16) - local srcg = tonumber(string.sub(src,3,4),16) - local srcb = tonumber(string.sub(src,5,6),16) - local dstr = tonumber(string.sub(dst,1,2),16) - local dstg = tonumber(string.sub(dst,3,4),16) - local dstb = tonumber(string.sub(dst,5,6),16) - local op = "normal" - if type(mode) == "string" then op = string.lower(mode) end - if op == "normal" then - return src - elseif op == "nop" then - return dst - elseif op == "overlay" then - return (string.upper(src) == string.upper(transparent)) and dst or src - elseif op == "add" then - local r = math.min(255,srcr+dstr) - local g = math.min(255,srcg+dstg) - local b = math.min(255,srcb+dstb) - return string.format("%02X%02X%02X",r,g,b) - elseif op == "sub" then - local r = math.max(0,dstr-srcr) - local g = math.max(0,dstg-srcg) - local b = math.max(0,dstb-srcb) - return string.format("%02X%02X%02X",r,g,b) - elseif op == "isub" then - local r = math.max(0,srcr-dstr) - local g = math.max(0,srcg-dstg) - local b = math.max(0,srcb-dstb) - return string.format("%02X%02X%02X",r,g,b) - elseif op == "average" then - local r = math.min(255,(srcr+dstr)/2) - local g = math.min(255,(srcg+dstg)/2) - local b = math.min(255,(srcb+dstb)/2) - return string.format("%02X%02X%02X",r,g,b) - elseif op == "and" or op == "or" or op == "xor" or op == "xnor" or op == "not" or op == "nand" or op == "nor" then - return bitwiseblend(srcr,dstr,srcg,dstg,srcb,dstb,op) - elseif op == "tohsv" or op == "rgbtohsv" then - return string.format("%02X%02X%02X",rgbtohsv(srcr,srcg,srcb)) - elseif op == "torgb" or op == "hsvtorgb" then - return string.format("%02X%02X%02X",hsvtorgb(srcr,srcg,srcb)) - else - return src - end -end - -local function runcommand(pos,meta,command) - if type(command) ~= "table" then return end - if command.command == "createbuffer" then - if type(command.buffer) ~= "number" or type(command.xsize) ~= "number" or type(command.ysize) ~= "number" then return end - local bufnum = math.floor(command.buffer) - if bufnum < 0 or bufnum > 7 then return end - local xsize = math.min(64,math.floor(command.xsize)) - local ysize = math.min(64,math.floor(command.ysize)) - if xsize < 1 or ysize < 1 then return end - local fillcolor = command.fill - if type(fillcolor) ~= "string" or string.len(fillcolor) > 7 or string.len(fillcolor) < 6 then fillcolor = "000000" end - if string.sub(fillcolor,1,1) == "#" then fillcolor = string.sub(fillcolor,2,7) end - if not tonumber(fillcolor,16) then fillcolor = "000000" end - local buffer = {} - buffer.xsize = xsize - buffer.ysize = ysize - for y=1,ysize,1 do - buffer[y] = {} - for x=1,xsize,1 do - buffer[y][x] = fillcolor - end - end - meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) - elseif command.command == "send" then - if type(command.buffer) ~= "number" or type(command.channel) ~= "string" then return end - local bufnum = math.floor(command.buffer) - if bufnum < 0 or bufnum > 7 then return end - local buffer = meta:get_string("buffer"..bufnum) - if string.len(buffer) == 0 then return end - buffer = minetest.deserialize(buffer) - if type(buffer) == "table" then - digiline:receptor_send(pos,digiline.rules.default,command.channel,buffer) - end - elseif command.command == "drawrect" then - if type(command.buffer) ~= "number" or type(command.x1) ~= "number" or type(command.y1) ~= "number" or type(command.x2) ~= "number" or type(command.y2) ~= "number" then return end - local bufnum = math.floor(command.buffer) - if bufnum < 0 or bufnum > 7 then return end - local x1 = math.min(64,math.floor(command.x1)) - local y1 = math.min(64,math.floor(command.y1)) - local x2 = math.min(64,math.floor(command.x2)) - local y2 = math.min(64,math.floor(command.y2)) - if x1 < 1 or y1 < 1 or x2 < 1 or y2 < 1 then return end - local buffer = meta:get_string("buffer"..bufnum) - if string.len(buffer) == 0 then return end - buffer = minetest.deserialize(buffer) - if type(buffer) ~= "table" then return end - x2 = math.min(x2,buffer.xsize) - y2 = math.min(y2,buffer.ysize) - if x1 > x2 or y1 > y2 then return end - local fillcolor = command.fill - if type(fillcolor) ~= "string" or string.len(fillcolor) > 7 or string.len(fillcolor) < 6 then fillcolor = "000000" end - if string.sub(fillcolor,1,1) == "#" then fillcolor = string.sub(fillcolor,2,7) end - if not tonumber(fillcolor,16) then fillcolor = "000000" end - local edgecolor = command.edge - if type(edgecolor) ~= "string" or string.len(edgecolor) > 7 or string.len(edgecolor) < 6 then edgecolor = fillcolor end - if string.sub(edgecolor,1,1) == "#" then edgecolor = string.sub(edgecolor,2,7) end - if not tonumber(edgecolor,16) then edgecolor = fillcolor end - for y=y1,y2,1 do - for x=x1,x2,1 do - buffer[y][x] = fillcolor - end - end - if fillcolor ~= edgecolor then - for x=x1,x2,1 do - buffer[y1][x] = edgecolor - buffer[y2][x] = edgecolor - end - for y=y1,y2,1 do - buffer[y][x1] = edgecolor - buffer[y][x2] = edgecolor - end - end - meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) - elseif command.command == "drawpoint" then - if type(command.buffer) ~= "number" or type(command.x) ~= "number" or type(command.y) ~= "number" then return end - local bufnum = math.floor(command.buffer) - if bufnum < 0 or bufnum > 7 then return end - local x = math.floor(command.x) - local y = math.floor(command.y) - if x < 1 or y < 1 then return end - local buffer = meta:get_string("buffer"..bufnum) - if string.len(buffer) == 0 then return end - buffer = minetest.deserialize(buffer) - if type(buffer) ~= "table" then return end - if x > buffer.xsize or y > buffer.ysize then return end - local color = command.color - if type(color) ~= "string" or string.len(color) > 7 or string.len(color) < 6 then color = "000000" end - if string.sub(color,1,1) == "#" then color = string.sub(color,2,7) end - if not tonumber(color,16) then color = "000000" end - buffer[y][x] = color - meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) - elseif command.command == "copy" then - if type(command.src) ~= "number" or type(command.dst) ~= "number" or type(command.srcx) ~= "number" or type(command.srcy) ~= "number" or type(command.dstx) ~= "number" or type(command.dsty) ~= "number" or type(command.xsize) ~= "number" or type(command.ysize) ~= "number" then return end - local src = math.floor(command.src) - if src < 0 or src > 7 then return end - local dst = math.floor(command.dst) - if dst < 0 or dst > 7 then return end - local srcx = math.floor(command.srcx) - local srcy = math.floor(command.srcy) - local dstx = math.floor(command.dstx) - local dsty = math.floor(command.dsty) - local xsize = math.floor(command.xsize) - local ysize = math.floor(command.ysize) - if srcx < 1 or srcy < 1 or dstx < 1 or dsty < 1 or xsize < 1 or ysize < 1 then return end - local sourcebuffer = meta:get_string("buffer"..src) - local destbuffer = meta:get_string("buffer"..dst) - if string.len(sourcebuffer) == 0 then return end - sourcebuffer = minetest.deserialize(sourcebuffer) - if type(sourcebuffer) ~= "table" then return end - if string.len(destbuffer) == 0 then return end - destbuffer = minetest.deserialize(destbuffer) - if type(destbuffer) ~= "table" then return end - if srcx + xsize-1 > sourcebuffer.xsize or srcy + ysize-1 > sourcebuffer.ysize then return end - if dstx + xsize-1 > destbuffer.xsize or dsty + ysize-1 > destbuffer.ysize then return end - local transparent = command.transparent - if type(transparent) ~= "string" or string.len(transparent) > 7 or string.len(transparent) < 6 then transparent = "000000" end - if string.sub(transparent,1,1) == "#" then transparent = string.sub(transparent,2,7) end - if not tonumber(transparent,16) then transparent = "000000" end - for y=0,ysize-1,1 do - for x=0,xsize-1,1 do - local srcpx = sourcebuffer[srcy+y][srcx+x] - local destpx = destbuffer[dsty+y][dstx+x] - destbuffer[dsty+y][dstx+x] = blend(srcpx,destpx,command.mode,transparent) - end - end - meta:set_string("buffer"..dst,minetest.serialize(destbuffer)) - elseif command.command == "load" then - if type(command.buffer) ~= "number" or type(command.x) ~= "number" or type(command.y) ~= "number" or type(command.data) ~= "table" then return end - local bufnum = math.floor(command.buffer) - if bufnum < 0 or bufnum > 7 then return end - local xstart = math.floor(command.x) - local ystart = math.floor(command.y) - if xstart < 1 or ystart < 1 then return end - local buffer = meta:get_string("buffer"..bufnum) - if string.len(buffer) == 0 then return end - buffer = minetest.deserialize(buffer) - if type(buffer) ~= "table" then return end - if type(command.data[1]) ~= "table" then return end - if #command.data[1] < 1 then return end - local ysize = #command.data - local xsize = #command.data[1] - if xstart+xsize-1 > buffer.xsize or ystart+ysize-1 > buffer.ysize then return end - for y=1,ysize,1 do - if type(command.data[y]) == "table" then - for x=1,xsize,1 do - local color = command.data[y][x] - if type(color) == "string" then - if string.len(color) == 7 then color = string.sub(color,2,7) end - if tonumber(color,16) then - buffer[ystart+y-1][xstart+x-1] = color - end - end - end - end - end - meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) - elseif command.command == "text" then - if type(command.buffer) ~= "number" or type(command.x) ~= "number" or type(command.y) ~= "number" or type(command.text) ~= "string" or string.len(command.text) < 1 then return end - command.text = string.sub(command.text,1,16) - local bufnum = math.floor(command.buffer) - if bufnum < 0 or bufnum > 7 then return end - local x = math.floor(command.x) - local y = math.floor(command.y) - if x < 1 or y < 1 then return end - local buffer = meta:get_string("buffer"..bufnum) - if string.len(buffer) == 0 then return end - buffer = minetest.deserialize(buffer) - if type(buffer) ~= "table" then return end - if x > buffer.xsize or y > buffer.ysize then return end - local color = command.color - if type(color) ~= "string" or string.len(color) > 7 or string.len(color) < 6 then color = "ff6600" end - if string.sub(color,1,1) == "#" then color = string.sub(color,2,7) end - if not tonumber(color,16) then color = "ff6600" end - for i=1,string.len(command.text),1 do - local char = font[string.byte(string.sub(command.text,i,i))] - for chary=1,12,1 do - for charx=1,5,1 do - local startx = x + (i*6-6) - if char[chary][charx] and y+chary-1 <= buffer.ysize and startx+charx-1 <= buffer.xsize then - local dstpx = buffer[y+chary-1][startx+charx-1] - buffer[y+chary-1][startx+charx-1] = blend(color,dstpx,command.mode,"") - end - end - end - end - meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) - end -end - -minetest.register_node("digistuff:gpu", { - description = "Digilines 2D Graphics Processor", - groups = {cracky=3}, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec","field[channel;Channel;${channel}") - end, - tiles = { - "digistuff_gpu_top.png", - "jeija_microcontroller_bottom.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png" - }, - inventory_image = "digistuff_gpu_top.png", - drawtype = "nodebox", - selection_box = { - --From luacontroller - type = "fixed", - fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, - }, - _digistuff_channelcopier_fieldname = "channel", - node_box = { - --From Luacontroller - type = "fixed", - fixed = { - {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab - {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board - {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC - } - }, - paramtype = "light", - sunlight_propagates = true, - on_receive_fields = function(pos, formname, fields, sender) - local name = sender:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - if fields.channel then meta:set_string("channel",fields.channel) end - end, - digiline = - { - receptor = {}, - effector = { - action = function(pos,node,channel,msg) - local meta = minetest.get_meta(pos) - if meta:get_string("channel") ~= channel or type(msg) ~= "table" then return end - if type(msg[1]) == "table" then - for i=1,32,1 do - if type(msg[i]) == "table" then - runcommand(pos,meta,msg[i]) - end - end - else - runcommand(pos,meta,msg) - end - end - }, - }, -}) - -minetest.register_craft({ - output = "digistuff:gpu", - recipe = { - {"","default:steel_ingot",""}, - {"digilines:wire_std_00000000","mesecons_luacontroller:luacontroller0000","digilines:wire_std_00000000"}, - {"dye:red","dye:green","dye:blue"}, - } -}) diff --git a/digistuff/gpu.txt b/digistuff/gpu.txt deleted file mode 100644 index 98df39d2..00000000 --- a/digistuff/gpu.txt +++ /dev/null @@ -1,121 +0,0 @@ -Digilines 2D Graphics Processor -=============================== - -Commands for this part are in the form of a table, consisting of a field called "command" with the command to be executed, and other fields supplying parameters to the command. -Example: - {command="send",buffer=0,channel="example"} - -Up to 32 commands may be sent at once by placing all of the tables into one. -Example: - { - {command="createbuffer",buffer=0,xsize=16,ysize=16,color="aaaaaa"}, - {command="send",buffer=0,channel="example"} - } - - -Command: createbuffer ---------------------- - -Creates a new buffer. Up to 8 buffers may exist at one time, and each can be up to 64x64 pixels in size. - -Parameters: -buffer [integer 0-7]: The slot number to create the new buffer in. If the slot is already occupied, the existing contents will be erased. -xsize [integer 1-64]: The width of the new buffer in pixels. -ysize [integer 1-64]: The height of the new buffer in pixels. -color [hex color, default "000000"]: A color to fill the new buffer with. - -Command: send -------------- - -Sends the contents of a buffer to a digiscreen, rgblightstone panel, or other digilines device. - -Parameters: -buffer [integer 0-7]: The buffer to send the contents of. -channel [string]: The digilines channel to send the message on. - -Command: drawrect ------------------ - -Draws a rectangle with optional border on a buffer. - -Parameters: -buffer [integer 0-7]: The buffer to draw the rectangle on. -x1 [integer 1-64]: The X position of the left side of the rectangle. -x2 [integer 1-64]: The X position of the right side of the rectangle. -y1 [integer 1-64]: The Y position of the top side of the rectangle. -y2 [integer 1-64]: The Y position of the bottom side of the rectangle. -fill [hex color, default "000000"]: The color of the rectangle. -edge [hex color, default same as fill]: The color of the outside edge of the rectangle. - -Command: drawpoint ------------------- - -Draws a point on a buffer. -This command is intended for use when writing a single pixel at a time. -For writing large blocks at one time, it is recommended to use the "load" command instead. - -Parameters: -buffer [integer 0-7]: The buffer to draw the point on. -x [integer 1-64]: The X position of the point. -y [integer 1-64]: The Y position of the point. -color [hex color, default "000000"]: The color of the point. - -Command: copy -------------- - -Perform a BitBLT operation (such as copying one buffer to another). - -Parameters: -src [integer 0-7]: The buffer to copy from. -dst [integer 0-7]: The buffer to copy to. May be the same or different from "src". -srcx [integer 1-64]: The X position of the left side of the region to copy from. -srcy [integer 1-64]: The Y position of the top side of the region to copy from. -dstx [integer 1-64]: The X position of the left side of the region to copy to. -dsty [integer 1-64]: The Y position of the top side of the region to copy to. -xsize [integer 1-64]: The width of the region to copy. -ysize [integer 1-64]: The height of the region to copy. -mode [string from list below, default "normal"]: The blend mode to use for the copy operation. -transparent [hex color, default "000000"]: The color to treat as transparency when using the "overlay" blend mode. No effect in other modes. - -Blend modes: -normal: Copy the source to the destination, overwriting the destination. -nop: Do nothing. -overlay: Same as normal, but skip pixels in the source matching the "transparent" color. -add: For each subpixel (red, green, blue) add the source values to the destination and write the sum to the destination. -sub: For each subpixel (red, green, blue) subtract the source values from the destination and write the difference to the destination. -isub: For each subpixel (red, green, blue) subtract the destination values from the source and write the difference to the destination. -average: For each subpixel (red, green, blue) calculate the average of the source and destination and write the average to the destination. -and: Perform a bitwise AND of the source and destination and write the result to the destination. -or: Perform a bitwise OR of the source and destination and write the result to the destination. -nand: Perform a bitwise NAND of the source and destination and write the result to the destination. -nor: Perform a bitwise NOR of the source and destination and write the result to the destination. -xor: Perform a bitwise XOR of the source and destination and write the result to the destination. -xnor: Perform a bitwise XNOR of the source and destination and write the result to the destination. -not: Perform a bitwise NOT of the source and write the result to the destination. -rgbtohsv: Convert the source from the RGB color system to the HSV color system and write the result to the destination, storing hue as "red", saturation as "green", and value as "blue". -hsvtorgb: Convert the source from the HSV color system to the RGB color system, reading hue from the red channel, saturation from the green channel, and value from the blue channel, and write the result to the destination. - -Command: load -------------- - -Transfer a bitmap image into a buffer. -The width and height of the image will be automatically determined from the data given. - -Parameters: -buffer [integer 0-7]: The buffer to write the image into. -x [integer 1-64]: The X position of the left side of the image. -y [integer 1-64]: The Y position of the top side of the image. -data [2D array of hex color values, default for each is transparency]: The bitmap image to write. - -Command: text -------------- - -Draw one or more text characters on a buffer. -The font being used is 5*12 pixels in size, with one pixel spacing between characters. - -Parameters: -buffer [integer 0-7]: The buffer to draw the text on. -x [integer 1-64]: The X position of the left side of the text. -y [integer 1-64]: The Y position of the right side of the text. -color [hex color, default "ff6600"]: The color of the text. -text: The text string to draw. diff --git a/digistuff/memory.lua b/digistuff/memory.lua deleted file mode 100644 index e11f45d6..00000000 --- a/digistuff/memory.lua +++ /dev/null @@ -1,177 +0,0 @@ -minetest.register_node("digistuff:ram", { - description = "Digilines 128Kbit SRAM", - groups = {cracky=3}, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec","field[channel;Channel;${channel}") - for i=0,31,1 do - meta:set_string(string.format("data%02d",i),"") - end - end, - tiles = { - "digistuff_ram_top.png", - "jeija_microcontroller_bottom.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png" - }, - inventory_image = "digistuff_ram_top.png", - drawtype = "nodebox", - selection_box = { - --From luacontroller - type = "fixed", - fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, - }, - _digistuff_channelcopier_fieldname = "channel", - node_box = { - --From Luacontroller - type = "fixed", - fixed = { - {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab - {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board - {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC - } - }, - paramtype = "light", - sunlight_propagates = true, - on_receive_fields = function(pos, formname, fields, sender) - local name = sender:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - if fields.channel then meta:set_string("channel",fields.channel) end - end, - digiline = - { - receptor = {}, - effector = { - action = function(pos,node,channel,msg) - local meta = minetest.get_meta(pos) - if meta:get_string("channel") ~= channel or type(msg) ~= "table" then return end - if msg.command == "read" then - if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 then - digiline:receptor_send(pos,digiline.rules.default,channel,meta:get_string(string.format("data%02i",math.floor(msg.address)))) - end - elseif msg.command == "write" then - if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 and type(msg.data) == "string" then - meta:set_string(string.format("data%02i",math.floor(msg.address)),string.sub(msg.data,1,512)) - end - end - end - }, - }, -}) - -minetest.register_node("digistuff:eeprom", { - description = "Digilines 128Kbit EEPROM", - groups = {cracky=3}, - stack_max = 1, - after_place_node = function(pos,_,istack) - local meta = minetest.get_meta(pos) - local smeta = istack:get_meta() - for i=0,31,1 do - meta:set_string(string.format("data%02d",i),smeta:get_string(string.format("data%02d",i))) - end - meta:set_string("channel",smeta:get_string("channel")) - meta:set_string("formspec","field[channel;Channel;${channel}") - end, - on_dig = function(pos,node,player) - local name = player:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - local istack = ItemStack("digistuff:eeprom") - local smeta = istack:get_meta() - for i=0,31,1 do - smeta:set_string(string.format("data%02d",i),meta:get_string(string.format("data%02d",i))) - end - smeta:set_string("channel",meta:get_string("channel")) - minetest.remove_node(pos) - smeta:set_string("description","Digilines 128KBit EEPROM (with data)") - local inv = minetest.get_inventory({type = "player",name = name,}) - if player.is_fake_player or not inv:room_for_item("main",istack) then - minetest.handle_node_drops(pos,{istack},player) - else - inv:add_item("main",istack) - end - digilines.update_autoconnect(pos) - end, - tiles = { - "digistuff_eeprom_top.png", - "jeija_microcontroller_bottom.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png", - "jeija_microcontroller_sides.png" - }, - inventory_image = "digistuff_eeprom_top.png", - drawtype = "nodebox", - selection_box = { - --From luacontroller - type = "fixed", - fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, - }, - _digistuff_channelcopier_fieldname = "channel", - node_box = { - --From Luacontroller - type = "fixed", - fixed = { - {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab - {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board - {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC - } - }, - paramtype = "light", - sunlight_propagates = true, - on_receive_fields = function(pos, formname, fields, sender) - local name = sender:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - if fields.channel then meta:set_string("channel",fields.channel) end - end, - digiline = - { - receptor = {}, - effector = { - action = function(pos,node,channel,msg) - local meta = minetest.get_meta(pos) - if meta:get_string("channel") ~= channel or type(msg) ~= "table" then return end - if msg.command == "read" then - if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 then - digiline:receptor_send(pos,digiline.rules.default,channel,meta:get_string(string.format("data%02i",math.floor(msg.address)))) - end - elseif msg.command == "write" then - if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 and type(msg.data) == "string" then - meta:set_string(string.format("data%02i",math.floor(msg.address)),string.sub(msg.data,1,512)) - end - end - end - }, - }, -}) - -minetest.register_craft({ - output = "digistuff:ram", - recipe = { - {"basic_materials:plastic_sheet","basic_materials:plastic_sheet","basic_materials:plastic_sheet"}, - {"mesecons_gates:nand_off","basic_materials:plastic_sheet","mesecons_gates:nand_off"}, - {"mesecons:wire_00000000_off","basic_materials:silicon","mesecons:wire_00000000_off"}, - } -}) - -minetest.register_craft({ - output = "digistuff:eeprom", - recipe = { - {"basic_materials:plastic_sheet","mesecons:wire_00000000_off","basic_materials:plastic_sheet"}, - {"digilines:wire_std_00000000","basic_materials:plastic_sheet","digilines:wire_std_00000000"}, - {"mesecons:wire_00000000_off","basic_materials:silicon","mesecons:wire_00000000_off"}, - } -}) diff --git a/digistuff/movestone.lua b/digistuff/movestone.lua deleted file mode 100644 index e597a426..00000000 --- a/digistuff/movestone.lua +++ /dev/null @@ -1,269 +0,0 @@ -if not minetest.get_modpath("mesecons_mvps") then - minetest.log("warning","mesecons_mvps is not installed - digilines movestone will not be available") - return -end - -local function abortmovement(pos) - local meta = minetest.get_meta(pos) - local state = meta:get_string("state") - if state ~= "" then state = minetest.deserialize(state) else state = {} end - state.targetx = pos.x - state.targety = pos.y - state.targetz = pos.z - state.moveaxis = nil - meta:set_string("state",minetest.serialize(state)) -end - -local function checkprotection(pos,player) - if not player then player = "" end - if type(player) ~= "string" then player = player:get_player_name() end - if minetest.is_protected(pos,player) and not minetest.check_player_privs(player,{protection_bypass=true}) then - minetest.record_protection_violation(pos,player) - return false - end - return true -end - -local function move(pos,dir,state) - local newpos = vector.add(pos,dir) - local stack = mesecon.mvps_get_stack(pos,dir,state.maxstack,state.sticky and state.allsticky) - if not stack then - abortmovement(pos) - return false - end - for _,i in pairs(stack) do - if not checkprotection(i.pos,state.player) then - abortmovement(pos) - return false - end - end - local success,stack,oldstack = mesecon.mvps_push(pos,dir,state.maxstack) - if not success then - abortmovement(pos) - return false - end - mesecon.mvps_process_stack(stack) - mesecon.mvps_move_objects(pos,dir,oldstack) - if state.sound == "mesecons" then - minetest.sound_play("movestone",{pos = pos,max_hear_distance = 20,gain = 0.5,},true) - end - if not state.sticky then return true end - local ppos = vector.add(pos,vector.multiply(dir,-1)) - local success,stack,oldstack - if state.allsticky then - success,stack,oldstack = mesecon.mvps_pull_all(ppos,dir,state.maxstack) - else - success,stack,oldstack = mesecon.mvps_pull_single(ppos,dir,state.maxstack) - end - if success then - mesecon.mvps_move_objects(ppos,dir,oldstack,-1) - else - abortmovement(pos) - return false - end - return true -end - -local rules = { - {x = 1, y = 0, z = 0}, - {x =-1, y = 0, z = 0}, - {x = 0, y = 1, z = 0}, - {x = 0, y =-1, z = 0}, - {x = 0, y = 0, z = 1}, - {x = 0, y = 0, z =-1}, -} - -minetest.register_node("digistuff:movestone", { - description = "Digilines Movestone", - groups = {cracky = 3,}, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec","field[channel;Channel;${channel}") - local initialstate = { - targetx = pos.x, - targety = pos.y, - targetz = pos.z, - sound = "mesecons", - maxstack = 0, - allsticky = false, - } - meta:set_int("active",0) - meta:set_string("state",minetest.serialize(initialstate)) - end, - after_place_node = function(pos,player) - if not player then return end - local meta = minetest.get_meta(pos) - meta:set_string("owner",player:get_player_name()) - end, - tiles = { - "jeija_movestone_side.png", - }, - on_receive_fields = function(pos, formname, fields, sender) - local name = sender:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - if fields.channel then meta:set_string("channel",fields.channel) end - end, - on_timer = function(pos) - local meta = minetest.get_meta(pos) - if meta:get_int("active") < 1 then return end - local state = meta:get_string("state") - local newpos = pos - if state ~= "" then state = minetest.deserialize(state) else return end - if state.moveaxis == "x" then - local dir = vector.new(state.targetx > pos.x and 1 or -1,0,0) - move(pos,dir,state) - newpos = vector.add(pos,dir) - if newpos.x == state.targetx then - if newpos.y ~= state.targety then - state.moveaxis = "y" - elseif newpos.z ~= state.targetz then - state.moveaxis = "z" - else - state.moveaxis = nil - end - end - elseif state.moveaxis == "y" then - local dir = vector.new(0,state.targety > pos.y and 1 or -1,0) - move(pos,dir,state) - newpos = vector.add(pos,dir) - if newpos.y == state.targety then - if newpos.z ~= state.targetz then - state.moveaxis = "z" - else - state.moveaxis = nil - end - end - elseif state.moveaxis == "z" then - local dir = vector.new(0,0,state.targetz > pos.z and 1 or -1) - move(pos,dir,state) - newpos = vector.add(pos,dir) - if newpos.z == state.targetz then - state.moveaxis = nil - end - end - local newmeta = minetest.get_meta(newpos) - newmeta:set_int("active",state.moveaxis and 1 or 0) - newmeta:set_string("state",minetest.serialize(state)) - if state.moveaxis then - local timer = minetest.get_node_timer(newpos) - timer:start(0.33) - end - end, - _digistuff_channelcopier_fieldname = "channel", - digiline = { - wire = { - rules = rules, - }, - receptor = {}, - effector = { - action = function(pos,node,channel,msg) - local meta = minetest.get_meta(pos) - local setchan = meta:get_string("channel") - if channel ~= setchan then return end - if type(msg) ~= "table" or not msg.command then return end - if msg.command == "getstate" then - local ret = {} - local meta = minetest.get_meta(pos) - local state = meta:get_string("state") - if state ~= "" then state = minetest.deserialize(state) else state = {} end - if not state then - minetest.log("error",string.format("Invalid state information for digilines movestone at %d,%d,%d: %s",pos.x,pos.y,pos.z,meta:get_string("state"))) - return - end - ret.pos = pos - ret.targetpos = vector.new(state.targetx,state.targety,state.targetz) - ret.moveaxis = state.moveaxis - digiline:receptor_send(pos,rules,channel,ret) - elseif msg.command == "absmove" then - local ret = {} - local meta = minetest.get_meta(pos) - local state = meta:get_string("state") - if state ~= "" then state = minetest.deserialize(state) else state = {} end - if not state then - minetest.log("error",string.format("Invalid state information for digilines movestone at %d,%d,%d: %s",pos.x,pos.y,pos.z,meta:get_string("state"))) - return - end - if type(msg.sound) == "string" then state.sound = msg.sound end - if type(msg.x) ~= "number" then msg.x = pos.x end - if type(msg.y) ~= "number" then msg.y = pos.y end - if type(msg.z) ~= "number" then msg.z = pos.z end - msg.x = math.max(pos.x-50,math.min(pos.x+50,math.floor(msg.x))) - msg.y = math.max(pos.y-50,math.min(pos.y+50,math.floor(msg.y))) - msg.z = math.max(pos.z-50,math.min(pos.z+50,math.floor(msg.z))) - local firstaxis - if msg.x ~= pos.x then firstaxis = "x" - elseif msg.y ~= pos.y then firstaxis = "y" - elseif msg.z ~= pos.z then firstaxis = "z" end - if firstaxis then - state.targetx = msg.x - state.targety = msg.y - state.targetz = msg.z - state.moveaxis = firstaxis - if msg.sticky then - state.sticky = true - elseif msg.sticky == false then - state.sticky = false - end - if msg.allsticky then - state.allsticky = true - elseif msg.allsticky == false then - state.allsticky = false - end - if type(msg.maxstack) == "number" and msg.maxstack >= 0 and msg.maxstack <= 50 then - state.maxstack = math.floor(msg.maxstack) - end - meta:set_string("state",minetest.serialize(state)) - meta:set_int("active",1) - minetest.get_node_timer(pos):start(0.1) - end - elseif msg.command == "relmove" then - local ret = {} - local meta = minetest.get_meta(pos) - local state = meta:get_string("state") - if state ~= "" then state = minetest.deserialize(state) else state = {} end - if not state then - minetest.log("error",string.format("Invalid state information for digilines movestone at %d,%d,%d: %s",pos.x,pos.y,pos.z,meta:get_string("state"))) - return - end - if type(msg.sound) == "string" then state.sound = msg.sound end - if type(msg.x) ~= "number" then msg.x = 0 end - if type(msg.y) ~= "number" then msg.y = 0 end - if type(msg.z) ~= "number" then msg.z = 0 end - msg.x = pos.x+math.max(0,math.min(50,math.floor(msg.x))) - msg.y = pos.y+math.max(0,math.min(50,math.floor(msg.y))) - msg.z = pos.z+math.max(0,math.min(50,math.floor(msg.z))) - local firstaxis - if msg.x ~= pos.x then firstaxis = "x" - elseif msg.y ~= pos.y then firstaxis = "y" - elseif msg.z ~= pos.z then firstaxis = "z" end - if firstaxis then - state.targetx = msg.x - state.targety = msg.y - state.targetz = msg.z - state.moveaxis = firstaxis - if msg.sticky then - state.sticky = true - elseif msg.sticky == false then - state.sticky = false - end - if msg.allsticky then - state.allsticky = true - elseif msg.allsticky == false then - state.allsticky = false - end - if type(msg.maxstack) == "number" and msg.maxstack >= 0 and msg.maxstack <= 50 then - state.maxstack = math.floor(msg.maxstack) - end - meta:set_string("state",minetest.serialize(state)) - meta:set_int("active",1) - minetest.get_node_timer(pos):start(0.1) - end - end - end - }, - }, -}) diff --git a/digistuff/panel.lua b/digistuff/panel.lua deleted file mode 100644 index 7ecc633d..00000000 --- a/digistuff/panel.lua +++ /dev/null @@ -1,156 +0,0 @@ -digistuff.update_panel_formspec = function (pos,dispstr) - local meta = minetest.get_meta(pos) - local locked = meta:get_int("locked") == 1 - local fs = "size[10,8]".. - "background[0,0;0,0;digistuff_panel_bg.png;true]".. - "label[0,0;%s]".. - (locked and "image_button[9,3;1,1;digistuff_panel_locked.png;unlock;]" or "image_button[9,3;1,1;digistuff_panel_unlocked.png;lock;]").. - "image_button[2,4.5;1,1;digistuff_adwaita_go-up.png;up;]".. - "image_button[1,5;1,1;digistuff_adwaita_go-previous.png;left;]".. - "image_button[3,5;1,1;digistuff_adwaita_go-next.png;right;]".. - "image_button[2,5.5;1,1;digistuff_adwaita_go-down.png;down;]".. - "image_button[1,6.5;1,1;digistuff_adwaita_edit-undo.png;back;]".. - "image_button[3,6.5;1,1;digistuff_adwaita_emblem-default.png;enter;]".. - "field[6,5.75;2,1;channel;Channel;${channel}]".. - "button[8,5.5;1,1;savechan;Set]" - fs = fs:format(minetest.formspec_escape(dispstr)):gsub("|","\n") - meta:set_string("formspec",fs) - meta:set_string("text",dispstr) -end - -digistuff.panel_on_digiline_receive = function (pos, node, channel, msg) - local meta = minetest.get_meta(pos) - local setchan = meta:get_string("channel") - if channel ~= setchan then return end - if type(msg) ~= "string" then return end - digistuff.update_panel_formspec(pos,msg) -end - -digistuff.panel_on_receive_fields = function(pos, formname, fields, sender) - local meta = minetest.get_meta(pos) - local setchan = meta:get_string("channel") - local playername = sender:get_player_name() - local locked = meta:get_int("locked") == 1 - local can_bypass = minetest.check_player_privs(playername,{protection_bypass=true}) - local is_protected = minetest.is_protected(pos,playername) - if fields.savechan then - if can_bypass or not is_protected then - meta:set_string("channel",fields.channel) - local helpmsg = "Channel has been set. Waiting for data..." - digistuff.update_panel_formspec(pos,helpmsg) - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to change the channel of this panel.") - end - elseif fields.up then - if can_bypass or not is_protected or not locked then - digiline:receptor_send(pos, digiline.rules.default, setchan, "up") - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this panel.") - end - elseif fields.down then - if can_bypass or not is_protected or not locked then - digiline:receptor_send(pos, digiline.rules.default, setchan, "down") - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this panel.") - end - elseif fields.left then - if can_bypass or not is_protected or not locked then - digiline:receptor_send(pos, digiline.rules.default, setchan, "left") - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this panel.") - end - elseif fields.right then - if can_bypass or not is_protected or not locked then - digiline:receptor_send(pos, digiline.rules.default, setchan, "right") - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this panel.") - end - elseif fields.back then - if can_bypass or not is_protected or not locked then - digiline:receptor_send(pos, digiline.rules.default, setchan, "back") - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this panel.") - end - elseif fields.enter then - if can_bypass or not is_protected or not locked then - digiline:receptor_send(pos, digiline.rules.default, setchan, "enter") - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this panel.") - end - elseif fields.lock then - if can_bypass or not is_protected then - meta:set_int("locked",1) - minetest.chat_send_player(playername,"This panel has been locked. Access will now be controlled according to area protection.") - digistuff.update_panel_formspec(pos,meta:get_string("text")) - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to lock this panel.") - end - elseif fields.unlock then - if can_bypass or not is_protected then - meta:set_int("locked",0) - minetest.chat_send_player(playername,"This panel has been unlocked. It can now be used (but not locked or have the channel changed) by anyone.") - digistuff.update_panel_formspec(pos,meta:get_string("text")) - else - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to unlock this panel.") - end - end -end - - -minetest.register_node("digistuff:panel", { - description = "Digilines Control Panel", - groups = {cracky=3}, - on_construct = function(pos) - local helpmsg = "Please set a channel." - digistuff.update_panel_formspec(pos,helpmsg) - minetest.get_meta(pos):set_int("locked",0) - end, - drawtype = "nodebox", - tiles = { - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_front.png" - }, - _digistuff_channelcopier_fieldname = "channel", - _digistuff_channelcopier_onset = function(pos) - local helpmsg = "Channel has been set. Waiting for data..." - digistuff.update_panel_formspec(pos,helpmsg) - end, - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } - } - }, - on_receive_fields = digistuff.panel_on_receive_fields, - digiline = - { - receptor = {}, - effector = { - action = digistuff.panel_on_digiline_receive - }, - }, -}) - -minetest.register_craft({ - output = "digistuff:panel", - recipe = { - {"","digistuff:button",""}, - {"digistuff:button","digilines:lcd","digistuff:button"}, - {"","digistuff:button",""} - } -}) diff --git a/digistuff/piezo.lua b/digistuff/piezo.lua deleted file mode 100644 index 3f040c85..00000000 --- a/digistuff/piezo.lua +++ /dev/null @@ -1,89 +0,0 @@ -digistuff.sounds_playing = {} - -minetest.register_node("digistuff:piezo", { - description = "Digilines Piezoelectric Beeper", - groups = {cracky=3}, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - meta:set_string("formspec","field[channel;Channel;${channel}") - end, - on_destruct = function(pos) - local pos_hash = minetest.hash_node_position(pos) - if digistuff.sounds_playing[pos_hash] then - minetest.sound_stop(digistuff.sounds_playing[pos_hash]) - digistuff.sounds_playing[pos_hash] = nil - end - end, - _digistuff_channelcopier_fieldname = "channel", - tiles = { - "digistuff_piezo_top.png", - "digistuff_piezo_sides.png", - "digistuff_piezo_sides.png", - "digistuff_piezo_sides.png", - "digistuff_piezo_sides.png", - "digistuff_piezo_sides.png" - }, - on_receive_fields = function(pos, formname, fields, sender) - local name = sender:get_player_name() - if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then - minetest.record_protection_violation(pos,name) - return - end - local meta = minetest.get_meta(pos) - if fields.channel then meta:set_string("channel",fields.channel) end - end, - digiline = - { - receptor = {}, - effector = { - action = function(pos,node,channel,msg) - local meta = minetest.get_meta(pos) - local setchan = meta:get_string("channel") - if channel ~= setchan then return end - if msg == "shortbeep" then - local pos_hash = minetest.hash_node_position(pos) - if digistuff.sounds_playing[pos_hash] then - minetest.sound_stop(digistuff.sounds_playing[pos_hash]) - digistuff.sounds_playing[pos_hash] = nil - end - minetest.sound_play({name = "digistuff_piezo_short_single",gain = 0.2},{pos = pos,max_hear_distance = 16}) - elseif msg == "longbeep" then - local pos_hash = minetest.hash_node_position(pos) - if digistuff.sounds_playing[pos_hash] then - minetest.sound_stop(digistuff.sounds_playing[pos_hash]) - digistuff.sounds_playing[pos_hash] = nil - end - minetest.sound_play({name = "digistuff_piezo_long_single",gain = 0.2},{pos = pos,max_hear_distance = 16}) - elseif msg == "fastrepeat" then - local pos_hash = minetest.hash_node_position(pos) - if digistuff.sounds_playing[pos_hash] then - minetest.sound_stop(digistuff.sounds_playing[pos_hash]) - digistuff.sounds_playing[pos_hash] = nil - end - digistuff.sounds_playing[pos_hash] = minetest.sound_play({name = "digistuff_piezo_fast_repeat",gain = 0.2},{pos = pos,max_hear_distance = 16,loop = true}) - elseif msg == "slowrepeat" then - local pos_hash = minetest.hash_node_position(pos) - if digistuff.sounds_playing[pos_hash] then - minetest.sound_stop(digistuff.sounds_playing[pos_hash]) - digistuff.sounds_playing[pos_hash] = nil - end - digistuff.sounds_playing[pos_hash] = minetest.sound_play({name = "digistuff_piezo_slow_repeat",gain = 0.2},{pos = pos,max_hear_distance = 16,loop = true}) - elseif msg == "stop" then - local pos_hash = minetest.hash_node_position(pos) - if digistuff.sounds_playing[pos_hash] then - minetest.sound_stop(digistuff.sounds_playing[pos_hash]) - digistuff.sounds_playing[pos_hash] = nil - end - end - end - }, - }, -}) - -minetest.register_craft({ - output = "digistuff:piezo", - recipe = { - {"quartz:quartz_crystal_piece","basic_materials:steel_strip"}, - {"digilines:wire_std_00000000","mesecons_luacontroller:luacontroller0000"}, - }, -}) diff --git a/digistuff/touchscreen.lua b/digistuff/touchscreen.lua deleted file mode 100644 index e3255f21..00000000 --- a/digistuff/touchscreen.lua +++ /dev/null @@ -1,315 +0,0 @@ -digistuff.update_ts_formspec = function (pos) - local meta = minetest.get_meta(pos) - local fs = "size[10,8]".. - "background[0,0;0,0;digistuff_ts_bg.png;true]" - if meta:get_int("realcoordinates") > 0 then - fs = fs.."real_coordinates[true]" - end - if meta:get_int("init") == 0 then - fs = fs.."field[3.75,3;3,1;channel;Channel;]".. - "button_exit[4,3.75;2,1;save;Save]" - else - local data = minetest.deserialize(meta:get_string("data")) or {} - for _,field in pairs(data) do - if field.type == "image" then - fs = fs..string.format("image[%s,%s;%s,%s;%s]",field.X,field.Y,field.W,field.H,field.texture_name) - elseif field.type == "field" then - fs = fs..string.format("field[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label,field.default) - elseif field.type == "pwdfield" then - fs = fs..string.format("pwdfield[%s,%s;%s,%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label) - elseif field.type == "textarea" then - fs = fs..string.format("textarea[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label,field.default) - elseif field.type == "label" then - fs = fs..string.format("label[%s,%s;%s]",field.X,field.Y,field.label) - elseif field.type == "vertlabel" then - fs = fs..string.format("vertlabel[%s,%s;%s]",field.X,field.Y,field.label) - elseif field.type == "button" then - fs = fs..string.format("button[%s,%s;%s,%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label) - elseif field.type == "button_exit" then - fs = fs..string.format("button_exit[%s,%s;%s,%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label) - elseif field.type == "image_button" then - fs = fs..string.format("image_button[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.image,field.name,field.label) - elseif field.type == "image_button_exit" then - fs = fs..string.format("image_button_exit[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.image,field.name,field.label) - elseif field.type == "dropdown" then - local choices = "" - for _,i in ipairs(field.choices) do - if type(i) == "string" then - choices = choices..minetest.formspec_escape(i).."," - end - end - choices = string.sub(choices,1,-2) - fs = fs..string.format("dropdown[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,choices,field.selected_id) - elseif field.type == "textlist" then - local listelements = "" - for _,i in ipairs(field.listelements) do - if type(i) == "string" then - listelements = listelements..minetest.formspec_escape(i).."," - end - end - listelements = string.sub(listelements,1,-2) - fs = fs..string.format("textlist[%s,%s;%s,%s;%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,listelements,field.selected_id,field.transparent) - end - end - end - meta:set_string("formspec",fs) -end - -digistuff.ts_on_receive_fields = function (pos, formname, fields, sender) - local meta = minetest.get_meta(pos) - local setchan = meta:get_string("channel") - local playername = sender:get_player_name() - local locked = meta:get_int("locked") == 1 - local can_bypass = minetest.check_player_privs(playername,{protection_bypass=true}) - local is_protected = minetest.is_protected(pos,playername) - if (locked and is_protected) and not can_bypass then - minetest.record_protection_violation(pos,playername) - minetest.chat_send_player(playername,"You are not authorized to use this screen.") - return - end - local init = meta:get_int("init") == 1 - if not init then - if fields.save then - meta:set_string("channel",fields.channel) - meta:set_int("init",1) - digistuff.update_ts_formspec(pos) - end - else - fields.clicker = sender:get_player_name() - digiline:receptor_send(pos, digiline.rules.default, setchan, fields) - end -end - -digistuff.process_command = function (meta, data, msg) - if msg.command == "clear" then - data = {} - elseif msg.command == "realcoordinates" then - meta:set_int("realcoordinates",msg.enabled and 1 or 0) - elseif msg.command == "addimage" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - if not msg.texture_name or type(msg.texture_name) ~= "string" then - return - end - local field = {type="image",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,texture_name=minetest.formspec_escape(msg.texture_name)} - table.insert(data,field) - elseif msg.command == "addfield" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"name","label","default"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="field",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label),default=minetest.formspec_escape(msg.default)} - table.insert(data,field) - elseif msg.command == "addpwdfield" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"name","label"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="pwdfield",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "addtextarea" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"name","label","default"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="textarea",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label),default=minetest.formspec_escape(msg.default)} - table.insert(data,field) - elseif msg.command == "addlabel" then - for _,i in pairs({"X","Y"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - if not msg.label or type(msg.label) ~= "string" then - return - end - local field = {type="label",X=msg.X,Y=msg.Y,label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "addvertlabel" then - for _,i in pairs({"X","Y"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - if not msg.label or type(msg.label) ~= "string" then - return - end - local field = {type="vertlabel",X=msg.X,Y=msg.Y,label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "addbutton" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"name","label"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="button",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "addbutton_exit" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"name","label"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="button_exit",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "addimage_button" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"image","name","label"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="image_button",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,image=minetest.formspec_escape(msg.image),name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "addimage_button_exit" then - for _,i in pairs({"X","Y","W","H"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - for _,i in pairs({"image","name","label"}) do - if not msg[i] or type(msg[i]) ~= "string" then - return - end - end - local field = {type="image_button_exit",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,image=minetest.formspec_escape(msg.image),name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} - table.insert(data,field) - elseif msg.command == "adddropdown" then - for _,i in pairs({"X","Y","W","H","selected_id"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - if not msg.name or type(msg.name) ~= "string" then - return - end - if not msg.choices or type(msg.choices) ~= "table" or #msg.choices < 1 then - return - end - local field = {type="dropdown",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),selected_id=msg.selected_id,choices=msg.choices} - table.insert(data,field) - elseif msg.command == "addtextlist" then - for _,i in pairs({"X","Y","W","H","selected_id"}) do - if not msg[i] or type(msg[i]) ~= "number" then - return - end - end - if not msg.name or type(msg.name) ~= "string" then - return - end - if not msg.listelements or type(msg.listelements) ~= "table" or #msg.listelements < 1 then - return - end - if not msg.transparent or type(msg.transparent) ~= "boolean" then - msg.transparent = false - end - local field = {type="textlist",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),selected_id=msg.selected_id,listelements=msg.listelements,transparent=msg.transparent} - table.insert(data,field) - elseif msg.command == "lock" then - meta:set_int("locked",1) - elseif msg.command == "unlock" then - meta:set_int("locked",0) - end - return data -end - -digistuff.ts_on_digiline_receive = function (pos, node, channel, msg) - local meta = minetest.get_meta(pos) - local setchan = meta:get_string("channel") - if channel ~= setchan then return end - if type(msg) ~= "table" then return end - local data = minetest.deserialize(meta:get_string("data")) or {} - if msg.command then - data = digistuff.process_command(meta,data,msg) - else - for _,i in ipairs(msg) do - if type(i) == "table" and i.command then - data = digistuff.process_command(meta,data,i) or data - end - end - end - meta:set_string("data",minetest.serialize(data)) - digistuff.update_ts_formspec(pos) -end - -minetest.register_node("digistuff:touchscreen", { - description = "Digilines Touchscreen", - groups = {cracky=3}, - on_construct = function(pos) - digistuff.update_ts_formspec(pos,true) - end, - drawtype = "nodebox", - tiles = { - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_panel_back.png", - "digistuff_ts_front.png" - }, - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } - } - }, - _digistuff_channelcopier_fieldname = "channel", - _digistuff_channelcopier_onset = function(pos) - minetest.get_meta(pos):set_int("init",1) - digistuff.update_ts_formspec(pos) - end, - on_receive_fields = digistuff.ts_on_receive_fields, - digiline = - { - receptor = {}, - effector = { - action = digistuff.ts_on_digiline_receive - }, - }, -}) - -minetest.register_craft({ - output = "digistuff:touchscreen", - recipe = { - {"mesecons_luacontroller:luacontroller0000","default:glass","default:glass"}, - {"default:glass","digilines:lcd","default:glass"}, - {"default:glass","default:glass","default:glass"} - } -}) diff --git a/dreambuilder_mp_extras/readme.md b/dreambuilder_mp_extras/readme.md deleted file mode 100644 index 52aa6712..00000000 --- a/dreambuilder_mp_extras/readme.md +++ /dev/null @@ -1,179 +0,0 @@ -# Overview - -Dreambuilder is my attempt to give the player pretty much everything they'll ever want to build with, and all the tools they should ever need to actually get the job done. This modpack was, for most of its life, maintained as a subgame based on minetest_game, minus a couple of mods that I don't like, with a number of minor things changed, and a number of extra mods added on. Since then, many things have changed, from game content to packaging format. Read on! - -This modpack is in use on my Creative server and on my Survival server, which also has a few extra mods installed for its specific needs. It should give you a pretty good idea nonetheless. Expect lag, as it's a significantly-developed multiplayer server, after all. - -##   - -# What's in it? What's changed from the default stuff? - -* Being that this was originally based on an old version of minetest_game, it retains the light-colored user interface theme despite having since been updated, because I don't like feeling like I live in a cave when I open a formspec. -* The complete Plantlife Modpack along with More Trees and Vines mods add a huge amount of variation to your landscape (as a result, they will add mapgen lag). Active spawning of Horsetail ferns is disabled by default, and I've added papyrus growth on dirt/grass with leaves (using a copy of the default growth ABM). -* This modpack includes RealBadAngel's Unified Inventory mod, which overrides minetest_game's default inventory to give you a much more powerful user interface, with crafting guide, bags, and more, and it also means that if you're using this modpack in creative mode, your stacks are NOT infinite (and they shouldn't be). -* The default bones and TNT mods have been disabled (by way of "empty" mods, to trick the dependency resolver into skipping the real ones). They're not exactly useful for building stuff with. -* Stu's split-limb player model replaces the default one. -* The default hotbar HUD holds 16 items instead of 8, taken from the top two rows of your inventory. The first 10 slots can be accessed by number keys 1-9 and 0, the rest via your mouse wheel. You can use `/hotbar ##` to change the number of slots from 1 to 23. -* The default lavacooling code has been supplanted by better, safer code from my Gloopblocks mod. That mod also provides stone/cobble --> mossy stone/cobble transformation in the presence of water. -* An extensive selection of administration tools for single-player and server use are included, such as areas, maptools, worldedit, xban, and more. -* A few textures here and there are different. -* The mapgen won't spawn apples on default trees, nor will they appear on a sapling-grown default tree. Only the *real* apple trees supplied by the Moretrees mod will bear apples (both at mapgen time and sapling-grown). Or at least that's how it's supposed to work. :stuck_out_tongue: While on that subject, apples now use a 3d model instead of the plantlike version. - -##   - -# Okay, what else? - -A whole boatload of other mods have been added, which is where most of the content actually comes from. To be a little more specific, as of August 2017, this modpack has a total of 165 mods (counting all of the various sub-mods that themselves come as part of some modpack, such as mesecons or home decor) and supplies almost 2000 items in the inventory/craft guide (almost 14,300 unique items in total, counting everything that isn't displayed in the inventory)! A mostly-complete list of mods is as follows: - -areas -arrowboards -bedrock -bees -biome_lib -blox -bobblocks (without the traps or mesecons support) -campfire -castles++ (Philipbenr's re-fork, without the "orbs") -caverealms -coloredwood -colormachine -cottages -currency -datastorage -digilines -digistuff -display_blocks -farming_plus -framedglass -gardening -gloopblocks -glooptest (without treasure chests) -ilights -inventory_sorter -invsaw -item_tweaks -locks -maptools -markers -memorandum -moreblocks -moreores -moretrees -nixie_tubes -notice -peaceful_npc -pipeworks -plasticbox -player_textures (cheapie's fork, with several default skins) -prefab_redo -quartz -replacer -rgblightstone -signs_lib -solidcolor -stained_glass -teleport_request -titanium -travelnet -unifiedbricks (bucket dependency removed) -unifieddyes -unified_inventory -unifiedmesecons -vines -windmill -xban2 -The full Home Decor modpack -The full Technic modpack -The full Plantlife modpack -Cheapie's Roads modpack -Zeg9's Steel modpack -Zeg9's UFO modpack -The full Mesecons modpack -Jeija's Jumping modpack -The full Worldedit modpack - -### Your Inventory Display - -This modpack, as previously mentioned, replaces the standard inventory with Unified Inventory, which almost defies description here. Unified Inventory includes waypoints, a crafting guide, set/go home buttons, set day/set night buttons, a full creative inventory on the right if you're playing in that mode - and you only have to click/tap the item once to get the it, instead of multiple clicks/drag and drop, a trash slot, a clear all inventory button, a search feature for the inventory, and more. Basically, you just need to use it a few times and you'll find yourself wondering how you ever got along with the standard inventory! - -### The Circular Saw - -This modpack uses the More Blocks mod, which comes with the Stairsplus mod and more importantly, the Circular Saw mod by Sokomine and co. This mod replaces the traditional method of creating stairs, slabs, and the like: rather that crafting a stairs block by placing several of the material into your crafting grid, you must first craft a circular saw (really, a table saw), place that on the ground, and then use that to shape the material you had in mind. It can create dozens of shapes, including the standard stairs and slabs. Give it a try and see for yourself! - -### Land Ownership - -This modpack uses ShadowNinja's areas mod for land protection, as well as cheapie's protector blocks. Of course, land protection is only useful if you're using this Modpack on a public server. - -#### Protection blocks: -These are easy. Craft one, place it, and everything within 15m of it becomes yours immediately (if someone else doesn't own some of the land therein, of course). If you dig one of these, the area protection it created is removed; if you shift-dig, the protection is preserved, but the block is deleted, giving back some steel ingots if you're in survival mode, or nothing at all if in creative mode. - -#### Areas: -If you want fine control, use the areas mod's commands. There are three ways to select a region to protect: - -**Option A:** - -Just type `/area_pos set` and then punch two nodes that are diagonally opposite one another, so that they form a 3d box that fully encloses the area you want to claim. A black **`[1]`** or **`[2]`** will appear where you punched. - -**Option B:** - -1. Move to one corner, on the ground. -2. Type `/area_pos1` and press enter. A black **`[1]`** will appear. -3. Move to the other corner and go up a ways above your area - not too high though. -4. Type `/area_pos2` and press enter. A black **`[2]`** will appear. - -**Option C:** - -Just give actual coordinates to the `/area_xxx` commands, e.g.: -`/area_pos1 123,45,678 /area_pos2 987,654,321` - -**Claim it:** - -Once you've marked your area using one of the above methods, you must actually claim it. This is the step that actually protects it against vandalism and unauthorized access. Just type: -/protect some description here - -By default, users may protect up to 3 zones with these commands, and each can be up to 50x100x50 meters in size, but this can be changed by plugging appropriate settings into your minetest.conf. - -**Sublet it:** - -Ok, you've claimed an area, and you want to let someone else build there. Simple. Set the coordinates of the box you want to let them build in, using the commands above (Options A, B, or C). Then do: -`/add_owner your_area# their_name description here` - -For example, if you own area #123 and the other person's name is "Mike", and you want to sublet them some area called "Mike's home", you might do something like this: - -`/add_owner 123 Mike Mikes Home` - -You can add as many users as you like to your areas. You will need to issue one such command per user. - -## Dependencies: -This modpack requires Minetest 0.4.16 or later, and a corresponding copy of minetest_game. Anything too old will likely either crash, show nodes with the wrong shape or colors, throw nonsensical warnings/errors, or open up wormholes. - -## Hardware requirements: -This modpack defines a very large number of items and produces a well-detailed landscape, and so it requires a significant amount of resources compared to vanilla Minetest game. At least a 2 GHz dual core CPU and 2 GB free RAM are required for good performance. If you use my HDX texture pack, you'll need more RAM (at least 4 GB free recommended). - -This modpack is NOT intended for use on mobile devices. - -## Download/Install: -...if you're reading this, you're either on the Dreambuilder Github repo page, so clone it from there, or download the ZIP... or maybe you already have it. ;-) You can also fetch it from [url]https://daconcepts.com/vanessa/hobbies/minetest/Dreambuilder_Modpack.tar.bz2[/url] - -Just rename the project folder to "dreambuilder_modpack", if necessary, and move it to your Minetest mods directory. Then select and enable it for the world you want to use it in. Depending on the condition of the world you are using, and for brand new maps, this modpack may take a minute or two to start, during which time you may see the hotbar and hand, all-grey window content where the world should be, or other odd-looking things. Just wait it out, it will eventually start and settle down. - -## License: -Each of the base mods in this modpack retains the standard license that its author has assigned, even if the license file is missing from the archive. All changes and any supplemental content made by me is WTFPL unless explicitly stated otherwise. - -# Open Source Software -This modpack is open source, or at least as much so as I have control over. Since it started from the standard minetest_game distribution, you'll want to look at that. You can find it at its usual Github repository, here: -[url]https://github.com/minetest/minetest_game[/url] - -An online copy of the archive of mods the modpack is built from can be found here (with full git histories, including my changes and any files that went missing from the completed modpack, where applicable): -[url]http://minetest.daconcepts.com/my-main-mod-archive/[/url] - -# Notes: -For best results, I recommend adding the following to your minetest.conf (perhaps to a secondary copy of that file that you only use when playing worlds with this modpack): - -``` -enable_item_drops = false -enable_item_pickup = true -remove_items = -1 -disable_fire = true -enable_mesh_cache = false -``` diff --git a/farming/food.lua b/farming/food.lua deleted file mode 100644 index 7d30fe61..00000000 --- a/farming/food.lua +++ /dev/null @@ -1,478 +0,0 @@ - -local S = farming.intllib - ---= Sugar - -minetest.register_craftitem("farming:sugar", { - description = S("Sugar"), - inventory_image = "farming_sugar.png", - groups = {food_sugar = 1, flammable = 3} -}) - -minetest.register_craft({ - type = "cooking", - cooktime = 3, - output = "farming:sugar 2", - recipe = "default:papyrus" -}) - - ---= Salt - -minetest.register_node("farming:salt", { - description = S("Salt"), - inventory_image = "farming_salt.png", - wield_image = "farming_salt.png", - drawtype = "plantlike", - visual_scale = 0.8, - paramtype = "light", - tiles = {"farming_salt.png"}, - groups = {food_salt = 1, vessel = 1, dig_immediate = 3, - attached_node = 1}, - sounds = default.node_sound_defaults(), - selection_box = { - type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} - }, - -- special function to make salt crystals form inside water - dropped_step = function(self, pos, dtime) - - self.ctimer = (self.ctimer or 0) + dtime - if self.ctimer < 15.0 then return end - self.ctimer = 0 - - local needed - - if self.node_inside - and self.node_inside.name == "default:water_source" then - needed = 8 - - elseif self.node_inside - and self.node_inside.name == "default:river_water_source" then - needed = 9 - end - - if not needed then return end - - local objs = core.get_objects_inside_radius(pos, 0.5) - - if not objs or #objs ~= 1 then return end - - local salt, ent = nil, nil - - for k, obj in pairs(objs) do - - ent = obj:get_luaentity() - - if ent and ent.name == "__builtin:item" - and ent.itemstring == "farming:salt " .. needed then - - obj:remove() - - core.add_item(pos, "farming:salt_crystal") - - return false -- return with no further action - end - end - end -}) - -minetest.register_craft({ - type = "cooking", - cooktime = 15, - output = "farming:salt", - recipe = "bucket:bucket_water", - replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}} -}) - ---= Salt Crystal - -minetest.register_node("farming:salt_crystal", { - description = ("Salt crystal"), - inventory_image = "farming_salt_crystal.png", - wield_image = "farming_salt_crystal.png", - drawtype = "plantlike", - visual_scale = 0.8, - paramtype = "light", - light_source = 1, - tiles = {"farming_salt_crystal.png"}, - groups = { dig_immediate = 3, attached_node = 1}, - sounds = default.node_sound_defaults(), - selection_box = { - type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} - }, -}) -minetest.register_craft({ - type = "shapeless", - output = "farming:salt 9", - recipe = {"farming:salt_crystal", "farming:mortar_pestle"}, - replacements = {{"farming:mortar_pestle", "farming:mortar_pestle"}} -}) - -minetest.register_craft({ - output = "farming:salt_crystal", - recipe = { - {"farming:salt", "farming:salt", "farming:salt"}, - {"farming:salt", "farming:salt", "farming:salt"}, - {"farming:salt", "farming:salt", "farming:salt"} - } -}) - ---= Rose Water - -minetest.register_node("farming:rose_water", { - description = S("Rose Water"), - inventory_image = "farming_rose_water.png", - wield_image = "farming_rose_water.png", - drawtype = "plantlike", - visual_scale = 0.8, - paramtype = "light", - tiles = {"farming_rose_water.png"}, - groups = {food_rose_water = 1, vessel = 1, dig_immediate = 3, - attached_node = 1}, - sounds = default.node_sound_defaults(), - selection_box = { - type = "fixed", - fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} - } -}) - -minetest.register_craft({ - output = "farming:rose_water", - recipe = { - {"flowers:rose", "flowers:rose", "flowers:rose"}, - {"flowers:rose", "flowers:rose", "flowers:rose"}, - {"group:water_bucket", "group:food_pot", "vessels:glass_bottle"} - }, - replacements = { - {"group:water_bucket", "bucket:bucket_empty"}, - {"group:food_pot", "farming:pot"} - } -}) - -if minetest.get_modpath("bucket_wooden") then - minetest.register_craft({ - output = "farming:rose_water", - recipe = { - {"flowers:rose", "flowers:rose", "flowers:rose"}, - {"flowers:rose", "flowers:rose", "flowers:rose"}, - {"group:water_bucket_wooden", "group:food_pot", "vessels:glass_bottle"} - }, - replacements = { - {"group:water_bucket_wooden", "bucket_wooden:bucket_empty"}, - {"group:food_pot", "farming:pot"} - } - }) -end - ---= Turkish Delight - -minetest.register_craftitem("farming:turkish_delight", { - description = S("Turkish Delight"), - inventory_image = "farming_turkish_delight.png", - groups = {flammable = 3}, - on_use = minetest.item_eat(2) -}) - -minetest.register_craft({ - output = "farming:turkish_delight 4", - recipe = { - {"group:food_gelatin", "group:food_sugar", "group:food_gelatin"}, - {"group:food_sugar", "group:food_rose_water", "group:food_sugar"}, - {"group:food_cornstarch", "group:food_sugar", "dye:pink"} - }, - replacements = { - {"group:food_cornstarch", "farming:bowl"}, - {"group:food_rose_water", "vessels:glass_bottle"} - } -}) - ---= Garlic Bread - -minetest.register_craftitem("farming:garlic_bread", { - description = S("Garlic Bread"), - inventory_image = "farming_garlic_bread.png", - groups = {flammable = 3}, - on_use = minetest.item_eat(2) -}) - -minetest.register_craft({ - type = "shapeless", - output = "farming:garlic_bread", - recipe = {"group:food_toast", "group:food_garlic_clove", "group:food_garlic_clove"} -}) - ---= Donuts (thanks to Bockwurst for making the donut images) - -minetest.register_craftitem("farming:donut", { - description = S("Donut"), - inventory_image = "farming_donut.png", - on_use = minetest.item_eat(4) -}) - -minetest.register_craft({ - output = "farming:donut 3", - recipe = { - {"", "group:food_wheat", ""}, - {"group:food_wheat", "group:food_sugar", "group:food_wheat"}, - {"", "group:food_wheat", ""} - } -}) - -minetest.register_craftitem("farming:donut_chocolate", { - description = S("Chocolate Donut"), - inventory_image = "farming_donut_chocolate.png", - on_use = minetest.item_eat(6) -}) - -minetest.register_craft({ - output = "farming:donut_chocolate", - recipe = { - {"group:food_cocoa"}, - {"farming:donut"} - } -}) - -minetest.register_craftitem("farming:donut_apple", { - description = S("Apple Donut"), - inventory_image = "farming_donut_apple.png", - on_use = minetest.item_eat(6) -}) - -minetest.register_craft({ - output = "farming:donut_apple", - recipe = { - {"default:apple"}, - {"farming:donut"} - } -}) - ---= Porridge Oats - -minetest.register_craftitem("farming:porridge", { - description = S("Porridge"), - inventory_image = "farming_porridge.png", - on_use = minetest.item_eat(6, "farming:bowl") -}) - -minetest.register_craft({ - type = "shapeless", - output = "farming:porridge", - recipe = { - "group:food_oats", "group:food_oats", "group:food_oats", - "group:food_oats", "group:food_bowl", "group:food_milk_glass" - }, - replacements = { - {"mobs:glass_milk", "vessels:drinking_glass"}, - {"farming:soy_milk", "vessels:drinking_glass"} - } -}) - ---= Jaffa Cake - -minetest.register_craftitem("farming:jaffa_cake", { - description = S("Jaffa Cake"), - inventory_image = "farming_jaffa_cake.png", - on_use = minetest.item_eat(6) -}) - -minetest.register_craft({ - type = "shapeless", - output = "farming:jaffa_cake", - recipe = { - "farming:baking_tray", "group:food_egg", "group:food_sugar", - "group:food_flour", "group:food_cocoa", "group:food_orange", - "group:food_milk" - }, - replacements = { - {"farming:baking_tray", "farming:baking_tray"}, - {"mobs:bucket_milk", "bucket:bucket_empty"} - } -}) - --- Apple Pie - -minetest.register_craftitem("farming:apple_pie", { - description = S("Apple Pie"), - inventory_image = "farming_apple_pie.png", - on_use = minetest.item_eat(6) -}) - -minetest.register_craft({ - output = "farming:apple_pie", - type = "shapeless", - recipe = { - "group:food_flour", "group:food_sugar", - "group:food_apple", "group:food_baking_tray" - }, - replacements = {{"group:food_baking_tray", "farming:baking_tray"}} -}) - --- Cactus Juice - -minetest.register_craftitem("farming:cactus_juice", { - description = S("Cactus Juice"), - inventory_image = "farming_cactus_juice.png", - groups = {vessel = 1, drink = 1}, - on_use = function(itemstack, user, pointed_thing) - if user then - if math.random(5) == 1 then - return minetest.do_item_eat(-1, "vessels:drinking_glass", - itemstack, user, pointed_thing) - else - return minetest.do_item_eat(2, "vessels:drinking_glass", - itemstack, user, pointed_thing) - end - end - end -}) - -minetest.register_craft({ - output = "farming:cactus_juice 2", - type = "shapeless", - recipe = { - "vessels:drinking_glass", "vessels:drinking_glass", - "default:cactus", "farming:juicer" - }, - replacements = { - {"group:food_juicer", "farming:juicer"} - } -}) - --- Pasta - -minetest.register_craftitem("farming:pasta", { - description = S("Pasta"), - inventory_image = "farming_pasta.png", - groups = {food_pasta = 1} -}) - -if minetest.get_modpath("mobs_animal") or minetest.get_modpath("xanadu")then -minetest.register_craft({ - output = "farming:pasta", - type = "shapeless", - recipe = { - "group:food_flour", "group:food_mixing_bowl", - "group:food_butter" - }, - replacements = {{"group:food_mixing_bowl", "farming:mixing_bowl"}} -}) -else -minetest.register_craft({ - output = "farming:pasta", - type = "shapeless", - recipe = { - "group:food_flour", "group:food_mixing_bowl", - "group:food_oil" - }, - replacements = { - {"group:food_mixing_bowl", "farming:mixing_bowl"}, - {"group:food_oil", "vessels:glass_bottle"} - } -}) -end - --- Spaghetti - -minetest.register_craftitem("farming:spaghetti", { - description = S("Spaghetti"), - inventory_image = "farming_spaghetti.png", - on_use = minetest.item_eat(8) -}) - -minetest.register_craft({ - output = "farming:spaghetti", - type = "shapeless", - recipe = { - "group:food_pasta", "group:food_saucepan", - "group:food_tomato", "group:food_garlic_clove", "group:food_garlic_clove" - }, - replacements = {{"group:food_saucepan", "farming:saucepan"}} -}) - --- Korean Bibimbap - -minetest.register_craftitem("farming:bibimbap", { - description = S("Bibimbap"), - inventory_image = "farming_bibimbap.png", - on_use = minetest.item_eat(8, "farming:bowl") -}) - -if minetest.get_modpath("mobs_animal") or minetest.get_modpath("xanadu")then -minetest.register_craft({ - output = "farming:bibimbap", - type = "shapeless", - recipe = { - "group:food_skillet", "group:food_bowl", "group:food_egg", "group:food_rice", - "group:food_chicken_raw", "group:food_cabbage", "group:food_carrot", - "group:food_chili_pepper" - }, - replacements = {{"group:food_skillet", "farming:skillet"}} -}) -else -minetest.register_craft({ - output = "farming:bibimbap", - type = "shapeless", - recipe = { - "group:food_skillet", "group:food_bowl", "group:food_mushroom", - "group:food_rice", "group:food_cabbage", "group:food_carrot", - "group:food_mushroom", "group:food_chili_pepper" - }, - replacements = {{"group:food_skillet", "farming:skillet"}} -}) -end - --- Burger - -minetest.register_craftitem("farming:burger", { - description = S("Burger"), - inventory_image = "farming_burger.png", - on_use = minetest.item_eat(16), -}) - -minetest.register_craft({ - type = "shapeless", - output = "farming:burger", - recipe = { - "farming:bread", "group:food_meat", "group:food_cheese", - "group:food_tomato", "group:food_cucumber", "group:food_onion", - "group:food_lettuce" - } -}) - --- Salad - -minetest.register_craftitem("farming:salad", { - description = S("Salad"), - inventory_image = "farming_salad.png", - on_use = minetest.item_eat(8, "farming:bowl") -}) - -minetest.register_craft({ - output = "farming:salad", - type = "shapeless", - recipe = { - "group:food_bowl", "group:food_tomato", "group:food_cucumber", - "group:food_lettuce", "group:food_oil" - }, -}) - --- Triple Berry Smoothie - -minetest.register_craftitem("farming:smoothie_berry", { - description = S("Triple Berry Smoothie"), - inventory_image = "farming_berry_smoothie.png", - on_use = minetest.item_eat(6, "vessels:drinking_glass"), - groups = {vessel = 1, drink = 1} -}) - -minetest.register_craft({ - output = "farming:smoothie_berry", - type = "shapeless", - recipe = { - "group:food_raspberries", "group:food_blackberries", - "group:food_strawberry", "group:food_banana", - "vessels:drinking_glass" - } -}) diff --git a/farming/locale/zh_CN.txt b/farming/locale/zh_CN.txt deleted file mode 100644 index 302338f2..00000000 --- a/farming/locale/zh_CN.txt +++ /dev/null @@ -1,119 +0,0 @@ -Seed=种子 -Banana=香蕉 -Banana Leaves=香蕉叶 -Orange=橙色 -Strawberry=草莓 -Sugar=糖 -Salt=盐 -Rose Water=玫瑰汁 -Turkish Delight=土耳其软糖 -Garlic Bread=蒜香面包 -Donut=甜甜圈 -Chocolate Donut=巧克力甜甜圈 -Apple Donut=苹果甜甜圈 -Porridge=粥 -Jaffa Cake=佳发饼 -Hoe=锄头 -Wooden Hoe=木锄 -Stone Hoe=石锄 -Steel Hoe=钢锄头 -Bronze Hoe=青铜锄头 -Mese Hoe=黄石锄头 -Diamond Hoe=钻石锄 -Hoe Bomb (use or throw on grassy areas to hoe land)=锄弹(在草地上使用或扔在锄地上) -Mithril Scythe (Right-click to harvest and replant crops)=秘银镰刀(右击可收获并重新种植作物) -Soil=土壤 -Wet Soil=湿土 -Wooden Bowl=木碗 -Saucepan=平底锅 -Cooking Pot=锅 -Baking Tray=烤盘 -Skillet=平底锅 -Mortar and Pestle=研钵 -Cutting Board=砧板 -Juicer=榨汁机 -Glass Mixing Bowl=搅拌杯 -Barley Seed=大麦种子 -Barley=大麦 -Green Beans=青豆 -Bean Pole (place on soil before planting beans)=豆杆(种豆前先放在土上) -Beetroot=甜菜根 -Beetroot Soup=甜菜根汤 -Blueberries=蓝莓 -Blueberry Muffin=蓝莓松糕 -Blueberry Pie=蓝莓派 -Carrot=胡萝卜 -Carrot Juice=胡萝卜汁 -Golden Carrot=金萝卜 -Chili Pepper=辣椒 -Bowl of Chili=一碗辣椒 -Cocoa Beans=可可豆 -Cookie=曲奇 -Bar of Dark Chocolate=黑巧克力条 -Chocolate Block=巧克力块 -Coffee Beans=咖啡豆 -Cup of Coffee=一杯咖啡 -Corn=玉米 -Corn on the Cob=玉米棒 -Cornstarch=玉米淀粉 -Bottle of Ethanol=一瓶乙醇 -Cotton Seed=棉籽 -Cotton=棉花 -String=字符串 -Cucumber=黄瓜 -Garlic clove=蒜瓣 -Garlic=大蒜 -Garlic Braid=蒜辫 -Grapes=葡萄 -Trellis (place on soil before planting grapes)=棚架(种植葡萄前先放在土壤上) -Hemp Seed=大麻籽 -Hemp Leaf=大麻叶 -Bottle of Hemp Oil=一瓶大麻油 -Hemp Fibre=大麻纤维 -Hemp Block=麻块 -Hemp Rope=麻绳 -Melon Slice=西瓜片 -Melon=甜瓜 -Onion=洋葱 -Pea Pod=豌豆荚 -Peas=豌豆 -Pea Soup=豌豆汤 -Peppercorn=胡椒粉 -Pepper=胡椒粉 -Ground Pepper=胡椒粉 -Pineapple Top=菠萝上衣 -Pineapple=菠萝 -Pineapple Ring=菠萝圈 -Pineapple Juice=菠萝汁 -Potato=土豆 -Baked Potato=焗马铃薯 -Cucumber and Potato Salad=黄瓜土豆沙拉 -Pumpkin Slice=南瓜片 -Jack 'O Lantern (punch to turn on and off)=杰克灯(按一下开关) -Scarecrow Bottom=稻草人屁股 -Pumpkin Bread=南瓜面包 -Pumpkin Dough=南瓜面团 -Pumpkin=南瓜 -Raspberries=覆盆子 -Raspberry Smoothie=覆盆子冰沙 -Rhubarb=大黄 -Rhubarb Pie=大黄派 -Rye=黑麦 -Rye seed=黑麦种子 -Oat=燕麦 -Oat seed=燕麦籽 -Rice=大米 -Rice grains=稻谷 -Rice Bread=米饭面包 -Rice Flour=米粉 -Multigrain Flour=多粒面粉 -Multigrain Bread=杂粮面包 -Tomato=番茄 -Wheat Seed=小麦种子 -Wheat=小麦 -Straw=稻草 -Flour=面粉 -Bread=面包 -Sliced Bread=切片面包 -Toast=烤面包片 -Toast Sandwich=三明治面包 diff --git a/game.conf b/game.conf new file mode 100644 index 00000000..b5032f9b --- /dev/null +++ b/game.conf @@ -0,0 +1,3 @@ +name = Dreambuilder Game +author = Vanessa Dannenberg +description = Dreambuilder is my attempt to give the player pretty much everything they could ever want to build with, and all the tools they should need to actually get the job done. It is based on minetest_game, the base game content package maintained by Minetest engine game developers, and should be compatible with mods written for it. diff --git a/game_api.txt b/game_api.txt new file mode 100644 index 00000000..bddf7e27 --- /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/background.png b/menu/background.png new file mode 100644 index 00000000..eb5277db Binary files /dev/null and b/menu/background.png differ diff --git a/menu/icon.png b/menu/icon.png new file mode 100644 index 00000000..6dcfdadb Binary files /dev/null and b/menu/icon.png differ diff --git a/minetest.conf b/minetest.conf new file mode 100644 index 00000000..9e9273c3 --- /dev/null +++ b/minetest.conf @@ -0,0 +1,6 @@ +enable_item_drops = false +enable_item_pickup = true +remove_items = -1 +disable_fire = true +enable_mesh_cache = false +moreblocks.stairsplus_in_creative_inventory = false diff --git a/minetest.conf.example b/minetest.conf.example new file mode 100644 index 00000000..89ab9422 --- /dev/null +++ b/minetest.conf.example @@ -0,0 +1,77 @@ +# This file contains settings of Dreambuilder Game that can be changed in +# minetest.conf. +# By default, all the settings are commented and not functional. +# Uncomment settings by removing the preceding #. + +# Whether creative mode (fast digging of all blocks, unlimited resources) should +# be enabled. +#creative_mode = false + +# 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 + +# The time in seconds after which the bones of a dead player can be looted by +# everyone. +# 0 to disable. +#share_bones_time = 1200 + +# 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 = 300 + +# Inform player of condition and location of new bones. +#bones_position_message = false + +# Whether fire should be enabled. If disabled, 'basic_flame' nodes will +# disappear. +# 'permanent_flame' nodes will remain with either setting. +#enable_fire = true + +# Enable flame sound. +#flame_sound = true + +# Whether lavacooling should be enabled. +#enable_lavacooling = true + +# Whether the stuff in initial_stuff should be given to new players. +#give_initial_stuff = false +#initial_stuff = default:pick_steel,default:axe_steel,default:shovel_steel, +default:torch 99,default:cobble 99 + +# Whether the TNT mod should be enabled. +#enable_tnt = + +# 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/modpack.txt b/modpack.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/3dmushrooms/init.lua b/mods/3dmushrooms/init.lua similarity index 100% rename from 3dmushrooms/init.lua rename to mods/3dmushrooms/init.lua diff --git a/3dmushrooms/mod.conf b/mods/3dmushrooms/mod.conf similarity index 100% rename from 3dmushrooms/mod.conf rename to mods/3dmushrooms/mod.conf diff --git a/3dmushrooms/models/3dmushrooms.obj b/mods/3dmushrooms/models/3dmushrooms.obj similarity index 100% rename from 3dmushrooms/models/3dmushrooms.obj rename to mods/3dmushrooms/models/3dmushrooms.obj diff --git a/3dmushrooms/textures/3dmushrooms_brown.png b/mods/3dmushrooms/textures/3dmushrooms_brown.png similarity index 100% rename from 3dmushrooms/textures/3dmushrooms_brown.png rename to mods/3dmushrooms/textures/3dmushrooms_brown.png diff --git a/3dmushrooms/textures/3dmushrooms_brown_inv.png b/mods/3dmushrooms/textures/3dmushrooms_brown_inv.png similarity index 100% rename from 3dmushrooms/textures/3dmushrooms_brown_inv.png rename to mods/3dmushrooms/textures/3dmushrooms_brown_inv.png diff --git a/3dmushrooms/textures/3dmushrooms_red.png b/mods/3dmushrooms/textures/3dmushrooms_red.png similarity index 100% rename from 3dmushrooms/textures/3dmushrooms_red.png rename to mods/3dmushrooms/textures/3dmushrooms_red.png diff --git a/3dmushrooms/textures/3dmushrooms_red_inv.png b/mods/3dmushrooms/textures/3dmushrooms_red_inv.png similarity index 100% rename from 3dmushrooms/textures/3dmushrooms_red_inv.png rename to mods/3dmushrooms/textures/3dmushrooms_red_inv.png diff --git a/along_shore/init.lua b/mods/along_shore/init.lua similarity index 100% rename from along_shore/init.lua rename to mods/along_shore/init.lua diff --git a/along_shore/mod.conf b/mods/along_shore/mod.conf similarity index 100% rename from along_shore/mod.conf rename to mods/along_shore/mod.conf diff --git a/along_shore/textures/along_shore_seaweed_1Darker.png b/mods/along_shore/textures/along_shore_seaweed_1Darker.png similarity index 100% rename from along_shore/textures/along_shore_seaweed_1Darker.png rename to mods/along_shore/textures/along_shore_seaweed_1Darker.png diff --git a/along_shore/textures/credit_textures.txt b/mods/along_shore/textures/credit_textures.txt similarity index 100% rename from along_shore/textures/credit_textures.txt rename to mods/along_shore/textures/credit_textures.txt diff --git a/along_shore/textures/old/LillyPad3x16.png b/mods/along_shore/textures/old/LillyPad3x16.png similarity index 100% rename from along_shore/textures/old/LillyPad3x16.png rename to mods/along_shore/textures/old/LillyPad3x16.png diff --git a/along_shore/textures/old/MultiLilly16x.png b/mods/along_shore/textures/old/MultiLilly16x.png similarity index 100% rename from along_shore/textures/old/MultiLilly16x.png rename to mods/along_shore/textures/old/MultiLilly16x.png diff --git a/along_shore/textures/old/along_shore_empty.png b/mods/along_shore/textures/old/along_shore_empty.png similarity index 100% rename from along_shore/textures/old/along_shore_empty.png rename to mods/along_shore/textures/old/along_shore_empty.png diff --git a/along_shore/textures/old/along_shore_lilypads_1.png b/mods/along_shore/textures/old/along_shore_lilypads_1.png similarity index 100% rename from along_shore/textures/old/along_shore_lilypads_1.png rename to mods/along_shore/textures/old/along_shore_lilypads_1.png diff --git a/along_shore/textures/old/along_shore_lilypads_2.png b/mods/along_shore/textures/old/along_shore_lilypads_2.png similarity index 100% rename from along_shore/textures/old/along_shore_lilypads_2.png rename to mods/along_shore/textures/old/along_shore_lilypads_2.png diff --git a/along_shore/textures/old/along_shore_lilypads_3.png b/mods/along_shore/textures/old/along_shore_lilypads_3.png similarity index 100% rename from along_shore/textures/old/along_shore_lilypads_3.png rename to mods/along_shore/textures/old/along_shore_lilypads_3.png diff --git a/along_shore/textures/old/along_shore_lilypads_4.png b/mods/along_shore/textures/old/along_shore_lilypads_4.png similarity index 100% rename from along_shore/textures/old/along_shore_lilypads_4.png rename to mods/along_shore/textures/old/along_shore_lilypads_4.png diff --git a/along_shore/textures/old/along_shore_pondscum_1.png b/mods/along_shore/textures/old/along_shore_pondscum_1.png similarity index 100% rename from along_shore/textures/old/along_shore_pondscum_1.png rename to mods/along_shore/textures/old/along_shore_pondscum_1.png diff --git a/along_shore/textures/old/along_shore_seaweed_1.png b/mods/along_shore/textures/old/along_shore_seaweed_1.png similarity index 100% rename from along_shore/textures/old/along_shore_seaweed_1.png rename to mods/along_shore/textures/old/along_shore_seaweed_1.png diff --git a/along_shore/textures/old/along_shore_seaweed_2.png b/mods/along_shore/textures/old/along_shore_seaweed_2.png similarity index 100% rename from along_shore/textures/old/along_shore_seaweed_2.png rename to mods/along_shore/textures/old/along_shore_seaweed_2.png diff --git a/along_shore/textures/old/along_shore_seaweed_3.png b/mods/along_shore/textures/old/along_shore_seaweed_3.png similarity index 100% rename from along_shore/textures/old/along_shore_seaweed_3.png rename to mods/along_shore/textures/old/along_shore_seaweed_3.png diff --git a/along_shore/textures/old/along_shore_seaweed_4.png b/mods/along_shore/textures/old/along_shore_seaweed_4.png similarity index 100% rename from along_shore/textures/old/along_shore_seaweed_4.png rename to mods/along_shore/textures/old/along_shore_seaweed_4.png diff --git a/along_shore/textures/old/flowers_seaweed.png b/mods/along_shore/textures/old/flowers_seaweed.png similarity index 100% rename from along_shore/textures/old/flowers_seaweed.png rename to mods/along_shore/textures/old/flowers_seaweed.png diff --git a/along_shore/textures/old/flowers_waterlily.png b/mods/along_shore/textures/old/flowers_waterlily.png similarity index 100% rename from along_shore/textures/old/flowers_waterlily.png rename to mods/along_shore/textures/old/flowers_waterlily.png diff --git a/along_shore/textures/old/flowers_waterlily_22.5.png b/mods/along_shore/textures/old/flowers_waterlily_22.5.png similarity index 100% rename from along_shore/textures/old/flowers_waterlily_22.5.png rename to mods/along_shore/textures/old/flowers_waterlily_22.5.png diff --git a/along_shore/textures/old/flowers_waterlily_45.png b/mods/along_shore/textures/old/flowers_waterlily_45.png similarity index 100% rename from along_shore/textures/old/flowers_waterlily_45.png rename to mods/along_shore/textures/old/flowers_waterlily_45.png diff --git a/along_shore/textures/old/flowers_waterlily_67.5.png b/mods/along_shore/textures/old/flowers_waterlily_67.5.png similarity index 100% rename from along_shore/textures/old/flowers_waterlily_67.5.png rename to mods/along_shore/textures/old/flowers_waterlily_67.5.png diff --git a/along_shore/textures/old/lillyPad5x16.png b/mods/along_shore/textures/old/lillyPad5x16.png similarity index 100% rename from along_shore/textures/old/lillyPad5x16.png rename to mods/along_shore/textures/old/lillyPad5x16.png diff --git a/along_shore/textures/old/lillypad3Flower16x.png b/mods/along_shore/textures/old/lillypad3Flower16x.png similarity index 100% rename from along_shore/textures/old/lillypad3Flower16x.png rename to mods/along_shore/textures/old/lillypad3Flower16x.png diff --git a/along_shore/textures/old/pondscum16xc.png b/mods/along_shore/textures/old/pondscum16xc.png similarity index 100% rename from along_shore/textures/old/pondscum16xc.png rename to mods/along_shore/textures/old/pondscum16xc.png diff --git a/ambience/README.md b/mods/ambience/README.md similarity index 100% rename from ambience/README.md rename to mods/ambience/README.md diff --git a/ambience/api.txt b/mods/ambience/api.txt similarity index 100% rename from ambience/api.txt rename to mods/ambience/api.txt diff --git a/ambience/depends.txt b/mods/ambience/depends.txt similarity index 100% rename from ambience/depends.txt rename to mods/ambience/depends.txt diff --git a/ambience/description.txt b/mods/ambience/description.txt similarity index 100% rename from ambience/description.txt rename to mods/ambience/description.txt diff --git a/mods/ambience/init.lua b/mods/ambience/init.lua new file mode 100644 index 00000000..1f7bb4f0 --- /dev/null +++ b/mods/ambience/init.lua @@ -0,0 +1,329 @@ + +ambience = {} + +-- override default water sounds +minetest.override_item("default:water_source", { sounds = {} }) +minetest.override_item("default:water_flowing", { sounds = {} }) +minetest.override_item("default:river_water_source", { sounds = {} }) +minetest.override_item("default:river_water_flowing", { sounds = {} }) + +-- settings +local SOUNDVOLUME = 1.0 +local MUSICVOLUME = 1.0 +local play_music = minetest.settings:get_bool("ambience_music") ~= false +local pplus = minetest.get_modpath("playerplus") +local radius = 6 +local playing = {} +local sound_sets = {} -- all the sounds and their settings +local sound_set_order = {} -- needed because pairs loops randomly through tables +local set_nodes = {} -- all the nodes needed for sets + + +-- global functions + +-- add set to list +ambience.add_set = function(set_name, def) + + if not set_name or not def then + return + end + + sound_sets[set_name] = { + frequency = def.frequency or 50, + sounds = def.sounds, + sound_check = def.sound_check, + nodes = def.nodes + } + + -- add set name to the sound_set_order table + local can_add = true + + for i = 1, #sound_set_order do + + if sound_set_order[i] == set_name then + can_add = false + end + end + + if can_add then + table.insert(sound_set_order, set_name) + end + + -- add any missing nodes to the set_nodes table + if def.nodes then + + for i = 1, #def.nodes do + + can_add = def.nodes[i] + + for j = 1, #set_nodes do + + if def.nodes[i] == set_nodes[j] then + can_add = false + end + end + + if can_add then + table.insert(set_nodes, can_add) + end + end + end +end + + +-- return set from list using name +ambience.get_set = function(set_name) + + if sound_sets[set_name] then + return sound_sets[set_name] + end +end + + +-- remove set from list +ambience.del_set = function(set_name) + + sound_sets[set_name] = nil + + local can_del = false + + for i = 1, #sound_set_order do + + if sound_set_order[i] == set_name then + can_del = i + end + end + + if can_del then + table.remove(sound_set_order, can_del) + end +end + + +-- plays music and selects sound set +local get_ambience = function(player, tod, name) + + -- play server or local music if available + if play_music and playing[name] then + + -- play at midnight + if tod >= 0.0 and tod <= 0.01 then + + if not playing[name].music then + + playing[name].music = minetest.sound_play("ambience_music", { + to_player = player:get_player_name(), + gain = MUSICVOLUME + }) + end + + elseif tod > 0.1 and playing[name].music then + + playing[name].music = nil + end + end + + + -- get foot and head level nodes at player position + local pos = player:get_pos() ; if not pos then return end + + pos.y = pos.y + 1.4 -- head level + + local nod_head = pplus and name and playerplus[name].nod_head or + minetest.get_node(pos).name + + pos.y = pos.y - 1.2 -- foot level + + local nod_feet = pplus and name and playerplus[name].nod_feet or + minetest.get_node(pos).name + + pos.y = pos.y - 0.2 -- reset pos + + -- get all set nodes around player + local ps, cn = minetest.find_nodes_in_area( + {x = pos.x - radius, y = pos.y - radius, z = pos.z - radius}, + {x = pos.x + radius, y = pos.y + radius, z = pos.z + radius}, set_nodes) + + -- loop through sets in order and choose first that meets it's conditions + for n = 1, #sound_set_order do + + local set = sound_sets[ sound_set_order[n] ] + + if set and set.sound_check then + + -- pass settings to function for condition check + local set_name, gain = set.sound_check({ + player = player, + pos = pos, + tod = tod, + totals = cn, + positions = ps, + head_node = nod_head, + feet_node = nod_feet + }) + + -- if conditions met return set name and gain value + if set_name then + return set_name, gain + end + end + end +end + + +local timer = 0 +local random = math.random + +-- players routine +minetest.register_globalstep(function(dtime) + + -- one second timer + timer = timer + dtime + if timer < 1 then return end + timer = 0 + + -- get list of players and set some variables + local players = minetest.get_connected_players() + local player_name, number, chance, ambience, handler, ok + local tod = minetest.get_timeofday() + + -- loop through players + for n = 1, #players do + + player_name = players[n]:get_player_name() + +--local t1 = os.clock() + + local set_name, MORE_GAIN = get_ambience(players[n], tod, player_name) + +--print(string.format("elapsed time: %.4f\n", os.clock() - t1)) + + ok = true -- everything starts off ok + + -- stop current sound if another set active or gain changed + if playing[player_name] + and playing[player_name].handler then + + if playing[player_name].set ~= set_name + or (playing[player_name].set == set_name + and playing[player_name].gain ~= MORE_GAIN) then + +--print ("-- change stop", set_name, playing[player_name].old_handler) + + minetest.sound_stop(playing[player_name].old_handler) + + playing[player_name].set = nil + playing[player_name].handler = nil + playing[player_name].gain = nil + else + ok = false -- sound set still playing, skip new sound + end + end + + -- set random chance and reset seed + chance = random(1, 1000) + + math.randomseed(tod + chance) + + -- if chance is lower than set frequency then select set + if ok and set_name and chance < sound_sets[set_name].frequency then + + -- choose random sound from set + number = random(#sound_sets[set_name].sounds) + ambience = sound_sets[set_name].sounds[number] + + -- play sound + handler = minetest.sound_play(ambience.name, { + to_player = player_name, + gain = ((ambience.gain or 0.3) + (MORE_GAIN or 0)) * SOUNDVOLUME, + pitch = ambience.pitch or 1.0 + }, ambience.ephemeral) + +--print ("playing... " .. ambience.name .. " (" .. chance .. " < " +-- .. sound_sets[set_name].frequency .. ") @ ", MORE_GAIN, handler) + + -- only continue if sound playing returns handler + if handler then + +--print("-- current handler", handler) + + -- set what player is currently listening to + playing[player_name] = { + set = set_name, gain = MORE_GAIN, + handler = handler, old_handler = handler + } + + -- set timer to stop sound + minetest.after(ambience.length, function() + +--print("-- after", set_name, handler) + + -- make sure we are stopping same sound we started + if playing[player_name] + and playing[player_name].handler + and playing[player_name].old_handler == handler then + +--print("-- timed stop", set_name, handler) + + --minetest.sound_stop(playing[player_name].handler) + minetest.sound_stop(handler) + + -- reset player variables and backup handler + playing[player_name] = { + set = nil, gain = nil, + handler = nil, old_handler = nil + } + end + end) + end + end + end +end) + + +-- sound volume command +minetest.register_chatcommand("svol", { + params = "", + description = "set sound volume (0.1 to 1.0)", + privs = {server = true}, + + func = function(name, param) + + SOUNDVOLUME = tonumber(param) or SOUNDVOLUME + + if SOUNDVOLUME < 0.1 then SOUNDVOLUME = 0.1 end + if SOUNDVOLUME > 1.0 then SOUNDVOLUME = 1.0 end + + return true, "Sound volume set to " .. SOUNDVOLUME + end, +}) + + +-- music volume command (0 stops music) +minetest.register_chatcommand("mvol", { + params = "", + description = "set music volume (0.1 to 1.0)", + privs = {server = true}, + + func = function(name, param) + + MUSICVOLUME = tonumber(param) or MUSICVOLUME + + -- ability to stop music just as it begins + if MUSICVOLUME == 0 and playing[name].music then + minetest.sound_stop(playing[name].music) + end + + if MUSICVOLUME < 0.1 then MUSICVOLUME = 0.1 end + if MUSICVOLUME > 1.0 then MUSICVOLUME = 1.0 end + + return true, "Music volume set to " .. MUSICVOLUME + end, +}) + + +-- load default sound sets +dofile(minetest.get_modpath("ambience") .. "/soundsets.lua") + + +print("[MOD] Ambience Lite loaded") diff --git a/ambience/mod.conf b/mods/ambience/mod.conf similarity index 100% rename from ambience/mod.conf rename to mods/ambience/mod.conf diff --git a/ambience/screenshot.png b/mods/ambience/screenshot.png similarity index 100% rename from ambience/screenshot.png rename to mods/ambience/screenshot.png diff --git a/ambience/settingtypes.txt b/mods/ambience/settingtypes.txt similarity index 100% rename from ambience/settingtypes.txt rename to mods/ambience/settingtypes.txt diff --git a/ambience/sounds/SoundLicenses.txt b/mods/ambience/sounds/SoundLicenses.txt similarity index 100% rename from ambience/sounds/SoundLicenses.txt rename to mods/ambience/sounds/SoundLicenses.txt diff --git a/ambience/sounds/beach.ogg b/mods/ambience/sounds/beach.ogg similarity index 100% rename from ambience/sounds/beach.ogg rename to mods/ambience/sounds/beach.ogg diff --git a/ambience/sounds/beach_2.ogg b/mods/ambience/sounds/beach_2.ogg similarity index 100% rename from ambience/sounds/beach_2.ogg rename to mods/ambience/sounds/beach_2.ogg diff --git a/ambience/sounds/bird1.ogg b/mods/ambience/sounds/bird1.ogg similarity index 100% rename from ambience/sounds/bird1.ogg rename to mods/ambience/sounds/bird1.ogg diff --git a/ambience/sounds/bird2.ogg b/mods/ambience/sounds/bird2.ogg similarity index 100% rename from ambience/sounds/bird2.ogg rename to mods/ambience/sounds/bird2.ogg diff --git a/ambience/sounds/bluejay.ogg b/mods/ambience/sounds/bluejay.ogg similarity index 100% rename from ambience/sounds/bluejay.ogg rename to mods/ambience/sounds/bluejay.ogg diff --git a/ambience/sounds/canadianloon2.ogg b/mods/ambience/sounds/canadianloon2.ogg similarity index 100% rename from ambience/sounds/canadianloon2.ogg rename to mods/ambience/sounds/canadianloon2.ogg diff --git a/ambience/sounds/cardinal.ogg b/mods/ambience/sounds/cardinal.ogg similarity index 100% rename from ambience/sounds/cardinal.ogg rename to mods/ambience/sounds/cardinal.ogg diff --git a/ambience/sounds/coyote.ogg b/mods/ambience/sounds/coyote.ogg similarity index 100% rename from ambience/sounds/coyote.ogg rename to mods/ambience/sounds/coyote.ogg diff --git a/ambience/sounds/craw.ogg b/mods/ambience/sounds/craw.ogg similarity index 100% rename from ambience/sounds/craw.ogg rename to mods/ambience/sounds/craw.ogg diff --git a/ambience/sounds/crestedlark.ogg b/mods/ambience/sounds/crestedlark.ogg similarity index 100% rename from ambience/sounds/crestedlark.ogg rename to mods/ambience/sounds/crestedlark.ogg diff --git a/ambience/sounds/cricket.ogg b/mods/ambience/sounds/cricket.ogg similarity index 100% rename from ambience/sounds/cricket.ogg rename to mods/ambience/sounds/cricket.ogg diff --git a/ambience/sounds/deer.ogg b/mods/ambience/sounds/deer.ogg similarity index 100% rename from ambience/sounds/deer.ogg rename to mods/ambience/sounds/deer.ogg diff --git a/ambience/sounds/desertwind.ogg b/mods/ambience/sounds/desertwind.ogg similarity index 100% rename from ambience/sounds/desertwind.ogg rename to mods/ambience/sounds/desertwind.ogg diff --git a/ambience/sounds/drippingwater1.ogg b/mods/ambience/sounds/drippingwater1.ogg similarity index 100% rename from ambience/sounds/drippingwater1.ogg rename to mods/ambience/sounds/drippingwater1.ogg diff --git a/ambience/sounds/drippingwater2.ogg b/mods/ambience/sounds/drippingwater2.ogg similarity index 100% rename from ambience/sounds/drippingwater2.ogg rename to mods/ambience/sounds/drippingwater2.ogg diff --git a/ambience/sounds/frog.ogg b/mods/ambience/sounds/frog.ogg similarity index 100% rename from ambience/sounds/frog.ogg rename to mods/ambience/sounds/frog.ogg diff --git a/ambience/sounds/gull.ogg b/mods/ambience/sounds/gull.ogg similarity index 100% rename from ambience/sounds/gull.ogg rename to mods/ambience/sounds/gull.ogg diff --git a/ambience/sounds/hornedowl.ogg b/mods/ambience/sounds/hornedowl.ogg similarity index 100% rename from ambience/sounds/hornedowl.ogg rename to mods/ambience/sounds/hornedowl.ogg diff --git a/ambience/sounds/icecrack.ogg b/mods/ambience/sounds/icecrack.ogg similarity index 100% rename from ambience/sounds/icecrack.ogg rename to mods/ambience/sounds/icecrack.ogg diff --git a/ambience/sounds/jungle_day_1.ogg b/mods/ambience/sounds/jungle_day_1.ogg similarity index 100% rename from ambience/sounds/jungle_day_1.ogg rename to mods/ambience/sounds/jungle_day_1.ogg diff --git a/ambience/sounds/jungle_night_1.ogg b/mods/ambience/sounds/jungle_night_1.ogg similarity index 100% rename from ambience/sounds/jungle_night_1.ogg rename to mods/ambience/sounds/jungle_night_1.ogg diff --git a/ambience/sounds/jungle_night_2.ogg b/mods/ambience/sounds/jungle_night_2.ogg similarity index 100% rename from ambience/sounds/jungle_night_2.ogg rename to mods/ambience/sounds/jungle_night_2.ogg diff --git a/ambience/sounds/lava.ogg b/mods/ambience/sounds/lava.ogg similarity index 100% rename from ambience/sounds/lava.ogg rename to mods/ambience/sounds/lava.ogg diff --git a/ambience/sounds/peacock.ogg b/mods/ambience/sounds/peacock.ogg similarity index 100% rename from ambience/sounds/peacock.ogg rename to mods/ambience/sounds/peacock.ogg diff --git a/ambience/sounds/river.ogg b/mods/ambience/sounds/river.ogg similarity index 100% rename from ambience/sounds/river.ogg rename to mods/ambience/sounds/river.ogg diff --git a/ambience/sounds/robin.ogg b/mods/ambience/sounds/robin.ogg similarity index 100% rename from ambience/sounds/robin.ogg rename to mods/ambience/sounds/robin.ogg diff --git a/ambience/sounds/scuba.ogg b/mods/ambience/sounds/scuba.ogg similarity index 100% rename from ambience/sounds/scuba.ogg rename to mods/ambience/sounds/scuba.ogg diff --git a/ambience/sounds/seagull.ogg b/mods/ambience/sounds/seagull.ogg similarity index 100% rename from ambience/sounds/seagull.ogg rename to mods/ambience/sounds/seagull.ogg diff --git a/ambience/sounds/swim_splashing.ogg b/mods/ambience/sounds/swim_splashing.ogg similarity index 100% rename from ambience/sounds/swim_splashing.ogg rename to mods/ambience/sounds/swim_splashing.ogg diff --git a/ambience/sounds/waterfall.ogg b/mods/ambience/sounds/waterfall.ogg similarity index 100% rename from ambience/sounds/waterfall.ogg rename to mods/ambience/sounds/waterfall.ogg diff --git a/ambience/sounds/wind.ogg b/mods/ambience/sounds/wind.ogg similarity index 100% rename from ambience/sounds/wind.ogg rename to mods/ambience/sounds/wind.ogg diff --git a/ambience/sounds/wolves.ogg b/mods/ambience/sounds/wolves.ogg similarity index 100% rename from ambience/sounds/wolves.ogg rename to mods/ambience/sounds/wolves.ogg diff --git a/ambience/soundsets.lua b/mods/ambience/soundsets.lua similarity index 100% rename from ambience/soundsets.lua rename to mods/ambience/soundsets.lua diff --git a/anvil/LICENSE b/mods/anvil/LICENSE similarity index 100% rename from anvil/LICENSE rename to mods/anvil/LICENSE diff --git a/anvil/README.md b/mods/anvil/README.md similarity index 100% rename from anvil/README.md rename to mods/anvil/README.md diff --git a/anvil/depends.txt b/mods/anvil/depends.txt similarity index 100% rename from anvil/depends.txt rename to mods/anvil/depends.txt diff --git a/anvil/description.txt b/mods/anvil/description.txt similarity index 100% rename from anvil/description.txt rename to mods/anvil/description.txt diff --git a/anvil/i18n.py b/mods/anvil/i18n.py similarity index 100% rename from anvil/i18n.py rename to mods/anvil/i18n.py diff --git a/anvil/init.lua b/mods/anvil/init.lua similarity index 100% rename from anvil/init.lua rename to mods/anvil/init.lua diff --git a/anvil/locale/anvil.de.tr b/mods/anvil/locale/anvil.de.tr similarity index 100% rename from anvil/locale/anvil.de.tr rename to mods/anvil/locale/anvil.de.tr diff --git a/anvil/locale/anvil.es.tr b/mods/anvil/locale/anvil.es.tr similarity index 100% rename from anvil/locale/anvil.es.tr rename to mods/anvil/locale/anvil.es.tr diff --git a/anvil/locale/anvil.fr.tr b/mods/anvil/locale/anvil.fr.tr similarity index 100% rename from anvil/locale/anvil.fr.tr rename to mods/anvil/locale/anvil.fr.tr diff --git a/anvil/locale/anvil.it.tr b/mods/anvil/locale/anvil.it.tr similarity index 100% rename from anvil/locale/anvil.it.tr rename to mods/anvil/locale/anvil.it.tr diff --git a/anvil/locale/template.txt b/mods/anvil/locale/template.txt similarity index 100% rename from anvil/locale/template.txt rename to mods/anvil/locale/template.txt diff --git a/anvil/mod.conf b/mods/anvil/mod.conf similarity index 100% rename from anvil/mod.conf rename to mods/anvil/mod.conf diff --git a/anvil/screenshot.png b/mods/anvil/screenshot.png similarity index 100% rename from anvil/screenshot.png rename to mods/anvil/screenshot.png diff --git a/anvil/settingtypes.txt b/mods/anvil/settingtypes.txt similarity index 100% rename from anvil/settingtypes.txt rename to mods/anvil/settingtypes.txt diff --git a/anvil/sounds/anvil_clang.ogg b/mods/anvil/sounds/anvil_clang.ogg similarity index 100% rename from anvil/sounds/anvil_clang.ogg rename to mods/anvil/sounds/anvil_clang.ogg diff --git a/anvil/sounds/license.txt b/mods/anvil/sounds/license.txt similarity index 100% rename from anvil/sounds/license.txt rename to mods/anvil/sounds/license.txt diff --git a/anvil/textures/anvil_spark.png b/mods/anvil/textures/anvil_spark.png similarity index 100% rename from anvil/textures/anvil_spark.png rename to mods/anvil/textures/anvil_spark.png diff --git a/anvil/textures/anvil_tool_steelhammer.png b/mods/anvil/textures/anvil_tool_steelhammer.png similarity index 100% rename from anvil/textures/anvil_tool_steelhammer.png rename to mods/anvil/textures/anvil_tool_steelhammer.png diff --git a/anvil/textures/license.txt b/mods/anvil/textures/license.txt similarity index 100% rename from anvil/textures/license.txt rename to mods/anvil/textures/license.txt diff --git a/arrowboards/LICENSE b/mods/arrowboards/LICENSE similarity index 100% rename from arrowboards/LICENSE rename to mods/arrowboards/LICENSE diff --git a/arrowboards/depends.txt b/mods/arrowboards/depends.txt similarity index 100% rename from arrowboards/depends.txt rename to mods/arrowboards/depends.txt diff --git a/arrowboards/init.lua b/mods/arrowboards/init.lua similarity index 100% rename from arrowboards/init.lua rename to mods/arrowboards/init.lua diff --git a/arrowboards/textures/arrowboards_arrow1.png b/mods/arrowboards/textures/arrowboards_arrow1.png similarity index 100% rename from arrowboards/textures/arrowboards_arrow1.png rename to mods/arrowboards/textures/arrowboards_arrow1.png diff --git a/arrowboards/textures/arrowboards_arrow2.png b/mods/arrowboards/textures/arrowboards_arrow2.png similarity index 100% rename from arrowboards/textures/arrowboards_arrow2.png rename to mods/arrowboards/textures/arrowboards_arrow2.png diff --git a/arrowboards/textures/arrowboards_arrow3.png b/mods/arrowboards/textures/arrowboards_arrow3.png similarity index 100% rename from arrowboards/textures/arrowboards_arrow3.png rename to mods/arrowboards/textures/arrowboards_arrow3.png diff --git a/arrowboards/textures/arrowboards_base.png b/mods/arrowboards/textures/arrowboards_base.png similarity index 100% rename from arrowboards/textures/arrowboards_base.png rename to mods/arrowboards/textures/arrowboards_base.png diff --git a/arrowboards/textures/arrowboards_bg.png b/mods/arrowboards/textures/arrowboards_bg.png similarity index 100% rename from arrowboards/textures/arrowboards_bg.png rename to mods/arrowboards/textures/arrowboards_bg.png diff --git a/arrowboards/textures/arrowboards_caution1.png b/mods/arrowboards/textures/arrowboards_caution1.png similarity index 100% rename from arrowboards/textures/arrowboards_caution1.png rename to mods/arrowboards/textures/arrowboards_caution1.png diff --git a/arrowboards/textures/arrowboards_caution2.png b/mods/arrowboards/textures/arrowboards_caution2.png similarity index 100% rename from arrowboards/textures/arrowboards_caution2.png rename to mods/arrowboards/textures/arrowboards_caution2.png diff --git a/arrowboards/textures/arrowboards_caution3.png b/mods/arrowboards/textures/arrowboards_caution3.png similarity index 100% rename from arrowboards/textures/arrowboards_caution3.png rename to mods/arrowboards/textures/arrowboards_caution3.png diff --git a/arrowboards/textures/arrowboards_chevron1.png b/mods/arrowboards/textures/arrowboards_chevron1.png similarity index 100% rename from arrowboards/textures/arrowboards_chevron1.png rename to mods/arrowboards/textures/arrowboards_chevron1.png diff --git a/arrowboards/textures/arrowboards_chevron2.png b/mods/arrowboards/textures/arrowboards_chevron2.png similarity index 100% rename from arrowboards/textures/arrowboards_chevron2.png rename to mods/arrowboards/textures/arrowboards_chevron2.png diff --git a/arrowboards/textures/arrowboards_chevron3.png b/mods/arrowboards/textures/arrowboards_chevron3.png similarity index 100% rename from arrowboards/textures/arrowboards_chevron3.png rename to mods/arrowboards/textures/arrowboards_chevron3.png diff --git a/arrowboards/textures/arrowboards_dualarrow.png b/mods/arrowboards/textures/arrowboards_dualarrow.png similarity index 100% rename from arrowboards/textures/arrowboards_dualarrow.png rename to mods/arrowboards/textures/arrowboards_dualarrow.png diff --git a/arrowboards/textures/arrowboards_inv.png b/mods/arrowboards/textures/arrowboards_inv.png similarity index 100% rename from arrowboards/textures/arrowboards_inv.png rename to mods/arrowboards/textures/arrowboards_inv.png diff --git a/arrowboards/textures/arrowboards_off.png b/mods/arrowboards/textures/arrowboards_off.png similarity index 100% rename from arrowboards/textures/arrowboards_off.png rename to mods/arrowboards/textures/arrowboards_off.png diff --git a/asphalt/depends.txt b/mods/asphalt/depends.txt similarity index 100% rename from asphalt/depends.txt rename to mods/asphalt/depends.txt diff --git a/asphalt/init.lua b/mods/asphalt/init.lua similarity index 100% rename from asphalt/init.lua rename to mods/asphalt/init.lua diff --git a/asphaltstairs/depends.txt b/mods/asphaltstairs/depends.txt similarity index 100% rename from asphaltstairs/depends.txt rename to mods/asphaltstairs/depends.txt diff --git a/asphaltstairs/init.lua b/mods/asphaltstairs/init.lua similarity index 100% rename from asphaltstairs/init.lua rename to mods/asphaltstairs/init.lua diff --git a/bakedclay/README.md b/mods/bakedclay/README.md similarity index 100% rename from bakedclay/README.md rename to mods/bakedclay/README.md diff --git a/bakedclay/depends.txt b/mods/bakedclay/depends.txt similarity index 100% rename from bakedclay/depends.txt rename to mods/bakedclay/depends.txt diff --git a/bakedclay/description.txt b/mods/bakedclay/description.txt similarity index 100% rename from bakedclay/description.txt rename to mods/bakedclay/description.txt diff --git a/bakedclay/init.lua b/mods/bakedclay/init.lua similarity index 100% rename from bakedclay/init.lua rename to mods/bakedclay/init.lua diff --git a/bakedclay/license.txt b/mods/bakedclay/license.txt similarity index 100% rename from bakedclay/license.txt rename to mods/bakedclay/license.txt diff --git a/bakedclay/mod.conf b/mods/bakedclay/mod.conf similarity index 100% rename from bakedclay/mod.conf rename to mods/bakedclay/mod.conf diff --git a/bakedclay/screenshot.png b/mods/bakedclay/screenshot.png similarity index 100% rename from bakedclay/screenshot.png rename to mods/bakedclay/screenshot.png diff --git a/bakedclay/settingtypes.txt b/mods/bakedclay/settingtypes.txt similarity index 100% rename from bakedclay/settingtypes.txt rename to mods/bakedclay/settingtypes.txt diff --git a/bakedclay/textures/baked_clay_black.png b/mods/bakedclay/textures/baked_clay_black.png similarity index 100% rename from bakedclay/textures/baked_clay_black.png rename to mods/bakedclay/textures/baked_clay_black.png diff --git a/bakedclay/textures/baked_clay_blue.png b/mods/bakedclay/textures/baked_clay_blue.png similarity index 100% rename from bakedclay/textures/baked_clay_blue.png rename to mods/bakedclay/textures/baked_clay_blue.png diff --git a/bakedclay/textures/baked_clay_brown.png b/mods/bakedclay/textures/baked_clay_brown.png similarity index 100% rename from bakedclay/textures/baked_clay_brown.png rename to mods/bakedclay/textures/baked_clay_brown.png diff --git a/bakedclay/textures/baked_clay_cyan.png b/mods/bakedclay/textures/baked_clay_cyan.png similarity index 100% rename from bakedclay/textures/baked_clay_cyan.png rename to mods/bakedclay/textures/baked_clay_cyan.png diff --git a/bakedclay/textures/baked_clay_dark_green.png b/mods/bakedclay/textures/baked_clay_dark_green.png similarity index 100% rename from bakedclay/textures/baked_clay_dark_green.png rename to mods/bakedclay/textures/baked_clay_dark_green.png diff --git a/bakedclay/textures/baked_clay_dark_grey.png b/mods/bakedclay/textures/baked_clay_dark_grey.png similarity index 100% rename from bakedclay/textures/baked_clay_dark_grey.png rename to mods/bakedclay/textures/baked_clay_dark_grey.png diff --git a/bakedclay/textures/baked_clay_delphinium.png b/mods/bakedclay/textures/baked_clay_delphinium.png similarity index 100% rename from bakedclay/textures/baked_clay_delphinium.png rename to mods/bakedclay/textures/baked_clay_delphinium.png diff --git a/bakedclay/textures/baked_clay_green.png b/mods/bakedclay/textures/baked_clay_green.png similarity index 100% rename from bakedclay/textures/baked_clay_green.png rename to mods/bakedclay/textures/baked_clay_green.png diff --git a/bakedclay/textures/baked_clay_grey.png b/mods/bakedclay/textures/baked_clay_grey.png similarity index 100% rename from bakedclay/textures/baked_clay_grey.png rename to mods/bakedclay/textures/baked_clay_grey.png diff --git a/bakedclay/textures/baked_clay_lazarus.png b/mods/bakedclay/textures/baked_clay_lazarus.png similarity index 100% rename from bakedclay/textures/baked_clay_lazarus.png rename to mods/bakedclay/textures/baked_clay_lazarus.png diff --git a/bakedclay/textures/baked_clay_magenta.png b/mods/bakedclay/textures/baked_clay_magenta.png similarity index 100% rename from bakedclay/textures/baked_clay_magenta.png rename to mods/bakedclay/textures/baked_clay_magenta.png diff --git a/bakedclay/textures/baked_clay_mannagrass.png b/mods/bakedclay/textures/baked_clay_mannagrass.png similarity index 100% rename from bakedclay/textures/baked_clay_mannagrass.png rename to mods/bakedclay/textures/baked_clay_mannagrass.png diff --git a/bakedclay/textures/baked_clay_natural.png b/mods/bakedclay/textures/baked_clay_natural.png similarity index 100% rename from bakedclay/textures/baked_clay_natural.png rename to mods/bakedclay/textures/baked_clay_natural.png diff --git a/bakedclay/textures/baked_clay_orange.png b/mods/bakedclay/textures/baked_clay_orange.png similarity index 100% rename from bakedclay/textures/baked_clay_orange.png rename to mods/bakedclay/textures/baked_clay_orange.png diff --git a/bakedclay/textures/baked_clay_pink.png b/mods/bakedclay/textures/baked_clay_pink.png similarity index 100% rename from bakedclay/textures/baked_clay_pink.png rename to mods/bakedclay/textures/baked_clay_pink.png diff --git a/bakedclay/textures/baked_clay_red.png b/mods/bakedclay/textures/baked_clay_red.png similarity index 100% rename from bakedclay/textures/baked_clay_red.png rename to mods/bakedclay/textures/baked_clay_red.png diff --git a/bakedclay/textures/baked_clay_thistle.png b/mods/bakedclay/textures/baked_clay_thistle.png similarity index 100% rename from bakedclay/textures/baked_clay_thistle.png rename to mods/bakedclay/textures/baked_clay_thistle.png diff --git a/bakedclay/textures/baked_clay_violet.png b/mods/bakedclay/textures/baked_clay_violet.png similarity index 100% rename from bakedclay/textures/baked_clay_violet.png rename to mods/bakedclay/textures/baked_clay_violet.png diff --git a/bakedclay/textures/baked_clay_white.png b/mods/bakedclay/textures/baked_clay_white.png similarity index 100% rename from bakedclay/textures/baked_clay_white.png rename to mods/bakedclay/textures/baked_clay_white.png diff --git a/bakedclay/textures/baked_clay_yellow.png b/mods/bakedclay/textures/baked_clay_yellow.png similarity index 100% rename from bakedclay/textures/baked_clay_yellow.png rename to mods/bakedclay/textures/baked_clay_yellow.png diff --git a/baldcypress/init.lua b/mods/baldcypress/init.lua similarity index 100% rename from baldcypress/init.lua rename to mods/baldcypress/init.lua diff --git a/baldcypress/locale/baldcypress.es.tr b/mods/baldcypress/locale/baldcypress.es.tr similarity index 100% rename from baldcypress/locale/baldcypress.es.tr rename to mods/baldcypress/locale/baldcypress.es.tr diff --git a/baldcypress/mod.conf b/mods/baldcypress/mod.conf similarity index 100% rename from baldcypress/mod.conf rename to mods/baldcypress/mod.conf diff --git a/baldcypress/schematics/baldcypress.lua b/mods/baldcypress/schematics/baldcypress.lua similarity index 100% rename from baldcypress/schematics/baldcypress.lua rename to mods/baldcypress/schematics/baldcypress.lua diff --git a/baldcypress/schematics/baldcypress.mts b/mods/baldcypress/schematics/baldcypress.mts similarity index 100% rename from baldcypress/schematics/baldcypress.mts rename to mods/baldcypress/schematics/baldcypress.mts diff --git a/baldcypress/textures/baldcypress_dry_branches.png b/mods/baldcypress/textures/baldcypress_dry_branches.png similarity index 100% rename from baldcypress/textures/baldcypress_dry_branches.png rename to mods/baldcypress/textures/baldcypress_dry_branches.png diff --git a/baldcypress/textures/baldcypress_leaves.png b/mods/baldcypress/textures/baldcypress_leaves.png similarity index 100% rename from baldcypress/textures/baldcypress_leaves.png rename to mods/baldcypress/textures/baldcypress_leaves.png diff --git a/baldcypress/textures/baldcypress_liana.png b/mods/baldcypress/textures/baldcypress_liana.png similarity index 100% rename from baldcypress/textures/baldcypress_liana.png rename to mods/baldcypress/textures/baldcypress_liana.png diff --git a/baldcypress/textures/baldcypress_sapling.png b/mods/baldcypress/textures/baldcypress_sapling.png similarity index 100% rename from baldcypress/textures/baldcypress_sapling.png rename to mods/baldcypress/textures/baldcypress_sapling.png diff --git a/baldcypress/textures/baldcypress_trunk.png b/mods/baldcypress/textures/baldcypress_trunk.png similarity index 100% rename from baldcypress/textures/baldcypress_trunk.png rename to mods/baldcypress/textures/baldcypress_trunk.png diff --git a/baldcypress/textures/baldcypress_trunk_top.png b/mods/baldcypress/textures/baldcypress_trunk_top.png similarity index 100% rename from baldcypress/textures/baldcypress_trunk_top.png rename to mods/baldcypress/textures/baldcypress_trunk_top.png diff --git a/baldcypress/textures/baldcypress_wood.png b/mods/baldcypress/textures/baldcypress_wood.png similarity index 100% rename from baldcypress/textures/baldcypress_wood.png rename to mods/baldcypress/textures/baldcypress_wood.png diff --git a/bamboo/init.lua b/mods/bamboo/init.lua similarity index 100% rename from bamboo/init.lua rename to mods/bamboo/init.lua diff --git a/bamboo/locale/bamboo.es.tr b/mods/bamboo/locale/bamboo.es.tr similarity index 100% rename from bamboo/locale/bamboo.es.tr rename to mods/bamboo/locale/bamboo.es.tr diff --git a/bamboo/mod.conf b/mods/bamboo/mod.conf similarity index 100% rename from bamboo/mod.conf rename to mods/bamboo/mod.conf diff --git a/bamboo/textures/bamboo.png b/mods/bamboo/textures/bamboo.png similarity index 100% rename from bamboo/textures/bamboo.png rename to mods/bamboo/textures/bamboo.png diff --git a/bamboo/textures/bamboo_floor.png b/mods/bamboo/textures/bamboo_floor.png similarity index 100% rename from bamboo/textures/bamboo_floor.png rename to mods/bamboo/textures/bamboo_floor.png diff --git a/bamboo/textures/bamboo_leaves.png b/mods/bamboo/textures/bamboo_leaves.png similarity index 100% rename from bamboo/textures/bamboo_leaves.png rename to mods/bamboo/textures/bamboo_leaves.png diff --git a/bamboo/textures/bamboo_sprout.png b/mods/bamboo/textures/bamboo_sprout.png similarity index 100% rename from bamboo/textures/bamboo_sprout.png rename to mods/bamboo/textures/bamboo_sprout.png diff --git a/basic_materials/.luacheckrc b/mods/basic_materials/.luacheckrc similarity index 100% rename from basic_materials/.luacheckrc rename to mods/basic_materials/.luacheckrc diff --git a/basic_materials/LICENSE b/mods/basic_materials/LICENSE similarity index 100% rename from basic_materials/LICENSE rename to mods/basic_materials/LICENSE diff --git a/basic_materials/electrical-electronic.lua b/mods/basic_materials/electrical-electronic.lua similarity index 100% rename from basic_materials/electrical-electronic.lua rename to mods/basic_materials/electrical-electronic.lua diff --git a/basic_materials/init.lua b/mods/basic_materials/init.lua similarity index 100% rename from basic_materials/init.lua rename to mods/basic_materials/init.lua diff --git a/basic_materials/locale/basic_materials.de.tr b/mods/basic_materials/locale/basic_materials.de.tr similarity index 100% rename from basic_materials/locale/basic_materials.de.tr rename to mods/basic_materials/locale/basic_materials.de.tr diff --git a/basic_materials/locale/basic_materials.fr.tr b/mods/basic_materials/locale/basic_materials.fr.tr similarity index 100% rename from basic_materials/locale/basic_materials.fr.tr rename to mods/basic_materials/locale/basic_materials.fr.tr diff --git a/basic_materials/locale/basic_materials.it.tr b/mods/basic_materials/locale/basic_materials.it.tr similarity index 100% rename from basic_materials/locale/basic_materials.it.tr rename to mods/basic_materials/locale/basic_materials.it.tr diff --git a/basic_materials/locale/basic_materials.ru.tr b/mods/basic_materials/locale/basic_materials.ru.tr similarity index 100% rename from basic_materials/locale/basic_materials.ru.tr rename to mods/basic_materials/locale/basic_materials.ru.tr diff --git a/basic_materials/metals.lua b/mods/basic_materials/metals.lua similarity index 100% rename from basic_materials/metals.lua rename to mods/basic_materials/metals.lua diff --git a/basic_materials/misc.lua b/mods/basic_materials/misc.lua similarity index 100% rename from basic_materials/misc.lua rename to mods/basic_materials/misc.lua diff --git a/basic_materials/mod.conf b/mods/basic_materials/mod.conf similarity index 100% rename from basic_materials/mod.conf rename to mods/basic_materials/mod.conf diff --git a/basic_materials/models/basic_materials_chains.obj b/mods/basic_materials/models/basic_materials_chains.obj similarity index 100% rename from basic_materials/models/basic_materials_chains.obj rename to mods/basic_materials/models/basic_materials_chains.obj diff --git a/basic_materials/plastics.lua b/mods/basic_materials/plastics.lua similarity index 100% rename from basic_materials/plastics.lua rename to mods/basic_materials/plastics.lua diff --git a/basic_materials/textures/basic_materials_brass_block.png b/mods/basic_materials/textures/basic_materials_brass_block.png similarity index 100% rename from basic_materials/textures/basic_materials_brass_block.png rename to mods/basic_materials/textures/basic_materials_brass_block.png diff --git a/basic_materials/textures/basic_materials_brass_ingot.png b/mods/basic_materials/textures/basic_materials_brass_ingot.png similarity index 100% rename from basic_materials/textures/basic_materials_brass_ingot.png rename to mods/basic_materials/textures/basic_materials_brass_ingot.png diff --git a/basic_materials/textures/basic_materials_cement_block.png b/mods/basic_materials/textures/basic_materials_cement_block.png similarity index 100% rename from basic_materials/textures/basic_materials_cement_block.png rename to mods/basic_materials/textures/basic_materials_cement_block.png diff --git a/basic_materials/textures/basic_materials_chain_brass.png b/mods/basic_materials/textures/basic_materials_chain_brass.png similarity index 100% rename from basic_materials/textures/basic_materials_chain_brass.png rename to mods/basic_materials/textures/basic_materials_chain_brass.png diff --git a/basic_materials/textures/basic_materials_chain_brass_inv.png b/mods/basic_materials/textures/basic_materials_chain_brass_inv.png similarity index 100% rename from basic_materials/textures/basic_materials_chain_brass_inv.png rename to mods/basic_materials/textures/basic_materials_chain_brass_inv.png diff --git a/basic_materials/textures/basic_materials_chain_steel.png b/mods/basic_materials/textures/basic_materials_chain_steel.png similarity index 100% rename from basic_materials/textures/basic_materials_chain_steel.png rename to mods/basic_materials/textures/basic_materials_chain_steel.png diff --git a/basic_materials/textures/basic_materials_chain_steel_inv.png b/mods/basic_materials/textures/basic_materials_chain_steel_inv.png similarity index 100% rename from basic_materials/textures/basic_materials_chain_steel_inv.png rename to mods/basic_materials/textures/basic_materials_chain_steel_inv.png diff --git a/basic_materials/textures/basic_materials_chainlink_brass.png b/mods/basic_materials/textures/basic_materials_chainlink_brass.png similarity index 100% rename from basic_materials/textures/basic_materials_chainlink_brass.png rename to mods/basic_materials/textures/basic_materials_chainlink_brass.png diff --git a/basic_materials/textures/basic_materials_chainlink_steel.png b/mods/basic_materials/textures/basic_materials_chainlink_steel.png similarity index 100% rename from basic_materials/textures/basic_materials_chainlink_steel.png rename to mods/basic_materials/textures/basic_materials_chainlink_steel.png diff --git a/basic_materials/textures/basic_materials_concrete_block.png b/mods/basic_materials/textures/basic_materials_concrete_block.png similarity index 100% rename from basic_materials/textures/basic_materials_concrete_block.png rename to mods/basic_materials/textures/basic_materials_concrete_block.png diff --git a/basic_materials/textures/basic_materials_copper_strip.png b/mods/basic_materials/textures/basic_materials_copper_strip.png similarity index 100% rename from basic_materials/textures/basic_materials_copper_strip.png rename to mods/basic_materials/textures/basic_materials_copper_strip.png diff --git a/basic_materials/textures/basic_materials_copper_wire.png b/mods/basic_materials/textures/basic_materials_copper_wire.png similarity index 100% rename from basic_materials/textures/basic_materials_copper_wire.png rename to mods/basic_materials/textures/basic_materials_copper_wire.png diff --git a/basic_materials/textures/basic_materials_empty_spool.png b/mods/basic_materials/textures/basic_materials_empty_spool.png similarity index 100% rename from basic_materials/textures/basic_materials_empty_spool.png rename to mods/basic_materials/textures/basic_materials_empty_spool.png diff --git a/basic_materials/textures/basic_materials_energy_crystal.png b/mods/basic_materials/textures/basic_materials_energy_crystal.png similarity index 100% rename from basic_materials/textures/basic_materials_energy_crystal.png rename to mods/basic_materials/textures/basic_materials_energy_crystal.png diff --git a/basic_materials/textures/basic_materials_gear_steel.png b/mods/basic_materials/textures/basic_materials_gear_steel.png similarity index 100% rename from basic_materials/textures/basic_materials_gear_steel.png rename to mods/basic_materials/textures/basic_materials_gear_steel.png diff --git a/basic_materials/textures/basic_materials_gold_wire.png b/mods/basic_materials/textures/basic_materials_gold_wire.png similarity index 100% rename from basic_materials/textures/basic_materials_gold_wire.png rename to mods/basic_materials/textures/basic_materials_gold_wire.png diff --git a/basic_materials/textures/basic_materials_heating_element.png b/mods/basic_materials/textures/basic_materials_heating_element.png similarity index 100% rename from basic_materials/textures/basic_materials_heating_element.png rename to mods/basic_materials/textures/basic_materials_heating_element.png diff --git a/basic_materials/textures/basic_materials_ic.png b/mods/basic_materials/textures/basic_materials_ic.png similarity index 100% rename from basic_materials/textures/basic_materials_ic.png rename to mods/basic_materials/textures/basic_materials_ic.png diff --git a/basic_materials/textures/basic_materials_motor.png b/mods/basic_materials/textures/basic_materials_motor.png similarity index 100% rename from basic_materials/textures/basic_materials_motor.png rename to mods/basic_materials/textures/basic_materials_motor.png diff --git a/basic_materials/textures/basic_materials_oil_extract.png b/mods/basic_materials/textures/basic_materials_oil_extract.png similarity index 100% rename from basic_materials/textures/basic_materials_oil_extract.png rename to mods/basic_materials/textures/basic_materials_oil_extract.png diff --git a/basic_materials/textures/basic_materials_padlock.png b/mods/basic_materials/textures/basic_materials_padlock.png similarity index 100% rename from basic_materials/textures/basic_materials_padlock.png rename to mods/basic_materials/textures/basic_materials_padlock.png diff --git a/basic_materials/textures/basic_materials_paraffin.png b/mods/basic_materials/textures/basic_materials_paraffin.png similarity index 100% rename from basic_materials/textures/basic_materials_paraffin.png rename to mods/basic_materials/textures/basic_materials_paraffin.png diff --git a/basic_materials/textures/basic_materials_plastic_sheet.png b/mods/basic_materials/textures/basic_materials_plastic_sheet.png similarity index 100% rename from basic_materials/textures/basic_materials_plastic_sheet.png rename to mods/basic_materials/textures/basic_materials_plastic_sheet.png diff --git a/basic_materials/textures/basic_materials_plastic_strip.png b/mods/basic_materials/textures/basic_materials_plastic_strip.png similarity index 100% rename from basic_materials/textures/basic_materials_plastic_strip.png rename to mods/basic_materials/textures/basic_materials_plastic_strip.png diff --git a/basic_materials/textures/basic_materials_silicon.png b/mods/basic_materials/textures/basic_materials_silicon.png similarity index 100% rename from basic_materials/textures/basic_materials_silicon.png rename to mods/basic_materials/textures/basic_materials_silicon.png diff --git a/basic_materials/textures/basic_materials_silver_wire.png b/mods/basic_materials/textures/basic_materials_silver_wire.png similarity index 100% rename from basic_materials/textures/basic_materials_silver_wire.png rename to mods/basic_materials/textures/basic_materials_silver_wire.png diff --git a/basic_materials/textures/basic_materials_steel_bar.png b/mods/basic_materials/textures/basic_materials_steel_bar.png similarity index 100% rename from basic_materials/textures/basic_materials_steel_bar.png rename to mods/basic_materials/textures/basic_materials_steel_bar.png diff --git a/basic_materials/textures/basic_materials_steel_strip.png b/mods/basic_materials/textures/basic_materials_steel_strip.png similarity index 100% rename from basic_materials/textures/basic_materials_steel_strip.png rename to mods/basic_materials/textures/basic_materials_steel_strip.png diff --git a/basic_materials/textures/basic_materials_steel_wire.png b/mods/basic_materials/textures/basic_materials_steel_wire.png similarity index 100% rename from basic_materials/textures/basic_materials_steel_wire.png rename to mods/basic_materials/textures/basic_materials_steel_wire.png diff --git a/basic_materials/textures/basic_materials_terracotta_base.png b/mods/basic_materials/textures/basic_materials_terracotta_base.png similarity index 100% rename from basic_materials/textures/basic_materials_terracotta_base.png rename to mods/basic_materials/textures/basic_materials_terracotta_base.png diff --git a/basic_materials/textures/basic_materials_wet_cement.png b/mods/basic_materials/textures/basic_materials_wet_cement.png similarity index 100% rename from basic_materials/textures/basic_materials_wet_cement.png rename to mods/basic_materials/textures/basic_materials_wet_cement.png diff --git a/basic_signs/LICENSE b/mods/basic_signs/LICENSE similarity index 100% rename from basic_signs/LICENSE rename to mods/basic_signs/LICENSE diff --git a/basic_signs/README b/mods/basic_signs/README similarity index 100% rename from basic_signs/README rename to mods/basic_signs/README diff --git a/basic_signs/crafting.lua b/mods/basic_signs/crafting.lua similarity index 100% rename from basic_signs/crafting.lua rename to mods/basic_signs/crafting.lua diff --git a/basic_signs/depends.txt b/mods/basic_signs/depends.txt similarity index 100% rename from basic_signs/depends.txt rename to mods/basic_signs/depends.txt diff --git a/basic_signs/init.lua b/mods/basic_signs/init.lua similarity index 100% rename from basic_signs/init.lua rename to mods/basic_signs/init.lua diff --git a/basic_signs/intllib.lua b/mods/basic_signs/intllib.lua similarity index 100% rename from basic_signs/intllib.lua rename to mods/basic_signs/intllib.lua diff --git a/basic_signs/locale/de.po b/mods/basic_signs/locale/de.po similarity index 100% rename from basic_signs/locale/de.po rename to mods/basic_signs/locale/de.po diff --git a/basic_signs/locale/es.po b/mods/basic_signs/locale/es.po similarity index 100% rename from basic_signs/locale/es.po rename to mods/basic_signs/locale/es.po diff --git a/basic_signs/locale/fr.po b/mods/basic_signs/locale/fr.po similarity index 100% rename from basic_signs/locale/fr.po rename to mods/basic_signs/locale/fr.po diff --git a/basic_signs/locale/ms.po b/mods/basic_signs/locale/ms.po similarity index 100% rename from basic_signs/locale/ms.po rename to mods/basic_signs/locale/ms.po diff --git a/basic_signs/locale/ru.po b/mods/basic_signs/locale/ru.po similarity index 100% rename from basic_signs/locale/ru.po rename to mods/basic_signs/locale/ru.po diff --git a/basic_signs/locale/template.pot b/mods/basic_signs/locale/template.pot similarity index 100% rename from basic_signs/locale/template.pot rename to mods/basic_signs/locale/template.pot diff --git a/basic_signs/mod.conf b/mods/basic_signs/mod.conf similarity index 100% rename from basic_signs/mod.conf rename to mods/basic_signs/mod.conf diff --git a/basic_signs/textures/basic_signs_pole_mount_glass.png b/mods/basic_signs/textures/basic_signs_pole_mount_glass.png similarity index 100% rename from basic_signs/textures/basic_signs_pole_mount_glass.png rename to mods/basic_signs/textures/basic_signs_pole_mount_glass.png diff --git a/basic_signs/textures/basic_signs_pole_mount_obsidian_glass.png b/mods/basic_signs/textures/basic_signs_pole_mount_obsidian_glass.png similarity index 100% rename from basic_signs/textures/basic_signs_pole_mount_obsidian_glass.png rename to mods/basic_signs/textures/basic_signs_pole_mount_obsidian_glass.png diff --git a/basic_signs/textures/basic_signs_pole_mount_plastic.png b/mods/basic_signs/textures/basic_signs_pole_mount_plastic.png similarity index 100% rename from basic_signs/textures/basic_signs_pole_mount_plastic.png rename to mods/basic_signs/textures/basic_signs_pole_mount_plastic.png diff --git a/basic_signs/textures/basic_signs_sign_wall_glass.png b/mods/basic_signs/textures/basic_signs_sign_wall_glass.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_glass.png rename to mods/basic_signs/textures/basic_signs_sign_wall_glass.png diff --git a/basic_signs/textures/basic_signs_sign_wall_glass_edges.png b/mods/basic_signs/textures/basic_signs_sign_wall_glass_edges.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_glass_edges.png rename to mods/basic_signs/textures/basic_signs_sign_wall_glass_edges.png diff --git a/basic_signs/textures/basic_signs_sign_wall_glass_inv.png b/mods/basic_signs/textures/basic_signs_sign_wall_glass_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_glass_inv.png rename to mods/basic_signs/textures/basic_signs_sign_wall_glass_inv.png diff --git a/basic_signs/textures/basic_signs_sign_wall_locked.png b/mods/basic_signs/textures/basic_signs_sign_wall_locked.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_locked.png rename to mods/basic_signs/textures/basic_signs_sign_wall_locked.png diff --git a/basic_signs/textures/basic_signs_sign_wall_locked_inv.png b/mods/basic_signs/textures/basic_signs_sign_wall_locked_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_locked_inv.png rename to mods/basic_signs/textures/basic_signs_sign_wall_locked_inv.png diff --git a/basic_signs/textures/basic_signs_sign_wall_obsidian_glass.png b/mods/basic_signs/textures/basic_signs_sign_wall_obsidian_glass.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_obsidian_glass.png rename to mods/basic_signs/textures/basic_signs_sign_wall_obsidian_glass.png diff --git a/basic_signs/textures/basic_signs_sign_wall_obsidian_glass_edges.png b/mods/basic_signs/textures/basic_signs_sign_wall_obsidian_glass_edges.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_obsidian_glass_edges.png rename to mods/basic_signs/textures/basic_signs_sign_wall_obsidian_glass_edges.png diff --git a/basic_signs/textures/basic_signs_sign_wall_obsidian_glass_inv.png b/mods/basic_signs/textures/basic_signs_sign_wall_obsidian_glass_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_obsidian_glass_inv.png rename to mods/basic_signs/textures/basic_signs_sign_wall_obsidian_glass_inv.png diff --git a/basic_signs/textures/basic_signs_sign_wall_plastic.png b/mods/basic_signs/textures/basic_signs_sign_wall_plastic.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_plastic.png rename to mods/basic_signs/textures/basic_signs_sign_wall_plastic.png diff --git a/basic_signs/textures/basic_signs_sign_wall_plastic_edges.png b/mods/basic_signs/textures/basic_signs_sign_wall_plastic_edges.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_plastic_edges.png rename to mods/basic_signs/textures/basic_signs_sign_wall_plastic_edges.png diff --git a/basic_signs/textures/basic_signs_sign_wall_plastic_inv.png b/mods/basic_signs/textures/basic_signs_sign_wall_plastic_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_sign_wall_plastic_inv.png rename to mods/basic_signs/textures/basic_signs_sign_wall_plastic_inv.png diff --git a/basic_signs/textures/basic_signs_steel_blue.png b/mods/basic_signs/textures/basic_signs_steel_blue.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_blue.png rename to mods/basic_signs/textures/basic_signs_steel_blue.png diff --git a/basic_signs/textures/basic_signs_steel_blue_inv.png b/mods/basic_signs/textures/basic_signs_steel_blue_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_blue_inv.png rename to mods/basic_signs/textures/basic_signs_steel_blue_inv.png diff --git a/basic_signs/textures/basic_signs_steel_brown.png b/mods/basic_signs/textures/basic_signs_steel_brown.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_brown.png rename to mods/basic_signs/textures/basic_signs_steel_brown.png diff --git a/basic_signs/textures/basic_signs_steel_brown_inv.png b/mods/basic_signs/textures/basic_signs_steel_brown_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_brown_inv.png rename to mods/basic_signs/textures/basic_signs_steel_brown_inv.png diff --git a/basic_signs/textures/basic_signs_steel_green.png b/mods/basic_signs/textures/basic_signs_steel_green.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_green.png rename to mods/basic_signs/textures/basic_signs_steel_green.png diff --git a/basic_signs/textures/basic_signs_steel_green_inv.png b/mods/basic_signs/textures/basic_signs_steel_green_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_green_inv.png rename to mods/basic_signs/textures/basic_signs_steel_green_inv.png diff --git a/basic_signs/textures/basic_signs_steel_orange.png b/mods/basic_signs/textures/basic_signs_steel_orange.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_orange.png rename to mods/basic_signs/textures/basic_signs_steel_orange.png diff --git a/basic_signs/textures/basic_signs_steel_orange_inv.png b/mods/basic_signs/textures/basic_signs_steel_orange_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_orange_inv.png rename to mods/basic_signs/textures/basic_signs_steel_orange_inv.png diff --git a/basic_signs/textures/basic_signs_steel_red.png b/mods/basic_signs/textures/basic_signs_steel_red.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_red.png rename to mods/basic_signs/textures/basic_signs_steel_red.png diff --git a/basic_signs/textures/basic_signs_steel_red_inv.png b/mods/basic_signs/textures/basic_signs_steel_red_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_red_inv.png rename to mods/basic_signs/textures/basic_signs_steel_red_inv.png diff --git a/basic_signs/textures/basic_signs_steel_white_black.png b/mods/basic_signs/textures/basic_signs_steel_white_black.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_white_black.png rename to mods/basic_signs/textures/basic_signs_steel_white_black.png diff --git a/basic_signs/textures/basic_signs_steel_white_black_inv.png b/mods/basic_signs/textures/basic_signs_steel_white_black_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_white_black_inv.png rename to mods/basic_signs/textures/basic_signs_steel_white_black_inv.png diff --git a/basic_signs/textures/basic_signs_steel_white_red.png b/mods/basic_signs/textures/basic_signs_steel_white_red.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_white_red.png rename to mods/basic_signs/textures/basic_signs_steel_white_red.png diff --git a/basic_signs/textures/basic_signs_steel_white_red_inv.png b/mods/basic_signs/textures/basic_signs_steel_white_red_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_white_red_inv.png rename to mods/basic_signs/textures/basic_signs_steel_white_red_inv.png diff --git a/basic_signs/textures/basic_signs_steel_yellow.png b/mods/basic_signs/textures/basic_signs_steel_yellow.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_yellow.png rename to mods/basic_signs/textures/basic_signs_steel_yellow.png diff --git a/basic_signs/textures/basic_signs_steel_yellow_inv.png b/mods/basic_signs/textures/basic_signs_steel_yellow_inv.png similarity index 100% rename from basic_signs/textures/basic_signs_steel_yellow_inv.png rename to mods/basic_signs/textures/basic_signs_steel_yellow_inv.png diff --git a/bedrock/LICENSE.txt b/mods/bedrock/LICENSE.txt similarity index 100% rename from bedrock/LICENSE.txt rename to mods/bedrock/LICENSE.txt diff --git a/bedrock/depends.txt b/mods/bedrock/depends.txt similarity index 100% rename from bedrock/depends.txt rename to mods/bedrock/depends.txt diff --git a/bedrock/init.lua b/mods/bedrock/init.lua similarity index 100% rename from bedrock/init.lua rename to mods/bedrock/init.lua diff --git a/bedrock/textures/bedrock_bedrock.png b/mods/bedrock/textures/bedrock_bedrock.png similarity index 100% rename from bedrock/textures/bedrock_bedrock.png rename to mods/bedrock/textures/bedrock_bedrock.png diff --git a/bedrock/textures/bedrock_deepstone.png b/mods/bedrock/textures/bedrock_deepstone.png similarity index 100% rename from bedrock/textures/bedrock_deepstone.png rename to mods/bedrock/textures/bedrock_deepstone.png diff --git a/mods/beds/README.txt b/mods/beds/README.txt new file mode 100644 index 00000000..7b35e141 --- /dev/null +++ b/mods/beds/README.txt @@ -0,0 +1,30 @@ +Minetest Game mod: beds +======================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by BlockMen (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +BlockMen (CC BY-SA 3.0) + All textures unless otherwise noted + +TumeniNodes (CC BY-SA 3.0) + beds_bed_under.png + +This mod adds a bed to Minetest which allows players to skip the night. +To sleep, right click on the bed. If playing in singleplayer mode the night gets skipped +immediately. If playing multiplayer you get shown how many other players are in bed too, +if all players are sleeping the night gets skipped. The night skip can be forced if more +than half of the players are lying in bed and use this option. + +Another feature is a controlled respawning. If you have slept in bed (not just lying in +it) your respawn point is set to the beds location and you will respawn there after +death. +You can disable the respawn at beds by setting "enable_bed_respawn = false" in +minetest.conf. +You can disable the night skip feature by setting "enable_bed_night_skip = false" in +minetest.conf or by using the /set command in-game. diff --git a/mods/beds/api.lua b/mods/beds/api.lua new file mode 100644 index 00000000..4a9c6679 --- /dev/null +++ b/mods/beds/api.lua @@ -0,0 +1,184 @@ + +local reverse = true + +local function destruct_bed(pos, n) + local node = minetest.get_node(pos) + local other + + if n == 2 then + local dir = minetest.facedir_to_dir(node.param2) + other = vector.subtract(pos, dir) + elseif n == 1 then + local dir = minetest.facedir_to_dir(node.param2) + other = vector.add(pos, dir) + end + + if reverse then + reverse = not reverse + minetest.remove_node(other) + minetest.check_for_falling(other) + beds.remove_spawns_at(pos) + beds.remove_spawns_at(other) + else + reverse = not reverse + end +end + +function beds.register_bed(name, def) + minetest.register_node(name .. "_bottom", { + description = def.description, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + drawtype = "nodebox", + tiles = def.tiles.bottom, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + stack_max = 1, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1}, + sounds = def.sounds or default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = def.nodebox.bottom, + }, + selection_box = { + type = "fixed", + fixed = def.selectionbox, + }, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + local pos + if udef and udef.buildable_to then + pos = under + else + pos = pointed_thing.above + end + + local player_name = placer and placer:get_player_name() or "" + + if minetest.is_protected(pos, player_name) and + not minetest.check_player_privs(player_name, "protection_bypass") then + minetest.record_protection_violation(pos, player_name) + return itemstack + end + + local node_def = minetest.registered_nodes[minetest.get_node(pos).name] + if not node_def or not node_def.buildable_to then + return itemstack + end + + local dir = placer and placer:get_look_dir() and + minetest.dir_to_facedir(placer:get_look_dir()) or 0 + local botpos = vector.add(pos, minetest.facedir_to_dir(dir)) + + if minetest.is_protected(botpos, player_name) and + not minetest.check_player_privs(player_name, "protection_bypass") then + minetest.record_protection_violation(botpos, player_name) + return itemstack + end + + local botdef = minetest.registered_nodes[minetest.get_node(botpos).name] + if not botdef or not botdef.buildable_to then + return itemstack + end + + minetest.set_node(pos, {name = name .. "_bottom", param2 = dir}) + minetest.set_node(botpos, {name = name .. "_top", param2 = dir}) + + if not minetest.is_creative_enabled(player_name) then + itemstack:take_item() + end + return itemstack + end, + + on_destruct = function(pos) + destruct_bed(pos, 1) + end, + + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + beds.on_rightclick(pos, clicker) + return itemstack + end, + + on_rotate = function(pos, node, user, _, new_param2) + local dir = minetest.facedir_to_dir(node.param2) + local p = vector.add(pos, dir) + local node2 = minetest.get_node_or_nil(p) + if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or + not node.param2 == node2.param2 then + return false + end + if minetest.is_protected(p, user:get_player_name()) then + minetest.record_protection_violation(p, user:get_player_name()) + return false + end + if new_param2 % 32 > 3 then + return false + end + local newp = vector.add(pos, minetest.facedir_to_dir(new_param2)) + local node3 = minetest.get_node_or_nil(newp) + local node_def = node3 and minetest.registered_nodes[node3.name] + if not node_def or not node_def.buildable_to then + return false + end + if minetest.is_protected(newp, user:get_player_name()) then + minetest.record_protection_violation(newp, user:get_player_name()) + return false + end + node.param2 = new_param2 + -- do not remove_node here - it will trigger destroy_bed() + minetest.set_node(p, {name = "air"}) + minetest.set_node(pos, node) + minetest.set_node(newp, {name = name .. "_top", param2 = new_param2}) + return true + end, + can_dig = function(pos, player) + return beds.can_dig(pos) + end, + }) + + minetest.register_node(name .. "_top", { + drawtype = "nodebox", + tiles = def.tiles.top, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + pointable = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2, + not_in_creative_inventory = 1}, + sounds = def.sounds or default.node_sound_wood_defaults(), + drop = name .. "_bottom", + node_box = { + type = "fixed", + fixed = def.nodebox.top, + }, + on_destruct = function(pos) + destruct_bed(pos, 2) + end, + can_dig = function(pos, player) + local node = minetest.get_node(pos) + local dir = minetest.facedir_to_dir(node.param2) + local p = vector.add(pos, dir) + return beds.can_dig(p) + end, + }) + + minetest.register_alias(name, name .. "_bottom") + + minetest.register_craft({ + output = name, + recipe = def.recipe + }) +end diff --git a/mods/beds/beds.lua b/mods/beds/beds.lua new file mode 100644 index 00000000..dc044a35 --- /dev/null +++ b/mods/beds/beds.lua @@ -0,0 +1,109 @@ +-- beds/beds.lua + +-- support for MT game translation. +local S = beds.get_translator + +-- Fancy shaped bed + +beds.register_bed("beds:fancy_bed", { + description = S("Fancy Bed"), + inventory_image = "beds_bed_fancy.png", + wield_image = "beds_bed_fancy.png", + tiles = { + bottom = { + "beds_bed_top1.png", + "beds_bed_under.png", + "beds_bed_side1.png", + "beds_bed_side1.png^[transformFX", + "beds_bed_foot.png", + "beds_bed_foot.png", + }, + top = { + "beds_bed_top2.png", + "beds_bed_under.png", + "beds_bed_side2.png", + "beds_bed_side2.png^[transformFX", + "beds_bed_head.png", + "beds_bed_head.png", + } + }, + nodebox = { + bottom = { + {-0.5, -0.5, -0.5, -0.375, -0.065, -0.4375}, + {0.375, -0.5, -0.5, 0.5, -0.065, -0.4375}, + {-0.5, -0.375, -0.5, 0.5, -0.125, -0.4375}, + {-0.5, -0.375, -0.5, -0.4375, -0.125, 0.5}, + {0.4375, -0.375, -0.5, 0.5, -0.125, 0.5}, + {-0.4375, -0.3125, -0.4375, 0.4375, -0.0625, 0.5}, + }, + top = { + {-0.5, -0.5, 0.4375, -0.375, 0.1875, 0.5}, + {0.375, -0.5, 0.4375, 0.5, 0.1875, 0.5}, + {-0.5, 0, 0.4375, 0.5, 0.125, 0.5}, + {-0.5, -0.375, 0.4375, 0.5, -0.125, 0.5}, + {-0.5, -0.375, -0.5, -0.4375, -0.125, 0.5}, + {0.4375, -0.375, -0.5, 0.5, -0.125, 0.5}, + {-0.4375, -0.3125, -0.5, 0.4375, -0.0625, 0.4375}, + } + }, + selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.06, 1.5}, + recipe = { + {"", "", "group:stick"}, + {"wool:white", "wool:white", "wool:white"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +-- Simple shaped bed + +beds.register_bed("beds:bed", { + description = S("Simple Bed"), + inventory_image = "beds_bed.png", + wield_image = "beds_bed.png", + tiles = { + bottom = { + "beds_bed_top_bottom.png^[transformR90", + "beds_bed_under.png", + "beds_bed_side_bottom_r.png", + "beds_bed_side_bottom_r.png^[transformfx", + "beds_transparent.png", + "beds_bed_side_bottom.png" + }, + top = { + "beds_bed_top_top.png^[transformR90", + "beds_bed_under.png", + "beds_bed_side_top_r.png", + "beds_bed_side_top_r.png^[transformfx", + "beds_bed_side_top.png", + "beds_transparent.png", + } + }, + nodebox = { + bottom = {-0.5, -0.5, -0.5, 0.5, 0.0625, 0.5}, + top = {-0.5, -0.5, -0.5, 0.5, 0.0625, 0.5}, + }, + selectionbox = {-0.5, -0.5, -0.5, 0.5, 0.0625, 1.5}, + recipe = { + {"wool:white", "wool:white", "wool:white"}, + {"group:wood", "group:wood", "group:wood"} + }, +}) + +-- Aliases for PilzAdam's beds mod + +minetest.register_alias("beds:bed_bottom_red", "beds:bed_bottom") +minetest.register_alias("beds:bed_top_red", "beds:bed_top") + +-- Fuel + +minetest.register_craft({ + type = "fuel", + recipe = "beds:fancy_bed_bottom", + burntime = 13, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "beds:bed_bottom", + burntime = 12, +}) diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua new file mode 100644 index 00000000..f0ddae7a --- /dev/null +++ b/mods/beds/functions.lua @@ -0,0 +1,297 @@ +local pi = math.pi +local is_sp = minetest.is_singleplayer() +local enable_respawn = minetest.settings:get_bool("enable_bed_respawn") +if enable_respawn == nil then + enable_respawn = true +end + +-- support for MT game translation. +local S = beds.get_translator + +-- Helper functions + +local function get_look_yaw(pos) + local rotation = minetest.get_node(pos).param2 + if rotation > 3 then + rotation = rotation % 4 -- Mask colorfacedir values + end + if rotation == 1 then + return pi / 2, rotation + elseif rotation == 3 then + return -pi / 2, rotation + elseif rotation == 0 then + return pi, rotation + else + return 0, rotation + end +end + +local function is_night_skip_enabled() + local enable_night_skip = minetest.settings:get_bool("enable_bed_night_skip") + if enable_night_skip == nil then + enable_night_skip = true + end + return enable_night_skip +end + +local function check_in_beds(players) + local in_bed = beds.player + if not players then + players = minetest.get_connected_players() + end + + for n, player in ipairs(players) do + local name = player:get_player_name() + if not in_bed[name] then + return false + end + end + + return #players > 0 +end + +local function lay_down(player, pos, bed_pos, state, skip) + local name = player:get_player_name() + local hud_flags = player:hud_get_flags() + + if not player or not name then + return + end + + -- stand up + if state ~= nil and not state then + if not beds.player[name] then + -- player not in bed, do nothing + return false + end + beds.bed_position[name] = nil + -- skip here to prevent sending player specific changes (used for leaving players) + if skip then + return + end + player:set_pos(beds.pos[name]) + + -- physics, eye_offset, etc + local physics_override = beds.player[name].physics_override + beds.player[name] = nil + player:set_physics_override({ + speed = physics_override.speed, + jump = physics_override.jump, + gravity = physics_override.gravity + }) + player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + player:set_look_horizontal(math.random(1, 180) / 100) + player_api.player_attached[name] = false + hud_flags.wielditem = true + player_api.set_animation(player, "stand" , 30) + + -- lay down + else + + -- Check if bed is occupied + for _, other_pos in pairs(beds.bed_position) do + if vector.distance(bed_pos, other_pos) < 0.1 then + minetest.chat_send_player(name, S("This bed is already occupied!")) + return false + end + end + + -- Check if player is moving + if vector.length(player:get_velocity()) > 0.001 then + minetest.chat_send_player(name, S("You have to stop moving before going to bed!")) + return false + end + + if beds.player[name] then + -- player already in bed, do nothing + return false + end + + beds.pos[name] = pos + beds.bed_position[name] = bed_pos + beds.player[name] = {physics_override = player:get_physics_override()} + + -- physics, eye_offset, etc + player:set_eye_offset({x = 0, y = -13, z = 0}, {x = 0, y = 0, z = 0}) + local yaw, param2 = get_look_yaw(bed_pos) + player:set_look_horizontal(yaw) + local dir = minetest.facedir_to_dir(param2) + -- p.y is just above the nodebox height of the 'Simple Bed' (the highest bed), + -- to avoid sinking down through the bed. + local p = { + x = bed_pos.x + dir.x / 2, + y = bed_pos.y + 0.07, + z = bed_pos.z + dir.z / 2 + } + player:set_physics_override({speed = 0, jump = 0, gravity = 0}) + player:set_pos(p) + player_api.player_attached[name] = true + hud_flags.wielditem = false + player_api.set_animation(player, "lay" , 0) + end + + player:hud_set_flags(hud_flags) +end + +local function get_player_in_bed_count() + local c = 0 + for _, _ in pairs(beds.player) do + c = c + 1 + end + return c +end + +local function update_formspecs(finished) + local ges = #minetest.get_connected_players() + local player_in_bed = get_player_in_bed_count() + local is_majority = (ges / 2) < player_in_bed + + local form_n + local esc = minetest.formspec_escape + if finished then + form_n = beds.formspec .. "label[2.7,9;" .. esc(S("Good morning.")) .. "]" + else + form_n = beds.formspec .. "label[2.2,9;" .. + esc(S("@1 of @2 players are in bed", player_in_bed, ges)) .. "]" + if is_majority and is_night_skip_enabled() then + form_n = form_n .. "button_exit[2,6;4,0.75;force;" .. + esc(S("Force night skip")) .. "]" + end + end + + for name,_ in pairs(beds.player) do + minetest.show_formspec(name, "beds_form", form_n) + end +end + + +-- Public functions + +function beds.kick_players() + for name, _ in pairs(beds.player) do + local player = minetest.get_player_by_name(name) + lay_down(player, nil, nil, false) + end +end + +function beds.skip_night() + minetest.set_timeofday(0.23) +end + +function beds.on_rightclick(pos, player) + local name = player:get_player_name() + local ppos = player:get_pos() + local tod = minetest.get_timeofday() + + if tod > 0.2 and tod < 0.805 then + if beds.player[name] then + lay_down(player, nil, nil, false) + end + minetest.chat_send_player(name, S("You can only sleep at night.")) + return + end + + -- move to bed + if not beds.player[name] then + lay_down(player, ppos, pos) + beds.set_spawns() -- save respawn positions when entering bed + else + lay_down(player, nil, nil, false) + end + + if not is_sp then + update_formspecs(false) + end + + -- skip the night and let all players stand up + if check_in_beds() then + minetest.after(2, function() + if not is_sp then + update_formspecs(is_night_skip_enabled()) + end + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end) + end +end + +function beds.can_dig(bed_pos) + -- Check all players in bed which one is at the expected position + for _, player_bed_pos in pairs(beds.bed_position) do + if vector.equals(bed_pos, player_bed_pos) then + return false + end + end + return true +end + +-- Callbacks +-- Only register respawn callback if respawn enabled +if enable_respawn then + -- respawn player at bed if enabled and valid position is found + minetest.register_on_respawnplayer(function(player) + local name = player:get_player_name() + local pos = beds.spawn[name] + if pos then + player:set_pos(pos) + return true + end + end) +end + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + lay_down(player, nil, nil, false, true) + beds.player[name] = nil + if check_in_beds() then + minetest.after(2, function() + update_formspecs(is_night_skip_enabled()) + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end) + end +end) + +minetest.register_on_dieplayer(function(player) + local name = player:get_player_name() + local in_bed = beds.player + local pos = player:get_pos() + local yaw = get_look_yaw(pos) + + if in_bed[name] then + lay_down(player, nil, pos, false) + player:set_look_horizontal(yaw) + player:set_pos(pos) + end +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "beds_form" then + return + end + + -- Because "Force night skip" button is a button_exit, it will set fields.quit + -- and lay_down call will change value of player_in_bed, so it must be taken + -- earlier. + local last_player_in_bed = get_player_in_bed_count() + + if fields.quit or fields.leave then + lay_down(player, nil, nil, false) + update_formspecs(false) + end + + if fields.force then + local is_majority = (#minetest.get_connected_players() / 2) < last_player_in_bed + if is_majority and is_night_skip_enabled() then + update_formspecs(true) + beds.skip_night() + beds.kick_players() + else + update_formspecs(false) + end + end +end) diff --git a/mods/beds/init.lua b/mods/beds/init.lua new file mode 100644 index 00000000..a1a46ce9 --- /dev/null +++ b/mods/beds/init.lua @@ -0,0 +1,26 @@ +-- beds/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("beds") +local esc = minetest.formspec_escape + +beds = {} +beds.player = {} +beds.bed_position = {} +beds.pos = {} +beds.spawn = {} +beds.get_translator = S + +beds.formspec = "size[8,11;true]" .. + "no_prepend[]" .. + "bgcolor[#080808BB;true]" .. + "button_exit[2,10;4,0.75;leave;" .. esc(S("Leave Bed")) .. "]" + +local modpath = minetest.get_modpath("beds") + +-- Load files + +dofile(modpath .. "/functions.lua") +dofile(modpath .. "/api.lua") +dofile(modpath .. "/beds.lua") +dofile(modpath .. "/spawns.lua") diff --git a/mods/beds/license.txt b/mods/beds/license.txt new file mode 100644 index 00000000..f3c517f9 --- /dev/null +++ b/mods/beds/license.txt @@ -0,0 +1,61 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2018 TumeniNodes + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/beds/locale/beds.de.tr b/mods/beds/locale/beds.de.tr new file mode 100644 index 00000000..3f2c959e --- /dev/null +++ b/mods/beds/locale/beds.de.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Schickes Bett +Simple Bed=Schlichtes Bett +This bed is already occupied!=Dieses Bett ist bereits belegt! +You have to stop moving before going to bed!=Sie müssen stehen bleiben, bevor Sie zu Bett gehen können! +Good morning.=Guten Morgen. +@1 of @2 players are in bed=@1 von @2 Spielern sind im Bett +Force night skip=Überspringen der Nacht erzwingen +You can only sleep at night.=Sie können nur nachts schlafen. +Leave Bed=Bett verlassen diff --git a/mods/beds/locale/beds.es.tr b/mods/beds/locale/beds.es.tr new file mode 100644 index 00000000..8ef0db73 --- /dev/null +++ b/mods/beds/locale/beds.es.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Cama de lujo +Simple Bed=Cama sencilla +This bed is already occupied!=Esta cama esta ocupada +You have to stop moving before going to bed!=Deja de moverte o no podras acostarte +Good morning.=Buenos días. +@1 of @2 players are in bed=@1 de @2 jugadores están durmiendo +Force night skip=Forzar hacer de dia +You can only sleep at night.=Sólo puedes dormir por la noche. +Leave Bed=Levantarse diff --git a/mods/beds/locale/beds.fr.tr b/mods/beds/locale/beds.fr.tr new file mode 100644 index 00000000..e1f8e560 --- /dev/null +++ b/mods/beds/locale/beds.fr.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Lit chic +Simple Bed=Lit simple +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=Bonjour. +@1 of @2 players are in bed=@1 joueur(s) sur @2 sont au lit +Force night skip=Forcer le passage de la nuit +You can only sleep at night.=Vous ne pouvez dormir que la nuit. +Leave Bed=Se lever du lit diff --git a/mods/beds/locale/beds.id.tr b/mods/beds/locale/beds.id.tr new file mode 100644 index 00000000..7bcbb5df --- /dev/null +++ b/mods/beds/locale/beds.id.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Ranjang Mewah +Simple Bed=Ranjang Sederhana +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=Selamat pagi. +@1 of @2 players are in bed=@1 dari @2 pemain sedang tidur +Force night skip=Paksa lewati malam +You can only sleep at night.=Anda hanya dapat tidur pada waktu malam. +Leave Bed=Tinggalkan Ranjang diff --git a/mods/beds/locale/beds.it.tr b/mods/beds/locale/beds.it.tr new file mode 100644 index 00000000..8f4e14ea --- /dev/null +++ b/mods/beds/locale/beds.it.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Letto decorato +Simple Bed=Letto semplice +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.= +@1 of @2 players are in bed= +Force night skip= +You can only sleep at night.= +Leave Bed=Alzati dal letto diff --git a/mods/beds/locale/beds.jbo.tr b/mods/beds/locale/beds.jbo.tr new file mode 100644 index 00000000..a72f686c --- /dev/null +++ b/mods/beds/locale/beds.jbo.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=lo selja'i ckana +Simple Bed=lo sampu ckana +This bed is already occupied!=.i lo ti ckana cu canlu +You have to stop moving before going to bed!=lo nu do cando cu sarcu lo nu do sipna +Good morning.=.i .uise'inai cerni +@1 of @2 players are in bed=.i @1 cmima be lu'i @2 le pilno cu vreta lo ckana +Force night skip=bapli le nu co'u nicte +You can only sleep at night.=.i steci le ka nicte kei fa le ka do kakne le ka sipna ca pa ckaji be ce'u +Leave Bed=cliva lo ckana diff --git a/mods/beds/locale/beds.ms.tr b/mods/beds/locale/beds.ms.tr new file mode 100644 index 00000000..4d4310a9 --- /dev/null +++ b/mods/beds/locale/beds.ms.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Katil Beragam +Simple Bed=Katil Biasa +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=Selamat pagi. +@1 of @2 players are in bed=@1 daripada @2 pemain sedang tidur +Force night skip=Paksa langkau malam +You can only sleep at night.=Anda hanya boleh tidur pada waktu malam. +Leave Bed=Bangun diff --git a/mods/beds/locale/beds.pt_BR.tr b/mods/beds/locale/beds.pt_BR.tr new file mode 100644 index 00000000..47fb1b93 --- /dev/null +++ b/mods/beds/locale/beds.pt_BR.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Cama Bonita +Simple Bed=Cama Simples +This bed is already occupied!=Esta cama já está ocupada! +You have to stop moving before going to bed!=Você precisa parar de se mover antes de ir para cama! +Good morning.=Bom dia. +@1 of @2 players are in bed=@1 de @2 jogadores estão na cama +Force night skip=Forçar o amanhecer +You can only sleep at night.=Você só pode dormir à noite +Leave Bed=Sair da Cama diff --git a/mods/beds/locale/beds.ru.tr b/mods/beds/locale/beds.ru.tr new file mode 100644 index 00000000..ac5bd2ee --- /dev/null +++ b/mods/beds/locale/beds.ru.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Детализированная Кровать +Simple Bed=Обычная Кровать +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=Доброе утро. +@1 of @2 players are in bed=@1 из @2 игроков в кровати +Force night skip=Пропустить ночь +You can only sleep at night.=Вы можете спать только ночью. +Leave Bed=Встать с кровати diff --git a/mods/beds/locale/beds.se.tr b/mods/beds/locale/beds.se.tr new file mode 100644 index 00000000..b4d52ba0 --- /dev/null +++ b/mods/beds/locale/beds.se.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Fin säng +Simple Bed=Enkel Säng +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.= God morgon. +@1 of @2 players are in bed=@1 av @2 spelar försöker sover. +Force night skip=Tvinga över natten +You can only sleep at night.=Du kan bara sova på natten. +Leave Bed=Lämna Säng diff --git a/mods/beds/locale/beds.sk.tr b/mods/beds/locale/beds.sk.tr new file mode 100644 index 00000000..37f39ddf --- /dev/null +++ b/mods/beds/locale/beds.sk.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=Pekná posteľ +Simple Bed=Jednoduchá posteľ +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=Dobré ráno. +@1 of @2 players are in bed=@1 z @2 hráčov sú v posteli +Force night skip=Nútene preskočiť noc +You can only sleep at night.=Môžeš spať len v noci. +Leave Bed=Opusti posteľ diff --git a/mods/beds/locale/beds.zh_CN.tr b/mods/beds/locale/beds.zh_CN.tr new file mode 100644 index 00000000..6a06e09f --- /dev/null +++ b/mods/beds/locale/beds.zh_CN.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=花式床 +Simple Bed=简易床 +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=早安! +@1 of @2 players are in bed=@2位玩家中的@1位在床上 +Force night skip=强制跳过夜晚 +You can only sleep at night.=你只能在晚上睡觉。 +Leave Bed=离开床 diff --git a/mods/beds/locale/beds.zh_TW.tr b/mods/beds/locale/beds.zh_TW.tr new file mode 100644 index 00000000..b19b4814 --- /dev/null +++ b/mods/beds/locale/beds.zh_TW.tr @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed=花式床 +Simple Bed=簡易床 +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.=早安! +@1 of @2 players are in bed=@2位玩家中的@1位在床上 +Force night skip=強制跳過夜晚 +You can only sleep at night.=你只能在晚上睡覺。 +Leave Bed=離開床 diff --git a/mods/beds/locale/template.txt b/mods/beds/locale/template.txt new file mode 100644 index 00000000..a965787b --- /dev/null +++ b/mods/beds/locale/template.txt @@ -0,0 +1,10 @@ +# textdomain: beds +Fancy Bed= +Simple Bed= +This bed is already occupied!= +You have to stop moving before going to bed!= +Good morning.= +@1 of @2 players are in bed= +Force night skip= +You can only sleep at night.= +Leave Bed= diff --git a/mods/beds/mod.conf b/mods/beds/mod.conf new file mode 100644 index 00000000..450ec138 --- /dev/null +++ b/mods/beds/mod.conf @@ -0,0 +1,3 @@ +name = beds +description = Minetest Game mod: beds +depends = default, wool diff --git a/mods/beds/spawns.lua b/mods/beds/spawns.lua new file mode 100644 index 00000000..1a2ce810 --- /dev/null +++ b/mods/beds/spawns.lua @@ -0,0 +1,72 @@ +local world_path = minetest.get_worldpath() +local org_file = world_path .. "/beds_spawns" +local file = world_path .. "/beds_spawns" +local bkwd = false + +-- check for PA's beds mod spawns +local cf = io.open(world_path .. "/beds_player_spawns", "r") +if cf ~= nil then + io.close(cf) + file = world_path .. "/beds_player_spawns" + bkwd = true +end + +function beds.read_spawns() + local spawns = beds.spawn + local input = io.open(file, "r") + if input and not bkwd then + repeat + local x = input:read("*n") + if x == nil then + break + end + local y = input:read("*n") + local z = input:read("*n") + local name = input:read("*l") + spawns[name:sub(2)] = {x = x, y = y, z = z} + until input:read(0) == nil + io.close(input) + elseif input and bkwd then + beds.spawn = minetest.deserialize(input:read("*all")) + input:close() + beds.save_spawns() + os.rename(file, file .. ".backup") + file = org_file + end +end + +beds.read_spawns() + +function beds.save_spawns() + if not beds.spawn then + return + end + local data = {} + local output = io.open(org_file, "w") + for k, v in pairs(beds.spawn) do + table.insert(data, string.format("%.1f %.1f %.1f %s\n", v.x, v.y, v.z, k)) + end + output:write(table.concat(data)) + io.close(output) +end + +function beds.set_spawns() + for name,_ in pairs(beds.player) do + local player = minetest.get_player_by_name(name) + local p = player:get_pos() + -- but don't change spawn location if borrowing a bed + if not minetest.is_protected(p, name) then + beds.spawn[name] = p + end + end + beds.save_spawns() +end + +function beds.remove_spawns_at(pos) + for name, p in pairs(beds.spawn) do + if vector.equals(vector.round(p), pos) then + beds.spawn[name] = nil + end + end + beds.save_spawns() +end diff --git a/mods/beds/textures/beds_bed.png b/mods/beds/textures/beds_bed.png new file mode 100644 index 00000000..d4b02e77 Binary files /dev/null and b/mods/beds/textures/beds_bed.png differ diff --git a/mods/beds/textures/beds_bed_fancy.png b/mods/beds/textures/beds_bed_fancy.png new file mode 100644 index 00000000..1c9fde9a Binary files /dev/null and b/mods/beds/textures/beds_bed_fancy.png differ diff --git a/mods/beds/textures/beds_bed_foot.png b/mods/beds/textures/beds_bed_foot.png new file mode 100644 index 00000000..af510bb6 Binary files /dev/null and b/mods/beds/textures/beds_bed_foot.png differ diff --git a/mods/beds/textures/beds_bed_head.png b/mods/beds/textures/beds_bed_head.png new file mode 100644 index 00000000..b98b1104 Binary files /dev/null and b/mods/beds/textures/beds_bed_head.png differ diff --git a/mods/beds/textures/beds_bed_side1.png b/mods/beds/textures/beds_bed_side1.png new file mode 100644 index 00000000..8ded54fd Binary files /dev/null and b/mods/beds/textures/beds_bed_side1.png differ diff --git a/mods/beds/textures/beds_bed_side2.png b/mods/beds/textures/beds_bed_side2.png new file mode 100644 index 00000000..a6bdb99d Binary files /dev/null and b/mods/beds/textures/beds_bed_side2.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom.png b/mods/beds/textures/beds_bed_side_bottom.png new file mode 100644 index 00000000..ed80f752 Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom.png differ diff --git a/mods/beds/textures/beds_bed_side_bottom_r.png b/mods/beds/textures/beds_bed_side_bottom_r.png new file mode 100644 index 00000000..2d86532d Binary files /dev/null and b/mods/beds/textures/beds_bed_side_bottom_r.png differ diff --git a/mods/beds/textures/beds_bed_side_top.png b/mods/beds/textures/beds_bed_side_top.png new file mode 100644 index 00000000..04b2ba1e Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top.png differ diff --git a/mods/beds/textures/beds_bed_side_top_r.png b/mods/beds/textures/beds_bed_side_top_r.png new file mode 100644 index 00000000..c3c07b1b Binary files /dev/null and b/mods/beds/textures/beds_bed_side_top_r.png differ diff --git a/mods/beds/textures/beds_bed_top1.png b/mods/beds/textures/beds_bed_top1.png new file mode 100644 index 00000000..2b3ae8dc Binary files /dev/null and b/mods/beds/textures/beds_bed_top1.png differ diff --git a/mods/beds/textures/beds_bed_top2.png b/mods/beds/textures/beds_bed_top2.png new file mode 100644 index 00000000..b80353cb Binary files /dev/null and b/mods/beds/textures/beds_bed_top2.png differ diff --git a/mods/beds/textures/beds_bed_top_bottom.png b/mods/beds/textures/beds_bed_top_bottom.png new file mode 100644 index 00000000..43dcc649 Binary files /dev/null and b/mods/beds/textures/beds_bed_top_bottom.png differ diff --git a/mods/beds/textures/beds_bed_top_top.png b/mods/beds/textures/beds_bed_top_top.png new file mode 100644 index 00000000..9b3d08fa Binary files /dev/null and b/mods/beds/textures/beds_bed_top_top.png differ diff --git a/mods/beds/textures/beds_bed_under.png b/mods/beds/textures/beds_bed_under.png new file mode 100644 index 00000000..1a67367d Binary files /dev/null and b/mods/beds/textures/beds_bed_under.png differ diff --git a/mods/beds/textures/beds_transparent.png b/mods/beds/textures/beds_transparent.png new file mode 100644 index 00000000..bd36820b Binary files /dev/null and b/mods/beds/textures/beds_transparent.png differ diff --git a/bees/depends.txt b/mods/bees/depends.txt similarity index 100% rename from bees/depends.txt rename to mods/bees/depends.txt diff --git a/bees/description.txt b/mods/bees/description.txt similarity index 100% rename from bees/description.txt rename to mods/bees/description.txt diff --git a/bees/init.lua b/mods/bees/init.lua similarity index 100% rename from bees/init.lua rename to mods/bees/init.lua diff --git a/bees/license.txt b/mods/bees/license.txt similarity index 100% rename from bees/license.txt rename to mods/bees/license.txt diff --git a/bees/locale/template.txt b/mods/bees/locale/template.txt similarity index 100% rename from bees/locale/template.txt rename to mods/bees/locale/template.txt diff --git a/bees/mod.conf b/mods/bees/mod.conf similarity index 100% rename from bees/mod.conf rename to mods/bees/mod.conf diff --git a/bees/readme.txt b/mods/bees/readme.txt similarity index 100% rename from bees/readme.txt rename to mods/bees/readme.txt diff --git a/bees/screenshot.png b/mods/bees/screenshot.png similarity index 100% rename from bees/screenshot.png rename to mods/bees/screenshot.png diff --git a/bees/sounds/bees.1.ogg b/mods/bees/sounds/bees.1.ogg similarity index 100% rename from bees/sounds/bees.1.ogg rename to mods/bees/sounds/bees.1.ogg diff --git a/bees/sounds/bees.2.ogg b/mods/bees/sounds/bees.2.ogg similarity index 100% rename from bees/sounds/bees.2.ogg rename to mods/bees/sounds/bees.2.ogg diff --git a/bees/sounds/bees.3.ogg b/mods/bees/sounds/bees.3.ogg similarity index 100% rename from bees/sounds/bees.3.ogg rename to mods/bees/sounds/bees.3.ogg diff --git a/bees/textures/bees_bottle_honey.png b/mods/bees/textures/bees_bottle_honey.png similarity index 100% rename from bees/textures/bees_bottle_honey.png rename to mods/bees/textures/bees_bottle_honey.png diff --git a/bees/textures/bees_comb.png b/mods/bees/textures/bees_comb.png similarity index 100% rename from bees/textures/bees_comb.png rename to mods/bees/textures/bees_comb.png diff --git a/bees/textures/bees_extractor.png b/mods/bees/textures/bees_extractor.png similarity index 100% rename from bees/textures/bees_extractor.png rename to mods/bees/textures/bees_extractor.png diff --git a/bees/textures/bees_extractor_front.png b/mods/bees/textures/bees_extractor_front.png similarity index 100% rename from bees/textures/bees_extractor_front.png rename to mods/bees/textures/bees_extractor_front.png diff --git a/bees/textures/bees_frame_empty.png b/mods/bees/textures/bees_frame_empty.png similarity index 100% rename from bees/textures/bees_frame_empty.png rename to mods/bees/textures/bees_frame_empty.png diff --git a/bees/textures/bees_frame_full.png b/mods/bees/textures/bees_frame_full.png similarity index 100% rename from bees/textures/bees_frame_full.png rename to mods/bees/textures/bees_frame_full.png diff --git a/bees/textures/bees_grafting_tool.png b/mods/bees/textures/bees_grafting_tool.png similarity index 100% rename from bees/textures/bees_grafting_tool.png rename to mods/bees/textures/bees_grafting_tool.png diff --git a/bees/textures/bees_hive_artificial.png b/mods/bees/textures/bees_hive_artificial.png similarity index 100% rename from bees/textures/bees_hive_artificial.png rename to mods/bees/textures/bees_hive_artificial.png diff --git a/bees/textures/bees_hive_industrial.png b/mods/bees/textures/bees_hive_industrial.png similarity index 100% rename from bees/textures/bees_hive_industrial.png rename to mods/bees/textures/bees_hive_industrial.png diff --git a/bees/textures/bees_hive_wild.png b/mods/bees/textures/bees_hive_wild.png similarity index 100% rename from bees/textures/bees_hive_wild.png rename to mods/bees/textures/bees_hive_wild.png diff --git a/bees/textures/bees_hive_wild_bottom.png b/mods/bees/textures/bees_hive_wild_bottom.png similarity index 100% rename from bees/textures/bees_hive_wild_bottom.png rename to mods/bees/textures/bees_hive_wild_bottom.png diff --git a/bees/textures/bees_hive_wild_s.png b/mods/bees/textures/bees_hive_wild_s.png similarity index 100% rename from bees/textures/bees_hive_wild_s.png rename to mods/bees/textures/bees_hive_wild_s.png diff --git a/bees/textures/bees_particle_bee.png b/mods/bees/textures/bees_particle_bee.png similarity index 100% rename from bees/textures/bees_particle_bee.png rename to mods/bees/textures/bees_particle_bee.png diff --git a/bees/textures/bees_particle_bee_r.png b/mods/bees/textures/bees_particle_bee_r.png similarity index 100% rename from bees/textures/bees_particle_bee_r.png rename to mods/bees/textures/bees_particle_bee_r.png diff --git a/bees/textures/bees_smoke_particle.png b/mods/bees/textures/bees_smoke_particle.png similarity index 100% rename from bees/textures/bees_smoke_particle.png rename to mods/bees/textures/bees_smoke_particle.png diff --git a/bees/textures/bees_smoker.png b/mods/bees/textures/bees_smoker.png similarity index 100% rename from bees/textures/bees_smoker.png rename to mods/bees/textures/bees_smoker.png diff --git a/bees/textures/bees_strip.png b/mods/bees/textures/bees_strip.png similarity index 100% rename from bees/textures/bees_strip.png rename to mods/bees/textures/bees_strip.png diff --git a/bees/textures/bees_wax.png b/mods/bees/textures/bees_wax.png similarity index 100% rename from bees/textures/bees_wax.png rename to mods/bees/textures/bees_wax.png diff --git a/bees/textures/bees_wax_particle.png b/mods/bees/textures/bees_wax_particle.png similarity index 100% rename from bees/textures/bees_wax_particle.png rename to mods/bees/textures/bees_wax_particle.png diff --git a/mods/binoculars/README.txt b/mods/binoculars/README.txt new file mode 100644 index 00000000..0c65f6ea --- /dev/null +++ b/mods/binoculars/README.txt @@ -0,0 +1,37 @@ +Minetest Game mod: binoculars +============================= +See license.txt for license information. + +Authors of source code +---------------------- +paramat (MIT) + +Authors of media (textures) +--------------------------- +paramat (CC BY-SA 3.0): + binoculars_binoculars.png + +Crafting +-------- +binoculars:binoculars + +default:obsidian_glass O +default:bronze_ingot B + +O_O +BBB +O_O + +Usage +----- +In survival mode, use of zoom requires the binoculars item in your inventory, +they will allow a 10 degree field of view. +It can take up to 5 seconds for adding to or removal from inventory to have an +effect, however to instantly allow the use of this zoom 'use' (leftclick) the +item. + +Zoom with a field of view of 15 degrees is automatically allowed in creative +mode and for any player with the 'creative' privilege. + +The 'binoculars.update_player_property()' function is global so can be +redefined by a mod for alternative behaviour. diff --git a/mods/binoculars/init.lua b/mods/binoculars/init.lua new file mode 100644 index 00000000..152bf3d3 --- /dev/null +++ b/mods/binoculars/init.lua @@ -0,0 +1,72 @@ +-- binoculars/init.lua + +-- Mod global namespace + +binoculars = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("binoculars") + + +-- Update player property +-- Global to allow overriding + +function binoculars.update_player_property(player) + local new_zoom_fov = 0 + + if player:get_inventory():contains_item( + "main", "binoculars:binoculars") then + new_zoom_fov = 10 + elseif minetest.is_creative_enabled(player:get_player_name()) then + new_zoom_fov = 15 + end + + -- Only set property if necessary to avoid player mesh reload + if player:get_properties().zoom_fov ~= new_zoom_fov then + player:set_properties({zoom_fov = new_zoom_fov}) + end +end + + +-- Set player property 'on joinplayer' + +minetest.register_on_joinplayer(function(player) + binoculars.update_player_property(player) +end) + + +-- Cyclic update of player property + +local function cyclic_update() + for _, player in ipairs(minetest.get_connected_players()) do + binoculars.update_player_property(player) + end + minetest.after(4.7, cyclic_update) +end + +minetest.after(4.7, cyclic_update) + + +-- Binoculars item + +minetest.register_craftitem("binoculars:binoculars", { + description = S("Binoculars") .. "\n" .. S("Use with 'Zoom' key"), + inventory_image = "binoculars_binoculars.png", + stack_max = 1, + + on_use = function(itemstack, user, pointed_thing) + binoculars.update_player_property(user) + end, +}) + + +-- Crafting + +minetest.register_craft({ + output = "binoculars:binoculars", + recipe = { + {"default:obsidian_glass", "", "default:obsidian_glass"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:obsidian_glass", "", "default:obsidian_glass"}, + } +}) diff --git a/mods/binoculars/license.txt b/mods/binoculars/license.txt new file mode 100644 index 00000000..f3aefda1 --- /dev/null +++ b/mods/binoculars/license.txt @@ -0,0 +1,59 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2017 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2017 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/binoculars/locale/binoculars.de.tr b/mods/binoculars/locale/binoculars.de.tr new file mode 100644 index 00000000..7bd9b9d5 --- /dev/null +++ b/mods/binoculars/locale/binoculars.de.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Fernglas +Use with 'Zoom' key=Mit „Zoom“-Taste benutzen diff --git a/mods/binoculars/locale/binoculars.es.tr b/mods/binoculars/locale/binoculars.es.tr new file mode 100644 index 00000000..7b7e77d7 --- /dev/null +++ b/mods/binoculars/locale/binoculars.es.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Prismáticos +Use with 'Zoom' key=Usar con la tecla 'Zoom' diff --git a/mods/binoculars/locale/binoculars.fr.tr b/mods/binoculars/locale/binoculars.fr.tr new file mode 100644 index 00000000..3f8b0bc8 --- /dev/null +++ b/mods/binoculars/locale/binoculars.fr.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Jumelles +Use with 'Zoom' key=Utiliser avec le bouton « Zoom » diff --git a/mods/binoculars/locale/binoculars.id.tr b/mods/binoculars/locale/binoculars.id.tr new file mode 100644 index 00000000..9a340443 --- /dev/null +++ b/mods/binoculars/locale/binoculars.id.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Teropong +Use with 'Zoom' key=Pakai dengan tombol 'Zoom' diff --git a/mods/binoculars/locale/binoculars.it.tr b/mods/binoculars/locale/binoculars.it.tr new file mode 100644 index 00000000..97c7b860 --- /dev/null +++ b/mods/binoculars/locale/binoculars.it.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Binocolo +Use with 'Zoom' key=Usalo col tasto 'Ingrandimento' diff --git a/mods/binoculars/locale/binoculars.jbo.tr b/mods/binoculars/locale/binoculars.jbo.tr new file mode 100644 index 00000000..e1465696 --- /dev/null +++ b/mods/binoculars/locale/binoculars.jbo.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=lo reldarvistci +Use with 'Zoom' key=.i tu'a le jvinu banro batke cu tadji lo nu pilno diff --git a/mods/binoculars/locale/binoculars.ms.tr b/mods/binoculars/locale/binoculars.ms.tr new file mode 100644 index 00000000..d38e64fd --- /dev/null +++ b/mods/binoculars/locale/binoculars.ms.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Binokular +Use with 'Zoom' key=Guna dengan kekunci 'Zum' diff --git a/mods/binoculars/locale/binoculars.pt_BR.tr b/mods/binoculars/locale/binoculars.pt_BR.tr new file mode 100644 index 00000000..4aabfeff --- /dev/null +++ b/mods/binoculars/locale/binoculars.pt_BR.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Binóculos +Use with 'Zoom' key=Use com a tecla de 'Zoom' diff --git a/mods/binoculars/locale/binoculars.ru.tr b/mods/binoculars/locale/binoculars.ru.tr new file mode 100644 index 00000000..6b3aa9e8 --- /dev/null +++ b/mods/binoculars/locale/binoculars.ru.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Бинокль +Use with 'Zoom' key=Используется с привилегией 'Zoom' diff --git a/mods/binoculars/locale/binoculars.se.tr b/mods/binoculars/locale/binoculars.se.tr new file mode 100644 index 00000000..90326720 --- /dev/null +++ b/mods/binoculars/locale/binoculars.se.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Kikare +Use with 'Zoom' key=Används med 'Zoom' knappen diff --git a/mods/binoculars/locale/binoculars.sk.tr b/mods/binoculars/locale/binoculars.sk.tr new file mode 100644 index 00000000..50083113 --- /dev/null +++ b/mods/binoculars/locale/binoculars.sk.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Ďalekohľad +Use with 'Zoom' key=Použi s klávesou "Priblíž" diff --git a/mods/binoculars/locale/binoculars.zh_CN.tr b/mods/binoculars/locale/binoculars.zh_CN.tr new file mode 100644 index 00000000..ec46cf8d --- /dev/null +++ b/mods/binoculars/locale/binoculars.zh_CN.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=望远镜 +Use with 'Zoom' key=与“缩放”键一起使用 diff --git a/mods/binoculars/locale/binoculars.zh_TW.tr b/mods/binoculars/locale/binoculars.zh_TW.tr new file mode 100644 index 00000000..bbe3b390 --- /dev/null +++ b/mods/binoculars/locale/binoculars.zh_TW.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=望遠鏡 +Use with 'Zoom' key=與“縮放”鍵一起使用 diff --git a/mods/binoculars/locale/template.txt b/mods/binoculars/locale/template.txt new file mode 100644 index 00000000..a5264627 --- /dev/null +++ b/mods/binoculars/locale/template.txt @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars= +Use with 'Zoom' key= diff --git a/mods/binoculars/mod.conf b/mods/binoculars/mod.conf new file mode 100644 index 00000000..4a64ce52 --- /dev/null +++ b/mods/binoculars/mod.conf @@ -0,0 +1,3 @@ +name = binoculars +description = Minetest Game mod: binoculars +depends = default diff --git a/mods/binoculars/textures/binoculars_binoculars.png b/mods/binoculars/textures/binoculars_binoculars.png new file mode 100644 index 00000000..5803d48f Binary files /dev/null and b/mods/binoculars/textures/binoculars_binoculars.png differ diff --git a/biome_lib/API.txt b/mods/biome_lib/API.txt similarity index 100% rename from biome_lib/API.txt rename to mods/biome_lib/API.txt diff --git a/biome_lib/LICENSE b/mods/biome_lib/LICENSE similarity index 100% rename from biome_lib/LICENSE rename to mods/biome_lib/LICENSE diff --git a/biome_lib/README.md b/mods/biome_lib/README.md similarity index 100% rename from biome_lib/README.md rename to mods/biome_lib/README.md diff --git a/biome_lib/depends.txt b/mods/biome_lib/depends.txt similarity index 100% rename from biome_lib/depends.txt rename to mods/biome_lib/depends.txt diff --git a/biome_lib/description.txt b/mods/biome_lib/description.txt similarity index 100% rename from biome_lib/description.txt rename to mods/biome_lib/description.txt diff --git a/biome_lib/growth.lua b/mods/biome_lib/growth.lua similarity index 100% rename from biome_lib/growth.lua rename to mods/biome_lib/growth.lua diff --git a/biome_lib/init.lua b/mods/biome_lib/init.lua similarity index 100% rename from biome_lib/init.lua rename to mods/biome_lib/init.lua diff --git a/biome_lib/locale/de.txt b/mods/biome_lib/locale/de.txt similarity index 100% rename from biome_lib/locale/de.txt rename to mods/biome_lib/locale/de.txt diff --git a/biome_lib/locale/fr.txt b/mods/biome_lib/locale/fr.txt similarity index 100% rename from biome_lib/locale/fr.txt rename to mods/biome_lib/locale/fr.txt diff --git a/biome_lib/locale/ru.txt b/mods/biome_lib/locale/ru.txt similarity index 100% rename from biome_lib/locale/ru.txt rename to mods/biome_lib/locale/ru.txt diff --git a/biome_lib/locale/template.txt b/mods/biome_lib/locale/template.txt similarity index 100% rename from biome_lib/locale/template.txt rename to mods/biome_lib/locale/template.txt diff --git a/biome_lib/locale/tr.txt b/mods/biome_lib/locale/tr.txt similarity index 100% rename from biome_lib/locale/tr.txt rename to mods/biome_lib/locale/tr.txt diff --git a/biome_lib/mod.conf b/mods/biome_lib/mod.conf similarity index 100% rename from biome_lib/mod.conf rename to mods/biome_lib/mod.conf diff --git a/biome_lib/search_functions.lua b/mods/biome_lib/search_functions.lua similarity index 100% rename from biome_lib/search_functions.lua rename to mods/biome_lib/search_functions.lua diff --git a/birch/init.lua b/mods/birch/init.lua similarity index 100% rename from birch/init.lua rename to mods/birch/init.lua diff --git a/birch/locale/birch.es.tr b/mods/birch/locale/birch.es.tr similarity index 100% rename from birch/locale/birch.es.tr rename to mods/birch/locale/birch.es.tr diff --git a/birch/mod.conf b/mods/birch/mod.conf similarity index 100% rename from birch/mod.conf rename to mods/birch/mod.conf diff --git a/birch/textures/birch_door_wood.png b/mods/birch/textures/birch_door_wood.png similarity index 100% rename from birch/textures/birch_door_wood.png rename to mods/birch/textures/birch_door_wood.png diff --git a/birch/textures/birch_item_wood.png b/mods/birch/textures/birch_item_wood.png similarity index 100% rename from birch/textures/birch_item_wood.png rename to mods/birch/textures/birch_item_wood.png diff --git a/birch/textures/birch_leaves.png b/mods/birch/textures/birch_leaves.png similarity index 100% rename from birch/textures/birch_leaves.png rename to mods/birch/textures/birch_leaves.png diff --git a/birch/textures/birch_sapling.png b/mods/birch/textures/birch_sapling.png similarity index 100% rename from birch/textures/birch_sapling.png rename to mods/birch/textures/birch_sapling.png diff --git a/birch/textures/birch_trunk.png b/mods/birch/textures/birch_trunk.png similarity index 100% rename from birch/textures/birch_trunk.png rename to mods/birch/textures/birch_trunk.png diff --git a/birch/textures/birch_trunk_top.png b/mods/birch/textures/birch_trunk_top.png similarity index 100% rename from birch/textures/birch_trunk_top.png rename to mods/birch/textures/birch_trunk_top.png diff --git a/birch/textures/birch_wood.png b/mods/birch/textures/birch_wood.png similarity index 100% rename from birch/textures/birch_wood.png rename to mods/birch/textures/birch_wood.png diff --git a/blox/LICENSE.txt b/mods/blox/LICENSE.txt similarity index 100% rename from blox/LICENSE.txt rename to mods/blox/LICENSE.txt diff --git a/blox/depends.txt b/mods/blox/depends.txt similarity index 100% rename from blox/depends.txt rename to mods/blox/depends.txt diff --git a/blox/description.txt b/mods/blox/description.txt similarity index 100% rename from blox/description.txt rename to mods/blox/description.txt diff --git a/blox/init.lua b/mods/blox/init.lua similarity index 100% rename from blox/init.lua rename to mods/blox/init.lua diff --git a/blox/mod.conf b/mods/blox/mod.conf similarity index 100% rename from blox/mod.conf rename to mods/blox/mod.conf diff --git a/blox/textures/blox_bloodbane.png b/mods/blox/textures/blox_bloodbane.png similarity index 100% rename from blox/textures/blox_bloodbane.png rename to mods/blox/textures/blox_bloodbane.png diff --git a/blox/textures/blox_cobble_checker.png b/mods/blox/textures/blox_cobble_checker.png similarity index 100% rename from blox/textures/blox_cobble_checker.png rename to mods/blox/textures/blox_cobble_checker.png diff --git a/blox/textures/blox_cobble_corner.png b/mods/blox/textures/blox_cobble_corner.png similarity index 100% rename from blox/textures/blox_cobble_corner.png rename to mods/blox/textures/blox_cobble_corner.png diff --git a/blox/textures/blox_cobble_cross.png b/mods/blox/textures/blox_cobble_cross.png similarity index 100% rename from blox/textures/blox_cobble_cross.png rename to mods/blox/textures/blox_cobble_cross.png diff --git a/blox/textures/blox_cobble_diamond.png b/mods/blox/textures/blox_cobble_diamond.png similarity index 100% rename from blox/textures/blox_cobble_diamond.png rename to mods/blox/textures/blox_cobble_diamond.png diff --git a/blox/textures/blox_cobble_loop.png b/mods/blox/textures/blox_cobble_loop.png similarity index 100% rename from blox/textures/blox_cobble_loop.png rename to mods/blox/textures/blox_cobble_loop.png diff --git a/blox/textures/blox_cobble_quarter.png b/mods/blox/textures/blox_cobble_quarter.png similarity index 100% rename from blox/textures/blox_cobble_quarter.png rename to mods/blox/textures/blox_cobble_quarter.png diff --git a/blox/textures/blox_cobble_tinted.png b/mods/blox/textures/blox_cobble_tinted.png similarity index 100% rename from blox/textures/blox_cobble_tinted.png rename to mods/blox/textures/blox_cobble_tinted.png diff --git a/blox/textures/blox_glowdust.png b/mods/blox/textures/blox_glowdust.png similarity index 100% rename from blox/textures/blox_glowdust.png rename to mods/blox/textures/blox_glowdust.png diff --git a/blox/textures/blox_glowore.png b/mods/blox/textures/blox_glowore.png similarity index 100% rename from blox/textures/blox_glowore.png rename to mods/blox/textures/blox_glowore.png diff --git a/blox/textures/blox_glowstone.png b/mods/blox/textures/blox_glowstone.png similarity index 100% rename from blox/textures/blox_glowstone.png rename to mods/blox/textures/blox_glowstone.png diff --git a/blox/textures/blox_stone_checker.png b/mods/blox/textures/blox_stone_checker.png similarity index 100% rename from blox/textures/blox_stone_checker.png rename to mods/blox/textures/blox_stone_checker.png diff --git a/blox/textures/blox_stone_corner.png b/mods/blox/textures/blox_stone_corner.png similarity index 100% rename from blox/textures/blox_stone_corner.png rename to mods/blox/textures/blox_stone_corner.png diff --git a/blox/textures/blox_stone_cross.png b/mods/blox/textures/blox_stone_cross.png similarity index 100% rename from blox/textures/blox_stone_cross.png rename to mods/blox/textures/blox_stone_cross.png diff --git a/blox/textures/blox_stone_diamond.png b/mods/blox/textures/blox_stone_diamond.png similarity index 100% rename from blox/textures/blox_stone_diamond.png rename to mods/blox/textures/blox_stone_diamond.png diff --git a/blox/textures/blox_stone_loop.png b/mods/blox/textures/blox_stone_loop.png similarity index 100% rename from blox/textures/blox_stone_loop.png rename to mods/blox/textures/blox_stone_loop.png diff --git a/blox/textures/blox_stone_quarter.png b/mods/blox/textures/blox_stone_quarter.png similarity index 100% rename from blox/textures/blox_stone_quarter.png rename to mods/blox/textures/blox_stone_quarter.png diff --git a/blox/textures/blox_stone_square.png b/mods/blox/textures/blox_stone_square.png similarity index 100% rename from blox/textures/blox_stone_square.png rename to mods/blox/textures/blox_stone_square.png diff --git a/blox/textures/blox_stone_tinted.png b/mods/blox/textures/blox_stone_tinted.png similarity index 100% rename from blox/textures/blox_stone_tinted.png rename to mods/blox/textures/blox_stone_tinted.png diff --git a/blox/textures/blox_wood_checker.png b/mods/blox/textures/blox_wood_checker.png similarity index 100% rename from blox/textures/blox_wood_checker.png rename to mods/blox/textures/blox_wood_checker.png diff --git a/blox/textures/blox_wood_corner.png b/mods/blox/textures/blox_wood_corner.png similarity index 100% rename from blox/textures/blox_wood_corner.png rename to mods/blox/textures/blox_wood_corner.png diff --git a/blox/textures/blox_wood_cross.png b/mods/blox/textures/blox_wood_cross.png similarity index 100% rename from blox/textures/blox_wood_cross.png rename to mods/blox/textures/blox_wood_cross.png diff --git a/blox/textures/blox_wood_diamond.png b/mods/blox/textures/blox_wood_diamond.png similarity index 100% rename from blox/textures/blox_wood_diamond.png rename to mods/blox/textures/blox_wood_diamond.png diff --git a/blox/textures/blox_wood_loop.png b/mods/blox/textures/blox_wood_loop.png similarity index 100% rename from blox/textures/blox_wood_loop.png rename to mods/blox/textures/blox_wood_loop.png diff --git a/blox/textures/blox_wood_quarter.png b/mods/blox/textures/blox_wood_quarter.png similarity index 100% rename from blox/textures/blox_wood_quarter.png rename to mods/blox/textures/blox_wood_quarter.png diff --git a/blox/textures/blox_wood_tinted.png b/mods/blox/textures/blox_wood_tinted.png similarity index 100% rename from blox/textures/blox_wood_tinted.png rename to mods/blox/textures/blox_wood_tinted.png diff --git a/mods/boats/README.txt b/mods/boats/README.txt new file mode 100644 index 00000000..a2ccb485 --- /dev/null +++ b/mods/boats/README.txt @@ -0,0 +1,31 @@ +Minetest Game mod: boats +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures and model) +------------------------------------- +Textures: Zeg9 (CC BY-SA 3.0) +Model: thetoon and Zeg9 (CC BY-SA 3.0), + modified by PavelS(SokolovPavel) (CC BY-SA 3.0), + modified by sofar (CC BY-SA 3.0) + +Controls +-------- +Right mouse button = Enter or exit boat when pointing at boat. +Forward = Speed up. + Slow down when moving backwards. +Forward + backward = Enable cruise mode: Boat will accelerate to maximum forward + speed and remain at that speed without needing to hold the + forward key. +Backward = Slow down. + Speed up when moving backwards. + Disable cruise mode. +Left = Turn to the left. + Turn to the right when moving backwards. +Right = Turn to the right. + Turn to the left when moving backwards. diff --git a/mods/boats/init.lua b/mods/boats/init.lua new file mode 100644 index 00000000..2f305415 --- /dev/null +++ b/mods/boats/init.lua @@ -0,0 +1,293 @@ +-- boats/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("boats") + +-- +-- Helper functions +-- + +local function is_water(pos) + local nn = minetest.get_node(pos).name + return minetest.get_item_group(nn, "water") ~= 0 +end + + +local function get_velocity(v, yaw, y) + local x = -math.sin(yaw) * v + local z = math.cos(yaw) * v + return {x = x, y = y, z = z} +end + + +local function get_v(v) + return math.sqrt(v.x ^ 2 + v.z ^ 2) +end + +-- +-- Boat entity +-- + +local boat = { + initial_properties = { + physical = true, + -- Warning: Do not change the position of the collisionbox top surface, + -- lowering it causes the boat to fall through the world if underwater + collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5}, + visual = "mesh", + mesh = "boats_boat.obj", + textures = {"default_wood.png"}, + }, + + driver = nil, + v = 0, + last_v = 0, + removed = false, + auto = false +} + + +function boat.on_rightclick(self, clicker) + if not clicker or not clicker:is_player() then + return + end + local name = clicker:get_player_name() + if self.driver and name == self.driver then + self.driver = nil + self.auto = false + clicker:set_detach() + player_api.player_attached[name] = false + player_api.set_animation(clicker, "stand" , 30) + local pos = clicker:get_pos() + pos = {x = pos.x, y = pos.y + 0.2, z = pos.z} + minetest.after(0.1, function() + clicker:set_pos(pos) + end) + elseif not self.driver then + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + clicker:set_detach() + end + self.driver = name + clicker:set_attach(self.object, "", + {x = 0.5, y = 1, z = -3}, {x = 0, y = 0, z = 0}) + player_api.player_attached[name] = true + minetest.after(0.2, function() + player_api.set_animation(clicker, "sit" , 30) + end) + clicker:set_look_horizontal(self.object:get_yaw()) + end +end + + +-- If driver leaves server while driving boat +function boat.on_detach_child(self, child) + self.driver = nil + self.auto = false +end + + +function boat.on_activate(self, staticdata, dtime_s) + self.object:set_armor_groups({immortal = 1}) + if staticdata then + self.v = tonumber(staticdata) + end + self.last_v = self.v +end + + +function boat.get_staticdata(self) + return tostring(self.v) +end + + +function boat.on_punch(self, puncher) + if not puncher or not puncher:is_player() or self.removed then + return + end + + local name = puncher:get_player_name() + if self.driver and name == self.driver then + self.driver = nil + puncher:set_detach() + player_api.player_attached[name] = false + end + if not self.driver then + self.removed = true + local inv = puncher:get_inventory() + if not minetest.is_creative_enabled(name) + or not inv:contains_item("main", "boats:boat") then + local leftover = inv:add_item("main", "boats:boat") + -- if no room in inventory add a replacement boat to the world + if not leftover:is_empty() then + minetest.add_item(self.object:get_pos(), leftover) + end + end + -- delay remove to ensure player is detached + minetest.after(0.1, function() + self.object:remove() + end) + end +end + + +function boat.on_step(self, dtime) + self.v = get_v(self.object:get_velocity()) * math.sign(self.v) + if self.driver then + local driver_objref = minetest.get_player_by_name(self.driver) + if driver_objref then + local ctrl = driver_objref:get_player_control() + if ctrl.up and ctrl.down then + if not self.auto then + self.auto = true + minetest.chat_send_player(self.driver, S("Boat cruise mode on")) + end + elseif ctrl.down then + self.v = self.v - dtime * 2.0 + if self.auto then + self.auto = false + minetest.chat_send_player(self.driver, S("Boat cruise mode off")) + end + elseif ctrl.up or self.auto then + self.v = self.v + dtime * 2.0 + end + if ctrl.left then + if self.v < -0.001 then + self.object:set_yaw(self.object:get_yaw() - dtime * 0.9) + else + self.object:set_yaw(self.object:get_yaw() + dtime * 0.9) + end + elseif ctrl.right then + if self.v < -0.001 then + self.object:set_yaw(self.object:get_yaw() + dtime * 0.9) + else + self.object:set_yaw(self.object:get_yaw() - dtime * 0.9) + end + end + end + end + local velo = self.object:get_velocity() + if not self.driver and + self.v == 0 and velo.x == 0 and velo.y == 0 and velo.z == 0 then + self.object:set_pos(self.object:get_pos()) + return + end + -- We need to preserve velocity sign to properly apply drag force + -- while moving backward + local drag = dtime * math.sign(self.v) * (0.01 + 0.0796 * self.v * self.v) + -- If drag is larger than velocity, then stop horizontal movement + if math.abs(self.v) <= math.abs(drag) then + self.v = 0 + else + self.v = self.v - drag + end + + local p = self.object:get_pos() + p.y = p.y - 0.5 + local new_velo + local new_acce = {x = 0, y = 0, z = 0} + if not is_water(p) then + local nodedef = minetest.registered_nodes[minetest.get_node(p).name] + if (not nodedef) or nodedef.walkable then + self.v = 0 + new_acce = {x = 0, y = 1, z = 0} + else + new_acce = {x = 0, y = -9.8, z = 0} + end + new_velo = get_velocity(self.v, self.object:get_yaw(), + self.object:get_velocity().y) + self.object:set_pos(self.object:get_pos()) + else + p.y = p.y + 1 + if is_water(p) then + local y = self.object:get_velocity().y + if y >= 5 then + y = 5 + elseif y < 0 then + new_acce = {x = 0, y = 20, z = 0} + else + new_acce = {x = 0, y = 5, z = 0} + end + new_velo = get_velocity(self.v, self.object:get_yaw(), y) + self.object:set_pos(self.object:get_pos()) + else + new_acce = {x = 0, y = 0, z = 0} + if math.abs(self.object:get_velocity().y) < 1 then + local pos = self.object:get_pos() + pos.y = math.floor(pos.y) + 0.5 + self.object:set_pos(pos) + new_velo = get_velocity(self.v, self.object:get_yaw(), 0) + else + new_velo = get_velocity(self.v, self.object:get_yaw(), + self.object:get_velocity().y) + self.object:set_pos(self.object:get_pos()) + end + end + end + self.object:set_velocity(new_velo) + self.object:set_acceleration(new_acce) +end + + +minetest.register_entity("boats:boat", boat) + + +minetest.register_craftitem("boats:boat", { + description = S("Boat"), + inventory_image = "boats_inventory.png", + wield_image = "boats_wield.png", + wield_scale = {x = 2, y = 2, z = 1}, + liquids_pointable = true, + groups = {flammable = 2}, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if pointed_thing.type ~= "node" then + return itemstack + end + if not is_water(pointed_thing.under) then + return itemstack + end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + boat = minetest.add_entity(pointed_thing.under, "boats:boat") + if boat then + if placer then + boat:set_yaw(placer:get_look_horizontal()) + end + local player_name = placer and placer:get_player_name() or "" + if not minetest.is_creative_enabled(player_name) then + itemstack:take_item() + end + end + return itemstack + end, +}) + + +minetest.register_craft({ + output = "boats:boat", + recipe = { + {"", "", "" }, + {"group:wood", "", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "boats:boat", + burntime = 20, +}) diff --git a/mods/boats/license.txt b/mods/boats/license.txt new file mode 100644 index 00000000..d4afe75f --- /dev/null +++ b/mods/boats/license.txt @@ -0,0 +1,63 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures and model) +-------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Zeg9 +Copyright (C) 2012-2016 thetoon +Copyright (C) 2012-2016 PavelS(SokolovPavel) +Copyright (C) 2016 sofar (sofar@foo-projects.org) + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/boats/locale/boats.de.tr b/mods/boats/locale/boats.de.tr new file mode 100644 index 00000000..d8eb8d74 --- /dev/null +++ b/mods/boats/locale/boats.de.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Schneller Bootsmodus an +Boat cruise mode off=Schneller Bootsmodus aus +Boat=Boot diff --git a/mods/boats/locale/boats.es.tr b/mods/boats/locale/boats.es.tr new file mode 100644 index 00000000..b9adb72e --- /dev/null +++ b/mods/boats/locale/boats.es.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Modo crucero en bote activado +Boat cruise mode off=Modo crucero en bote desactivado +Boat=Bote diff --git a/mods/boats/locale/boats.fr.tr b/mods/boats/locale/boats.fr.tr new file mode 100644 index 00000000..f469a0b6 --- /dev/null +++ b/mods/boats/locale/boats.fr.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Bateau mode rapide activé +Boat cruise mode off=Bateau mode rapide désactivé +Boat=Bateau diff --git a/mods/boats/locale/boats.id.tr b/mods/boats/locale/boats.id.tr new file mode 100644 index 00000000..cf37f476 --- /dev/null +++ b/mods/boats/locale/boats.id.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Mode perahu jelajah nyala +Boat cruise mode off=Mode perahu jelajah mati +Boat=Perahu diff --git a/mods/boats/locale/boats.it.tr b/mods/boats/locale/boats.it.tr new file mode 100644 index 00000000..4a878354 --- /dev/null +++ b/mods/boats/locale/boats.it.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Modalità movimento automatico barca attivata +Boat cruise mode off=Modalità movimento automatico barca disattivata +Boat=Barca diff --git a/mods/boats/locale/boats.jbo.tr b/mods/boats/locale/boats.jbo.tr new file mode 100644 index 00000000..c7d534f9 --- /dev/null +++ b/mods/boats/locale/boats.jbo.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=.i lo bloti cu zmiku le ka klama +Boat cruise mode off=.i lo bloti cu macnu le ka klama +Boat=lo bloti diff --git a/mods/boats/locale/boats.ms.tr b/mods/boats/locale/boats.ms.tr new file mode 100644 index 00000000..d11a68be --- /dev/null +++ b/mods/boats/locale/boats.ms.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Mod bot layar makan angin dibolehkan +Boat cruise mode off=Mod bot layar makan angin dilumpuhkan +Boat=Bot diff --git a/mods/boats/locale/boats.pt_BR.tr b/mods/boats/locale/boats.pt_BR.tr new file mode 100644 index 00000000..1992fdfd --- /dev/null +++ b/mods/boats/locale/boats.pt_BR.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Modo de cruseiro do barco ligado +Boat cruise mode off=Modo de cruseiro do barco desligado +Boat=Barco diff --git a/mods/boats/locale/boats.ru.tr b/mods/boats/locale/boats.ru.tr new file mode 100644 index 00000000..43270984 --- /dev/null +++ b/mods/boats/locale/boats.ru.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Режим путешествия на лодке включен +Boat cruise mode off=Режим путешествия на лодке выключен +Boat=Лодка diff --git a/mods/boats/locale/boats.se.tr b/mods/boats/locale/boats.se.tr new file mode 100644 index 00000000..248b0889 --- /dev/null +++ b/mods/boats/locale/boats.se.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Båtkryssningsläge på +Boat cruise mode off=Båtkryssningsläge av +Boat=Båt diff --git a/mods/boats/locale/boats.sk.tr b/mods/boats/locale/boats.sk.tr new file mode 100644 index 00000000..b6ed7220 --- /dev/null +++ b/mods/boats/locale/boats.sk.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Cestovný režim loďky zapnutý +Boat cruise mode off=Cestovný režim loďky vypnutý +Boat=Loďka diff --git a/mods/boats/locale/boats.zh_CN.tr b/mods/boats/locale/boats.zh_CN.tr new file mode 100644 index 00000000..254f2dfc --- /dev/null +++ b/mods/boats/locale/boats.zh_CN.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=巡航模式开启 +Boat cruise mode off=巡航模式关闭 +Boat=船 diff --git a/mods/boats/locale/boats.zh_TW.tr b/mods/boats/locale/boats.zh_TW.tr new file mode 100644 index 00000000..97b34711 --- /dev/null +++ b/mods/boats/locale/boats.zh_TW.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=巡航模式開啟 +Boat cruise mode off=巡航模式關閉 +Boat=船 diff --git a/mods/boats/locale/template.txt b/mods/boats/locale/template.txt new file mode 100644 index 00000000..17aedc89 --- /dev/null +++ b/mods/boats/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on= +Boat cruise mode off= +Boat= diff --git a/mods/boats/mod.conf b/mods/boats/mod.conf new file mode 100644 index 00000000..a727f8ff --- /dev/null +++ b/mods/boats/mod.conf @@ -0,0 +1,3 @@ +name = boats +description = Minetest Game mod: boats +depends = default, player_api diff --git a/mods/boats/models/boats_boat.obj b/mods/boats/models/boats_boat.obj new file mode 100644 index 00000000..0f21e47f --- /dev/null +++ b/mods/boats/models/boats_boat.obj @@ -0,0 +1,358 @@ +# Blender v2.76 (sub 11) OBJ File: 'boat.blend' +# www.blender.org +mtllib boat.mtl +o boats_boat +v -6.786140 -3.033999 -9.415440 +v -6.786140 -1.967150 -9.415440 +v -6.786140 -1.967150 8.793510 +v -6.786140 -3.033999 8.793510 +v 5.732520 -1.967150 -9.415440 +v 5.732520 -3.033999 -9.415440 +v 5.732520 -3.033999 8.793510 +v 5.732520 -1.967150 8.793510 +v -2.233900 -3.033999 -9.415440 +v -2.233900 -1.967150 -9.415440 +v -2.233900 -1.967150 8.793510 +v -2.233900 -3.033999 8.793510 +v 2.318340 -3.033999 -9.415440 +v 2.318340 -1.967150 -9.415440 +v 2.318340 -1.967150 8.793510 +v 2.318340 -3.033999 8.793510 +v -3.371960 -3.033999 8.793510 +v -3.371960 -1.967150 8.793510 +v -3.371960 -1.967150 -9.415440 +v -3.371960 -3.033999 -9.415440 +v 2.318340 0.276645 8.793510 +v 1.180280 -1.967150 8.793510 +v 5.732520 0.276645 8.793510 +v 5.732520 1.039180 8.793510 +v 6.870580 0.276645 8.793510 +v 6.870580 -1.967150 8.793510 +v 2.318340 1.039180 8.793510 +v 1.180280 0.276645 8.793510 +v 1.180280 1.039180 8.793510 +v 1.180280 -3.033999 8.793510 +v -2.233900 0.276645 8.793510 +v -3.371960 0.276645 8.793510 +v -2.233900 1.039180 8.793510 +v -3.371960 1.039180 8.793510 +v -6.786140 0.276645 8.793510 +v -7.786200 0.276645 8.793510 +v -7.786200 -1.967150 8.793510 +v -6.786140 1.039180 8.793510 +v 1.180280 -1.967150 -9.415440 +v 1.180280 -3.033999 -9.415440 +v 2.318340 0.276645 -9.415440 +v 1.180280 0.276645 -9.415440 +v 2.318340 1.039180 -9.415440 +v 5.732520 0.276645 -9.415440 +v 6.870580 -1.967150 -9.415440 +v 5.732520 1.039180 -9.415440 +v 6.870580 0.276645 -9.415440 +v 0.042220 1.039180 -9.415440 +v 1.180280 1.039180 -9.415440 +v 0.042220 -1.967150 -9.415440 +v -1.095840 -1.967150 -9.415440 +v -2.233900 0.276645 -9.415440 +v -3.371960 0.276645 -9.415440 +v -2.233900 1.039180 -9.415440 +v -1.095840 1.039180 -9.415440 +v -3.371960 1.039180 -9.415440 +v -6.786140 0.276645 -9.415440 +v -6.786140 1.039180 -9.415440 +v -7.786200 -1.967150 -9.415440 +v -7.786200 0.276645 -9.415440 +v -1.095840 0.156645 -12.044100 +v -1.095840 -4.601110 -9.415440 +v -1.095840 1.039181 -10.802900 +v -1.095840 2.868579 -10.802900 +v -1.095840 2.868580 -7.883420 +v -1.095840 3.746069 -12.034100 +v -1.095840 3.746070 -7.883420 +v -1.095840 0.156645 -14.294900 +v -1.095840 -4.601110 -14.284900 +v 0.042220 -4.601110 -14.284900 +v 0.042220 -4.601110 -9.415440 +v 0.042220 1.039181 -10.802900 +v 0.042220 0.156645 -12.044100 +v 0.042220 2.868579 -10.802900 +v 0.042220 0.156645 -14.294900 +v 0.042220 3.746069 -12.034100 +v 0.042220 3.746070 -7.883420 +v 0.042220 2.868580 -7.883420 +v -1.096322 -3.033999 -9.415440 +v 0.044046 -3.035397 -9.415440 +vt 1.000000 0.187500 +vt -1.000000 0.312500 +vt 1.000000 0.312500 +vt 0.687500 1.000000 +vt 0.500000 0.875000 +vt 0.500000 0.625000 +vt -1.000000 0.062500 +vt 1.000000 0.062500 +vt 1.000000 -0.000000 +vt -1.000000 0.125000 +vt 1.000000 0.125000 +vt 0.437500 0.125000 +vt 0.312500 0.500000 +vt 0.312500 0.125000 +vt 1.000000 0.625000 +vt -1.000000 0.500000 +vt 1.000000 0.500000 +vt 0.187500 0.687500 +vt -0.187500 0.687500 +vt -0.187500 0.312500 +vt 1.000000 0.812500 +vt -1.000000 0.937500 +vt -1.000000 0.812500 +vt 0.812500 0.687500 +vt 1.187500 0.687500 +vt 0.812500 0.312500 +vt 1.000000 0.562500 +vt 0.312500 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.750000 +vt -1.000000 0.875000 +vt -1.000000 0.750000 +vt -1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.437500 0.625000 +vt 0.562500 0.437500 +vt 0.562500 0.625000 +vt -1.000000 0.437500 +vt -1.000000 0.000000 +vt 0.500000 0.062500 +vt 0.375000 0.750000 +vt 0.500000 0.750000 +vt -1.000000 0.250000 +vt -1.000000 0.687500 +vt 1.000000 0.687500 +vt 0.625000 0.375000 +vt 1.000000 0.375000 +vt 1.000000 0.250000 +vt 1.000000 0.937500 +vt 0.437500 0.812500 +vt 0.312500 0.312500 +vt 0.312500 0.812500 +vt 0.437500 0.312500 +vt 0.437500 0.437500 +vt 0.687500 0.812500 +vt 0.000000 0.687500 +vt 0.000000 0.812500 +vt -1.000000 0.562500 +vt 0.875000 0.812500 +vt 0.875000 0.687500 +vt 0.250000 0.312500 +vt 0.562500 0.187500 +vt 0.250000 0.187500 +vt -1.000000 0.187500 +vt 0.312500 0.625000 +vt 0.312500 0.187500 +vt 0.312500 -0.187500 +vt 1.000000 -0.187500 +vt 0.687500 0.500000 +vt -0.000000 1.000000 +vt 0.000000 0.875000 +vt 0.437500 0.500000 +vt -1.000000 0.625000 +vt 0.812500 0.187500 +vt 1.187500 0.187500 +vt 1.187500 0.312500 +vt 1.312500 0.312500 +vt 1.312500 0.687500 +vt 0.687500 0.187500 +vt 0.687500 0.312500 +vt 1.187500 0.812500 +vt 0.812500 0.812500 +vt 0.187500 0.312500 +vt 0.312500 0.687500 +vt 0.687500 0.687500 +vt -0.187500 0.187500 +vt 0.187500 0.187500 +vt -0.312500 0.687500 +vt -0.312500 0.312500 +vt 0.187500 0.812500 +vt -0.187500 0.812500 +vt 0.437500 0.687500 +vt 0.437500 0.187500 +vt 0.562500 0.812500 +vt 0.562500 0.687500 +vt 0.312500 0.562500 +vt 1.000000 0.875000 +vt 0.375000 0.062500 +vt -1.000000 0.375000 +vt 0.625000 0.500000 +vt 0.875000 0.562500 +vt 0.937500 0.812500 +vt 0.937500 0.687500 +vt 0.875000 0.937500 +vt 0.562500 0.312500 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.002100 -1.000000 +vn 0.001200 -1.000000 0.000000 +vn 0.000000 0.002800 -1.000000 +vn -0.001200 -1.000000 0.000200 +g boats_boat_boats_boat_None +usemtl None +s off +f 41/1/1 27/2/1 43/3/1 +f 76/4/2 74/5/2 72/6/2 +f 8/7/2 6/1/2 5/8/2 +f 15/9/1 13/10/1 16/11/1 +f 51/12/3 71/13/3 50/14/3 +f 56/15/2 32/16/2 53/17/2 +f 15/18/3 8/19/3 23/20/3 +f 22/21/2 40/22/2 39/23/2 +f 19/24/4 2/25/4 53/26/4 +f 70/27/5 62/28/5 69/29/5 +f 11/30/5 19/31/5 10/32/5 +f 4/15/5 20/33/5 17/34/5 +f 72/35/3 64/36/3 63/37/3 +f 13/8/5 7/38/5 16/7/5 +f 23/39/6 47/11/6 44/9/6 +f 68/40/7 70/41/7 69/42/7 +f 80/43/8 40/10/8 30/11/8 +f 3/15/1 1/32/1 4/30/1 +f 20/44/2 18/27/2 17/45/2 +f 74/17/5 65/46/5 64/47/5 +f 31/43/1 54/47/1 52/48/1 +f 22/47/5 14/43/5 15/48/5 +f 46/1/2 23/7/2 44/8/2 +f 57/21/1 38/22/1 58/49/1 +f 61/50/9 76/51/9 73/52/9 +f 37/45/5 2/23/5 3/21/5 +f 78/28/3 67/53/3 65/54/3 +f 64/5/1 66/4/1 63/6/1 +f 76/55/6 67/56/6 77/57/6 +f 47/17/2 26/10/2 45/11/2 +f 5/16/5 26/47/5 8/17/5 +f 33/58/6 48/59/6 55/60/6 +f 29/38/2 42/3/2 49/29/2 +f 32/44/6 52/21/6 53/45/6 +f 58/15/6 34/33/6 56/34/6 +f 27/7/6 46/29/6 43/8/6 +f 73/61/6 68/62/6 61/63/6 +f 21/58/6 42/29/6 28/38/6 +f 11/29/1 9/58/1 12/27/1 +f 59/45/1 36/2/1 60/3/1 +f 60/9/6 35/10/6 57/11/6 +f 41/1/1 21/64/1 27/2/1 +f 72/6/2 48/65/2 50/66/2 +f 50/66/2 71/67/2 70/68/2 +f 70/68/2 75/17/2 73/69/2 +f 76/4/2 77/70/2 74/5/2 +f 77/70/2 78/71/2 74/5/2 +f 50/66/2 70/68/2 73/69/2 +f 73/69/2 76/4/2 72/6/2 +f 72/6/2 50/66/2 73/69/2 +f 8/7/2 7/64/2 6/1/2 +f 15/9/1 14/39/1 13/10/1 +f 51/12/3 62/72/3 71/13/3 +f 56/15/2 34/73/2 32/16/2 +f 32/26/3 34/74/3 38/75/3 +f 35/76/3 36/77/3 37/78/3 +f 32/26/3 38/75/3 35/76/3 +f 29/66/3 33/79/3 31/80/3 +f 32/26/3 35/76/3 3/25/3 +f 28/51/3 29/66/3 31/80/3 +f 31/80/3 32/26/3 18/24/3 +f 3/25/3 4/81/3 17/82/3 +f 35/76/3 37/78/3 3/25/3 +f 21/83/3 28/51/3 22/84/3 +f 3/25/3 17/82/3 18/24/3 +f 11/85/3 12/55/3 30/52/3 +f 32/26/3 3/25/3 18/24/3 +f 11/85/3 30/52/3 22/84/3 +f 31/80/3 18/24/3 11/85/3 +f 24/86/3 27/87/3 21/83/3 +f 28/51/3 31/80/3 11/85/3 +f 11/85/3 22/84/3 28/51/3 +f 24/86/3 21/83/3 23/20/3 +f 26/88/3 25/89/3 23/20/3 +f 23/20/3 21/83/3 15/18/3 +f 15/18/3 16/90/3 7/91/3 +f 21/83/3 22/84/3 15/18/3 +f 8/19/3 26/88/3 23/20/3 +f 15/18/3 7/91/3 8/19/3 +f 22/21/2 30/49/2 40/22/2 +f 47/89/4 45/88/4 5/19/4 +f 5/19/4 6/91/4 13/90/4 +f 5/19/4 13/90/4 14/18/4 +f 44/20/4 47/89/4 5/19/4 +f 43/87/4 46/86/4 44/20/4 +f 41/83/4 43/87/4 44/20/4 +f 44/20/4 5/19/4 14/18/4 +f 39/84/4 40/52/4 80/50/4 +f 44/20/4 14/18/4 41/83/4 +f 42/51/4 41/83/4 39/84/4 +f 39/84/4 80/50/4 50/92/4 +f 41/83/4 14/18/4 39/84/4 +f 48/93/4 49/66/4 42/51/4 +f 50/92/4 48/93/4 42/51/4 +f 80/50/4 79/94/4 50/92/4 +f 50/92/4 42/51/4 39/84/4 +f 54/79/4 55/62/4 52/80/4 +f 50/92/4 79/94/4 51/95/4 +f 52/80/4 55/62/4 51/95/4 +f 51/95/4 79/94/4 10/85/4 +f 79/94/4 9/55/4 10/85/4 +f 53/26/4 52/80/4 10/85/4 +f 58/75/4 56/74/4 53/26/4 +f 59/78/4 60/77/4 57/76/4 +f 57/76/4 58/75/4 53/26/4 +f 52/80/4 51/95/4 10/85/4 +f 19/24/4 20/82/4 1/81/4 +f 53/26/4 10/85/4 19/24/4 +f 59/78/4 57/76/4 2/25/4 +f 19/24/4 1/81/4 2/25/4 +f 2/25/4 57/76/4 53/26/4 +f 70/27/5 71/96/5 62/28/5 +f 11/30/5 18/97/5 19/31/5 +f 4/15/5 1/73/5 20/33/5 +f 72/35/3 74/54/3 64/36/3 +f 13/8/5 6/29/5 7/38/5 +f 23/39/6 25/10/6 47/11/6 +f 68/40/7 75/98/7 70/41/7 +f 30/11/5 12/17/5 79/99/5 +f 79/99/10 80/43/10 30/11/10 +f 12/17/5 9/16/5 79/99/5 +f 3/15/1 2/73/1 1/32/1 +f 20/44/2 19/58/2 18/27/2 +f 74/17/5 78/100/5 65/46/5 +f 31/43/1 33/99/1 54/47/1 +f 22/47/5 39/99/5 14/43/5 +f 46/1/2 24/64/2 23/7/2 +f 57/21/1 35/23/1 38/22/1 +f 61/50/9 66/53/9 76/51/9 +f 37/45/5 59/44/5 2/23/5 +f 78/28/3 77/51/3 67/53/3 +f 62/67/1 51/66/1 69/68/1 +f 51/66/1 55/65/1 63/6/1 +f 68/17/1 69/68/1 61/69/1 +f 61/69/1 69/68/1 51/66/1 +f 61/69/1 51/66/1 63/6/1 +f 65/71/1 67/70/1 64/5/1 +f 61/69/1 63/6/1 66/4/1 +f 64/5/1 67/70/1 66/4/1 +f 76/55/6 66/85/6 67/56/6 +f 47/17/2 25/16/2 26/10/2 +f 5/16/5 45/99/5 26/47/5 +f 55/60/6 54/101/6 33/58/6 +f 33/58/6 29/22/6 48/59/6 +f 48/59/6 72/102/6 63/103/6 +f 29/22/6 49/104/6 48/59/6 +f 48/59/6 63/103/6 55/60/6 +f 29/38/2 28/2/2 42/3/2 +f 32/44/6 31/23/6 52/21/6 +f 58/15/6 38/73/6 34/33/6 +f 27/7/6 24/38/6 46/29/6 +f 73/61/6 75/105/6 68/62/6 +f 21/58/6 41/27/6 42/29/6 +f 11/29/1 10/38/1 9/58/1 +f 59/45/1 37/44/1 36/2/1 +f 60/9/6 36/39/6 35/10/6 diff --git a/mods/boats/textures/boats_inventory.png b/mods/boats/textures/boats_inventory.png new file mode 100644 index 00000000..f9d082e3 Binary files /dev/null and b/mods/boats/textures/boats_inventory.png differ diff --git a/mods/boats/textures/boats_wield.png b/mods/boats/textures/boats_wield.png new file mode 100644 index 00000000..f998b5bb Binary files /dev/null and b/mods/boats/textures/boats_wield.png differ diff --git a/bobblocks/blocks.lua b/mods/bobblocks/blocks.lua similarity index 100% rename from bobblocks/blocks.lua rename to mods/bobblocks/blocks.lua diff --git a/bobblocks/depends.txt b/mods/bobblocks/depends.txt similarity index 100% rename from bobblocks/depends.txt rename to mods/bobblocks/depends.txt diff --git a/bobblocks/description.txt b/mods/bobblocks/description.txt similarity index 100% rename from bobblocks/description.txt rename to mods/bobblocks/description.txt diff --git a/bobblocks/health.lua b/mods/bobblocks/health.lua similarity index 100% rename from bobblocks/health.lua rename to mods/bobblocks/health.lua diff --git a/bobblocks/init.lua b/mods/bobblocks/init.lua similarity index 100% rename from bobblocks/init.lua rename to mods/bobblocks/init.lua diff --git a/bobblocks/mod.conf b/mods/bobblocks/mod.conf similarity index 100% rename from bobblocks/mod.conf rename to mods/bobblocks/mod.conf diff --git a/bobblocks/readme.txt b/mods/bobblocks/readme.txt similarity index 100% rename from bobblocks/readme.txt rename to mods/bobblocks/readme.txt diff --git a/bobblocks/sounds/bobblocks_glassblock.ogg b/mods/bobblocks/sounds/bobblocks_glassblock.ogg similarity index 100% rename from bobblocks/sounds/bobblocks_glassblock.ogg rename to mods/bobblocks/sounds/bobblocks_glassblock.ogg diff --git a/bobblocks/sounds/bobblocks_health.ogg b/mods/bobblocks/sounds/bobblocks_health.ogg similarity index 100% rename from bobblocks/sounds/bobblocks_health.ogg rename to mods/bobblocks/sounds/bobblocks_health.ogg diff --git a/bobblocks/sounds/bobblocks_trap_fall.ogg b/mods/bobblocks/sounds/bobblocks_trap_fall.ogg similarity index 100% rename from bobblocks/sounds/bobblocks_trap_fall.ogg rename to mods/bobblocks/sounds/bobblocks_trap_fall.ogg diff --git a/bobblocks/sounds/bobblocks_trap_fall_major.ogg b/mods/bobblocks/sounds/bobblocks_trap_fall_major.ogg similarity index 100% rename from bobblocks/sounds/bobblocks_trap_fall_major.ogg rename to mods/bobblocks/sounds/bobblocks_trap_fall_major.ogg diff --git a/bobblocks/textures/bobblocks_block.png b/mods/bobblocks/textures/bobblocks_block.png similarity index 100% rename from bobblocks/textures/bobblocks_block.png rename to mods/bobblocks/textures/bobblocks_block.png diff --git a/bobblocks/textures/bobblocks_block_off.png b/mods/bobblocks/textures/bobblocks_block_off.png similarity index 100% rename from bobblocks/textures/bobblocks_block_off.png rename to mods/bobblocks/textures/bobblocks_block_off.png diff --git a/bobblocks/textures/bobblocks_btm.png b/mods/bobblocks/textures/bobblocks_btm.png similarity index 100% rename from bobblocks/textures/bobblocks_btm.png rename to mods/bobblocks/textures/bobblocks_btm.png diff --git a/bobblocks/textures/bobblocks_btm_sides.png b/mods/bobblocks/textures/bobblocks_btm_sides.png similarity index 100% rename from bobblocks/textures/bobblocks_btm_sides.png rename to mods/bobblocks/textures/bobblocks_btm_sides.png diff --git a/bobblocks/textures/bobblocks_health_off.png b/mods/bobblocks/textures/bobblocks_health_off.png similarity index 100% rename from bobblocks/textures/bobblocks_health_off.png rename to mods/bobblocks/textures/bobblocks_health_off.png diff --git a/bobblocks/textures/bobblocks_health_on.png b/mods/bobblocks/textures/bobblocks_health_on.png similarity index 100% rename from bobblocks/textures/bobblocks_health_on.png rename to mods/bobblocks/textures/bobblocks_health_on.png diff --git a/bobblocks/textures/bobblocks_health_one_sides.png b/mods/bobblocks/textures/bobblocks_health_one_sides.png similarity index 100% rename from bobblocks/textures/bobblocks_health_one_sides.png rename to mods/bobblocks/textures/bobblocks_health_one_sides.png diff --git a/bobblocks/textures/bobblocks_majorspike.png b/mods/bobblocks/textures/bobblocks_majorspike.png similarity index 100% rename from bobblocks/textures/bobblocks_majorspike.png rename to mods/bobblocks/textures/bobblocks_majorspike.png diff --git a/bobblocks/textures/bobblocks_minorspike.png b/mods/bobblocks/textures/bobblocks_minorspike.png similarity index 100% rename from bobblocks/textures/bobblocks_minorspike.png rename to mods/bobblocks/textures/bobblocks_minorspike.png diff --git a/bobblocks/textures/bobblocks_pole_inv.png b/mods/bobblocks/textures/bobblocks_pole_inv.png similarity index 100% rename from bobblocks/textures/bobblocks_pole_inv.png rename to mods/bobblocks/textures/bobblocks_pole_inv.png diff --git a/bobblocks/textures/bobblocks_trap_set.png b/mods/bobblocks/textures/bobblocks_trap_set.png similarity index 100% rename from bobblocks/textures/bobblocks_trap_set.png rename to mods/bobblocks/textures/bobblocks_trap_set.png diff --git a/bobblocks/textures/bobblocks_wavyblock.png b/mods/bobblocks/textures/bobblocks_wavyblock.png similarity index 100% rename from bobblocks/textures/bobblocks_wavyblock.png rename to mods/bobblocks/textures/bobblocks_wavyblock.png diff --git a/bobblocks/textures/bobblocks_wavypole_inv.png b/mods/bobblocks/textures/bobblocks_wavypole_inv.png similarity index 100% rename from bobblocks/textures/bobblocks_wavypole_inv.png rename to mods/bobblocks/textures/bobblocks_wavypole_inv.png diff --git a/bobblocks/trap.lua b/mods/bobblocks/trap.lua similarity index 100% rename from bobblocks/trap.lua rename to mods/bobblocks/trap.lua diff --git a/bonemeal/README.md b/mods/bonemeal/README.md similarity index 100% rename from bonemeal/README.md rename to mods/bonemeal/README.md diff --git a/bonemeal/api.txt b/mods/bonemeal/api.txt similarity index 100% rename from bonemeal/api.txt rename to mods/bonemeal/api.txt diff --git a/bonemeal/depends.txt b/mods/bonemeal/depends.txt similarity index 100% rename from bonemeal/depends.txt rename to mods/bonemeal/depends.txt diff --git a/bonemeal/description.txt b/mods/bonemeal/description.txt similarity index 100% rename from bonemeal/description.txt rename to mods/bonemeal/description.txt diff --git a/mods/bonemeal/init.lua b/mods/bonemeal/init.lua new file mode 100644 index 00000000..71cff14c --- /dev/null +++ b/mods/bonemeal/init.lua @@ -0,0 +1,677 @@ + +bonemeal = {} + +local path = minetest.get_modpath("bonemeal") +local min, max, random = math.min, math.max, math.random + + +-- Load support for intllib. +local S = minetest.get_translator and minetest.get_translator("bonemeal") or + dofile(path .. "/intllib.lua") + + +-- creative check +local creative_mode_cache = minetest.settings:get_bool("creative_mode") +function bonemeal.is_creative(name) + return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) +end + + +-- default crops +local crops = { + {"farming:cotton_", 8, "farming:seed_cotton"}, + {"farming:wheat_", 8, "farming:seed_wheat"} +} + + +-- special pine check for nearby snow +local function pine_grow(pos) + + if minetest.find_node_near(pos, 1, + {"default:snow", "default:snowblock", "default:dirt_with_snow"}) then + + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end +end + + +-- default saplings +local saplings = { + {"default:sapling", default.grow_new_apple_tree, "soil"}, + {"default:junglesapling", default.grow_new_jungle_tree, "soil"}, + {"default:emergent_jungle_sapling", default.grow_new_emergent_jungle_tree, "soil"}, + {"default:acacia_sapling", default.grow_new_acacia_tree, "soil"}, + {"default:aspen_sapling", default.grow_new_aspen_tree, "soil"}, + {"default:pine_sapling", pine_grow, "soil"}, + {"default:bush_sapling", default.grow_bush, "soil"}, + {"default:acacia_bush_sapling", default.grow_acacia_bush, "soil"}, + {"default:large_cactus_seedling", default.grow_large_cactus, "sand"}, + {"default:blueberry_bush_sapling", default.grow_blueberry_bush, "soil"}, + {"default:pine_bush_sapling", default.grow_pine_bush, "soil"} +} + +-- helper tables ( "" denotes a blank item ) +local green_grass = { + "default:grass_2", "default:grass_3", "default:grass_4", + "default:grass_5", "", "" +} + +local dry_grass = { + "default:dry_grass_2", "default:dry_grass_3", "default:dry_grass_4", + "default:dry_grass_5", "", "" +} + +-- loads mods then add all in-game flowers except waterlily +local flowers = {} + +minetest.after(0.1, function() + + for node, def in pairs(minetest.registered_nodes) do + + if def.groups + and def.groups.flower + and not node:find("waterlily") + and not node:find("xdecor:potted_") then + flowers[#flowers + 1] = node + end + end +end) + + +-- default biomes deco +local deco = { + {"default:dirt_with_dry_grass", dry_grass, flowers}, + {"default:sand", {}, {"default:dry_shrub", "", "", ""} }, + {"default:desert_sand", {}, {"default:dry_shrub", "", "", ""} }, + {"default:silver_sand", {}, {"default:dry_shrub", "", "", ""} }, +} + + +-- +-- local functions +-- + + +-- particles +local function particle_effect(pos) + + minetest.add_particlespawner({ + amount = 4, + time = 0.15, + minpos = pos, + maxpos = pos, + minvel = {x = -1, y = 2, z = -1}, + maxvel = {x = 1, y = 4, z = 1}, + minacc = {x = -1, y = -1, z = -1}, + maxacc = {x = 1, y = 1, z = 1}, + minexptime = 1, + maxexptime = 1, + minsize = 1, + maxsize = 3, + texture = "bonemeal_particle.png" + }) +end + + +-- tree type check +local function grow_tree(pos, object) + + if type(object) == "table" and object.axiom then + -- grow L-system tree + minetest.remove_node(pos) + minetest.spawn_tree(pos, object) + + elseif type(object) == "string" and minetest.registered_nodes[object] then + -- place node + minetest.set_node(pos, {name = object}) + + elseif type(object) == "function" then + -- function + object(pos) + end +end + + +-- sapling check +local function check_sapling(pos, nodename) + + -- what is sapling placed on? + local under = minetest.get_node({ + x = pos.x, + y = pos.y - 1, + z = pos.z + }) + + local can_grow, grow_on + + -- check list for sapling and function + for n = 1, #saplings do + + if saplings[n][1] == nodename then + + grow_on = saplings[n][3] + + -- sapling grows on top of specific node + if grow_on + and grow_on ~= "soil" + and grow_on ~= "sand" + and grow_on == under.name then + can_grow = true + end + + -- sapling grows on top of soil (default) + if can_grow == nil + and (grow_on == nil or grow_on == "soil") + and minetest.get_item_group(under.name, "soil") > 0 then + can_grow = true + end + + -- sapling grows on top of sand + if can_grow == nil + and grow_on == "sand" + and minetest.get_item_group(under.name, "sand") > 0 then + can_grow = true + end + + -- check if we can grow sapling + if can_grow then + particle_effect(pos) + grow_tree(pos, saplings[n][2]) + return true + end + end + end +end + + +-- crops check +local function check_crops(pos, nodename, strength) + + local mod, crop, stage, nod, def + + -- grow registered crops + for n = 1, #crops do + + if nodename:find(crops[n][1]) + or nodename == crops[n][3] then + + -- separate mod and node name + mod = nodename:split(":")[1] .. ":" + crop = nodename:split(":")[2] + + -- get stage number or set to 0 for seed + stage = tonumber( crop:split("_")[2] ) or 0 + stage = min(stage + strength, crops[n][2]) + + -- check for place_param setting + nod = crops[n][1] .. stage + def = minetest.registered_nodes[nod] + def = def and def.place_param2 or 0 + + minetest.set_node(pos, {name = nod, param2 = def}) + + particle_effect(pos) + + return true + end + end +end + + +-- check soil for specific decoration placement +local function check_soil(pos, nodename, strength) + + -- set radius according to strength + local side = strength - 1 + local tall = max(strength - 2, 0) + local floor + local groups = minetest.registered_items[nodename] + and minetest.registered_items[nodename].groups or {} + + -- only place decoration on one type of surface + if groups.soil then + floor = {"group:soil"} + elseif groups.sand then + floor = {"group:sand"} + else + floor = {nodename} + end + + -- get area of land with free space above + local dirt = minetest.find_nodes_in_area_under_air( + {x = pos.x - side, y = pos.y - tall, z = pos.z - side}, + {x = pos.x + side, y = pos.y + tall, z = pos.z + side}, floor) + + -- set default grass and decoration + local grass = green_grass + local decor = flowers + + -- choose grass and decoration to use on dirt patch + for n = 1, #deco do + + -- do we have a grass match? + if nodename == deco[n][1] then + grass = deco[n][2] or {} + decor = deco[n][3] or {} + end + end + + local pos2, nod, def + + -- loop through soil + for _, n in pairs(dirt) do + + if random(5) == 5 then + if decor and #decor > 0 then + -- place random decoration (rare) + local dnum = #decor or 1 + nod = decor[random(dnum)] or "" + end + else + if grass and #grass > 0 then + -- place random grass (common) + local dgra = #grass or 1 + nod = #grass > 0 and grass[random(dgra)] or "" + end + end + + pos2 = n + + pos2.y = pos2.y + 1 + + if nod and nod ~= "" then + + -- get crop param2 value + def = minetest.registered_nodes[nod] + def = def and def.place_param2 + + -- if param2 not preset then get from existing node + if not def then + local node = minetest.get_node_or_nil(pos2) + def = node and node.param2 or 0 + end + + minetest.set_node(pos2, {name = nod, param2 = def}) + end + + particle_effect(pos2) + end +end + + +-- global functions + + +-- add to sapling list +-- {sapling node, schematic or function name, "soil"|"sand"|specific_node} +--e.g. {"default:sapling", default.grow_new_apple_tree, "soil"} + +function bonemeal:add_sapling(list) + + for n = 1, #list do + saplings[#saplings + 1] = list[n] + end +end + + +-- add to crop list to force grow +-- {crop name start_, growth steps, seed node (if required)} +-- e.g. {"farming:wheat_", 8, "farming:seed_wheat"} +function bonemeal:add_crop(list) + + for n = 1, #list do + crops[#crops + 1] = list[n] + end +end + + +-- add grass and flower/plant decoration for specific dirt types +-- {dirt_node, {grass_nodes}, {flower_nodes} +-- e.g. {"default:dirt_with_dry_grass", dry_grass, flowers} +-- if an entry already exists for a given dirt type, it will add new entries and all empty +-- entries, allowing to both add decorations and decrease their frequency. +function bonemeal:add_deco(list) + + for l = 1, #list do + + for n = 1, #deco do + + -- update existing entry + if list[l][1] == deco[n][1] then + + -- adding grass types + for _, extra in pairs(list[l][2]) do + + if extra ~= "" then + + for _, entry in pairs(deco[n][2]) do + + if extra == entry then + extra = false + break + end + end + end + + if extra then + deco[n][2][#deco[n][2] + 1] = extra + end + end + + -- adding decoration types + for _, extra in ipairs(list[l][3]) do + + if extra ~= "" then + + for __, entry in pairs(deco[n][3]) do + + if extra == entry then + extra = false + break + end + end + end + + if extra then + deco[n][3][#deco[n][3] + 1] = extra + end + end + + list[l] = false + break + end + end + + if list[l] then + deco[#deco + 1] = list[l] + end + end +end + + +-- definitively set a decration scheme +-- this function will either add a new entry as is, or replace the existing one +function bonemeal:set_deco(list) + + for l = 1, #list do + + for n = 1, #deco do + + -- replace existing entry + if list[l][1] == deco[n][1] then + deco[n][2] = list[l][2] + deco[n][3] = list[l][3] + list[l] = false + break + end + end + + if list[l] then + deco[#deco + 1] = list[l] + end + end +end + + +-- global on_use function for bonemeal +function bonemeal:on_use(pos, strength, node) + + -- get node pointed at + local node = node or minetest.get_node(pos) + + -- return if nothing there + if node.name == "ignore" then + return + end + + -- make sure strength is between 1 and 4 + strength = strength or 1 + strength = max(strength, 1) + strength = min(strength, 4) + + -- papyrus and cactus + if node.name == "default:papyrus" then + + default.grow_papyrus(pos, node) + particle_effect(pos) + return true + + elseif node.name == "default:cactus" then + + default.grow_cactus(pos, node) + particle_effect(pos) + return true + end + + -- grow grass and flowers + if minetest.get_item_group(node.name, "soil") > 0 + or minetest.get_item_group(node.name, "sand") > 0 + or minetest.get_item_group(node.name, "can_bonemeal") > 0 then + check_soil(pos, node.name, strength) + return true + end + + -- light check depending on strength (strength of 4 = no light needed) + if (minetest.get_node_light(pos) or 0) < (12 - (strength * 3)) then + return + end + + -- check for tree growth if pointing at sapling + if minetest.get_item_group(node.name, "sapling") > 0 + and random(5 - strength) == 1 then + check_sapling(pos, node.name) + return true + end + + -- check for crop growth + if check_crops(pos, node.name, strength) then + return true + end +end + + +-- +-- items +-- + + +-- mulch (strength 1) +minetest.register_craftitem("bonemeal:mulch", { + description = S("Mulch"), + inventory_image = "bonemeal_mulch.png", + + on_use = function(itemstack, user, pointed_thing) + + -- did we point at a node? + if pointed_thing.type ~= "node" then + return + end + + -- is area protected? + if minetest.is_protected(pointed_thing.under, user:get_player_name()) then + return + end + + -- call global on_use function with strength of 1 + if bonemeal:on_use(pointed_thing.under, 1) then + + -- take item if not in creative + if not bonemeal.is_creative(user:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end +}) + + +-- bonemeal (strength 2) +minetest.register_craftitem("bonemeal:bonemeal", { + description = S("Bone Meal"), + inventory_image = "bonemeal_item.png", + + on_use = function(itemstack, user, pointed_thing) + + -- did we point at a node? + if pointed_thing.type ~= "node" then + return + end + + -- is area protected? + if minetest.is_protected(pointed_thing.under, user:get_player_name()) then + return + end + + -- call global on_use function with strength of 2 + if bonemeal:on_use(pointed_thing.under, 2) then + + -- take item if not in creative + if not bonemeal.is_creative(user:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end +}) + + +-- fertiliser (strength 3) +minetest.register_craftitem("bonemeal:fertiliser", { + description = S("Fertiliser"), + inventory_image = "bonemeal_fertiliser.png", + + on_use = function(itemstack, user, pointed_thing) + + -- did we point at a node? + if pointed_thing.type ~= "node" then + return + end + + -- is area protected? + if minetest.is_protected(pointed_thing.under, user:get_player_name()) then + return + end + + -- call global on_use function with strength of 3 + if bonemeal:on_use(pointed_thing.under, 3) then + + -- take item if not in creative + if not bonemeal.is_creative(user:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end +}) + + +-- bone +minetest.register_craftitem("bonemeal:bone", { + description = S("Bone"), + inventory_image = "bonemeal_bone.png", + groups = {bone = 1} +}) + +-- gelatin powder +minetest.register_craftitem("bonemeal:gelatin_powder", { + description = S("Gelatin Powder"), + inventory_image = "bonemeal_gelatin_powder.png", + groups = {food_gelatin = 1, flammable = 2} +}) + + +-- +-- crafting recipes +-- + + +-- gelatin powder +minetest.register_craft({ + output = "bonemeal:gelatin_powder 4", + recipe = { + {"group:bone", "group:bone", "group:bone"}, + {"bucket:bucket_water", "bucket:bucket_water", "bucket:bucket_water"}, + {"bucket:bucket_water", "default:torch", "bucket:bucket_water"}, + }, + replacements = { + {"bucket:bucket_water", "bucket:bucket_empty 5"}, + } +}) + +-- bonemeal (from bone) +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:bonemeal 2", + recipe = {"group:bone"} +}) + +-- bonemeal (from player bones) +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:bonemeal 4", + recipe = {"bones:bones"} +}) + +-- bonemeal (from coral skeleton) +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:bonemeal 2", + recipe = {"default:coral_skeleton"} +}) + +-- mulch +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:mulch 4", + recipe = { + "group:tree", "group:leaves", "group:leaves", + "group:leaves", "group:leaves", "group:leaves", + "group:leaves", "group:leaves", "group:leaves" + } +}) + +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:mulch", + recipe = { + "group:seed", "group:seed", "group:seed", + "group:seed", "group:seed", "group:seed", + "group:seed", "group:seed", "group:seed" + } +}) + +-- fertiliser +minetest.register_craft({ + type = "shapeless", + output = "bonemeal:fertiliser 2", + recipe = {"bonemeal:bonemeal", "bonemeal:mulch"} +}) + + +-- add bones to dirt +minetest.override_item("default:dirt", { + drop = { + max_items = 1, + items = { + { + items = {"bonemeal:bone"}, + rarity = 40 + }, + { + items = {"default:dirt"} + } + } + } +}) + + +-- add support for other mods +dofile(path .. "/mods.lua") +dofile(path .. "/lucky_block.lua") + +print (S("[MOD] bonemeal loaded")) diff --git a/bonemeal/intllib.lua b/mods/bonemeal/intllib.lua similarity index 100% rename from bonemeal/intllib.lua rename to mods/bonemeal/intllib.lua diff --git a/bonemeal/license.txt b/mods/bonemeal/license.txt similarity index 100% rename from bonemeal/license.txt rename to mods/bonemeal/license.txt diff --git a/bonemeal/locale/bonemeal.de.tr b/mods/bonemeal/locale/bonemeal.de.tr similarity index 100% rename from bonemeal/locale/bonemeal.de.tr rename to mods/bonemeal/locale/bonemeal.de.tr diff --git a/bonemeal/locale/bonemeal.en.tr b/mods/bonemeal/locale/bonemeal.en.tr similarity index 100% rename from bonemeal/locale/bonemeal.en.tr rename to mods/bonemeal/locale/bonemeal.en.tr diff --git a/bonemeal/locale/bonemeal.es.tr b/mods/bonemeal/locale/bonemeal.es.tr similarity index 100% rename from bonemeal/locale/bonemeal.es.tr rename to mods/bonemeal/locale/bonemeal.es.tr diff --git a/bonemeal/locale/bonemeal.fr.tr b/mods/bonemeal/locale/bonemeal.fr.tr similarity index 100% rename from bonemeal/locale/bonemeal.fr.tr rename to mods/bonemeal/locale/bonemeal.fr.tr diff --git a/bonemeal/locale/bonemeal.it.tr b/mods/bonemeal/locale/bonemeal.it.tr similarity index 100% rename from bonemeal/locale/bonemeal.it.tr rename to mods/bonemeal/locale/bonemeal.it.tr diff --git a/bonemeal/locale/bonemeal.ru.tr b/mods/bonemeal/locale/bonemeal.ru.tr similarity index 100% rename from bonemeal/locale/bonemeal.ru.tr rename to mods/bonemeal/locale/bonemeal.ru.tr diff --git a/bonemeal/locale/es.txt b/mods/bonemeal/locale/es.txt similarity index 100% rename from bonemeal/locale/es.txt rename to mods/bonemeal/locale/es.txt diff --git a/bonemeal/locale/fr.txt b/mods/bonemeal/locale/fr.txt similarity index 100% rename from bonemeal/locale/fr.txt rename to mods/bonemeal/locale/fr.txt diff --git a/bonemeal/locale/it.txt b/mods/bonemeal/locale/it.txt similarity index 100% rename from bonemeal/locale/it.txt rename to mods/bonemeal/locale/it.txt diff --git a/bonemeal/locale/ru.txt b/mods/bonemeal/locale/ru.txt similarity index 100% rename from bonemeal/locale/ru.txt rename to mods/bonemeal/locale/ru.txt diff --git a/bonemeal/locale/template.txt b/mods/bonemeal/locale/template.txt similarity index 100% rename from bonemeal/locale/template.txt rename to mods/bonemeal/locale/template.txt diff --git a/bonemeal/lucky_block.lua b/mods/bonemeal/lucky_block.lua similarity index 100% rename from bonemeal/lucky_block.lua rename to mods/bonemeal/lucky_block.lua diff --git a/bonemeal/mod.conf b/mods/bonemeal/mod.conf similarity index 100% rename from bonemeal/mod.conf rename to mods/bonemeal/mod.conf diff --git a/bonemeal/mods.lua b/mods/bonemeal/mods.lua similarity index 100% rename from bonemeal/mods.lua rename to mods/bonemeal/mods.lua diff --git a/bonemeal/screenshot.png b/mods/bonemeal/screenshot.png similarity index 100% rename from bonemeal/screenshot.png rename to mods/bonemeal/screenshot.png diff --git a/bonemeal/textures/bonemeal_bone.png b/mods/bonemeal/textures/bonemeal_bone.png similarity index 100% rename from bonemeal/textures/bonemeal_bone.png rename to mods/bonemeal/textures/bonemeal_bone.png diff --git a/bonemeal/textures/bonemeal_fertiliser.png b/mods/bonemeal/textures/bonemeal_fertiliser.png similarity index 100% rename from bonemeal/textures/bonemeal_fertiliser.png rename to mods/bonemeal/textures/bonemeal_fertiliser.png diff --git a/bonemeal/textures/bonemeal_gelatin_powder.png b/mods/bonemeal/textures/bonemeal_gelatin_powder.png similarity index 100% rename from bonemeal/textures/bonemeal_gelatin_powder.png rename to mods/bonemeal/textures/bonemeal_gelatin_powder.png diff --git a/bonemeal/textures/bonemeal_item.png b/mods/bonemeal/textures/bonemeal_item.png similarity index 100% rename from bonemeal/textures/bonemeal_item.png rename to mods/bonemeal/textures/bonemeal_item.png diff --git a/bonemeal/textures/bonemeal_mulch.png b/mods/bonemeal/textures/bonemeal_mulch.png similarity index 100% rename from bonemeal/textures/bonemeal_mulch.png rename to mods/bonemeal/textures/bonemeal_mulch.png diff --git a/bonemeal/textures/bonemeal_particle.png b/mods/bonemeal/textures/bonemeal_particle.png similarity index 100% rename from bonemeal/textures/bonemeal_particle.png rename to mods/bonemeal/textures/bonemeal_particle.png diff --git a/mods/bucket/README.txt b/mods/bucket/README.txt new file mode 100644 index 00000000..58997b26 --- /dev/null +++ b/mods/bucket/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: bucket +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Kahrl (LGPLv2.1+) +celeron55, Perttu Ahola (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +Authors of media (textures) +--------------------------- +ElementW (CC BY-SA 3.0) diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua new file mode 100644 index 00000000..ebdf2e74 --- /dev/null +++ b/mods/bucket/init.lua @@ -0,0 +1,240 @@ +-- Minetest 0.4 mod: bucket +-- See README.txt for licensing and other information. + +-- Load support for MT game translation. +local S = minetest.get_translator("bucket") + + +minetest.register_alias("bucket", "bucket:bucket_empty") +minetest.register_alias("bucket_water", "bucket:bucket_water") +minetest.register_alias("bucket_lava", "bucket:bucket_lava") + +minetest.register_craft({ + output = "bucket:bucket_empty 1", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"", "default:steel_ingot", ""}, + } +}) + +bucket = {} +bucket.liquids = {} + +local function check_protection(pos, name, text) + if minetest.is_protected(pos, name) then + minetest.log("action", (name ~= "" and name or "A mod") + .. " tried to " .. text + .. " at protected position " + .. minetest.pos_to_string(pos) + .. " with a bucket") + minetest.record_protection_violation(pos, name) + return true + end + return false +end + +-- Register a new liquid +-- source = name of the source node +-- flowing = name of the flowing node +-- itemname = name of the new bucket item (or nil if liquid is not takeable) +-- inventory_image = texture of the new bucket item (ignored if itemname == nil) +-- name = text description of the bucket item +-- groups = (optional) groups of the bucket item, for example {water_bucket = 1} +-- force_renew = (optional) bool. 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. +-- This function can be called from any mod (that depends on bucket). +function bucket.register_liquid(source, flowing, itemname, inventory_image, name, + groups, force_renew) + bucket.liquids[source] = { + source = source, + flowing = flowing, + itemname = itemname, + force_renew = force_renew, + } + bucket.liquids[flowing] = bucket.liquids[source] + + if itemname ~= nil then + minetest.register_craftitem(itemname, { + description = name, + inventory_image = inventory_image, + stack_max = 1, + liquids_pointable = true, + groups = groups, + + on_place = function(itemstack, user, pointed_thing) + -- Must be pointing to node + if pointed_thing.type ~= "node" then + return + end + + local node = minetest.get_node_or_nil(pointed_thing.under) + local ndef = node and minetest.registered_nodes[node.name] + + -- Call on_rightclick if the pointed node defines it + if ndef and ndef.on_rightclick and + not (user and user:is_player() and + user:get_player_control().sneak) then + return ndef.on_rightclick( + pointed_thing.under, + node, user, + itemstack) + end + + local lpos + + -- Check if pointing to a buildable node + if ndef and ndef.buildable_to then + -- buildable; replace the node + lpos = pointed_thing.under + else + -- not buildable to; place the liquid above + -- check if the node above can be replaced + + lpos = pointed_thing.above + node = minetest.get_node_or_nil(lpos) + local above_ndef = node and minetest.registered_nodes[node.name] + + if not above_ndef or not above_ndef.buildable_to then + -- do not remove the bucket with the liquid + return itemstack + end + end + + if check_protection(lpos, user + and user:get_player_name() + or "", "place "..source) then + return + end + + minetest.set_node(lpos, {name = source}) + return ItemStack("bucket:bucket_empty") + end + }) + end +end + +minetest.register_craftitem("bucket:bucket_empty", { + description = S("Empty Bucket"), + inventory_image = "bucket.png", + groups = {tool = 1}, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type == "object" then + pointed_thing.ref:punch(user, 1.0, { full_punch_interval=1.0 }, nil) + return user:get_wielded_item() + elseif pointed_thing.type ~= "node" then + -- do nothing if it's neither object nor node + return + end + -- Check if pointing to a liquid source + local node = minetest.get_node(pointed_thing.under) + local liquiddef = bucket.liquids[node.name] + local item_count = user:get_wielded_item():get_count() + + if liquiddef ~= nil + and liquiddef.itemname ~= nil + and node.name == liquiddef.source then + if check_protection(pointed_thing.under, + user:get_player_name(), + "take ".. node.name) then + return + end + + -- default set to return filled bucket + local giving_back = liquiddef.itemname + + -- check if holding more than 1 empty bucket + if item_count > 1 then + + -- if space in inventory add filled bucked, otherwise drop as item + local inv = user:get_inventory() + if inv:room_for_item("main", {name=liquiddef.itemname}) then + inv:add_item("main", liquiddef.itemname) + else + local pos = user:get_pos() + pos.y = math.floor(pos.y + 0.5) + minetest.add_item(pos, liquiddef.itemname) + end + + -- set to return empty buckets minus 1 + giving_back = "bucket:bucket_empty "..tostring(item_count-1) + + end + + -- force_renew requires a source neighbour + local source_neighbor = false + if liquiddef.force_renew then + source_neighbor = + minetest.find_node_near(pointed_thing.under, 1, liquiddef.source) + end + if not (source_neighbor and liquiddef.force_renew) then + minetest.add_node(pointed_thing.under, {name = "air"}) + end + + return ItemStack(giving_back) + else + -- non-liquid nodes will have their on_punch triggered + local node_def = minetest.registered_nodes[node.name] + if node_def then + node_def.on_punch(pointed_thing.under, node, user, pointed_thing) + end + return user:get_wielded_item() + end + end, +}) + +bucket.register_liquid( + "default:water_source", + "default:water_flowing", + "bucket:bucket_water", + "bucket_water.png", + S("Water Bucket"), + {tool = 1, water_bucket = 1} +) + +-- River water source is 'liquid_renewable = false' to avoid horizontal spread +-- of water sources in sloping rivers that can cause water to overflow +-- riverbanks and cause floods. +-- River water source is instead made renewable by the 'force renew' option +-- used here. + +bucket.register_liquid( + "default:river_water_source", + "default:river_water_flowing", + "bucket:bucket_river_water", + "bucket_river_water.png", + S("River Water Bucket"), + {tool = 1, water_bucket = 1}, + true +) + +bucket.register_liquid( + "default:lava_source", + "default:lava_flowing", + "bucket:bucket_lava", + "bucket_lava.png", + S("Lava Bucket"), + {tool = 1} +) + +minetest.register_craft({ + type = "fuel", + recipe = "bucket:bucket_lava", + burntime = 60, + replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}}, +}) + +-- Register buckets as dungeon loot +if minetest.global_exists("dungeon_loot") then + dungeon_loot.register({ + {name = "bucket:bucket_empty", chance = 0.55}, + -- water in deserts/ice or above ground, lava otherwise + {name = "bucket:bucket_water", chance = 0.45, + types = {"sandstone", "desert", "ice"}}, + {name = "bucket:bucket_water", chance = 0.45, y = {0, 32768}, + types = {"normal"}}, + {name = "bucket:bucket_lava", chance = 0.45, y = {-32768, -1}, + types = {"normal"}}, + }) +end diff --git a/mods/bucket/license.txt b/mods/bucket/license.txt new file mode 100644 index 00000000..a5156ae6 --- /dev/null +++ b/mods/bucket/license.txt @@ -0,0 +1,51 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 Kahrl +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2011-2016 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2015-2016 ElementW + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/bucket/locale/bucket.de.tr b/mods/bucket/locale/bucket.de.tr new file mode 100644 index 00000000..570dff15 --- /dev/null +++ b/mods/bucket/locale/bucket.de.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Leerer Eimer +Water Bucket=Wassereimer +River Water Bucket=Flusswassereimer +Lava Bucket=Lavaeimer diff --git a/mods/bucket/locale/bucket.es.tr b/mods/bucket/locale/bucket.es.tr new file mode 100644 index 00000000..91a06233 --- /dev/null +++ b/mods/bucket/locale/bucket.es.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Cubo vacío +Water Bucket=Cubo con agua +River Water Bucket=Cubo con agua de río +Lava Bucket=Cubo con lava diff --git a/mods/bucket/locale/bucket.fr.tr b/mods/bucket/locale/bucket.fr.tr new file mode 100644 index 00000000..5065150d --- /dev/null +++ b/mods/bucket/locale/bucket.fr.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Seau vide +Water Bucket=Seau d'eau +River Water Bucket=Seau d'eau de rivière +Lava Bucket=Seau de lave diff --git a/mods/bucket/locale/bucket.id.tr b/mods/bucket/locale/bucket.id.tr new file mode 100644 index 00000000..56625638 --- /dev/null +++ b/mods/bucket/locale/bucket.id.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Ember Kosong +Water Bucket=Ember Air +River Water Bucket=Ember Air Sungai +Lava Bucket=Ember Lava diff --git a/mods/bucket/locale/bucket.it.tr b/mods/bucket/locale/bucket.it.tr new file mode 100644 index 00000000..beca28c7 --- /dev/null +++ b/mods/bucket/locale/bucket.it.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Secchio vuoto +Water Bucket=Secchio d'acqua +River Water Bucket=Secchio d'acqua di fiume +Lava Bucket=Secchio di lava diff --git a/mods/bucket/locale/bucket.jbo.tr b/mods/bucket/locale/bucket.jbo.tr new file mode 100644 index 00000000..e40d2b92 --- /dev/null +++ b/mods/bucket/locale/bucket.jbo.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=lo baktu be no da +Water Bucket=lo baktu be lo djacu +River Water Bucket=lo baktu be lo rirxe djacu +Lava Bucket=lo baktu be lo likro'i diff --git a/mods/bucket/locale/bucket.ms.tr b/mods/bucket/locale/bucket.ms.tr new file mode 100644 index 00000000..02ba38a6 --- /dev/null +++ b/mods/bucket/locale/bucket.ms.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Baldi Kosong +Water Bucket=Baldi Air +River Water Bucket=Baldi Air Sungai +Lava Bucket=Baldi Lava diff --git a/mods/bucket/locale/bucket.pt_BR.tr b/mods/bucket/locale/bucket.pt_BR.tr new file mode 100644 index 00000000..429acac0 --- /dev/null +++ b/mods/bucket/locale/bucket.pt_BR.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Balde Vazio +Water Bucket=Balde de Água +River Water Bucket=Balde de Água do Rio +Lava Bucket=Balde de Lava diff --git a/mods/bucket/locale/bucket.ru.tr b/mods/bucket/locale/bucket.ru.tr new file mode 100644 index 00000000..8ede2804 --- /dev/null +++ b/mods/bucket/locale/bucket.ru.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Пустое Ведро +Water Bucket=Ведро с Водой +River Water Bucket=Ведро с Речной Водой +Lava Bucket=Ведро с Лавой diff --git a/mods/bucket/locale/bucket.se.tr b/mods/bucket/locale/bucket.se.tr new file mode 100644 index 00000000..105b5d3e --- /dev/null +++ b/mods/bucket/locale/bucket.se.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Tom hink +Water Bucket=Vatten hink +River Water Bucket=Flodvatten hink +Lava Bucket=Lava hink diff --git a/mods/bucket/locale/bucket.sk.tr b/mods/bucket/locale/bucket.sk.tr new file mode 100644 index 00000000..0327b20c --- /dev/null +++ b/mods/bucket/locale/bucket.sk.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Prázdne vedro +Water Bucket=Vedro s vodou +River Water Bucket=Vedro s vodou z rieky +Lava Bucket=Vedro s lávou diff --git a/mods/bucket/locale/bucket.zh_CN.tr b/mods/bucket/locale/bucket.zh_CN.tr new file mode 100644 index 00000000..fda5bfcd --- /dev/null +++ b/mods/bucket/locale/bucket.zh_CN.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=空桶 +Water Bucket=水桶 +River Water Bucket=河水桶 +Lava Bucket=岩浆桶 diff --git a/mods/bucket/locale/bucket.zh_TW.tr b/mods/bucket/locale/bucket.zh_TW.tr new file mode 100644 index 00000000..965d6575 --- /dev/null +++ b/mods/bucket/locale/bucket.zh_TW.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=空桶 +Water Bucket=水桶 +River Water Bucket=河水桶 +Lava Bucket=岩漿桶 diff --git a/mods/bucket/locale/template.txt b/mods/bucket/locale/template.txt new file mode 100644 index 00000000..a37c103b --- /dev/null +++ b/mods/bucket/locale/template.txt @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket= +Water Bucket= +River Water Bucket= +Lava Bucket= diff --git a/mods/bucket/mod.conf b/mods/bucket/mod.conf new file mode 100644 index 00000000..fef46873 --- /dev/null +++ b/mods/bucket/mod.conf @@ -0,0 +1,4 @@ +name = bucket +description = Minetest Game mod: bucket +depends = default +optional_depends = dungeon_loot diff --git a/mods/bucket/textures/bucket.png b/mods/bucket/textures/bucket.png new file mode 100644 index 00000000..17b0c493 Binary files /dev/null and b/mods/bucket/textures/bucket.png differ diff --git a/mods/bucket/textures/bucket_lava.png b/mods/bucket/textures/bucket_lava.png new file mode 100644 index 00000000..ac6108d9 Binary files /dev/null and b/mods/bucket/textures/bucket_lava.png differ diff --git a/mods/bucket/textures/bucket_river_water.png b/mods/bucket/textures/bucket_river_water.png new file mode 100644 index 00000000..d4648bb3 Binary files /dev/null and b/mods/bucket/textures/bucket_river_water.png differ diff --git a/mods/bucket/textures/bucket_water.png b/mods/bucket/textures/bucket_water.png new file mode 100644 index 00000000..5af836bc Binary files /dev/null and b/mods/bucket/textures/bucket_water.png differ diff --git a/building_blocks/.luacheckrc b/mods/building_blocks/.luacheckrc similarity index 100% rename from building_blocks/.luacheckrc rename to mods/building_blocks/.luacheckrc diff --git a/building_blocks/alias.lua b/mods/building_blocks/alias.lua similarity index 100% rename from building_blocks/alias.lua rename to mods/building_blocks/alias.lua diff --git a/building_blocks/init.lua b/mods/building_blocks/init.lua similarity index 100% rename from building_blocks/init.lua rename to mods/building_blocks/init.lua diff --git a/building_blocks/locale/building_blocks.de.tr b/mods/building_blocks/locale/building_blocks.de.tr similarity index 100% rename from building_blocks/locale/building_blocks.de.tr rename to mods/building_blocks/locale/building_blocks.de.tr diff --git a/building_blocks/locale/building_blocks.es.tr b/mods/building_blocks/locale/building_blocks.es.tr similarity index 100% rename from building_blocks/locale/building_blocks.es.tr rename to mods/building_blocks/locale/building_blocks.es.tr diff --git a/building_blocks/locale/building_blocks.fr.tr b/mods/building_blocks/locale/building_blocks.fr.tr similarity index 100% rename from building_blocks/locale/building_blocks.fr.tr rename to mods/building_blocks/locale/building_blocks.fr.tr diff --git a/building_blocks/locale/building_blocks.ms.tr b/mods/building_blocks/locale/building_blocks.ms.tr similarity index 100% rename from building_blocks/locale/building_blocks.ms.tr rename to mods/building_blocks/locale/building_blocks.ms.tr diff --git a/building_blocks/locale/building_blocks.pt.tr b/mods/building_blocks/locale/building_blocks.pt.tr similarity index 100% rename from building_blocks/locale/building_blocks.pt.tr rename to mods/building_blocks/locale/building_blocks.pt.tr diff --git a/building_blocks/locale/building_blocks.pt_BR.tr b/mods/building_blocks/locale/building_blocks.pt_BR.tr similarity index 100% rename from building_blocks/locale/building_blocks.pt_BR.tr rename to mods/building_blocks/locale/building_blocks.pt_BR.tr diff --git a/building_blocks/locale/building_blocks.ru.tr b/mods/building_blocks/locale/building_blocks.ru.tr similarity index 100% rename from building_blocks/locale/building_blocks.ru.tr rename to mods/building_blocks/locale/building_blocks.ru.tr diff --git a/building_blocks/locale/building_blocks.zh_CN.tr b/mods/building_blocks/locale/building_blocks.zh_CN.tr similarity index 100% rename from building_blocks/locale/building_blocks.zh_CN.tr rename to mods/building_blocks/locale/building_blocks.zh_CN.tr diff --git a/building_blocks/locale/template.txt b/mods/building_blocks/locale/template.txt similarity index 100% rename from building_blocks/locale/template.txt rename to mods/building_blocks/locale/template.txt diff --git a/building_blocks/mod.conf b/mods/building_blocks/mod.conf similarity index 100% rename from building_blocks/mod.conf rename to mods/building_blocks/mod.conf diff --git a/building_blocks/node_stairs.lua b/mods/building_blocks/node_stairs.lua similarity index 100% rename from building_blocks/node_stairs.lua rename to mods/building_blocks/node_stairs.lua diff --git a/building_blocks/others.lua b/mods/building_blocks/others.lua similarity index 100% rename from building_blocks/others.lua rename to mods/building_blocks/others.lua diff --git a/building_blocks/recipes.lua b/mods/building_blocks/recipes.lua similarity index 100% rename from building_blocks/recipes.lua rename to mods/building_blocks/recipes.lua diff --git a/building_blocks/textures/building_blocks_Adobe.png b/mods/building_blocks/textures/building_blocks_Adobe.png similarity index 100% rename from building_blocks/textures/building_blocks_Adobe.png rename to mods/building_blocks/textures/building_blocks_Adobe.png diff --git a/building_blocks/textures/building_blocks_BWtile.png b/mods/building_blocks/textures/building_blocks_BWtile.png similarity index 100% rename from building_blocks/textures/building_blocks_BWtile.png rename to mods/building_blocks/textures/building_blocks_BWtile.png diff --git a/building_blocks/textures/building_blocks_Roofing.png b/mods/building_blocks/textures/building_blocks_Roofing.png similarity index 100% rename from building_blocks/textures/building_blocks_Roofing.png rename to mods/building_blocks/textures/building_blocks_Roofing.png diff --git a/building_blocks/textures/building_blocks_brobble.png b/mods/building_blocks/textures/building_blocks_brobble.png similarity index 100% rename from building_blocks/textures/building_blocks_brobble.png rename to mods/building_blocks/textures/building_blocks_brobble.png diff --git a/building_blocks/textures/building_blocks_brobble_spread_inv.png b/mods/building_blocks/textures/building_blocks_brobble_spread_inv.png similarity index 100% rename from building_blocks/textures/building_blocks_brobble_spread_inv.png rename to mods/building_blocks/textures/building_blocks_brobble_spread_inv.png diff --git a/building_blocks/textures/building_blocks_bwtile_inv.png b/mods/building_blocks/textures/building_blocks_bwtile_inv.png similarity index 100% rename from building_blocks/textures/building_blocks_bwtile_inv.png rename to mods/building_blocks/textures/building_blocks_bwtile_inv.png diff --git a/building_blocks/textures/building_blocks_cast_iron.png b/mods/building_blocks/textures/building_blocks_cast_iron.png similarity index 100% rename from building_blocks/textures/building_blocks_cast_iron.png rename to mods/building_blocks/textures/building_blocks_cast_iron.png diff --git a/building_blocks/textures/building_blocks_cast_iron_fireplace.png b/mods/building_blocks/textures/building_blocks_cast_iron_fireplace.png similarity index 100% rename from building_blocks/textures/building_blocks_cast_iron_fireplace.png rename to mods/building_blocks/textures/building_blocks_cast_iron_fireplace.png diff --git a/building_blocks/textures/building_blocks_grate.png b/mods/building_blocks/textures/building_blocks_grate.png similarity index 100% rename from building_blocks/textures/building_blocks_grate.png rename to mods/building_blocks/textures/building_blocks_grate.png diff --git a/building_blocks/textures/building_blocks_grate2.png b/mods/building_blocks/textures/building_blocks_grate2.png similarity index 100% rename from building_blocks/textures/building_blocks_grate2.png rename to mods/building_blocks/textures/building_blocks_grate2.png diff --git a/building_blocks/textures/building_blocks_gravel_spread_inv.png b/mods/building_blocks/textures/building_blocks_gravel_spread_inv.png similarity index 100% rename from building_blocks/textures/building_blocks_gravel_spread_inv.png rename to mods/building_blocks/textures/building_blocks_gravel_spread_inv.png diff --git a/building_blocks/textures/building_blocks_hardwood.png b/mods/building_blocks/textures/building_blocks_hardwood.png similarity index 100% rename from building_blocks/textures/building_blocks_hardwood.png rename to mods/building_blocks/textures/building_blocks_hardwood.png diff --git a/building_blocks/textures/building_blocks_knife.png b/mods/building_blocks/textures/building_blocks_knife.png similarity index 100% rename from building_blocks/textures/building_blocks_knife.png rename to mods/building_blocks/textures/building_blocks_knife.png diff --git a/building_blocks/textures/building_blocks_marble.png b/mods/building_blocks/textures/building_blocks_marble.png similarity index 100% rename from building_blocks/textures/building_blocks_marble.png rename to mods/building_blocks/textures/building_blocks_marble.png diff --git a/building_blocks/textures/building_blocks_sglass.png b/mods/building_blocks/textures/building_blocks_sglass.png similarity index 100% rename from building_blocks/textures/building_blocks_sglass.png rename to mods/building_blocks/textures/building_blocks_sglass.png diff --git a/building_blocks/textures/building_blocks_sticks.png b/mods/building_blocks/textures/building_blocks_sticks.png similarity index 100% rename from building_blocks/textures/building_blocks_sticks.png rename to mods/building_blocks/textures/building_blocks_sticks.png diff --git a/building_blocks/textures/building_blocks_tar.png b/mods/building_blocks/textures/building_blocks_tar.png similarity index 100% rename from building_blocks/textures/building_blocks_tar.png rename to mods/building_blocks/textures/building_blocks_tar.png diff --git a/building_blocks/textures/building_blocks_tar_base.png b/mods/building_blocks/textures/building_blocks_tar_base.png similarity index 100% rename from building_blocks/textures/building_blocks_tar_base.png rename to mods/building_blocks/textures/building_blocks_tar_base.png diff --git a/building_blocks/textures/building_blocks_tar_spread_inv.png b/mods/building_blocks/textures/building_blocks_tar_spread_inv.png similarity index 100% rename from building_blocks/textures/building_blocks_tar_spread_inv.png rename to mods/building_blocks/textures/building_blocks_tar_spread_inv.png diff --git a/building_blocks/textures/building_blocks_towel.png b/mods/building_blocks/textures/building_blocks_towel.png similarity index 100% rename from building_blocks/textures/building_blocks_towel.png rename to mods/building_blocks/textures/building_blocks_towel.png diff --git a/building_blocks/textures/building_blocks_towel_inv.png b/mods/building_blocks/textures/building_blocks_towel_inv.png similarity index 100% rename from building_blocks/textures/building_blocks_towel_inv.png rename to mods/building_blocks/textures/building_blocks_towel_inv.png diff --git a/building_blocks/textures/building_blocks_wglass.png b/mods/building_blocks/textures/building_blocks_wglass.png similarity index 100% rename from building_blocks/textures/building_blocks_wglass.png rename to mods/building_blocks/textures/building_blocks_wglass.png diff --git a/building_blocks/textures/technic_granite.png b/mods/building_blocks/textures/technic_granite.png similarity index 100% rename from building_blocks/textures/technic_granite.png rename to mods/building_blocks/textures/technic_granite.png diff --git a/bushes/init.lua b/mods/bushes/init.lua similarity index 100% rename from bushes/init.lua rename to mods/bushes/init.lua diff --git a/bushes/locale/bushes.fr.tr b/mods/bushes/locale/bushes.fr.tr similarity index 100% rename from bushes/locale/bushes.fr.tr rename to mods/bushes/locale/bushes.fr.tr diff --git a/bushes/locale/template.txt b/mods/bushes/locale/template.txt similarity index 100% rename from bushes/locale/template.txt rename to mods/bushes/locale/template.txt diff --git a/bushes/mod.conf b/mods/bushes/mod.conf similarity index 100% rename from bushes/mod.conf rename to mods/bushes/mod.conf diff --git a/bushes/textures/bushes_branches_center_1.png b/mods/bushes/textures/bushes_branches_center_1.png similarity index 100% rename from bushes/textures/bushes_branches_center_1.png rename to mods/bushes/textures/bushes_branches_center_1.png diff --git a/bushes/textures/bushes_branches_center_2.png b/mods/bushes/textures/bushes_branches_center_2.png similarity index 100% rename from bushes/textures/bushes_branches_center_2.png rename to mods/bushes/textures/bushes_branches_center_2.png diff --git a/bushes/textures/bushes_branches_left_1.png b/mods/bushes/textures/bushes_branches_left_1.png similarity index 100% rename from bushes/textures/bushes_branches_left_1.png rename to mods/bushes/textures/bushes_branches_left_1.png diff --git a/bushes/textures/bushes_branches_left_2.png b/mods/bushes/textures/bushes_branches_left_2.png similarity index 100% rename from bushes/textures/bushes_branches_left_2.png rename to mods/bushes/textures/bushes_branches_left_2.png diff --git a/bushes/textures/bushes_branches_right_1.png b/mods/bushes/textures/bushes_branches_right_1.png similarity index 100% rename from bushes/textures/bushes_branches_right_1.png rename to mods/bushes/textures/bushes_branches_right_1.png diff --git a/bushes/textures/bushes_branches_right_2.png b/mods/bushes/textures/bushes_branches_right_2.png similarity index 100% rename from bushes/textures/bushes_branches_right_2.png rename to mods/bushes/textures/bushes_branches_right_2.png diff --git a/bushes/textures/bushes_leaves_1.png b/mods/bushes/textures/bushes_leaves_1.png similarity index 100% rename from bushes/textures/bushes_leaves_1.png rename to mods/bushes/textures/bushes_leaves_1.png diff --git a/bushes/textures/bushes_leaves_2.png b/mods/bushes/textures/bushes_leaves_2.png similarity index 100% rename from bushes/textures/bushes_leaves_2.png rename to mods/bushes/textures/bushes_leaves_2.png diff --git a/bushes/textures/bushes_youngtree2trunk.png b/mods/bushes/textures/bushes_youngtree2trunk.png similarity index 100% rename from bushes/textures/bushes_youngtree2trunk.png rename to mods/bushes/textures/bushes_youngtree2trunk.png diff --git a/bushes/textures/bushes_youngtree2trunk_inv.png b/mods/bushes/textures/bushes_youngtree2trunk_inv.png similarity index 100% rename from bushes/textures/bushes_youngtree2trunk_inv.png rename to mods/bushes/textures/bushes_youngtree2trunk_inv.png diff --git a/bushes/textures/old & unused/BlockBranch1.png b/mods/bushes/textures/old & unused/BlockBranch1.png similarity index 100% rename from bushes/textures/old & unused/BlockBranch1.png rename to mods/bushes/textures/old & unused/BlockBranch1.png diff --git a/bushes/textures/old & unused/BlockBranch1L.png b/mods/bushes/textures/old & unused/BlockBranch1L.png similarity index 100% rename from bushes/textures/old & unused/BlockBranch1L.png rename to mods/bushes/textures/old & unused/BlockBranch1L.png diff --git a/bushes/textures/old & unused/BlockBranch1R.png b/mods/bushes/textures/old & unused/BlockBranch1R.png similarity index 100% rename from bushes/textures/old & unused/BlockBranch1R.png rename to mods/bushes/textures/old & unused/BlockBranch1R.png diff --git a/bushes/textures/old & unused/BushBranches1.png b/mods/bushes/textures/old & unused/BushBranches1.png similarity index 100% rename from bushes/textures/old & unused/BushBranches1.png rename to mods/bushes/textures/old & unused/BushBranches1.png diff --git a/bushes/textures/old & unused/BushBranches1sm.png b/mods/bushes/textures/old & unused/BushBranches1sm.png similarity index 100% rename from bushes/textures/old & unused/BushBranches1sm.png rename to mods/bushes/textures/old & unused/BushBranches1sm.png diff --git a/bushes/textures/old & unused/BushBranches1sm2.png b/mods/bushes/textures/old & unused/BushBranches1sm2.png similarity index 100% rename from bushes/textures/old & unused/BushBranches1sm2.png rename to mods/bushes/textures/old & unused/BushBranches1sm2.png diff --git a/bushes/textures/old & unused/BushBranches1sm3.png b/mods/bushes/textures/old & unused/BushBranches1sm3.png similarity index 100% rename from bushes/textures/old & unused/BushBranches1sm3.png rename to mods/bushes/textures/old & unused/BushBranches1sm3.png diff --git a/bushes/textures/old & unused/BushBranches1sm4.png b/mods/bushes/textures/old & unused/BushBranches1sm4.png similarity index 100% rename from bushes/textures/old & unused/BushBranches1sm4.png rename to mods/bushes/textures/old & unused/BushBranches1sm4.png diff --git a/bushes/textures/old & unused/BushBranchesCenter.png b/mods/bushes/textures/old & unused/BushBranchesCenter.png similarity index 100% rename from bushes/textures/old & unused/BushBranchesCenter.png rename to mods/bushes/textures/old & unused/BushBranchesCenter.png diff --git a/bushes/textures/old & unused/BushBranchesSide1.png b/mods/bushes/textures/old & unused/BushBranchesSide1.png similarity index 100% rename from bushes/textures/old & unused/BushBranchesSide1.png rename to mods/bushes/textures/old & unused/BushBranchesSide1.png diff --git a/bushes/textures/old & unused/BushBranchesSide2.png b/mods/bushes/textures/old & unused/BushBranchesSide2.png similarity index 100% rename from bushes/textures/old & unused/BushBranchesSide2.png rename to mods/bushes/textures/old & unused/BushBranchesSide2.png diff --git a/bushes/textures/old & unused/blank.png b/mods/bushes/textures/old & unused/blank.png similarity index 100% rename from bushes/textures/old & unused/blank.png rename to mods/bushes/textures/old & unused/blank.png diff --git a/bushes/textures/old & unused/moretrees_pine_leaves3.png b/mods/bushes/textures/old & unused/moretrees_pine_leaves3.png similarity index 100% rename from bushes/textures/old & unused/moretrees_pine_leaves3.png rename to mods/bushes/textures/old & unused/moretrees_pine_leaves3.png diff --git a/bushes_classic/cooking.lua b/mods/bushes_classic/cooking.lua similarity index 100% rename from bushes_classic/cooking.lua rename to mods/bushes_classic/cooking.lua diff --git a/bushes_classic/image_credits.txt b/mods/bushes_classic/image_credits.txt similarity index 100% rename from bushes_classic/image_credits.txt rename to mods/bushes_classic/image_credits.txt diff --git a/bushes_classic/init.lua b/mods/bushes_classic/init.lua similarity index 100% rename from bushes_classic/init.lua rename to mods/bushes_classic/init.lua diff --git a/bushes_classic/locale/bushes_classic.de.tr b/mods/bushes_classic/locale/bushes_classic.de.tr similarity index 100% rename from bushes_classic/locale/bushes_classic.de.tr rename to mods/bushes_classic/locale/bushes_classic.de.tr diff --git a/bushes_classic/locale/bushes_classic.es.tr b/mods/bushes_classic/locale/bushes_classic.es.tr similarity index 100% rename from bushes_classic/locale/bushes_classic.es.tr rename to mods/bushes_classic/locale/bushes_classic.es.tr diff --git a/bushes_classic/locale/bushes_classic.fr.tr b/mods/bushes_classic/locale/bushes_classic.fr.tr similarity index 100% rename from bushes_classic/locale/bushes_classic.fr.tr rename to mods/bushes_classic/locale/bushes_classic.fr.tr diff --git a/bushes_classic/locale/bushes_classic.tr.tr b/mods/bushes_classic/locale/bushes_classic.tr.tr similarity index 100% rename from bushes_classic/locale/bushes_classic.tr.tr rename to mods/bushes_classic/locale/bushes_classic.tr.tr diff --git a/bushes_classic/locale/template.txt b/mods/bushes_classic/locale/template.txt similarity index 100% rename from bushes_classic/locale/template.txt rename to mods/bushes_classic/locale/template.txt diff --git a/bushes_classic/mod.conf b/mods/bushes_classic/mod.conf similarity index 100% rename from bushes_classic/mod.conf rename to mods/bushes_classic/mod.conf diff --git a/bushes_classic/models/bushes_basket_empty.obj b/mods/bushes_classic/models/bushes_basket_empty.obj similarity index 100% rename from bushes_classic/models/bushes_basket_empty.obj rename to mods/bushes_classic/models/bushes_basket_empty.obj diff --git a/bushes_classic/models/bushes_basket_full.obj b/mods/bushes_classic/models/bushes_basket_full.obj similarity index 100% rename from bushes_classic/models/bushes_basket_full.obj rename to mods/bushes_classic/models/bushes_basket_full.obj diff --git a/bushes_classic/models/bushes_bush.obj b/mods/bushes_classic/models/bushes_bush.obj similarity index 100% rename from bushes_classic/models/bushes_bush.obj rename to mods/bushes_classic/models/bushes_bush.obj diff --git a/bushes_classic/nodes.lua b/mods/bushes_classic/nodes.lua similarity index 100% rename from bushes_classic/nodes.lua rename to mods/bushes_classic/nodes.lua diff --git a/bushes_classic/textures/bushes_basket.png b/mods/bushes_classic/textures/bushes_basket.png similarity index 100% rename from bushes_classic/textures/bushes_basket.png rename to mods/bushes_classic/textures/bushes_basket.png diff --git a/bushes_classic/textures/bushes_basket_pie_blackberry.png b/mods/bushes_classic/textures/bushes_basket_pie_blackberry.png similarity index 100% rename from bushes_classic/textures/bushes_basket_pie_blackberry.png rename to mods/bushes_classic/textures/bushes_basket_pie_blackberry.png diff --git a/bushes_classic/textures/bushes_basket_pie_blueberry.png b/mods/bushes_classic/textures/bushes_basket_pie_blueberry.png similarity index 100% rename from bushes_classic/textures/bushes_basket_pie_blueberry.png rename to mods/bushes_classic/textures/bushes_basket_pie_blueberry.png diff --git a/bushes_classic/textures/bushes_basket_pie_gooseberry.png b/mods/bushes_classic/textures/bushes_basket_pie_gooseberry.png similarity index 100% rename from bushes_classic/textures/bushes_basket_pie_gooseberry.png rename to mods/bushes_classic/textures/bushes_basket_pie_gooseberry.png diff --git a/bushes_classic/textures/bushes_basket_pie_mixed_berry.png b/mods/bushes_classic/textures/bushes_basket_pie_mixed_berry.png similarity index 100% rename from bushes_classic/textures/bushes_basket_pie_mixed_berry.png rename to mods/bushes_classic/textures/bushes_basket_pie_mixed_berry.png diff --git a/bushes_classic/textures/bushes_basket_pie_raspberry.png b/mods/bushes_classic/textures/bushes_basket_pie_raspberry.png similarity index 100% rename from bushes_classic/textures/bushes_basket_pie_raspberry.png rename to mods/bushes_classic/textures/bushes_basket_pie_raspberry.png diff --git a/bushes_classic/textures/bushes_basket_pie_strawberry.png b/mods/bushes_classic/textures/bushes_basket_pie_strawberry.png similarity index 100% rename from bushes_classic/textures/bushes_basket_pie_strawberry.png rename to mods/bushes_classic/textures/bushes_basket_pie_strawberry.png diff --git a/bushes_classic/textures/bushes_blackberry.png b/mods/bushes_classic/textures/bushes_blackberry.png similarity index 100% rename from bushes_classic/textures/bushes_blackberry.png rename to mods/bushes_classic/textures/bushes_blackberry.png diff --git a/bushes_classic/textures/bushes_blackberry_pie_cooked.png b/mods/bushes_classic/textures/bushes_blackberry_pie_cooked.png similarity index 100% rename from bushes_classic/textures/bushes_blackberry_pie_cooked.png rename to mods/bushes_classic/textures/bushes_blackberry_pie_cooked.png diff --git a/bushes_classic/textures/bushes_blackberry_pie_raw.png b/mods/bushes_classic/textures/bushes_blackberry_pie_raw.png similarity index 100% rename from bushes_classic/textures/bushes_blackberry_pie_raw.png rename to mods/bushes_classic/textures/bushes_blackberry_pie_raw.png diff --git a/bushes_classic/textures/bushes_blackberry_pie_slice.png b/mods/bushes_classic/textures/bushes_blackberry_pie_slice.png similarity index 100% rename from bushes_classic/textures/bushes_blackberry_pie_slice.png rename to mods/bushes_classic/textures/bushes_blackberry_pie_slice.png diff --git a/bushes_classic/textures/bushes_blueberry.png b/mods/bushes_classic/textures/bushes_blueberry.png similarity index 100% rename from bushes_classic/textures/bushes_blueberry.png rename to mods/bushes_classic/textures/bushes_blueberry.png diff --git a/bushes_classic/textures/bushes_blueberry_pie_cooked.png b/mods/bushes_classic/textures/bushes_blueberry_pie_cooked.png similarity index 100% rename from bushes_classic/textures/bushes_blueberry_pie_cooked.png rename to mods/bushes_classic/textures/bushes_blueberry_pie_cooked.png diff --git a/bushes_classic/textures/bushes_blueberry_pie_raw.png b/mods/bushes_classic/textures/bushes_blueberry_pie_raw.png similarity index 100% rename from bushes_classic/textures/bushes_blueberry_pie_raw.png rename to mods/bushes_classic/textures/bushes_blueberry_pie_raw.png diff --git a/bushes_classic/textures/bushes_blueberry_pie_slice.png b/mods/bushes_classic/textures/bushes_blueberry_pie_slice.png similarity index 100% rename from bushes_classic/textures/bushes_blueberry_pie_slice.png rename to mods/bushes_classic/textures/bushes_blueberry_pie_slice.png diff --git a/bushes_classic/textures/bushes_bush_blackberry.png b/mods/bushes_classic/textures/bushes_bush_blackberry.png similarity index 100% rename from bushes_classic/textures/bushes_bush_blackberry.png rename to mods/bushes_classic/textures/bushes_bush_blackberry.png diff --git a/bushes_classic/textures/bushes_bush_blueberry.png b/mods/bushes_classic/textures/bushes_bush_blueberry.png similarity index 100% rename from bushes_classic/textures/bushes_bush_blueberry.png rename to mods/bushes_classic/textures/bushes_bush_blueberry.png diff --git a/bushes_classic/textures/bushes_bush_fruitless.png b/mods/bushes_classic/textures/bushes_bush_fruitless.png similarity index 100% rename from bushes_classic/textures/bushes_bush_fruitless.png rename to mods/bushes_classic/textures/bushes_bush_fruitless.png diff --git a/bushes_classic/textures/bushes_bush_gooseberry.png b/mods/bushes_classic/textures/bushes_bush_gooseberry.png similarity index 100% rename from bushes_classic/textures/bushes_bush_gooseberry.png rename to mods/bushes_classic/textures/bushes_bush_gooseberry.png diff --git a/bushes_classic/textures/bushes_bush_raspberry.png b/mods/bushes_classic/textures/bushes_bush_raspberry.png similarity index 100% rename from bushes_classic/textures/bushes_bush_raspberry.png rename to mods/bushes_classic/textures/bushes_bush_raspberry.png diff --git a/bushes_classic/textures/bushes_bush_strawberry.png b/mods/bushes_classic/textures/bushes_bush_strawberry.png similarity index 100% rename from bushes_classic/textures/bushes_bush_strawberry.png rename to mods/bushes_classic/textures/bushes_bush_strawberry.png diff --git a/bushes_classic/textures/bushes_gooseberry.png b/mods/bushes_classic/textures/bushes_gooseberry.png similarity index 100% rename from bushes_classic/textures/bushes_gooseberry.png rename to mods/bushes_classic/textures/bushes_gooseberry.png diff --git a/bushes_classic/textures/bushes_gooseberry_pie_cooked.png b/mods/bushes_classic/textures/bushes_gooseberry_pie_cooked.png similarity index 100% rename from bushes_classic/textures/bushes_gooseberry_pie_cooked.png rename to mods/bushes_classic/textures/bushes_gooseberry_pie_cooked.png diff --git a/bushes_classic/textures/bushes_gooseberry_pie_raw.png b/mods/bushes_classic/textures/bushes_gooseberry_pie_raw.png similarity index 100% rename from bushes_classic/textures/bushes_gooseberry_pie_raw.png rename to mods/bushes_classic/textures/bushes_gooseberry_pie_raw.png diff --git a/bushes_classic/textures/bushes_gooseberry_pie_slice.png b/mods/bushes_classic/textures/bushes_gooseberry_pie_slice.png similarity index 100% rename from bushes_classic/textures/bushes_gooseberry_pie_slice.png rename to mods/bushes_classic/textures/bushes_gooseberry_pie_slice.png diff --git a/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png b/mods/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png similarity index 100% rename from bushes_classic/textures/bushes_mixed_berry_pie_cooked.png rename to mods/bushes_classic/textures/bushes_mixed_berry_pie_cooked.png diff --git a/bushes_classic/textures/bushes_mixed_berry_pie_raw.png b/mods/bushes_classic/textures/bushes_mixed_berry_pie_raw.png similarity index 100% rename from bushes_classic/textures/bushes_mixed_berry_pie_raw.png rename to mods/bushes_classic/textures/bushes_mixed_berry_pie_raw.png diff --git a/bushes_classic/textures/bushes_mixed_berry_pie_slice.png b/mods/bushes_classic/textures/bushes_mixed_berry_pie_slice.png similarity index 100% rename from bushes_classic/textures/bushes_mixed_berry_pie_slice.png rename to mods/bushes_classic/textures/bushes_mixed_berry_pie_slice.png diff --git a/bushes_classic/textures/bushes_raspberry.png b/mods/bushes_classic/textures/bushes_raspberry.png similarity index 100% rename from bushes_classic/textures/bushes_raspberry.png rename to mods/bushes_classic/textures/bushes_raspberry.png diff --git a/bushes_classic/textures/bushes_raspberry_pie_cooked.png b/mods/bushes_classic/textures/bushes_raspberry_pie_cooked.png similarity index 100% rename from bushes_classic/textures/bushes_raspberry_pie_cooked.png rename to mods/bushes_classic/textures/bushes_raspberry_pie_cooked.png diff --git a/bushes_classic/textures/bushes_raspberry_pie_raw.png b/mods/bushes_classic/textures/bushes_raspberry_pie_raw.png similarity index 100% rename from bushes_classic/textures/bushes_raspberry_pie_raw.png rename to mods/bushes_classic/textures/bushes_raspberry_pie_raw.png diff --git a/bushes_classic/textures/bushes_raspberry_pie_slice.png b/mods/bushes_classic/textures/bushes_raspberry_pie_slice.png similarity index 100% rename from bushes_classic/textures/bushes_raspberry_pie_slice.png rename to mods/bushes_classic/textures/bushes_raspberry_pie_slice.png diff --git a/bushes_classic/textures/bushes_strawberry.png b/mods/bushes_classic/textures/bushes_strawberry.png similarity index 100% rename from bushes_classic/textures/bushes_strawberry.png rename to mods/bushes_classic/textures/bushes_strawberry.png diff --git a/bushes_classic/textures/bushes_strawberry_pie_cooked.png b/mods/bushes_classic/textures/bushes_strawberry_pie_cooked.png similarity index 100% rename from bushes_classic/textures/bushes_strawberry_pie_cooked.png rename to mods/bushes_classic/textures/bushes_strawberry_pie_cooked.png diff --git a/bushes_classic/textures/bushes_strawberry_pie_raw.png b/mods/bushes_classic/textures/bushes_strawberry_pie_raw.png similarity index 100% rename from bushes_classic/textures/bushes_strawberry_pie_raw.png rename to mods/bushes_classic/textures/bushes_strawberry_pie_raw.png diff --git a/bushes_classic/textures/bushes_strawberry_pie_slice.png b/mods/bushes_classic/textures/bushes_strawberry_pie_slice.png similarity index 100% rename from bushes_classic/textures/bushes_strawberry_pie_slice.png rename to mods/bushes_classic/textures/bushes_strawberry_pie_slice.png diff --git a/bushes_classic/textures/bushes_sugar.png b/mods/bushes_classic/textures/bushes_sugar.png similarity index 100% rename from bushes_classic/textures/bushes_sugar.png rename to mods/bushes_classic/textures/bushes_sugar.png diff --git a/mods/butterflies/README.txt b/mods/butterflies/README.txt new file mode 100644 index 00000000..a7f52a07 --- /dev/null +++ b/mods/butterflies/README.txt @@ -0,0 +1,14 @@ +Minetest Game mod: Butterflies +============================== +Adds butterflies to the world on mapgen, which can be caught in a net if the +fireflies mod is also enabled. + +Authors of source code +---------------------- +Shara RedCat (MIT) + +Authors of media (textures) +--------------------------- +Shara RedCat (CC BY-SA 3.0): + butterflies_butterfly_*.png + butterflies_butterfly_*_animated.png \ No newline at end of file diff --git a/mods/butterflies/init.lua b/mods/butterflies/init.lua new file mode 100644 index 00000000..49240eea --- /dev/null +++ b/mods/butterflies/init.lua @@ -0,0 +1,137 @@ +-- butterflies/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("butterflies") + +-- register butterflies +local butter_list = { + {"white", S("White Butterfly")}, + {"red", S("Red Butterfly")}, + {"violet", S("Violet Butterfly")} +} + +for i in ipairs (butter_list) do + local name = butter_list[i][1] + local desc = butter_list[i][2] + + minetest.register_node("butterflies:butterfly_"..name, { + description = desc, + drawtype = "plantlike", + tiles = {{ + name = "butterflies_butterfly_"..name.."_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3 + }, + }}, + inventory_image = "butterflies_butterfly_"..name..".png", + wield_image = "butterflies_butterfly_"..name..".png", + waving = 1, + paramtype = "light", + sunlight_propagates = true, + buildable_to = true, + walkable = false, + groups = {catchable = 1}, + selection_box = { + type = "fixed", + fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1}, + }, + floodable = true, + on_place = function(itemstack, placer, pointed_thing) + local player_name = placer:get_player_name() + local pos = pointed_thing.above + + if not minetest.is_protected(pos, player_name) and + not minetest.is_protected(pointed_thing.under, player_name) and + minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name = "butterflies:butterfly_"..name}) + minetest.get_node_timer(pos):start(1) + itemstack:take_item() + end + return itemstack + end, + on_timer = function(pos, elapsed) + if minetest.get_node_light(pos) < 11 then + minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name}) + end + minetest.get_node_timer(pos):start(30) + end + }) + + minetest.register_node("butterflies:hidden_butterfly_"..name, { + drawtype = "airlike", + inventory_image = "butterflies_butterfly_"..name..".png^default_invisible_node_overlay.png", + wield_image = "butterflies_butterfly_"..name..".png^default_invisible_node_overlay.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + floodable = true, + on_place = function(itemstack, placer, pointed_thing) + local player_name = placer:get_player_name() + local pos = pointed_thing.above + + if not minetest.is_protected(pos, player_name) and + not minetest.is_protected(pointed_thing.under, player_name) and + minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name}) + minetest.get_node_timer(pos):start(1) + itemstack:take_item() + end + return itemstack + end, + on_timer = function(pos, elapsed) + if minetest.get_node_light(pos) >= 11 then + minetest.set_node(pos, {name = "butterflies:butterfly_"..name}) + end + minetest.get_node_timer(pos):start(30) + end + }) +end + +-- register decoration +minetest.register_decoration({ + name = "butterflies:butterfly", + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + place_offset_y = 2, + sidelen = 80, + fill_ratio = 0.005, + biomes = {"grassland", "deciduous_forest"}, + y_max = 31000, + y_min = 1, + decoration = { + "butterflies:butterfly_white", + "butterflies:butterfly_red", + "butterflies:butterfly_violet" + }, + spawn_by = "group:flower", + num_spawn_by = 1 +}) + +-- get decoration ID +local butterflies = minetest.get_decoration_id("butterflies:butterfly") +minetest.set_gen_notify({decoration = true}, {butterflies}) + +-- start nodetimers +minetest.register_on_generated(function(minp, maxp, blockseed) + local gennotify = minetest.get_mapgen_object("gennotify") + local poslist = {} + + for _, pos in ipairs(gennotify["decoration#"..butterflies] or {}) do + local deco_pos = {x = pos.x, y = pos.y + 3, z = pos.z} + table.insert(poslist, deco_pos) + end + + if #poslist ~= 0 then + for i = 1, #poslist do + local pos = poslist[i] + minetest.get_node_timer(pos):start(1) + end + end +end) diff --git a/mods/butterflies/license.txt b/mods/butterflies/license.txt new file mode 100644 index 00000000..eebdad63 --- /dev/null +++ b/mods/butterflies/license.txt @@ -0,0 +1,58 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (c) 2018 Shara RedCat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2018 Shara RedCat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/mods/butterflies/locale/butterflies.de.tr b/mods/butterflies/locale/butterflies.de.tr new file mode 100644 index 00000000..2f1b982f --- /dev/null +++ b/mods/butterflies/locale/butterflies.de.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Weißer Schmetterling +Red Butterfly=Roter Schmetterling +Violet Butterfly=Violetter Schmetterling diff --git a/mods/butterflies/locale/butterflies.es.tr b/mods/butterflies/locale/butterflies.es.tr new file mode 100644 index 00000000..59a28eb9 --- /dev/null +++ b/mods/butterflies/locale/butterflies.es.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Mariposa blanca +Red Butterfly=Mariposa roja +Violet Butterfly=Mariposa violeta diff --git a/mods/butterflies/locale/butterflies.fr.tr b/mods/butterflies/locale/butterflies.fr.tr new file mode 100644 index 00000000..8f5c094c --- /dev/null +++ b/mods/butterflies/locale/butterflies.fr.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Papillon blanc +Red Butterfly=Papillon rouge +Violet Butterfly=Papillon violet diff --git a/mods/butterflies/locale/butterflies.id.tr b/mods/butterflies/locale/butterflies.id.tr new file mode 100644 index 00000000..d4429a6c --- /dev/null +++ b/mods/butterflies/locale/butterflies.id.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Kupu-Kupu Putih +Red Butterfly=Kupu-Kupu Merah +Violet Butterfly=Kupu-Kupu Ungu diff --git a/mods/butterflies/locale/butterflies.it.tr b/mods/butterflies/locale/butterflies.it.tr new file mode 100644 index 00000000..ec65da68 --- /dev/null +++ b/mods/butterflies/locale/butterflies.it.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Farfalla bianca +Red Butterfly=Farfalla rossa +Violet Butterfly=Farfalla viola diff --git a/mods/butterflies/locale/butterflies.jbo.tr b/mods/butterflies/locale/butterflies.jbo.tr new file mode 100644 index 00000000..f003e004 --- /dev/null +++ b/mods/butterflies/locale/butterflies.jbo.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=lo blabi toldi +Red Butterfly=lo xunre toldi +Violet Butterfly=lo zirpu toldi diff --git a/mods/butterflies/locale/butterflies.ms.tr b/mods/butterflies/locale/butterflies.ms.tr new file mode 100644 index 00000000..b8bde851 --- /dev/null +++ b/mods/butterflies/locale/butterflies.ms.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Rama-Rama Putih +Red Butterfly=Rama-Rama Merah +Violet Butterfly=Rama-Rama Ungu diff --git a/mods/butterflies/locale/butterflies.pt_BR.tr b/mods/butterflies/locale/butterflies.pt_BR.tr new file mode 100644 index 00000000..d89503aa --- /dev/null +++ b/mods/butterflies/locale/butterflies.pt_BR.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly= +Red Butterfly= +Violet Butterfly= diff --git a/mods/butterflies/locale/butterflies.ru.tr b/mods/butterflies/locale/butterflies.ru.tr new file mode 100644 index 00000000..7a79ed83 --- /dev/null +++ b/mods/butterflies/locale/butterflies.ru.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Белая Бабочка +Red Butterfly=Красная Бабочка +Violet Butterfly=Фиолетовая Бабочка diff --git a/mods/butterflies/locale/butterflies.se.tr b/mods/butterflies/locale/butterflies.se.tr new file mode 100644 index 00000000..77bfb340 --- /dev/null +++ b/mods/butterflies/locale/butterflies.se.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Vit fjäril +Red Butterfly=Röd fjäril +Violet Butterfly=Violett fjäril diff --git a/mods/butterflies/locale/butterflies.sk.tr b/mods/butterflies/locale/butterflies.sk.tr new file mode 100644 index 00000000..c3086e7f --- /dev/null +++ b/mods/butterflies/locale/butterflies.sk.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Biely motýlik +Red Butterfly=Červený motýlik +Violet Butterfly=Fialový motýlik diff --git a/mods/butterflies/locale/butterflies.zh_CN.tr b/mods/butterflies/locale/butterflies.zh_CN.tr new file mode 100644 index 00000000..24e0bd13 --- /dev/null +++ b/mods/butterflies/locale/butterflies.zh_CN.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=白蝴蝶 +Red Butterfly=红蝴蝶 +Violet Butterfly=紫蝴蝶 diff --git a/mods/butterflies/locale/butterflies.zh_TW.tr b/mods/butterflies/locale/butterflies.zh_TW.tr new file mode 100644 index 00000000..8d927c18 --- /dev/null +++ b/mods/butterflies/locale/butterflies.zh_TW.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=白蝴蝶 +Red Butterfly=紅蝴蝶 +Violet Butterfly=紫蝴蝶 diff --git a/mods/butterflies/locale/template.txt b/mods/butterflies/locale/template.txt new file mode 100644 index 00000000..d89503aa --- /dev/null +++ b/mods/butterflies/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly= +Red Butterfly= +Violet Butterfly= diff --git a/mods/butterflies/mod.conf b/mods/butterflies/mod.conf new file mode 100644 index 00000000..1c66497d --- /dev/null +++ b/mods/butterflies/mod.conf @@ -0,0 +1,3 @@ +name = butterflies +description = Minetest Game mod: Butterflies +depends = default, flowers diff --git a/mods/butterflies/textures/butterflies_butterfly_red.png b/mods/butterflies/textures/butterflies_butterfly_red.png new file mode 100644 index 00000000..8edfc365 Binary files /dev/null and b/mods/butterflies/textures/butterflies_butterfly_red.png differ diff --git a/mods/butterflies/textures/butterflies_butterfly_red_animated.png b/mods/butterflies/textures/butterflies_butterfly_red_animated.png new file mode 100644 index 00000000..4a2097bd Binary files /dev/null and b/mods/butterflies/textures/butterflies_butterfly_red_animated.png differ diff --git a/mods/butterflies/textures/butterflies_butterfly_violet.png b/mods/butterflies/textures/butterflies_butterfly_violet.png new file mode 100644 index 00000000..8b8c29dd Binary files /dev/null and b/mods/butterflies/textures/butterflies_butterfly_violet.png differ diff --git a/mods/butterflies/textures/butterflies_butterfly_violet_animated.png b/mods/butterflies/textures/butterflies_butterfly_violet_animated.png new file mode 100644 index 00000000..3f9d72e9 Binary files /dev/null and b/mods/butterflies/textures/butterflies_butterfly_violet_animated.png differ diff --git a/mods/butterflies/textures/butterflies_butterfly_white.png b/mods/butterflies/textures/butterflies_butterfly_white.png new file mode 100644 index 00000000..db4eaec8 Binary files /dev/null and b/mods/butterflies/textures/butterflies_butterfly_white.png differ diff --git a/mods/butterflies/textures/butterflies_butterfly_white_animated.png b/mods/butterflies/textures/butterflies_butterfly_white_animated.png new file mode 100644 index 00000000..e7cada39 Binary files /dev/null and b/mods/butterflies/textures/butterflies_butterfly_white_animated.png differ diff --git a/mods/carts/README.txt b/mods/carts/README.txt new file mode 100644 index 00000000..c0be2d73 --- /dev/null +++ b/mods/carts/README.txt @@ -0,0 +1,23 @@ +Carts (formerly boost_cart) +========================== + +Carts, based almost entirely on the mod boost_cart [1], which +itself is based on (and fully compatible with) the carts mod [2]. + +The model was originally designed by stujones11 [3] (CC-0). + +Cart textures are based on original work from PixelBOX by Gambit (permissive +license). + + +[1] https://github.com/SmallJoker/boost_cart/ +[2] https://github.com/PilzAdam/carts/ +[3] https://github.com/stujones11/railcart/ + + +Features +---------- +- A fast cart for your railway or roller coaster (up to 7 m/s!) +- Boost and brake rails +- Rail junction switching with the 'right-left' walking keys +- Handbrake with the 'back' key diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua new file mode 100644 index 00000000..c06f0a34 --- /dev/null +++ b/mods/carts/cart_entity.lua @@ -0,0 +1,431 @@ +-- carts/cart_entity.lua + +-- support for MT game translation. +local S = carts.get_translator + +local cart_entity = { + initial_properties = { + physical = false, -- otherwise going uphill breaks + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "carts_cart.b3d", + visual_size = {x=1, y=1}, + textures = {"carts_cart.png"}, + }, + + driver = nil, + punched = false, -- used to re-send velocity and position + velocity = {x=0, y=0, z=0}, -- only used on punch + old_dir = {x=1, y=0, z=0}, -- random value to start the cart on punch + old_pos = nil, + old_switch = 0, + railtype = nil, + attached_items = {} +} + +function cart_entity:on_rightclick(clicker) + if not clicker or not clicker:is_player() then + return + end + local player_name = clicker:get_player_name() + if self.driver and player_name == self.driver then + self.driver = nil + carts:manage_attachment(clicker, nil) + elseif not self.driver then + self.driver = player_name + carts:manage_attachment(clicker, self.object) + + -- player_api does not update the animation + -- when the player is attached, reset to default animation + player_api.set_animation(clicker, "stand") + end +end + +function cart_entity:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + if string.sub(staticdata, 1, string.len("return")) ~= "return" then + return + end + local data = minetest.deserialize(staticdata) + if type(data) ~= "table" then + return + end + self.railtype = data.railtype + if data.old_dir then + self.old_dir = data.old_dir + end +end + +function cart_entity:get_staticdata() + return minetest.serialize({ + railtype = self.railtype, + old_dir = self.old_dir + }) +end + +-- 0.5.x and later: When the driver leaves +function cart_entity:on_detach_child(child) + if child and child:get_player_name() == self.driver then + self.driver = nil + carts:manage_attachment(child, nil) + end +end + +function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + local pos = self.object:get_pos() + local vel = self.object:get_velocity() + if not self.railtype or vector.equals(vel, {x=0, y=0, z=0}) then + local node = minetest.get_node(pos).name + self.railtype = minetest.get_item_group(node, "connect_to_raillike") + end + -- Punched by non-player + if not puncher or not puncher:is_player() then + local cart_dir = carts:get_rail_direction(pos, self.old_dir, nil, nil, self.railtype) + if vector.equals(cart_dir, {x=0, y=0, z=0}) then + return + end + self.velocity = vector.multiply(cart_dir, 2) + self.punched = true + return + end + -- Player digs cart by sneak-punch + if puncher:get_player_control().sneak then + if self.sound_handle then + minetest.sound_stop(self.sound_handle) + end + -- Detach driver and items + if self.driver then + if self.old_pos then + self.object:set_pos(self.old_pos) + end + local player = minetest.get_player_by_name(self.driver) + carts:manage_attachment(player, nil) + end + for _, obj_ in ipairs(self.attached_items) do + if obj_ then + obj_:set_detach() + end + end + -- Pick up cart + local inv = puncher:get_inventory() + if not minetest.is_creative_enabled(puncher:get_player_name()) + or not inv:contains_item("main", "carts:cart") then + local leftover = inv:add_item("main", "carts:cart") + -- If no room in inventory add a replacement cart to the world + if not leftover:is_empty() then + minetest.add_item(self.object:get_pos(), leftover) + end + end + self.object:remove() + return + end + -- Player punches cart to alter velocity + if puncher:get_player_name() == self.driver then + if math.abs(vel.x + vel.z) > carts.punch_speed_max then + return + end + end + + local punch_dir = carts:velocity_to_dir(puncher:get_look_dir()) + punch_dir.y = 0 + local cart_dir = carts:get_rail_direction(pos, punch_dir, nil, nil, self.railtype) + if vector.equals(cart_dir, {x=0, y=0, z=0}) then + return + end + + local punch_interval = 1 + if tool_capabilities and tool_capabilities.full_punch_interval then + punch_interval = tool_capabilities.full_punch_interval + end + time_from_last_punch = math.min(time_from_last_punch or punch_interval, punch_interval) + local f = 2 * (time_from_last_punch / punch_interval) + + self.velocity = vector.multiply(cart_dir, f) + self.old_dir = cart_dir + self.punched = true +end + +local function rail_on_step_event(handler, obj, dtime) + if handler then + handler(obj, dtime) + end +end + +-- sound refresh interval = 1.0sec +local function rail_sound(self, dtime) + if not self.sound_ttl then + self.sound_ttl = 1.0 + return + elseif self.sound_ttl > 0 then + self.sound_ttl = self.sound_ttl - dtime + return + end + self.sound_ttl = 1.0 + if self.sound_handle then + local handle = self.sound_handle + self.sound_handle = nil + minetest.after(0.2, minetest.sound_stop, handle) + end + local vel = self.object:get_velocity() + local speed = vector.length(vel) + if speed > 0 then + self.sound_handle = minetest.sound_play( + "carts_cart_moving", { + object = self.object, + gain = (speed / carts.speed_max) / 2, + loop = true, + }) + end +end + +local function get_railparams(pos) + local node = minetest.get_node(pos) + return carts.railparams[node.name] or {} +end + +local v3_len = vector.length +local function rail_on_step(self, dtime) + local vel = self.object:get_velocity() + if self.punched then + vel = vector.add(vel, self.velocity) + self.object:set_velocity(vel) + self.old_dir.y = 0 + elseif vector.equals(vel, {x=0, y=0, z=0}) then + return + end + + local pos = self.object:get_pos() + local cart_dir = carts:velocity_to_dir(vel) + local same_dir = vector.equals(cart_dir, self.old_dir) + local update = {} + + if self.old_pos and not self.punched and same_dir then + local flo_pos = vector.round(pos) + local flo_old = vector.round(self.old_pos) + if vector.equals(flo_pos, flo_old) then + -- Do not check one node multiple times + return + end + end + + local ctrl, player + + -- Get player controls + if self.driver then + player = minetest.get_player_by_name(self.driver) + if player then + ctrl = player:get_player_control() + end + end + + local stop_wiggle = false + if self.old_pos and same_dir then + -- Detection for "skipping" nodes (perhaps use average dtime?) + -- It's sophisticated enough to take the acceleration in account + local acc = self.object:get_acceleration() + local distance = dtime * (v3_len(vel) + 0.5 * dtime * v3_len(acc)) + + local new_pos, new_dir = carts:pathfinder( + pos, self.old_pos, self.old_dir, distance, ctrl, + self.old_switch, self.railtype + ) + + if new_pos then + -- No rail found: set to the expected position + pos = new_pos + update.pos = true + cart_dir = new_dir + end + elseif self.old_pos and self.old_dir.y ~= 1 and not self.punched then + -- Stop wiggle + stop_wiggle = true + end + + local railparams + + -- dir: New moving direction of the cart + -- switch_keys: Currently pressed L/R key, used to ignore the key on the next rail node + local dir, switch_keys = carts:get_rail_direction( + pos, cart_dir, ctrl, self.old_switch, self.railtype + ) + local dir_changed = not vector.equals(dir, self.old_dir) + + local new_acc = {x=0, y=0, z=0} + if stop_wiggle or vector.equals(dir, {x=0, y=0, z=0}) then + vel = {x = 0, y = 0, z = 0} + local pos_r = vector.round(pos) + if not carts:is_rail(pos_r, self.railtype) + and self.old_pos then + pos = self.old_pos + elseif not stop_wiggle then + pos = pos_r + else + pos.y = math.floor(pos.y + 0.5) + end + update.pos = true + update.vel = true + else + -- Direction change detected + if dir_changed then + vel = vector.multiply(dir, math.abs(vel.x + vel.z)) + update.vel = true + if dir.y ~= self.old_dir.y then + pos = vector.round(pos) + update.pos = true + end + end + -- Center on the rail + if dir.z ~= 0 and math.floor(pos.x + 0.5) ~= pos.x then + pos.x = math.floor(pos.x + 0.5) + update.pos = true + end + if dir.x ~= 0 and math.floor(pos.z + 0.5) ~= pos.z then + pos.z = math.floor(pos.z + 0.5) + update.pos = true + end + + -- Slow down or speed up.. + local acc = dir.y * -4.0 + + -- Get rail for corrected position + railparams = get_railparams(pos) + + -- no need to check for railparams == nil since we always make it exist. + local speed_mod = railparams.acceleration + if speed_mod and speed_mod ~= 0 then + -- Try to make it similar to the original carts mod + acc = acc + speed_mod + else + -- Handbrake or coast + if ctrl and ctrl.down then + acc = acc - 3 + else + acc = acc - 0.4 + end + end + + new_acc = vector.multiply(dir, acc) + end + + -- Limits + local max_vel = carts.speed_max + for _, v in pairs({"x","y","z"}) do + if math.abs(vel[v]) > max_vel then + vel[v] = carts:get_sign(vel[v]) * max_vel + new_acc[v] = 0 + update.vel = true + end + end + + self.object:set_acceleration(new_acc) + self.old_pos = vector.round(pos) + if not vector.equals(dir, {x=0, y=0, z=0}) and not stop_wiggle then + self.old_dir = vector.new(dir) + end + self.old_switch = switch_keys + + if self.punched then + -- Collect dropped items + for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do + local ent = obj_:get_luaentity() + -- Careful here: physical_state and disable_physics are item-internal APIs + if ent and ent.name == "__builtin:item" and ent.physical_state then + ent:disable_physics() + obj_:set_attach(self.object, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}) + self.attached_items[#self.attached_items + 1] = obj_ + end + end + self.punched = false + update.vel = true + end + + railparams = railparams or get_railparams(pos) + + if not (update.vel or update.pos) then + rail_on_step_event(railparams.on_step, self, dtime) + return + end + + local yaw = 0 + if self.old_dir.x < 0 then + yaw = 0.5 + elseif self.old_dir.x > 0 then + yaw = 1.5 + elseif self.old_dir.z < 0 then + yaw = 1 + end + self.object:set_yaw(yaw * math.pi) + + local anim = {x=0, y=0} + if dir.y == -1 then + anim = {x=1, y=1} + elseif dir.y == 1 then + anim = {x=2, y=2} + end + self.object:set_animation(anim, 1, 0) + + if update.vel then + self.object:set_velocity(vel) + end + if update.pos then + if dir_changed then + self.object:set_pos(pos) + else + self.object:move_to(pos) + end + end + + -- call event handler + rail_on_step_event(railparams.on_step, self, dtime) +end + +function cart_entity:on_step(dtime) + rail_on_step(self, dtime) + rail_sound(self, dtime) +end + +minetest.register_entity("carts:cart", cart_entity) + +minetest.register_craftitem("carts:cart", { + description = S("Cart") .. "\n" .. S("(Sneak+Click to pick up)"), + inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_front.png", "carts_cart_side.png"), + wield_image = "carts_cart_front.png", + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if not pointed_thing.type == "node" then + return + end + if carts:is_rail(pointed_thing.under) then + minetest.add_entity(pointed_thing.under, "carts:cart") + elseif carts:is_rail(pointed_thing.above) then + minetest.add_entity(pointed_thing.above, "carts:cart") + else + return + end + + minetest.sound_play({name = "default_place_node_metal", gain = 0.5}, + {pos = pointed_thing.above}, true) + + if not minetest.is_creative_enabled(placer:get_player_name()) then + itemstack:take_item() + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "carts:cart", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + }, +}) diff --git a/mods/carts/functions.lua b/mods/carts/functions.lua new file mode 100644 index 00000000..a54b5948 --- /dev/null +++ b/mods/carts/functions.lua @@ -0,0 +1,248 @@ +function carts:get_sign(z) + if z == 0 then + return 0 + else + return z / math.abs(z) + end +end + +function carts:manage_attachment(player, obj) + if not player then + return + end + local status = obj ~= nil + local player_name = player:get_player_name() + if player_api.player_attached[player_name] == status then + return + end + player_api.player_attached[player_name] = status + + if status then + player:set_attach(obj, "", {x=0, y=-4.5, z=0}, {x=0, y=0, z=0}) + player:set_eye_offset({x=0, y=-4, z=0},{x=0, y=-4, z=0}) + else + player:set_detach() + player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) + end +end + +function carts:velocity_to_dir(v) + if math.abs(v.x) > math.abs(v.z) then + return {x=carts:get_sign(v.x), y=carts:get_sign(v.y), z=0} + else + return {x=0, y=carts:get_sign(v.y), z=carts:get_sign(v.z)} + end +end + +function carts:is_rail(pos, railtype) + local node = minetest.get_node(pos).name + if node == "ignore" then + local vm = minetest.get_voxel_manip() + local emin, emax = vm:read_from_map(pos, pos) + local area = VoxelArea:new{ + MinEdge = emin, + MaxEdge = emax, + } + local data = vm:get_data() + local vi = area:indexp(pos) + node = minetest.get_name_from_content_id(data[vi]) + end + if minetest.get_item_group(node, "rail") == 0 then + return false + end + if not railtype then + return true + end + return minetest.get_item_group(node, "connect_to_raillike") == railtype +end + +function carts:check_front_up_down(pos, dir_, check_up, railtype) + local dir = vector.new(dir_) + local cur + + -- Front + dir.y = 0 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + -- Up + if check_up then + dir.y = 1 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + end + -- Down + dir.y = -1 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + return nil +end + +function carts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) + local pos = vector.round(pos_) + local cur + local left_check, right_check = true, true + + -- Check left and right + local left = {x=0, y=0, z=0} + local right = {x=0, y=0, z=0} + if dir.z ~= 0 and dir.x == 0 then + left.x = -dir.z + right.x = dir.z + elseif dir.x ~= 0 and dir.z == 0 then + left.z = dir.x + right.z = -dir.x + end + + local straight_priority = ctrl and dir.y ~= 0 + + -- Normal, to disallow rail switching up- & downhill + if straight_priority then + cur = self:check_front_up_down(pos, dir, true, railtype) + if cur then + return cur + end + end + + if ctrl then + if old_switch == 1 then + left_check = false + elseif old_switch == 2 then + right_check = false + end + if ctrl.left and left_check then + cur = self:check_front_up_down(pos, left, false, railtype) + if cur then + return cur, 1 + end + left_check = false + end + if ctrl.right and right_check then + cur = self:check_front_up_down(pos, right, false, railtype) + if cur then + return cur, 2 + end + right_check = true + end + end + + -- Normal + if not straight_priority then + cur = self:check_front_up_down(pos, dir, true, railtype) + if cur then + return cur + end + end + + -- Left, if not already checked + if left_check then + cur = carts:check_front_up_down(pos, left, false, railtype) + if cur then + return cur + end + end + + -- Right, if not already checked + if right_check then + cur = carts:check_front_up_down(pos, right, false, railtype) + if cur then + return cur + end + end + + -- Backwards + if not old_switch then + cur = carts:check_front_up_down(pos, { + x = -dir.x, + y = dir.y, + z = -dir.z + }, true, railtype) + if cur then + return cur + end + end + + return {x=0, y=0, z=0} +end + +function carts:pathfinder(pos_, old_pos, old_dir, distance, ctrl, + pf_switch, railtype) + + local pos = vector.round(pos_) + if vector.equals(old_pos, pos) then + return + end + + local pf_pos = vector.round(old_pos) + local pf_dir = vector.new(old_dir) + distance = math.min(carts.path_distance_max, + math.floor(distance + 1)) + + for i = 1, distance do + pf_dir, pf_switch = self:get_rail_direction( + pf_pos, pf_dir, ctrl, pf_switch or 0, railtype) + + if vector.equals(pf_dir, {x=0, y=0, z=0}) then + -- No way forwards + return pf_pos, pf_dir + end + + pf_pos = vector.add(pf_pos, pf_dir) + + if vector.equals(pf_pos, pos) then + -- Success! Cart moved on correctly + return + end + end + -- Not found. Put cart to predicted position + return pf_pos, pf_dir +end + +function carts:register_rail(name, def_overwrite, railparams) + local def = { + drawtype = "raillike", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + sounds = default.node_sound_metal_defaults() + } + for k, v in pairs(def_overwrite) do + def[k] = v + end + if not def.inventory_image then + def.wield_image = def.tiles[1] + def.inventory_image = def.tiles[1] + end + + if railparams then + carts.railparams[name] = table.copy(railparams) + end + + minetest.register_node(name, def) +end + +function carts:get_rail_groups(additional_groups) + -- Get the default rail groups and add more when a table is given + local groups = { + dig_immediate = 2, + attached_node = 1, + rail = 1, + connect_to_raillike = minetest.raillike_group("rail") + } + if type(additional_groups) == "table" then + for k, v in pairs(additional_groups) do + groups[k] = v + end + end + return groups +end diff --git a/mods/carts/init.lua b/mods/carts/init.lua new file mode 100644 index 00000000..69d59d9f --- /dev/null +++ b/mods/carts/init.lua @@ -0,0 +1,28 @@ +-- carts/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("carts") + +carts = {} +carts.modpath = minetest.get_modpath("carts") +carts.railparams = {} +carts.get_translator = S + +-- Maximal speed of the cart in m/s (min = -1) +carts.speed_max = 7 +-- Set to -1 to disable punching the cart from inside (min = -1) +carts.punch_speed_max = 5 +-- Maximal distance for the path correction (for dtime peaks) +carts.path_distance_max = 3 + + +dofile(carts.modpath.."/functions.lua") +dofile(carts.modpath.."/rails.lua") +dofile(carts.modpath.."/cart_entity.lua") + +-- Register rails as dungeon loot +if minetest.global_exists("dungeon_loot") then + dungeon_loot.register({ + name = "carts:rail", chance = 0.35, count = {1, 6} + }) +end diff --git a/mods/carts/license.txt b/mods/carts/license.txt new file mode 100644 index 00000000..6c5beb47 --- /dev/null +++ b/mods/carts/license.txt @@ -0,0 +1,54 @@ + +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 SmallJoker +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media +----------------- + +CC-0, see: https://creativecommons.org/share-your-work/public-domain/cc0/, except +if other license is mentioned. + + +Authors +--------- +Originally from PixelBOX (Gambit): + carts_cart_side.png + carts_cart_top.png + carts_cart_front.png* + carts_cart.png* + +sofar + stujones11: + carts_cart.b3d and carts_cart.blend + +hexafraction, modified by sofar + carts_rail_*.png + +http://www.freesound.org/people/YleArkisto/sounds/253159/ - YleArkisto - CC-BY-3.0 + carts_cart_moving.*.ogg diff --git a/mods/carts/locale/carts.de.tr b/mods/carts/locale/carts.de.tr new file mode 100644 index 00000000..89a33ac3 --- /dev/null +++ b/mods/carts/locale/carts.de.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Lore +(Sneak+Click to pick up)=(Schleichen u. Klicken zum Aufheben) +Rail=Schiene +Powered Rail=Antriebsschiene +Brake Rail=Bremsschiene diff --git a/mods/carts/locale/carts.es.tr b/mods/carts/locale/carts.es.tr new file mode 100644 index 00000000..c0857a1b --- /dev/null +++ b/mods/carts/locale/carts.es.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vagoneta +(Sneak+Click to pick up)=(Agacharse+Clic para recoger) +Rail=Raíl +Powered Rail=Raíl energizado +Brake Rail=Raíl de frenado diff --git a/mods/carts/locale/carts.fr.tr b/mods/carts/locale/carts.fr.tr new file mode 100644 index 00000000..b092f14d --- /dev/null +++ b/mods/carts/locale/carts.fr.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Chariot +(Sneak+Click to pick up)=(Se baisser + clic pour ramasser) +Rail=Rail +Powered Rail=Rail de traction +Brake Rail=Rail de freinage diff --git a/mods/carts/locale/carts.id.tr b/mods/carts/locale/carts.id.tr new file mode 100644 index 00000000..ce0db926 --- /dev/null +++ b/mods/carts/locale/carts.id.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Kereta +(Sneak+Click to pick up)=(Menyelinap + Klik untuk ambil) +Rail=Rel +Powered Rail=Rel Bertenaga +Brake Rail=Rel Rem diff --git a/mods/carts/locale/carts.it.tr b/mods/carts/locale/carts.it.tr new file mode 100644 index 00000000..c28e403e --- /dev/null +++ b/mods/carts/locale/carts.it.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vagone +(Sneak+Click to pick up)=(Strisciare+Click per raccoglierlo) +Rail=Binario +Powered Rail=Binario alimentato +Brake Rail=Binario freno diff --git a/mods/carts/locale/carts.jbo.tr b/mods/carts/locale/carts.jbo.tr new file mode 100644 index 00000000..b48c5423 --- /dev/null +++ b/mods/carts/locale/carts.jbo.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=lo carce +(Sneak+Click to pick up)=to lo nu dzibi'o je cu samxa'e te cabra cu tadji lo nu lebna toi +Rail=lo teryre'e +Powered Rail=lo se dikca teryre'e +Brake Rail=lo terjabre teryre'e diff --git a/mods/carts/locale/carts.ms.tr b/mods/carts/locale/carts.ms.tr new file mode 100644 index 00000000..e8944e9a --- /dev/null +++ b/mods/carts/locale/carts.ms.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Pedati +(Sneak+Click to pick up)=(Selinap+Klik untuk ambil balik) +Rail=Landasan +Powered Rail=Landasan Berkuasa +Brake Rail=Landasan Brek diff --git a/mods/carts/locale/carts.pt_BR.tr b/mods/carts/locale/carts.pt_BR.tr new file mode 100644 index 00000000..b92f91ea --- /dev/null +++ b/mods/carts/locale/carts.pt_BR.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Carrinho +(Sneak+Click to pick up)=(Esgueirar + Clique para pegar) +Rail=Trilho +Powered Rail=Trilho Energizado +Brake Rail=Trilho de Freio diff --git a/mods/carts/locale/carts.ru.tr b/mods/carts/locale/carts.ru.tr new file mode 100644 index 00000000..9fc60ce3 --- /dev/null +++ b/mods/carts/locale/carts.ru.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Вагонетка +(Sneak+Click to pick up)=(Пригнитесь и кликните по вагонетке, чтобы забрать) +Rail=Рельсы +Powered Rail=Запитанные рельсы +Brake Rail=Тормозящие рельсы diff --git a/mods/carts/locale/carts.se.tr b/mods/carts/locale/carts.se.tr new file mode 100644 index 00000000..b59871f2 --- /dev/null +++ b/mods/carts/locale/carts.se.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vagn +(Sneak+Click to pick up)=(Shift+Klicka för att plocka upp) +Rail=Räls +Powered Rail=Aktiverad räls +Brake Rail=Broms räls diff --git a/mods/carts/locale/carts.sk.tr b/mods/carts/locale/carts.sk.tr new file mode 100644 index 00000000..6303a49b --- /dev/null +++ b/mods/carts/locale/carts.sk.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vozík +(Sneak+Click to pick up)=(Zakrádanie sa + Klik pre zdvihnutie) +Rail=Koľajnica +Powered Rail=Koľajnica s pohonom +Brake Rail=Brzdná koľajnica diff --git a/mods/carts/locale/carts.zh_CN.tr b/mods/carts/locale/carts.zh_CN.tr new file mode 100644 index 00000000..953cdefc --- /dev/null +++ b/mods/carts/locale/carts.zh_CN.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=矿车 +(Sneak+Click to pick up)=(潜行+单击以捡起) +Rail=铁轨 +Powered Rail=动力铁轨 +Brake Rail=制动铁轨 diff --git a/mods/carts/locale/carts.zh_TW.tr b/mods/carts/locale/carts.zh_TW.tr new file mode 100644 index 00000000..f6300d4a --- /dev/null +++ b/mods/carts/locale/carts.zh_TW.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=礦車 +(Sneak+Click to pick up)=(潛行+單擊以撿起) +Rail=鐵軌 +Powered Rail=動力鐵軌 +Brake Rail=制動鐵軌 diff --git a/mods/carts/locale/template.txt b/mods/carts/locale/template.txt new file mode 100644 index 00000000..a67d95fd --- /dev/null +++ b/mods/carts/locale/template.txt @@ -0,0 +1,6 @@ +# textdomain: carts +Cart= +(Sneak+Click to pick up)= +Rail= +Powered Rail= +Brake Rail= diff --git a/mods/carts/mod.conf b/mods/carts/mod.conf new file mode 100644 index 00000000..0eab35c3 --- /dev/null +++ b/mods/carts/mod.conf @@ -0,0 +1,4 @@ +name = carts +description = Carts (formerly boost_cart) +depends = default, player_api +optional_depends = dungeon_loot diff --git a/mods/carts/models/carts_cart.b3d b/mods/carts/models/carts_cart.b3d new file mode 100644 index 00000000..b8b7c3a1 Binary files /dev/null and b/mods/carts/models/carts_cart.b3d differ diff --git a/mods/carts/models/carts_cart.blend b/mods/carts/models/carts_cart.blend new file mode 100644 index 00000000..3446fb15 Binary files /dev/null and b/mods/carts/models/carts_cart.blend differ diff --git a/mods/carts/rails.lua b/mods/carts/rails.lua new file mode 100644 index 00000000..8bd2ba1e --- /dev/null +++ b/mods/carts/rails.lua @@ -0,0 +1,64 @@ +-- carts/rails.lua + +-- support for MT game translation. +local S = carts.get_translator + +carts:register_rail("carts:rail", { + description = S("Rail"), + tiles = { + "carts_rail_straight.png", "carts_rail_curved.png", + "carts_rail_t_junction.png", "carts_rail_crossing.png" + }, + inventory_image = "carts_rail_straight.png", + wield_image = "carts_rail_straight.png", + groups = carts:get_rail_groups(), +}, {}) + +minetest.register_craft({ + output = "carts:rail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) + +minetest.register_alias("default:rail", "carts:rail") + + +carts:register_rail("carts:powerrail", { + description = S("Powered Rail"), + tiles = { + "carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", + "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" + }, + groups = carts:get_rail_groups(), +}, {acceleration = 5}) + +minetest.register_craft({ + output = "carts:powerrail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) + + +carts:register_rail("carts:brakerail", { + description = S("Brake Rail"), + tiles = { + "carts_rail_straight_brk.png", "carts_rail_curved_brk.png", + "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" + }, + groups = carts:get_rail_groups(), +}, {acceleration = -3}) + +minetest.register_craft({ + output = "carts:brakerail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "default:coal_lump", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) diff --git a/mods/carts/sounds/carts_cart_moving.1.ogg b/mods/carts/sounds/carts_cart_moving.1.ogg new file mode 100644 index 00000000..869e765b Binary files /dev/null and b/mods/carts/sounds/carts_cart_moving.1.ogg differ diff --git a/mods/carts/sounds/carts_cart_moving.2.ogg b/mods/carts/sounds/carts_cart_moving.2.ogg new file mode 100644 index 00000000..b4cc5084 Binary files /dev/null and b/mods/carts/sounds/carts_cart_moving.2.ogg differ diff --git a/mods/carts/sounds/carts_cart_moving.3.ogg b/mods/carts/sounds/carts_cart_moving.3.ogg new file mode 100644 index 00000000..e19a782d Binary files /dev/null and b/mods/carts/sounds/carts_cart_moving.3.ogg differ diff --git a/mods/carts/textures/carts_cart.png b/mods/carts/textures/carts_cart.png new file mode 100644 index 00000000..dd6c88cc Binary files /dev/null and b/mods/carts/textures/carts_cart.png differ diff --git a/mods/carts/textures/carts_cart_front.png b/mods/carts/textures/carts_cart_front.png new file mode 100644 index 00000000..0b3015be Binary files /dev/null and b/mods/carts/textures/carts_cart_front.png differ diff --git a/mods/carts/textures/carts_cart_side.png b/mods/carts/textures/carts_cart_side.png new file mode 100644 index 00000000..69b7fdd2 Binary files /dev/null and b/mods/carts/textures/carts_cart_side.png differ diff --git a/mods/carts/textures/carts_cart_top.png b/mods/carts/textures/carts_cart_top.png new file mode 100644 index 00000000..89594837 Binary files /dev/null and b/mods/carts/textures/carts_cart_top.png differ diff --git a/mods/carts/textures/carts_rail_crossing.png b/mods/carts/textures/carts_rail_crossing.png new file mode 100644 index 00000000..99dab9e4 Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing.png differ diff --git a/mods/carts/textures/carts_rail_crossing_brk.png b/mods/carts/textures/carts_rail_crossing_brk.png new file mode 100644 index 00000000..ae71d7e4 Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing_brk.png differ diff --git a/mods/carts/textures/carts_rail_crossing_pwr.png b/mods/carts/textures/carts_rail_crossing_pwr.png new file mode 100644 index 00000000..fc57b08a Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing_pwr.png differ diff --git a/mods/carts/textures/carts_rail_curved.png b/mods/carts/textures/carts_rail_curved.png new file mode 100644 index 00000000..cb1beac2 Binary files /dev/null and b/mods/carts/textures/carts_rail_curved.png differ diff --git a/mods/carts/textures/carts_rail_curved_brk.png b/mods/carts/textures/carts_rail_curved_brk.png new file mode 100644 index 00000000..cff2a30c Binary files /dev/null and b/mods/carts/textures/carts_rail_curved_brk.png differ diff --git a/mods/carts/textures/carts_rail_curved_pwr.png b/mods/carts/textures/carts_rail_curved_pwr.png new file mode 100644 index 00000000..2cd0770f Binary files /dev/null and b/mods/carts/textures/carts_rail_curved_pwr.png differ diff --git a/mods/carts/textures/carts_rail_straight.png b/mods/carts/textures/carts_rail_straight.png new file mode 100644 index 00000000..764333b7 Binary files /dev/null and b/mods/carts/textures/carts_rail_straight.png differ diff --git a/mods/carts/textures/carts_rail_straight_brk.png b/mods/carts/textures/carts_rail_straight_brk.png new file mode 100644 index 00000000..cea7b1b3 Binary files /dev/null and b/mods/carts/textures/carts_rail_straight_brk.png differ diff --git a/mods/carts/textures/carts_rail_straight_pwr.png b/mods/carts/textures/carts_rail_straight_pwr.png new file mode 100644 index 00000000..764fa611 Binary files /dev/null and b/mods/carts/textures/carts_rail_straight_pwr.png differ diff --git a/mods/carts/textures/carts_rail_t_junction.png b/mods/carts/textures/carts_rail_t_junction.png new file mode 100644 index 00000000..0f3fd25a Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_brk.png b/mods/carts/textures/carts_rail_t_junction_brk.png new file mode 100644 index 00000000..5905d011 Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction_brk.png differ diff --git a/mods/carts/textures/carts_rail_t_junction_pwr.png b/mods/carts/textures/carts_rail_t_junction_pwr.png new file mode 100644 index 00000000..56565553 Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction_pwr.png differ diff --git a/castle_farming/LICENSE b/mods/castle_farming/LICENSE similarity index 100% rename from castle_farming/LICENSE rename to mods/castle_farming/LICENSE diff --git a/castle_farming/README.md b/mods/castle_farming/README.md similarity index 100% rename from castle_farming/README.md rename to mods/castle_farming/README.md diff --git a/castle_farming/depends.txt b/mods/castle_farming/depends.txt similarity index 100% rename from castle_farming/depends.txt rename to mods/castle_farming/depends.txt diff --git a/castle_farming/description.txt b/mods/castle_farming/description.txt similarity index 100% rename from castle_farming/description.txt rename to mods/castle_farming/description.txt diff --git a/castle_farming/hides.lua b/mods/castle_farming/hides.lua similarity index 100% rename from castle_farming/hides.lua rename to mods/castle_farming/hides.lua diff --git a/castle_farming/i18n.py b/mods/castle_farming/i18n.py similarity index 100% rename from castle_farming/i18n.py rename to mods/castle_farming/i18n.py diff --git a/castle_farming/init.lua b/mods/castle_farming/init.lua similarity index 100% rename from castle_farming/init.lua rename to mods/castle_farming/init.lua diff --git a/castle_farming/locale/castle_farming.es.tr b/mods/castle_farming/locale/castle_farming.es.tr similarity index 100% rename from castle_farming/locale/castle_farming.es.tr rename to mods/castle_farming/locale/castle_farming.es.tr diff --git a/castle_farming/locale/castle_farming.pt_br.tr b/mods/castle_farming/locale/castle_farming.pt_br.tr similarity index 100% rename from castle_farming/locale/castle_farming.pt_br.tr rename to mods/castle_farming/locale/castle_farming.pt_br.tr diff --git a/castle_farming/locale/template.txt b/mods/castle_farming/locale/template.txt similarity index 100% rename from castle_farming/locale/template.txt rename to mods/castle_farming/locale/template.txt diff --git a/castle_farming/mod.conf b/mods/castle_farming/mod.conf similarity index 100% rename from castle_farming/mod.conf rename to mods/castle_farming/mod.conf diff --git a/castle_farming/screenshot.png b/mods/castle_farming/screenshot.png similarity index 100% rename from castle_farming/screenshot.png rename to mods/castle_farming/screenshot.png diff --git a/castle_farming/straw.lua b/mods/castle_farming/straw.lua similarity index 100% rename from castle_farming/straw.lua rename to mods/castle_farming/straw.lua diff --git a/castle_farming/textures/LICENSE.txt b/mods/castle_farming/textures/LICENSE.txt similarity index 100% rename from castle_farming/textures/LICENSE.txt rename to mods/castle_farming/textures/LICENSE.txt diff --git a/castle_farming/textures/castle_hide.png b/mods/castle_farming/textures/castle_hide.png similarity index 100% rename from castle_farming/textures/castle_hide.png rename to mods/castle_farming/textures/castle_hide.png diff --git a/castle_farming/textures/castle_straw_bale.png b/mods/castle_farming/textures/castle_straw_bale.png similarity index 100% rename from castle_farming/textures/castle_straw_bale.png rename to mods/castle_farming/textures/castle_straw_bale.png diff --git a/castle_farming/textures/castle_straw_dummy.png b/mods/castle_farming/textures/castle_straw_dummy.png similarity index 100% rename from castle_farming/textures/castle_straw_dummy.png rename to mods/castle_farming/textures/castle_straw_dummy.png diff --git a/castle_gates/LICENSE b/mods/castle_gates/LICENSE similarity index 100% rename from castle_gates/LICENSE rename to mods/castle_gates/LICENSE diff --git a/castle_gates/README.txt b/mods/castle_gates/README.txt similarity index 100% rename from castle_gates/README.txt rename to mods/castle_gates/README.txt diff --git a/castle_gates/api.txt b/mods/castle_gates/api.txt similarity index 100% rename from castle_gates/api.txt rename to mods/castle_gates/api.txt diff --git a/castle_gates/depends.txt b/mods/castle_gates/depends.txt similarity index 100% rename from castle_gates/depends.txt rename to mods/castle_gates/depends.txt diff --git a/castle_gates/description.txt b/mods/castle_gates/description.txt similarity index 100% rename from castle_gates/description.txt rename to mods/castle_gates/description.txt diff --git a/castle_gates/doc.lua b/mods/castle_gates/doc.lua similarity index 100% rename from castle_gates/doc.lua rename to mods/castle_gates/doc.lua diff --git a/castle_gates/doors.lua b/mods/castle_gates/doors.lua similarity index 100% rename from castle_gates/doors.lua rename to mods/castle_gates/doors.lua diff --git a/castle_gates/gate_functions.lua b/mods/castle_gates/gate_functions.lua similarity index 100% rename from castle_gates/gate_functions.lua rename to mods/castle_gates/gate_functions.lua diff --git a/castle_gates/gate_slots.lua b/mods/castle_gates/gate_slots.lua similarity index 100% rename from castle_gates/gate_slots.lua rename to mods/castle_gates/gate_slots.lua diff --git a/castle_gates/gates.lua b/mods/castle_gates/gates.lua similarity index 100% rename from castle_gates/gates.lua rename to mods/castle_gates/gates.lua diff --git a/castle_gates/init.lua b/mods/castle_gates/init.lua similarity index 100% rename from castle_gates/init.lua rename to mods/castle_gates/init.lua diff --git a/castle_gates/intllib.lua b/mods/castle_gates/intllib.lua similarity index 100% rename from castle_gates/intllib.lua rename to mods/castle_gates/intllib.lua diff --git a/castle_gates/locale/castle_gates.it.tr b/mods/castle_gates/locale/castle_gates.it.tr similarity index 100% rename from castle_gates/locale/castle_gates.it.tr rename to mods/castle_gates/locale/castle_gates.it.tr diff --git a/castle_gates/locale/es.po b/mods/castle_gates/locale/es.po similarity index 100% rename from castle_gates/locale/es.po rename to mods/castle_gates/locale/es.po diff --git a/castle_gates/locale/it.po b/mods/castle_gates/locale/it.po similarity index 100% rename from castle_gates/locale/it.po rename to mods/castle_gates/locale/it.po diff --git a/castle_gates/locale/template.pot b/mods/castle_gates/locale/template.pot similarity index 100% rename from castle_gates/locale/template.pot rename to mods/castle_gates/locale/template.pot diff --git a/castle_gates/locale/template.txt b/mods/castle_gates/locale/template.txt similarity index 100% rename from castle_gates/locale/template.txt rename to mods/castle_gates/locale/template.txt diff --git a/castle_gates/locale/update.bat b/mods/castle_gates/locale/update.bat similarity index 100% rename from castle_gates/locale/update.bat rename to mods/castle_gates/locale/update.bat diff --git a/castle_gates/mod.conf b/mods/castle_gates/mod.conf similarity index 100% rename from castle_gates/mod.conf rename to mods/castle_gates/mod.conf diff --git a/castle_gates/screenshot.png b/mods/castle_gates/screenshot.png similarity index 100% rename from castle_gates/screenshot.png rename to mods/castle_gates/screenshot.png diff --git a/castle_gates/textures/LICENSE.txt b/mods/castle_gates/textures/LICENSE.txt similarity index 100% rename from castle_gates/textures/LICENSE.txt rename to mods/castle_gates/textures/LICENSE.txt diff --git a/castle_gates/textures/castle_door_edge_mask.png b/mods/castle_gates/textures/castle_door_edge_mask.png similarity index 100% rename from castle_gates/textures/castle_door_edge_mask.png rename to mods/castle_gates/textures/castle_door_edge_mask.png diff --git a/castle_gates/textures/castle_door_handle_mask.png b/mods/castle_gates/textures/castle_door_handle_mask.png similarity index 100% rename from castle_gates/textures/castle_door_handle_mask.png rename to mods/castle_gates/textures/castle_door_handle_mask.png diff --git a/castle_gates/textures/castle_door_jail.png b/mods/castle_gates/textures/castle_door_jail.png similarity index 100% rename from castle_gates/textures/castle_door_jail.png rename to mods/castle_gates/textures/castle_door_jail.png diff --git a/castle_gates/textures/castle_door_oak.png b/mods/castle_gates/textures/castle_door_oak.png similarity index 100% rename from castle_gates/textures/castle_door_oak.png rename to mods/castle_gates/textures/castle_door_oak.png diff --git a/castle_gates/textures/castle_door_side_mask.png b/mods/castle_gates/textures/castle_door_side_mask.png similarity index 100% rename from castle_gates/textures/castle_door_side_mask.png rename to mods/castle_gates/textures/castle_door_side_mask.png diff --git a/castle_gates/textures/castle_jail_door_inv.png b/mods/castle_gates/textures/castle_jail_door_inv.png similarity index 100% rename from castle_gates/textures/castle_jail_door_inv.png rename to mods/castle_gates/textures/castle_jail_door_inv.png diff --git a/castle_gates/textures/castle_jailbars.png b/mods/castle_gates/textures/castle_jailbars.png similarity index 100% rename from castle_gates/textures/castle_jailbars.png rename to mods/castle_gates/textures/castle_jailbars.png diff --git a/castle_gates/textures/castle_oak_door_inv.png b/mods/castle_gates/textures/castle_oak_door_inv.png similarity index 100% rename from castle_gates/textures/castle_oak_door_inv.png rename to mods/castle_gates/textures/castle_oak_door_inv.png diff --git a/castle_gates/textures/castle_portcullis_mask.png b/mods/castle_gates/textures/castle_portcullis_mask.png similarity index 100% rename from castle_gates/textures/castle_portcullis_mask.png rename to mods/castle_gates/textures/castle_portcullis_mask.png diff --git a/castle_gates/textures/castle_steel.png b/mods/castle_gates/textures/castle_steel.png similarity index 100% rename from castle_gates/textures/castle_steel.png rename to mods/castle_gates/textures/castle_steel.png diff --git a/castle_lighting/LICENSE b/mods/castle_lighting/LICENSE similarity index 100% rename from castle_lighting/LICENSE rename to mods/castle_lighting/LICENSE diff --git a/castle_lighting/README.md b/mods/castle_lighting/README.md similarity index 100% rename from castle_lighting/README.md rename to mods/castle_lighting/README.md diff --git a/castle_lighting/brasier.lua b/mods/castle_lighting/brasier.lua similarity index 100% rename from castle_lighting/brasier.lua rename to mods/castle_lighting/brasier.lua diff --git a/castle_lighting/depends.txt b/mods/castle_lighting/depends.txt similarity index 100% rename from castle_lighting/depends.txt rename to mods/castle_lighting/depends.txt diff --git a/castle_lighting/description.txt b/mods/castle_lighting/description.txt similarity index 100% rename from castle_lighting/description.txt rename to mods/castle_lighting/description.txt diff --git a/castle_lighting/i18n.py b/mods/castle_lighting/i18n.py similarity index 100% rename from castle_lighting/i18n.py rename to mods/castle_lighting/i18n.py diff --git a/castle_lighting/init.lua b/mods/castle_lighting/init.lua similarity index 100% rename from castle_lighting/init.lua rename to mods/castle_lighting/init.lua diff --git a/castle_lighting/locale/castle_lighting.es.tr b/mods/castle_lighting/locale/castle_lighting.es.tr similarity index 100% rename from castle_lighting/locale/castle_lighting.es.tr rename to mods/castle_lighting/locale/castle_lighting.es.tr diff --git a/castle_lighting/locale/castle_lighting.it.tr b/mods/castle_lighting/locale/castle_lighting.it.tr similarity index 100% rename from castle_lighting/locale/castle_lighting.it.tr rename to mods/castle_lighting/locale/castle_lighting.it.tr diff --git a/castle_lighting/locale/template.txt b/mods/castle_lighting/locale/template.txt similarity index 100% rename from castle_lighting/locale/template.txt rename to mods/castle_lighting/locale/template.txt diff --git a/castle_lighting/mod.conf b/mods/castle_lighting/mod.conf similarity index 100% rename from castle_lighting/mod.conf rename to mods/castle_lighting/mod.conf diff --git a/castle_lighting/screenshot.png b/mods/castle_lighting/screenshot.png similarity index 100% rename from castle_lighting/screenshot.png rename to mods/castle_lighting/screenshot.png diff --git a/castle_lighting/textures/LICENSE.txt b/mods/castle_lighting/textures/LICENSE.txt similarity index 100% rename from castle_lighting/textures/LICENSE.txt rename to mods/castle_lighting/textures/LICENSE.txt diff --git a/castle_lighting/textures/castle_brasier_bed_mask.png b/mods/castle_lighting/textures/castle_brasier_bed_mask.png similarity index 100% rename from castle_lighting/textures/castle_brasier_bed_mask.png rename to mods/castle_lighting/textures/castle_brasier_bed_mask.png diff --git a/castle_lighting/textures/castle_chandelier.png b/mods/castle_lighting/textures/castle_chandelier.png similarity index 100% rename from castle_lighting/textures/castle_chandelier.png rename to mods/castle_lighting/textures/castle_chandelier.png diff --git a/castle_lighting/textures/castle_chandelier_chain.png b/mods/castle_lighting/textures/castle_chandelier_chain.png similarity index 100% rename from castle_lighting/textures/castle_chandelier_chain.png rename to mods/castle_lighting/textures/castle_chandelier_chain.png diff --git a/castle_lighting/textures/castle_chandelier_wield.png b/mods/castle_lighting/textures/castle_chandelier_wield.png similarity index 100% rename from castle_lighting/textures/castle_chandelier_wield.png rename to mods/castle_lighting/textures/castle_chandelier_wield.png diff --git a/castle_lighting/textures/castle_coal_bed.png b/mods/castle_lighting/textures/castle_coal_bed.png similarity index 100% rename from castle_lighting/textures/castle_coal_bed.png rename to mods/castle_lighting/textures/castle_coal_bed.png diff --git a/castle_lighting/textures/castle_steel.png b/mods/castle_lighting/textures/castle_steel.png similarity index 100% rename from castle_lighting/textures/castle_steel.png rename to mods/castle_lighting/textures/castle_steel.png diff --git a/castle_lighting/textures/castle_street_light.png b/mods/castle_lighting/textures/castle_street_light.png similarity index 100% rename from castle_lighting/textures/castle_street_light.png rename to mods/castle_lighting/textures/castle_street_light.png diff --git a/castle_masonry/LICENSE b/mods/castle_masonry/LICENSE similarity index 100% rename from castle_masonry/LICENSE rename to mods/castle_masonry/LICENSE diff --git a/castle_masonry/README.md b/mods/castle_masonry/README.md similarity index 100% rename from castle_masonry/README.md rename to mods/castle_masonry/README.md diff --git a/castle_masonry/arrow_slits.lua b/mods/castle_masonry/arrow_slits.lua similarity index 100% rename from castle_masonry/arrow_slits.lua rename to mods/castle_masonry/arrow_slits.lua diff --git a/castle_masonry/i18n.py b/mods/castle_masonry/i18n.py similarity index 100% rename from castle_masonry/i18n.py rename to mods/castle_masonry/i18n.py diff --git a/castle_masonry/init.lua b/mods/castle_masonry/init.lua similarity index 100% rename from castle_masonry/init.lua rename to mods/castle_masonry/init.lua diff --git a/castle_masonry/intllib.lua b/mods/castle_masonry/intllib.lua similarity index 100% rename from castle_masonry/intllib.lua rename to mods/castle_masonry/intllib.lua diff --git a/castle_masonry/locale/castle_masonry.es.tr b/mods/castle_masonry/locale/castle_masonry.es.tr similarity index 100% rename from castle_masonry/locale/castle_masonry.es.tr rename to mods/castle_masonry/locale/castle_masonry.es.tr diff --git a/castle_masonry/locale/castle_masonry.fr.tr b/mods/castle_masonry/locale/castle_masonry.fr.tr similarity index 100% rename from castle_masonry/locale/castle_masonry.fr.tr rename to mods/castle_masonry/locale/castle_masonry.fr.tr diff --git a/castle_masonry/locale/castle_masonry.it.tr b/mods/castle_masonry/locale/castle_masonry.it.tr similarity index 100% rename from castle_masonry/locale/castle_masonry.it.tr rename to mods/castle_masonry/locale/castle_masonry.it.tr diff --git a/castle_masonry/locale/es.po b/mods/castle_masonry/locale/es.po similarity index 100% rename from castle_masonry/locale/es.po rename to mods/castle_masonry/locale/es.po diff --git a/castle_masonry/locale/fr.po b/mods/castle_masonry/locale/fr.po similarity index 100% rename from castle_masonry/locale/fr.po rename to mods/castle_masonry/locale/fr.po diff --git a/castle_masonry/locale/it.po b/mods/castle_masonry/locale/it.po similarity index 100% rename from castle_masonry/locale/it.po rename to mods/castle_masonry/locale/it.po diff --git a/castle_masonry/locale/template.pot b/mods/castle_masonry/locale/template.pot similarity index 100% rename from castle_masonry/locale/template.pot rename to mods/castle_masonry/locale/template.pot diff --git a/castle_masonry/locale/template.txt b/mods/castle_masonry/locale/template.txt similarity index 100% rename from castle_masonry/locale/template.txt rename to mods/castle_masonry/locale/template.txt diff --git a/castle_masonry/mod.conf b/mods/castle_masonry/mod.conf similarity index 100% rename from castle_masonry/mod.conf rename to mods/castle_masonry/mod.conf diff --git a/castle_masonry/murder_holes.lua b/mods/castle_masonry/murder_holes.lua similarity index 100% rename from castle_masonry/murder_holes.lua rename to mods/castle_masonry/murder_holes.lua diff --git a/castle_masonry/paving.lua b/mods/castle_masonry/paving.lua similarity index 100% rename from castle_masonry/paving.lua rename to mods/castle_masonry/paving.lua diff --git a/castle_masonry/pillars.lua b/mods/castle_masonry/pillars.lua similarity index 100% rename from castle_masonry/pillars.lua rename to mods/castle_masonry/pillars.lua diff --git a/castle_masonry/screenshot.png b/mods/castle_masonry/screenshot.png similarity index 100% rename from castle_masonry/screenshot.png rename to mods/castle_masonry/screenshot.png diff --git a/castle_masonry/settingtypes.txt b/mods/castle_masonry/settingtypes.txt similarity index 100% rename from castle_masonry/settingtypes.txt rename to mods/castle_masonry/settingtypes.txt diff --git a/castle_masonry/stone_wall.lua b/mods/castle_masonry/stone_wall.lua similarity index 100% rename from castle_masonry/stone_wall.lua rename to mods/castle_masonry/stone_wall.lua diff --git a/castle_masonry/textures/LICENSE.txt b/mods/castle_masonry/textures/LICENSE.txt similarity index 100% rename from castle_masonry/textures/LICENSE.txt rename to mods/castle_masonry/textures/LICENSE.txt diff --git a/castle_masonry/textures/castle_corner_stonewall1.png b/mods/castle_masonry/textures/castle_corner_stonewall1.png similarity index 100% rename from castle_masonry/textures/castle_corner_stonewall1.png rename to mods/castle_masonry/textures/castle_corner_stonewall1.png diff --git a/castle_masonry/textures/castle_corner_stonewall2.png b/mods/castle_masonry/textures/castle_corner_stonewall2.png similarity index 100% rename from castle_masonry/textures/castle_corner_stonewall2.png rename to mods/castle_masonry/textures/castle_corner_stonewall2.png diff --git a/castle_masonry/textures/castle_corner_stonewall_tb.png b/mods/castle_masonry/textures/castle_corner_stonewall_tb.png similarity index 100% rename from castle_masonry/textures/castle_corner_stonewall_tb.png rename to mods/castle_masonry/textures/castle_corner_stonewall_tb.png diff --git a/castle_masonry/textures/castle_dungeon_stone.png b/mods/castle_masonry/textures/castle_dungeon_stone.png similarity index 100% rename from castle_masonry/textures/castle_dungeon_stone.png rename to mods/castle_masonry/textures/castle_dungeon_stone.png diff --git a/castle_masonry/textures/castle_pavement_brick.png b/mods/castle_masonry/textures/castle_pavement_brick.png similarity index 100% rename from castle_masonry/textures/castle_pavement_brick.png rename to mods/castle_masonry/textures/castle_pavement_brick.png diff --git a/castle_masonry/textures/castle_rubble.png b/mods/castle_masonry/textures/castle_rubble.png similarity index 100% rename from castle_masonry/textures/castle_rubble.png rename to mods/castle_masonry/textures/castle_rubble.png diff --git a/castle_masonry/textures/castle_slate.png b/mods/castle_masonry/textures/castle_slate.png similarity index 100% rename from castle_masonry/textures/castle_slate.png rename to mods/castle_masonry/textures/castle_slate.png diff --git a/castle_masonry/textures/castle_stonewall.png b/mods/castle_masonry/textures/castle_stonewall.png similarity index 100% rename from castle_masonry/textures/castle_stonewall.png rename to mods/castle_masonry/textures/castle_stonewall.png diff --git a/castle_shields/LICENSE b/mods/castle_shields/LICENSE similarity index 100% rename from castle_shields/LICENSE rename to mods/castle_shields/LICENSE diff --git a/castle_shields/README.md b/mods/castle_shields/README.md similarity index 100% rename from castle_shields/README.md rename to mods/castle_shields/README.md diff --git a/castle_shields/default_shields.lua b/mods/castle_shields/default_shields.lua similarity index 100% rename from castle_shields/default_shields.lua rename to mods/castle_shields/default_shields.lua diff --git a/castle_shields/depends.txt b/mods/castle_shields/depends.txt similarity index 100% rename from castle_shields/depends.txt rename to mods/castle_shields/depends.txt diff --git a/castle_shields/description.txt b/mods/castle_shields/description.txt similarity index 100% rename from castle_shields/description.txt rename to mods/castle_shields/description.txt diff --git a/castle_shields/init.lua b/mods/castle_shields/init.lua similarity index 100% rename from castle_shields/init.lua rename to mods/castle_shields/init.lua diff --git a/castle_shields/intllib.lua b/mods/castle_shields/intllib.lua similarity index 100% rename from castle_shields/intllib.lua rename to mods/castle_shields/intllib.lua diff --git a/castle_shields/locale/castle_shields.it.tr b/mods/castle_shields/locale/castle_shields.it.tr similarity index 100% rename from castle_shields/locale/castle_shields.it.tr rename to mods/castle_shields/locale/castle_shields.it.tr diff --git a/castle_shields/locale/it.po b/mods/castle_shields/locale/it.po similarity index 100% rename from castle_shields/locale/it.po rename to mods/castle_shields/locale/it.po diff --git a/castle_shields/locale/template.pot b/mods/castle_shields/locale/template.pot similarity index 100% rename from castle_shields/locale/template.pot rename to mods/castle_shields/locale/template.pot diff --git a/castle_shields/locale/template.txt b/mods/castle_shields/locale/template.txt similarity index 100% rename from castle_shields/locale/template.txt rename to mods/castle_shields/locale/template.txt diff --git a/castle_shields/mod.conf b/mods/castle_shields/mod.conf similarity index 100% rename from castle_shields/mod.conf rename to mods/castle_shields/mod.conf diff --git a/castle_shields/screenshot.png b/mods/castle_shields/screenshot.png similarity index 100% rename from castle_shields/screenshot.png rename to mods/castle_shields/screenshot.png diff --git a/castle_shields/shield_functions.lua b/mods/castle_shields/shield_functions.lua similarity index 100% rename from castle_shields/shield_functions.lua rename to mods/castle_shields/shield_functions.lua diff --git a/castle_shields/textures/castle_shield_back.png b/mods/castle_shields/textures/castle_shield_back.png similarity index 100% rename from castle_shields/textures/castle_shield_back.png rename to mods/castle_shields/textures/castle_shield_back.png diff --git a/castle_shields/textures/castle_shield_black.png b/mods/castle_shields/textures/castle_shield_black.png similarity index 100% rename from castle_shields/textures/castle_shield_black.png rename to mods/castle_shields/textures/castle_shield_black.png diff --git a/castle_shields/textures/castle_shield_blue.png b/mods/castle_shields/textures/castle_shield_blue.png similarity index 100% rename from castle_shields/textures/castle_shield_blue.png rename to mods/castle_shields/textures/castle_shield_blue.png diff --git a/castle_shields/textures/castle_shield_brown.png b/mods/castle_shields/textures/castle_shield_brown.png similarity index 100% rename from castle_shields/textures/castle_shield_brown.png rename to mods/castle_shields/textures/castle_shield_brown.png diff --git a/castle_shields/textures/castle_shield_cyan.png b/mods/castle_shields/textures/castle_shield_cyan.png similarity index 100% rename from castle_shields/textures/castle_shield_cyan.png rename to mods/castle_shields/textures/castle_shield_cyan.png diff --git a/castle_shields/textures/castle_shield_dark_green.png b/mods/castle_shields/textures/castle_shield_dark_green.png similarity index 100% rename from castle_shields/textures/castle_shield_dark_green.png rename to mods/castle_shields/textures/castle_shield_dark_green.png diff --git a/castle_shields/textures/castle_shield_dark_grey.png b/mods/castle_shields/textures/castle_shield_dark_grey.png similarity index 100% rename from castle_shields/textures/castle_shield_dark_grey.png rename to mods/castle_shields/textures/castle_shield_dark_grey.png diff --git a/castle_shields/textures/castle_shield_green.png b/mods/castle_shields/textures/castle_shield_green.png similarity index 100% rename from castle_shields/textures/castle_shield_green.png rename to mods/castle_shields/textures/castle_shield_green.png diff --git a/castle_shields/textures/castle_shield_grey.png b/mods/castle_shields/textures/castle_shield_grey.png similarity index 100% rename from castle_shields/textures/castle_shield_grey.png rename to mods/castle_shields/textures/castle_shield_grey.png diff --git a/castle_shields/textures/castle_shield_magenta.png b/mods/castle_shields/textures/castle_shield_magenta.png similarity index 100% rename from castle_shields/textures/castle_shield_magenta.png rename to mods/castle_shields/textures/castle_shield_magenta.png diff --git a/castle_shields/textures/castle_shield_mask_chevron.png b/mods/castle_shields/textures/castle_shield_mask_chevron.png similarity index 100% rename from castle_shields/textures/castle_shield_mask_chevron.png rename to mods/castle_shields/textures/castle_shield_mask_chevron.png diff --git a/castle_shields/textures/castle_shield_mask_cross.png b/mods/castle_shields/textures/castle_shield_mask_cross.png similarity index 100% rename from castle_shields/textures/castle_shield_mask_cross.png rename to mods/castle_shields/textures/castle_shield_mask_cross.png diff --git a/castle_shields/textures/castle_shield_mask_slash.png b/mods/castle_shields/textures/castle_shield_mask_slash.png similarity index 100% rename from castle_shields/textures/castle_shield_mask_slash.png rename to mods/castle_shields/textures/castle_shield_mask_slash.png diff --git a/castle_shields/textures/castle_shield_orange.png b/mods/castle_shields/textures/castle_shield_orange.png similarity index 100% rename from castle_shields/textures/castle_shield_orange.png rename to mods/castle_shields/textures/castle_shield_orange.png diff --git a/castle_shields/textures/castle_shield_pink.png b/mods/castle_shields/textures/castle_shield_pink.png similarity index 100% rename from castle_shields/textures/castle_shield_pink.png rename to mods/castle_shields/textures/castle_shield_pink.png diff --git a/castle_shields/textures/castle_shield_red.png b/mods/castle_shields/textures/castle_shield_red.png similarity index 100% rename from castle_shields/textures/castle_shield_red.png rename to mods/castle_shields/textures/castle_shield_red.png diff --git a/castle_shields/textures/castle_shield_violet.png b/mods/castle_shields/textures/castle_shield_violet.png similarity index 100% rename from castle_shields/textures/castle_shield_violet.png rename to mods/castle_shields/textures/castle_shield_violet.png diff --git a/castle_shields/textures/castle_shield_white.png b/mods/castle_shields/textures/castle_shield_white.png similarity index 100% rename from castle_shields/textures/castle_shield_white.png rename to mods/castle_shields/textures/castle_shield_white.png diff --git a/castle_shields/textures/castle_shield_yellow.png b/mods/castle_shields/textures/castle_shield_yellow.png similarity index 100% rename from castle_shields/textures/castle_shield_yellow.png rename to mods/castle_shields/textures/castle_shield_yellow.png diff --git a/castle_shields/textures/shield.svg b/mods/castle_shields/textures/shield.svg similarity index 100% rename from castle_shields/textures/shield.svg rename to mods/castle_shields/textures/shield.svg diff --git a/castle_storage/LICENSE b/mods/castle_storage/LICENSE similarity index 100% rename from castle_storage/LICENSE rename to mods/castle_storage/LICENSE diff --git a/castle_storage/README.txt b/mods/castle_storage/README.txt similarity index 100% rename from castle_storage/README.txt rename to mods/castle_storage/README.txt diff --git a/castle_storage/crate.lua b/mods/castle_storage/crate.lua similarity index 100% rename from castle_storage/crate.lua rename to mods/castle_storage/crate.lua diff --git a/castle_storage/depends.txt b/mods/castle_storage/depends.txt similarity index 100% rename from castle_storage/depends.txt rename to mods/castle_storage/depends.txt diff --git a/castle_storage/description.txt b/mods/castle_storage/description.txt similarity index 100% rename from castle_storage/description.txt rename to mods/castle_storage/description.txt diff --git a/castle_storage/i18n.py b/mods/castle_storage/i18n.py similarity index 100% rename from castle_storage/i18n.py rename to mods/castle_storage/i18n.py diff --git a/castle_storage/init.lua b/mods/castle_storage/init.lua similarity index 100% rename from castle_storage/init.lua rename to mods/castle_storage/init.lua diff --git a/castle_storage/ironbound_chest.lua b/mods/castle_storage/ironbound_chest.lua similarity index 100% rename from castle_storage/ironbound_chest.lua rename to mods/castle_storage/ironbound_chest.lua diff --git a/castle_storage/locale/castle_storage.it.tr b/mods/castle_storage/locale/castle_storage.it.tr similarity index 100% rename from castle_storage/locale/castle_storage.it.tr rename to mods/castle_storage/locale/castle_storage.it.tr diff --git a/castle_storage/locale/template.txt b/mods/castle_storage/locale/template.txt similarity index 100% rename from castle_storage/locale/template.txt rename to mods/castle_storage/locale/template.txt diff --git a/castle_storage/mod.conf b/mods/castle_storage/mod.conf similarity index 100% rename from castle_storage/mod.conf rename to mods/castle_storage/mod.conf diff --git a/castle_storage/screenshot.png b/mods/castle_storage/screenshot.png similarity index 100% rename from castle_storage/screenshot.png rename to mods/castle_storage/screenshot.png diff --git a/castle_storage/textures/LICENSE.txt b/mods/castle_storage/textures/LICENSE.txt similarity index 100% rename from castle_storage/textures/LICENSE.txt rename to mods/castle_storage/textures/LICENSE.txt diff --git a/castle_storage/textures/castle_crate.png b/mods/castle_storage/textures/castle_crate.png similarity index 100% rename from castle_storage/textures/castle_crate.png rename to mods/castle_storage/textures/castle_crate.png diff --git a/castle_storage/textures/castle_crate_top.png b/mods/castle_storage/textures/castle_crate_top.png similarity index 100% rename from castle_storage/textures/castle_crate_top.png rename to mods/castle_storage/textures/castle_crate_top.png diff --git a/castle_storage/textures/castle_ironbound_chest_back.png b/mods/castle_storage/textures/castle_ironbound_chest_back.png similarity index 100% rename from castle_storage/textures/castle_ironbound_chest_back.png rename to mods/castle_storage/textures/castle_ironbound_chest_back.png diff --git a/castle_storage/textures/castle_ironbound_chest_front.png b/mods/castle_storage/textures/castle_ironbound_chest_front.png similarity index 100% rename from castle_storage/textures/castle_ironbound_chest_front.png rename to mods/castle_storage/textures/castle_ironbound_chest_front.png diff --git a/castle_storage/textures/castle_ironbound_chest_side.png b/mods/castle_storage/textures/castle_ironbound_chest_side.png similarity index 100% rename from castle_storage/textures/castle_ironbound_chest_side.png rename to mods/castle_storage/textures/castle_ironbound_chest_side.png diff --git a/castle_storage/textures/castle_ironbound_chest_top.png b/mods/castle_storage/textures/castle_ironbound_chest_top.png similarity index 100% rename from castle_storage/textures/castle_ironbound_chest_top.png rename to mods/castle_storage/textures/castle_ironbound_chest_top.png diff --git a/castle_tapestries/LICENSE b/mods/castle_tapestries/LICENSE similarity index 100% rename from castle_tapestries/LICENSE rename to mods/castle_tapestries/LICENSE diff --git a/castle_tapestries/README.md b/mods/castle_tapestries/README.md similarity index 100% rename from castle_tapestries/README.md rename to mods/castle_tapestries/README.md diff --git a/castle_tapestries/init.lua b/mods/castle_tapestries/init.lua similarity index 100% rename from castle_tapestries/init.lua rename to mods/castle_tapestries/init.lua diff --git a/castle_tapestries/locale/castle_tapestries.fr.tr b/mods/castle_tapestries/locale/castle_tapestries.fr.tr similarity index 100% rename from castle_tapestries/locale/castle_tapestries.fr.tr rename to mods/castle_tapestries/locale/castle_tapestries.fr.tr diff --git a/castle_tapestries/locale/castle_tapestries.it.tr b/mods/castle_tapestries/locale/castle_tapestries.it.tr similarity index 100% rename from castle_tapestries/locale/castle_tapestries.it.tr rename to mods/castle_tapestries/locale/castle_tapestries.it.tr diff --git a/castle_tapestries/locale/template.txt b/mods/castle_tapestries/locale/template.txt similarity index 100% rename from castle_tapestries/locale/template.txt rename to mods/castle_tapestries/locale/template.txt diff --git a/castle_tapestries/mod.conf b/mods/castle_tapestries/mod.conf similarity index 100% rename from castle_tapestries/mod.conf rename to mods/castle_tapestries/mod.conf diff --git a/castle_tapestries/models/LICENSE.txt b/mods/castle_tapestries/models/LICENSE.txt similarity index 100% rename from castle_tapestries/models/LICENSE.txt rename to mods/castle_tapestries/models/LICENSE.txt diff --git a/castle_tapestries/models/castle_tapestry.obj b/mods/castle_tapestries/models/castle_tapestry.obj similarity index 100% rename from castle_tapestries/models/castle_tapestry.obj rename to mods/castle_tapestries/models/castle_tapestry.obj diff --git a/castle_tapestries/models/castle_tapestry_long.obj b/mods/castle_tapestries/models/castle_tapestry_long.obj similarity index 100% rename from castle_tapestries/models/castle_tapestry_long.obj rename to mods/castle_tapestries/models/castle_tapestry_long.obj diff --git a/castle_tapestries/models/castle_tapestry_very_long.obj b/mods/castle_tapestries/models/castle_tapestry_very_long.obj similarity index 100% rename from castle_tapestries/models/castle_tapestry_very_long.obj rename to mods/castle_tapestries/models/castle_tapestry_very_long.obj diff --git a/castle_tapestries/screenshot.png b/mods/castle_tapestries/screenshot.png similarity index 100% rename from castle_tapestries/screenshot.png rename to mods/castle_tapestries/screenshot.png diff --git a/castle_tapestries/textures/castle_tapestry.png b/mods/castle_tapestries/textures/castle_tapestry.png similarity index 100% rename from castle_tapestries/textures/castle_tapestry.png rename to mods/castle_tapestries/textures/castle_tapestry.png diff --git a/castle_tapestries/textures/castle_tapestry_inv.png b/mods/castle_tapestries/textures/castle_tapestry_inv.png similarity index 100% rename from castle_tapestries/textures/castle_tapestry_inv.png rename to mods/castle_tapestries/textures/castle_tapestry_inv.png diff --git a/castle_tapestries/textures/castle_tapestry_long_inv.png b/mods/castle_tapestries/textures/castle_tapestry_long_inv.png similarity index 100% rename from castle_tapestries/textures/castle_tapestry_long_inv.png rename to mods/castle_tapestries/textures/castle_tapestry_long_inv.png diff --git a/castle_tapestries/textures/castle_tapestry_very_long_inv.png b/mods/castle_tapestries/textures/castle_tapestry_very_long_inv.png similarity index 100% rename from castle_tapestries/textures/castle_tapestry_very_long_inv.png rename to mods/castle_tapestries/textures/castle_tapestry_very_long_inv.png diff --git a/castle_weapons/LICENSE b/mods/castle_weapons/LICENSE similarity index 100% rename from castle_weapons/LICENSE rename to mods/castle_weapons/LICENSE diff --git a/castle_weapons/README.txt b/mods/castle_weapons/README.txt similarity index 100% rename from castle_weapons/README.txt rename to mods/castle_weapons/README.txt diff --git a/castle_weapons/battleaxe.lua b/mods/castle_weapons/battleaxe.lua similarity index 100% rename from castle_weapons/battleaxe.lua rename to mods/castle_weapons/battleaxe.lua diff --git a/castle_weapons/crossbow.lua b/mods/castle_weapons/crossbow.lua similarity index 100% rename from castle_weapons/crossbow.lua rename to mods/castle_weapons/crossbow.lua diff --git a/castle_weapons/depends.txt b/mods/castle_weapons/depends.txt similarity index 100% rename from castle_weapons/depends.txt rename to mods/castle_weapons/depends.txt diff --git a/castle_weapons/description.txt b/mods/castle_weapons/description.txt similarity index 100% rename from castle_weapons/description.txt rename to mods/castle_weapons/description.txt diff --git a/castle_weapons/i18n.py b/mods/castle_weapons/i18n.py similarity index 100% rename from castle_weapons/i18n.py rename to mods/castle_weapons/i18n.py diff --git a/castle_weapons/init.lua b/mods/castle_weapons/init.lua similarity index 100% rename from castle_weapons/init.lua rename to mods/castle_weapons/init.lua diff --git a/castle_weapons/locale/castle_weapons.it.tr b/mods/castle_weapons/locale/castle_weapons.it.tr similarity index 100% rename from castle_weapons/locale/castle_weapons.it.tr rename to mods/castle_weapons/locale/castle_weapons.it.tr diff --git a/castle_weapons/locale/template.txt b/mods/castle_weapons/locale/template.txt similarity index 100% rename from castle_weapons/locale/template.txt rename to mods/castle_weapons/locale/template.txt diff --git a/castle_weapons/mod.conf b/mods/castle_weapons/mod.conf similarity index 100% rename from castle_weapons/mod.conf rename to mods/castle_weapons/mod.conf diff --git a/castle_weapons/models/LICENSE.txt b/mods/castle_weapons/models/LICENSE.txt similarity index 100% rename from castle_weapons/models/LICENSE.txt rename to mods/castle_weapons/models/LICENSE.txt diff --git a/castle_weapons/models/castle_crossbow_bolt.b3d b/mods/castle_weapons/models/castle_crossbow_bolt.b3d similarity index 100% rename from castle_weapons/models/castle_crossbow_bolt.b3d rename to mods/castle_weapons/models/castle_crossbow_bolt.b3d diff --git a/castle_weapons/models/castle_crossbow_bolt.blend b/mods/castle_weapons/models/castle_crossbow_bolt.blend similarity index 100% rename from castle_weapons/models/castle_crossbow_bolt.blend rename to mods/castle_weapons/models/castle_crossbow_bolt.blend diff --git a/castle_weapons/models/castle_crossbow_bolt_uv.png b/mods/castle_weapons/models/castle_crossbow_bolt_uv.png similarity index 100% rename from castle_weapons/models/castle_crossbow_bolt_uv.png rename to mods/castle_weapons/models/castle_crossbow_bolt_uv.png diff --git a/castle_weapons/screenshot.png b/mods/castle_weapons/screenshot.png similarity index 100% rename from castle_weapons/screenshot.png rename to mods/castle_weapons/screenshot.png diff --git a/castle_weapons/sounds/LICENSE.txt b/mods/castle_weapons/sounds/LICENSE.txt similarity index 100% rename from castle_weapons/sounds/LICENSE.txt rename to mods/castle_weapons/sounds/LICENSE.txt diff --git a/castle_weapons/sounds/castle_crossbow_bolt.ogg b/mods/castle_weapons/sounds/castle_crossbow_bolt.ogg similarity index 100% rename from castle_weapons/sounds/castle_crossbow_bolt.ogg rename to mods/castle_weapons/sounds/castle_crossbow_bolt.ogg diff --git a/castle_weapons/sounds/castle_crossbow_click.ogg b/mods/castle_weapons/sounds/castle_crossbow_click.ogg similarity index 100% rename from castle_weapons/sounds/castle_crossbow_click.ogg rename to mods/castle_weapons/sounds/castle_crossbow_click.ogg diff --git a/castle_weapons/sounds/castle_crossbow_reload.ogg b/mods/castle_weapons/sounds/castle_crossbow_reload.ogg similarity index 100% rename from castle_weapons/sounds/castle_crossbow_reload.ogg rename to mods/castle_weapons/sounds/castle_crossbow_reload.ogg diff --git a/castle_weapons/sounds/castle_crossbow_shoot.ogg b/mods/castle_weapons/sounds/castle_crossbow_shoot.ogg similarity index 100% rename from castle_weapons/sounds/castle_crossbow_shoot.ogg rename to mods/castle_weapons/sounds/castle_crossbow_shoot.ogg diff --git a/castle_weapons/textures/LICENSE.txt b/mods/castle_weapons/textures/LICENSE.txt similarity index 100% rename from castle_weapons/textures/LICENSE.txt rename to mods/castle_weapons/textures/LICENSE.txt diff --git a/castle_weapons/textures/castle_battleaxe.png b/mods/castle_weapons/textures/castle_battleaxe.png similarity index 100% rename from castle_weapons/textures/castle_battleaxe.png rename to mods/castle_weapons/textures/castle_battleaxe.png diff --git a/castle_weapons/textures/castle_crossbow_bolt_inv.png b/mods/castle_weapons/textures/castle_crossbow_bolt_inv.png similarity index 100% rename from castle_weapons/textures/castle_crossbow_bolt_inv.png rename to mods/castle_weapons/textures/castle_crossbow_bolt_inv.png diff --git a/castle_weapons/textures/castle_crossbow_hit.png b/mods/castle_weapons/textures/castle_crossbow_hit.png similarity index 100% rename from castle_weapons/textures/castle_crossbow_hit.png rename to mods/castle_weapons/textures/castle_crossbow_hit.png diff --git a/castle_weapons/textures/castle_crossbow_inv.png b/mods/castle_weapons/textures/castle_crossbow_inv.png similarity index 100% rename from castle_weapons/textures/castle_crossbow_inv.png rename to mods/castle_weapons/textures/castle_crossbow_inv.png diff --git a/castle_weapons/textures/castle_crossbow_loaded.png b/mods/castle_weapons/textures/castle_crossbow_loaded.png similarity index 100% rename from castle_weapons/textures/castle_crossbow_loaded.png rename to mods/castle_weapons/textures/castle_crossbow_loaded.png diff --git a/caverealms_lite/LICENSE.txt b/mods/caverealms_lite/LICENSE.txt similarity index 100% rename from caverealms_lite/LICENSE.txt rename to mods/caverealms_lite/LICENSE.txt diff --git a/caverealms_lite/README.md b/mods/caverealms_lite/README.md similarity index 100% rename from caverealms_lite/README.md rename to mods/caverealms_lite/README.md diff --git a/caverealms_lite/config.lua b/mods/caverealms_lite/config.lua similarity index 100% rename from caverealms_lite/config.lua rename to mods/caverealms_lite/config.lua diff --git a/caverealms_lite/crafting.lua b/mods/caverealms_lite/crafting.lua similarity index 100% rename from caverealms_lite/crafting.lua rename to mods/caverealms_lite/crafting.lua diff --git a/caverealms_lite/depends.txt b/mods/caverealms_lite/depends.txt similarity index 100% rename from caverealms_lite/depends.txt rename to mods/caverealms_lite/depends.txt diff --git a/caverealms_lite/description.txt b/mods/caverealms_lite/description.txt similarity index 100% rename from caverealms_lite/description.txt rename to mods/caverealms_lite/description.txt diff --git a/caverealms_lite/docs/caverealms_lite_biomes.txt b/mods/caverealms_lite/docs/caverealms_lite_biomes.txt similarity index 100% rename from caverealms_lite/docs/caverealms_lite_biomes.txt rename to mods/caverealms_lite/docs/caverealms_lite_biomes.txt diff --git a/caverealms_lite/dungeon_master.lua b/mods/caverealms_lite/dungeon_master.lua similarity index 100% rename from caverealms_lite/dungeon_master.lua rename to mods/caverealms_lite/dungeon_master.lua diff --git a/caverealms_lite/functions.lua b/mods/caverealms_lite/functions.lua similarity index 100% rename from caverealms_lite/functions.lua rename to mods/caverealms_lite/functions.lua diff --git a/caverealms_lite/init.lua b/mods/caverealms_lite/init.lua similarity index 100% rename from caverealms_lite/init.lua rename to mods/caverealms_lite/init.lua diff --git a/caverealms_lite/mod.conf b/mods/caverealms_lite/mod.conf similarity index 100% rename from caverealms_lite/mod.conf rename to mods/caverealms_lite/mod.conf diff --git a/caverealms_lite/nodes.lua b/mods/caverealms_lite/nodes.lua similarity index 100% rename from caverealms_lite/nodes.lua rename to mods/caverealms_lite/nodes.lua diff --git a/caverealms_lite/plants.lua b/mods/caverealms_lite/plants.lua similarity index 100% rename from caverealms_lite/plants.lua rename to mods/caverealms_lite/plants.lua diff --git a/caverealms_lite/schematics/shroom.mts b/mods/caverealms_lite/schematics/shroom.mts similarity index 100% rename from caverealms_lite/schematics/shroom.mts rename to mods/caverealms_lite/schematics/shroom.mts diff --git a/caverealms_lite/screenshot.png b/mods/caverealms_lite/screenshot.png similarity index 100% rename from caverealms_lite/screenshot.png rename to mods/caverealms_lite/screenshot.png diff --git a/caverealms_lite/textures/Thumbs.db b/mods/caverealms_lite/textures/Thumbs.db similarity index 100% rename from caverealms_lite/textures/Thumbs.db rename to mods/caverealms_lite/textures/Thumbs.db diff --git a/caverealms_lite/textures/caverealms_algae.png b/mods/caverealms_lite/textures/caverealms_algae.png similarity index 100% rename from caverealms_lite/textures/caverealms_algae.png rename to mods/caverealms_lite/textures/caverealms_algae.png diff --git a/caverealms_lite/textures/caverealms_algae_side.png b/mods/caverealms_lite/textures/caverealms_algae_side.png similarity index 100% rename from caverealms_lite/textures/caverealms_algae_side.png rename to mods/caverealms_lite/textures/caverealms_algae_side.png diff --git a/caverealms_lite/textures/caverealms_angler_rod.png b/mods/caverealms_lite/textures/caverealms_angler_rod.png similarity index 100% rename from caverealms_lite/textures/caverealms_angler_rod.png rename to mods/caverealms_lite/textures/caverealms_angler_rod.png diff --git a/caverealms_lite/textures/caverealms_angler_rod_baited.png b/mods/caverealms_lite/textures/caverealms_angler_rod_baited.png similarity index 100% rename from caverealms_lite/textures/caverealms_angler_rod_baited.png rename to mods/caverealms_lite/textures/caverealms_angler_rod_baited.png diff --git a/caverealms_lite/textures/caverealms_angler_rod_weild.png b/mods/caverealms_lite/textures/caverealms_angler_rod_weild.png similarity index 100% rename from caverealms_lite/textures/caverealms_angler_rod_weild.png rename to mods/caverealms_lite/textures/caverealms_angler_rod_weild.png diff --git a/caverealms_lite/textures/caverealms_coal_dust.png b/mods/caverealms_lite/textures/caverealms_coal_dust.png similarity index 100% rename from caverealms_lite/textures/caverealms_coal_dust.png rename to mods/caverealms_lite/textures/caverealms_coal_dust.png diff --git a/caverealms_lite/textures/caverealms_dm_stone.png b/mods/caverealms_lite/textures/caverealms_dm_stone.png similarity index 100% rename from caverealms_lite/textures/caverealms_dm_stone.png rename to mods/caverealms_lite/textures/caverealms_dm_stone.png diff --git a/caverealms_lite/textures/caverealms_fire_vine.png b/mods/caverealms_lite/textures/caverealms_fire_vine.png similarity index 100% rename from caverealms_lite/textures/caverealms_fire_vine.png rename to mods/caverealms_lite/textures/caverealms_fire_vine.png diff --git a/caverealms_lite/textures/caverealms_fungi.png b/mods/caverealms_lite/textures/caverealms_fungi.png similarity index 100% rename from caverealms_lite/textures/caverealms_fungi.png rename to mods/caverealms_lite/textures/caverealms_fungi.png diff --git a/caverealms_lite/textures/caverealms_glow_amethyst.png b/mods/caverealms_lite/textures/caverealms_glow_amethyst.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_amethyst.png rename to mods/caverealms_lite/textures/caverealms_glow_amethyst.png diff --git a/caverealms_lite/textures/caverealms_glow_amethyst_ore.png b/mods/caverealms_lite/textures/caverealms_glow_amethyst_ore.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_amethyst_ore.png rename to mods/caverealms_lite/textures/caverealms_glow_amethyst_ore.png diff --git a/caverealms_lite/textures/caverealms_glow_bait.png b/mods/caverealms_lite/textures/caverealms_glow_bait.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_bait.png rename to mods/caverealms_lite/textures/caverealms_glow_bait.png diff --git a/caverealms_lite/textures/caverealms_glow_crystal.png b/mods/caverealms_lite/textures/caverealms_glow_crystal.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_crystal.png rename to mods/caverealms_lite/textures/caverealms_glow_crystal.png diff --git a/caverealms_lite/textures/caverealms_glow_emerald.png b/mods/caverealms_lite/textures/caverealms_glow_emerald.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_emerald.png rename to mods/caverealms_lite/textures/caverealms_glow_emerald.png diff --git a/caverealms_lite/textures/caverealms_glow_emerald_ore.png b/mods/caverealms_lite/textures/caverealms_glow_emerald_ore.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_emerald_ore.png rename to mods/caverealms_lite/textures/caverealms_glow_emerald_ore.png diff --git a/caverealms_lite/textures/caverealms_glow_gem.png b/mods/caverealms_lite/textures/caverealms_glow_gem.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_gem.png rename to mods/caverealms_lite/textures/caverealms_glow_gem.png diff --git a/caverealms_lite/textures/caverealms_glow_mese.png b/mods/caverealms_lite/textures/caverealms_glow_mese.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_mese.png rename to mods/caverealms_lite/textures/caverealms_glow_mese.png diff --git a/caverealms_lite/textures/caverealms_glow_obsidian.png b/mods/caverealms_lite/textures/caverealms_glow_obsidian.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_obsidian.png rename to mods/caverealms_lite/textures/caverealms_glow_obsidian.png diff --git a/caverealms_lite/textures/caverealms_glow_obsidian2.png b/mods/caverealms_lite/textures/caverealms_glow_obsidian2.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_obsidian2.png rename to mods/caverealms_lite/textures/caverealms_glow_obsidian2.png diff --git a/caverealms_lite/textures/caverealms_glow_obsidian_brick.png b/mods/caverealms_lite/textures/caverealms_glow_obsidian_brick.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_obsidian_brick.png rename to mods/caverealms_lite/textures/caverealms_glow_obsidian_brick.png diff --git a/caverealms_lite/textures/caverealms_glow_obsidian_brick_2.png b/mods/caverealms_lite/textures/caverealms_glow_obsidian_brick_2.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_obsidian_brick_2.png rename to mods/caverealms_lite/textures/caverealms_glow_obsidian_brick_2.png diff --git a/caverealms_lite/textures/caverealms_glow_obsidian_glass.png b/mods/caverealms_lite/textures/caverealms_glow_obsidian_glass.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_obsidian_glass.png rename to mods/caverealms_lite/textures/caverealms_glow_obsidian_glass.png diff --git a/caverealms_lite/textures/caverealms_glow_ore.png b/mods/caverealms_lite/textures/caverealms_glow_ore.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_ore.png rename to mods/caverealms_lite/textures/caverealms_glow_ore.png diff --git a/caverealms_lite/textures/caverealms_glow_ruby.png b/mods/caverealms_lite/textures/caverealms_glow_ruby.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_ruby.png rename to mods/caverealms_lite/textures/caverealms_glow_ruby.png diff --git a/caverealms_lite/textures/caverealms_glow_ruby_ore.png b/mods/caverealms_lite/textures/caverealms_glow_ruby_ore.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_ruby_ore.png rename to mods/caverealms_lite/textures/caverealms_glow_ruby_ore.png diff --git a/caverealms_lite/textures/caverealms_glow_worm.png b/mods/caverealms_lite/textures/caverealms_glow_worm.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_worm.png rename to mods/caverealms_lite/textures/caverealms_glow_worm.png diff --git a/caverealms_lite/textures/caverealms_glow_worm_green.png b/mods/caverealms_lite/textures/caverealms_glow_worm_green.png similarity index 100% rename from caverealms_lite/textures/caverealms_glow_worm_green.png rename to mods/caverealms_lite/textures/caverealms_glow_worm_green.png diff --git a/caverealms_lite/textures/caverealms_hot_cobble.png b/mods/caverealms_lite/textures/caverealms_hot_cobble.png similarity index 100% rename from caverealms_lite/textures/caverealms_hot_cobble.png rename to mods/caverealms_lite/textures/caverealms_hot_cobble.png diff --git a/caverealms_lite/textures/caverealms_icicle_down.png b/mods/caverealms_lite/textures/caverealms_icicle_down.png similarity index 100% rename from caverealms_lite/textures/caverealms_icicle_down.png rename to mods/caverealms_lite/textures/caverealms_icicle_down.png diff --git a/caverealms_lite/textures/caverealms_icicle_up.png b/mods/caverealms_lite/textures/caverealms_icicle_up.png similarity index 100% rename from caverealms_lite/textures/caverealms_icicle_up.png rename to mods/caverealms_lite/textures/caverealms_icicle_up.png diff --git a/caverealms_lite/textures/caverealms_lichen.png b/mods/caverealms_lite/textures/caverealms_lichen.png similarity index 100% rename from caverealms_lite/textures/caverealms_lichen.png rename to mods/caverealms_lite/textures/caverealms_lichen.png diff --git a/caverealms_lite/textures/caverealms_lichen_side.png b/mods/caverealms_lite/textures/caverealms_lichen_side.png similarity index 100% rename from caverealms_lite/textures/caverealms_lichen_side.png rename to mods/caverealms_lite/textures/caverealms_lichen_side.png diff --git a/caverealms_lite/textures/caverealms_moss.png b/mods/caverealms_lite/textures/caverealms_moss.png similarity index 100% rename from caverealms_lite/textures/caverealms_moss.png rename to mods/caverealms_lite/textures/caverealms_moss.png diff --git a/caverealms_lite/textures/caverealms_moss_side.png b/mods/caverealms_lite/textures/caverealms_moss_side.png similarity index 100% rename from caverealms_lite/textures/caverealms_moss_side.png rename to mods/caverealms_lite/textures/caverealms_moss_side.png diff --git a/caverealms_lite/textures/caverealms_mushroom_cap.png b/mods/caverealms_lite/textures/caverealms_mushroom_cap.png similarity index 100% rename from caverealms_lite/textures/caverealms_mushroom_cap.png rename to mods/caverealms_lite/textures/caverealms_mushroom_cap.png diff --git a/caverealms_lite/textures/caverealms_mushroom_gills.png b/mods/caverealms_lite/textures/caverealms_mushroom_gills.png similarity index 100% rename from caverealms_lite/textures/caverealms_mushroom_gills.png rename to mods/caverealms_lite/textures/caverealms_mushroom_gills.png diff --git a/caverealms_lite/textures/caverealms_mushroom_sapling.png b/mods/caverealms_lite/textures/caverealms_mushroom_sapling.png similarity index 100% rename from caverealms_lite/textures/caverealms_mushroom_sapling.png rename to mods/caverealms_lite/textures/caverealms_mushroom_sapling.png diff --git a/caverealms_lite/textures/caverealms_mushroom_stem.png b/mods/caverealms_lite/textures/caverealms_mushroom_stem.png similarity index 100% rename from caverealms_lite/textures/caverealms_mushroom_stem.png rename to mods/caverealms_lite/textures/caverealms_mushroom_stem.png diff --git a/caverealms_lite/textures/caverealms_mycena.png b/mods/caverealms_lite/textures/caverealms_mycena.png similarity index 100% rename from caverealms_lite/textures/caverealms_mycena.png rename to mods/caverealms_lite/textures/caverealms_mycena.png diff --git a/caverealms_lite/textures/caverealms_salt_crystal.png b/mods/caverealms_lite/textures/caverealms_salt_crystal.png similarity index 100% rename from caverealms_lite/textures/caverealms_salt_crystal.png rename to mods/caverealms_lite/textures/caverealms_salt_crystal.png diff --git a/caverealms_lite/textures/caverealms_salt_gem.png b/mods/caverealms_lite/textures/caverealms_salt_gem.png similarity index 100% rename from caverealms_lite/textures/caverealms_salt_gem.png rename to mods/caverealms_lite/textures/caverealms_salt_gem.png diff --git a/caverealms_lite/textures/caverealms_salty2.png b/mods/caverealms_lite/textures/caverealms_salty2.png similarity index 100% rename from caverealms_lite/textures/caverealms_salty2.png rename to mods/caverealms_lite/textures/caverealms_salty2.png diff --git a/caverealms_lite/textures/caverealms_spike.png b/mods/caverealms_lite/textures/caverealms_spike.png similarity index 100% rename from caverealms_lite/textures/caverealms_spike.png rename to mods/caverealms_lite/textures/caverealms_spike.png diff --git a/caverealms_lite/textures/caverealms_stone_eyes.png b/mods/caverealms_lite/textures/caverealms_stone_eyes.png similarity index 100% rename from caverealms_lite/textures/caverealms_stone_eyes.png rename to mods/caverealms_lite/textures/caverealms_stone_eyes.png diff --git a/caverealms_lite/textures/caverealms_thin_ice.png b/mods/caverealms_lite/textures/caverealms_thin_ice.png similarity index 100% rename from caverealms_lite/textures/caverealms_thin_ice.png rename to mods/caverealms_lite/textures/caverealms_thin_ice.png diff --git a/caverealms_lite/textures/fire_basic_flame.png b/mods/caverealms_lite/textures/fire_basic_flame.png similarity index 100% rename from caverealms_lite/textures/fire_basic_flame.png rename to mods/caverealms_lite/textures/fire_basic_flame.png diff --git a/caverealms_lite/textures/fire_basic_flame_animated.png b/mods/caverealms_lite/textures/fire_basic_flame_animated.png similarity index 100% rename from caverealms_lite/textures/fire_basic_flame_animated.png rename to mods/caverealms_lite/textures/fire_basic_flame_animated.png diff --git a/cavestuff/init.lua b/mods/cavestuff/init.lua similarity index 100% rename from cavestuff/init.lua rename to mods/cavestuff/init.lua diff --git a/cavestuff/locale/cavestuff.fr.tr b/mods/cavestuff/locale/cavestuff.fr.tr similarity index 100% rename from cavestuff/locale/cavestuff.fr.tr rename to mods/cavestuff/locale/cavestuff.fr.tr diff --git a/cavestuff/locale/template.txt b/mods/cavestuff/locale/template.txt similarity index 100% rename from cavestuff/locale/template.txt rename to mods/cavestuff/locale/template.txt diff --git a/cavestuff/mapgen.lua b/mods/cavestuff/mapgen.lua similarity index 100% rename from cavestuff/mapgen.lua rename to mods/cavestuff/mapgen.lua diff --git a/cavestuff/mod.conf b/mods/cavestuff/mod.conf similarity index 100% rename from cavestuff/mod.conf rename to mods/cavestuff/mod.conf diff --git a/cavestuff/models/cavestuff_pebble.obj b/mods/cavestuff/models/cavestuff_pebble.obj similarity index 100% rename from cavestuff/models/cavestuff_pebble.obj rename to mods/cavestuff/models/cavestuff_pebble.obj diff --git a/cavestuff/nodes.lua b/mods/cavestuff/nodes.lua similarity index 100% rename from cavestuff/nodes.lua rename to mods/cavestuff/nodes.lua diff --git a/cavestuff/textures/undergrowth_desert_pebble.png b/mods/cavestuff/textures/undergrowth_desert_pebble.png similarity index 100% rename from cavestuff/textures/undergrowth_desert_pebble.png rename to mods/cavestuff/textures/undergrowth_desert_pebble.png diff --git a/cavestuff/textures/undergrowth_pebble.png b/mods/cavestuff/textures/undergrowth_pebble.png similarity index 100% rename from cavestuff/textures/undergrowth_pebble.png rename to mods/cavestuff/textures/undergrowth_pebble.png diff --git a/cblocks/README.md b/mods/cblocks/README.md similarity index 100% rename from cblocks/README.md rename to mods/cblocks/README.md diff --git a/cblocks/depends.txt b/mods/cblocks/depends.txt similarity index 100% rename from cblocks/depends.txt rename to mods/cblocks/depends.txt diff --git a/cblocks/description.txt b/mods/cblocks/description.txt similarity index 100% rename from cblocks/description.txt rename to mods/cblocks/description.txt diff --git a/cblocks/init.lua b/mods/cblocks/init.lua similarity index 100% rename from cblocks/init.lua rename to mods/cblocks/init.lua diff --git a/cblocks/license.txt b/mods/cblocks/license.txt similarity index 100% rename from cblocks/license.txt rename to mods/cblocks/license.txt diff --git a/cblocks/mod.conf b/mods/cblocks/mod.conf similarity index 100% rename from cblocks/mod.conf rename to mods/cblocks/mod.conf diff --git a/cblocks/screenshot.png b/mods/cblocks/screenshot.png similarity index 100% rename from cblocks/screenshot.png rename to mods/cblocks/screenshot.png diff --git a/cblocks/textures/cblocks.png b/mods/cblocks/textures/cblocks.png similarity index 100% rename from cblocks/textures/cblocks.png rename to mods/cblocks/textures/cblocks.png diff --git a/cherrytree/init.lua b/mods/cherrytree/init.lua similarity index 100% rename from cherrytree/init.lua rename to mods/cherrytree/init.lua diff --git a/cherrytree/locale/cherrytree.es.tr b/mods/cherrytree/locale/cherrytree.es.tr similarity index 100% rename from cherrytree/locale/cherrytree.es.tr rename to mods/cherrytree/locale/cherrytree.es.tr diff --git a/cherrytree/mod.conf b/mods/cherrytree/mod.conf similarity index 100% rename from cherrytree/mod.conf rename to mods/cherrytree/mod.conf diff --git a/cherrytree/schematics/cherrytree.lua b/mods/cherrytree/schematics/cherrytree.lua similarity index 100% rename from cherrytree/schematics/cherrytree.lua rename to mods/cherrytree/schematics/cherrytree.lua diff --git a/cherrytree/schematics/cherrytree.mts b/mods/cherrytree/schematics/cherrytree.mts similarity index 100% rename from cherrytree/schematics/cherrytree.mts rename to mods/cherrytree/schematics/cherrytree.mts diff --git a/cherrytree/textures/cherrytree_blossom_leaves.png b/mods/cherrytree/textures/cherrytree_blossom_leaves.png similarity index 100% rename from cherrytree/textures/cherrytree_blossom_leaves.png rename to mods/cherrytree/textures/cherrytree_blossom_leaves.png diff --git a/cherrytree/textures/cherrytree_cherries.png b/mods/cherrytree/textures/cherrytree_cherries.png similarity index 100% rename from cherrytree/textures/cherrytree_cherries.png rename to mods/cherrytree/textures/cherrytree_cherries.png diff --git a/cherrytree/textures/cherrytree_leaves.png b/mods/cherrytree/textures/cherrytree_leaves.png similarity index 100% rename from cherrytree/textures/cherrytree_leaves.png rename to mods/cherrytree/textures/cherrytree_leaves.png diff --git a/cherrytree/textures/cherrytree_sapling.png b/mods/cherrytree/textures/cherrytree_sapling.png similarity index 100% rename from cherrytree/textures/cherrytree_sapling.png rename to mods/cherrytree/textures/cherrytree_sapling.png diff --git a/cherrytree/textures/cherrytree_trunk.png b/mods/cherrytree/textures/cherrytree_trunk.png similarity index 100% rename from cherrytree/textures/cherrytree_trunk.png rename to mods/cherrytree/textures/cherrytree_trunk.png diff --git a/cherrytree/textures/cherrytree_trunk_top.png b/mods/cherrytree/textures/cherrytree_trunk_top.png similarity index 100% rename from cherrytree/textures/cherrytree_trunk_top.png rename to mods/cherrytree/textures/cherrytree_trunk_top.png diff --git a/cherrytree/textures/cherrytree_wood.png b/mods/cherrytree/textures/cherrytree_wood.png similarity index 100% rename from cherrytree/textures/cherrytree_wood.png rename to mods/cherrytree/textures/cherrytree_wood.png diff --git a/chestnuttree/init.lua b/mods/chestnuttree/init.lua similarity index 100% rename from chestnuttree/init.lua rename to mods/chestnuttree/init.lua diff --git a/chestnuttree/locale/chestnuttree.es.tr b/mods/chestnuttree/locale/chestnuttree.es.tr similarity index 100% rename from chestnuttree/locale/chestnuttree.es.tr rename to mods/chestnuttree/locale/chestnuttree.es.tr diff --git a/chestnuttree/mod.conf b/mods/chestnuttree/mod.conf similarity index 100% rename from chestnuttree/mod.conf rename to mods/chestnuttree/mod.conf diff --git a/chestnuttree/schematics/chestnuttree.lua b/mods/chestnuttree/schematics/chestnuttree.lua similarity index 100% rename from chestnuttree/schematics/chestnuttree.lua rename to mods/chestnuttree/schematics/chestnuttree.lua diff --git a/chestnuttree/schematics/chestnuttree.mts b/mods/chestnuttree/schematics/chestnuttree.mts similarity index 100% rename from chestnuttree/schematics/chestnuttree.mts rename to mods/chestnuttree/schematics/chestnuttree.mts diff --git a/chestnuttree/textures/chesnuttree_door_wood.png b/mods/chestnuttree/textures/chesnuttree_door_wood.png similarity index 100% rename from chestnuttree/textures/chesnuttree_door_wood.png rename to mods/chestnuttree/textures/chesnuttree_door_wood.png diff --git a/chestnuttree/textures/chestnuttree_bur.png b/mods/chestnuttree/textures/chestnuttree_bur.png similarity index 100% rename from chestnuttree/textures/chestnuttree_bur.png rename to mods/chestnuttree/textures/chestnuttree_bur.png diff --git a/chestnuttree/textures/chestnuttree_fruit.png b/mods/chestnuttree/textures/chestnuttree_fruit.png similarity index 100% rename from chestnuttree/textures/chestnuttree_fruit.png rename to mods/chestnuttree/textures/chestnuttree_fruit.png diff --git a/chestnuttree/textures/chestnuttree_item_wood.png b/mods/chestnuttree/textures/chestnuttree_item_wood.png similarity index 100% rename from chestnuttree/textures/chestnuttree_item_wood.png rename to mods/chestnuttree/textures/chestnuttree_item_wood.png diff --git a/chestnuttree/textures/chestnuttree_leaves.png b/mods/chestnuttree/textures/chestnuttree_leaves.png similarity index 100% rename from chestnuttree/textures/chestnuttree_leaves.png rename to mods/chestnuttree/textures/chestnuttree_leaves.png diff --git a/chestnuttree/textures/chestnuttree_sapling.png b/mods/chestnuttree/textures/chestnuttree_sapling.png similarity index 100% rename from chestnuttree/textures/chestnuttree_sapling.png rename to mods/chestnuttree/textures/chestnuttree_sapling.png diff --git a/chestnuttree/textures/chestnuttree_trunk.png b/mods/chestnuttree/textures/chestnuttree_trunk.png similarity index 100% rename from chestnuttree/textures/chestnuttree_trunk.png rename to mods/chestnuttree/textures/chestnuttree_trunk.png diff --git a/chestnuttree/textures/chestnuttree_trunk_top.png b/mods/chestnuttree/textures/chestnuttree_trunk_top.png similarity index 100% rename from chestnuttree/textures/chestnuttree_trunk_top.png rename to mods/chestnuttree/textures/chestnuttree_trunk_top.png diff --git a/chestnuttree/textures/chestnuttree_wood.png b/mods/chestnuttree/textures/chestnuttree_wood.png similarity index 100% rename from chestnuttree/textures/chestnuttree_wood.png rename to mods/chestnuttree/textures/chestnuttree_wood.png diff --git a/chestnuttree/textures/ts_chestnuttree_front.png b/mods/chestnuttree/textures/ts_chestnuttree_front.png similarity index 100% rename from chestnuttree/textures/ts_chestnuttree_front.png rename to mods/chestnuttree/textures/ts_chestnuttree_front.png diff --git a/chestnuttree/textures/ts_chestnuttree_front_right.png b/mods/chestnuttree/textures/ts_chestnuttree_front_right.png similarity index 100% rename from chestnuttree/textures/ts_chestnuttree_front_right.png rename to mods/chestnuttree/textures/ts_chestnuttree_front_right.png diff --git a/clementinetree/init.lua b/mods/clementinetree/init.lua similarity index 100% rename from clementinetree/init.lua rename to mods/clementinetree/init.lua diff --git a/clementinetree/locale/clementinetree.es.tr b/mods/clementinetree/locale/clementinetree.es.tr similarity index 100% rename from clementinetree/locale/clementinetree.es.tr rename to mods/clementinetree/locale/clementinetree.es.tr diff --git a/clementinetree/mod.conf b/mods/clementinetree/mod.conf similarity index 100% rename from clementinetree/mod.conf rename to mods/clementinetree/mod.conf diff --git a/clementinetree/schematics/clementinetree.lua b/mods/clementinetree/schematics/clementinetree.lua similarity index 100% rename from clementinetree/schematics/clementinetree.lua rename to mods/clementinetree/schematics/clementinetree.lua diff --git a/clementinetree/schematics/clementinetree.mts b/mods/clementinetree/schematics/clementinetree.mts similarity index 100% rename from clementinetree/schematics/clementinetree.mts rename to mods/clementinetree/schematics/clementinetree.mts diff --git a/clementinetree/textures/clementinetree_clementine.png b/mods/clementinetree/textures/clementinetree_clementine.png similarity index 100% rename from clementinetree/textures/clementinetree_clementine.png rename to mods/clementinetree/textures/clementinetree_clementine.png diff --git a/clementinetree/textures/clementinetree_door_wood.png b/mods/clementinetree/textures/clementinetree_door_wood.png similarity index 100% rename from clementinetree/textures/clementinetree_door_wood.png rename to mods/clementinetree/textures/clementinetree_door_wood.png diff --git a/clementinetree/textures/clementinetree_item_wood.png b/mods/clementinetree/textures/clementinetree_item_wood.png similarity index 100% rename from clementinetree/textures/clementinetree_item_wood.png rename to mods/clementinetree/textures/clementinetree_item_wood.png diff --git a/clementinetree/textures/clementinetree_leaves.png b/mods/clementinetree/textures/clementinetree_leaves.png similarity index 100% rename from clementinetree/textures/clementinetree_leaves.png rename to mods/clementinetree/textures/clementinetree_leaves.png diff --git a/clementinetree/textures/clementinetree_sapling.png b/mods/clementinetree/textures/clementinetree_sapling.png similarity index 100% rename from clementinetree/textures/clementinetree_sapling.png rename to mods/clementinetree/textures/clementinetree_sapling.png diff --git a/clementinetree/textures/clementinetree_trunk.png b/mods/clementinetree/textures/clementinetree_trunk.png similarity index 100% rename from clementinetree/textures/clementinetree_trunk.png rename to mods/clementinetree/textures/clementinetree_trunk.png diff --git a/clementinetree/textures/clementinetree_trunk_top.png b/mods/clementinetree/textures/clementinetree_trunk_top.png similarity index 100% rename from clementinetree/textures/clementinetree_trunk_top.png rename to mods/clementinetree/textures/clementinetree_trunk_top.png diff --git a/clementinetree/textures/clementinetree_wood.png b/mods/clementinetree/textures/clementinetree_wood.png similarity index 100% rename from clementinetree/textures/clementinetree_wood.png rename to mods/clementinetree/textures/clementinetree_wood.png diff --git a/clementinetree/textures/ts_clementinetree_front.png b/mods/clementinetree/textures/ts_clementinetree_front.png similarity index 100% rename from clementinetree/textures/ts_clementinetree_front.png rename to mods/clementinetree/textures/ts_clementinetree_front.png diff --git a/clementinetree/textures/ts_clementinetree_front_right.png b/mods/clementinetree/textures/ts_clementinetree_front_right.png similarity index 100% rename from clementinetree/textures/ts_clementinetree_front_right.png rename to mods/clementinetree/textures/ts_clementinetree_front_right.png diff --git a/coloredwood/LICENSE b/mods/coloredwood/LICENSE similarity index 100% rename from coloredwood/LICENSE rename to mods/coloredwood/LICENSE diff --git a/coloredwood/README b/mods/coloredwood/README similarity index 100% rename from coloredwood/README rename to mods/coloredwood/README diff --git a/coloredwood/depends.txt b/mods/coloredwood/depends.txt similarity index 100% rename from coloredwood/depends.txt rename to mods/coloredwood/depends.txt diff --git a/coloredwood/description.txt b/mods/coloredwood/description.txt similarity index 100% rename from coloredwood/description.txt rename to mods/coloredwood/description.txt diff --git a/coloredwood/init.lua b/mods/coloredwood/init.lua similarity index 100% rename from coloredwood/init.lua rename to mods/coloredwood/init.lua diff --git a/coloredwood/mod.conf b/mods/coloredwood/mod.conf similarity index 100% rename from coloredwood/mod.conf rename to mods/coloredwood/mod.conf diff --git a/coloredwood/textures/coloredwood_base.png b/mods/coloredwood/textures/coloredwood_base.png similarity index 100% rename from coloredwood/textures/coloredwood_base.png rename to mods/coloredwood/textures/coloredwood_base.png diff --git a/coloredwood/textures/coloredwood_fence_base.png b/mods/coloredwood/textures/coloredwood_fence_base.png similarity index 100% rename from coloredwood/textures/coloredwood_fence_base.png rename to mods/coloredwood/textures/coloredwood_fence_base.png diff --git a/computer/.luacheckrc b/mods/computer/.luacheckrc similarity index 100% rename from computer/.luacheckrc rename to mods/computer/.luacheckrc diff --git a/computer/CHANGES.txt b/mods/computer/CHANGES.txt similarity index 100% rename from computer/CHANGES.txt rename to mods/computer/CHANGES.txt diff --git a/computer/README.txt b/mods/computer/README.txt similarity index 100% rename from computer/README.txt rename to mods/computer/README.txt diff --git a/computer/TODO.txt b/mods/computer/TODO.txt similarity index 100% rename from computer/TODO.txt rename to mods/computer/TODO.txt diff --git a/computer/computers.lua b/mods/computer/computers.lua similarity index 100% rename from computer/computers.lua rename to mods/computer/computers.lua diff --git a/computer/init.lua b/mods/computer/init.lua similarity index 100% rename from computer/init.lua rename to mods/computer/init.lua diff --git a/computer/locale/computer.de.tr b/mods/computer/locale/computer.de.tr similarity index 100% rename from computer/locale/computer.de.tr rename to mods/computer/locale/computer.de.tr diff --git a/computer/locale/computer.es.tr b/mods/computer/locale/computer.es.tr similarity index 100% rename from computer/locale/computer.es.tr rename to mods/computer/locale/computer.es.tr diff --git a/computer/locale/computer.fr.tr b/mods/computer/locale/computer.fr.tr similarity index 100% rename from computer/locale/computer.fr.tr rename to mods/computer/locale/computer.fr.tr diff --git a/computer/locale/computer.it.tr b/mods/computer/locale/computer.it.tr similarity index 100% rename from computer/locale/computer.it.tr rename to mods/computer/locale/computer.it.tr diff --git a/computer/locale/computer.ms.tr b/mods/computer/locale/computer.ms.tr similarity index 100% rename from computer/locale/computer.ms.tr rename to mods/computer/locale/computer.ms.tr diff --git a/computer/locale/computer.pt.tr b/mods/computer/locale/computer.pt.tr similarity index 100% rename from computer/locale/computer.pt.tr rename to mods/computer/locale/computer.pt.tr diff --git a/computer/locale/computer.pt_BR.tr b/mods/computer/locale/computer.pt_BR.tr similarity index 100% rename from computer/locale/computer.pt_BR.tr rename to mods/computer/locale/computer.pt_BR.tr diff --git a/computer/locale/computer.ru.tr b/mods/computer/locale/computer.ru.tr similarity index 100% rename from computer/locale/computer.ru.tr rename to mods/computer/locale/computer.ru.tr diff --git a/computer/locale/computer.zh_CN.tr b/mods/computer/locale/computer.zh_CN.tr similarity index 100% rename from computer/locale/computer.zh_CN.tr rename to mods/computer/locale/computer.zh_CN.tr diff --git a/computer/locale/template.txt b/mods/computer/locale/template.txt similarity index 100% rename from computer/locale/template.txt rename to mods/computer/locale/template.txt diff --git a/computer/mod.conf b/mods/computer/mod.conf similarity index 100% rename from computer/mod.conf rename to mods/computer/mod.conf diff --git a/computer/models/computer_3dprinter_bedflinger.obj b/mods/computer/models/computer_3dprinter_bedflinger.obj similarity index 100% rename from computer/models/computer_3dprinter_bedflinger.obj rename to mods/computer/models/computer_3dprinter_bedflinger.obj diff --git a/computer/models/computer_laptop.obj b/mods/computer/models/computer_laptop.obj similarity index 100% rename from computer/models/computer_laptop.obj rename to mods/computer/models/computer_laptop.obj diff --git a/computer/models/computer_laptop_closed.obj b/mods/computer/models/computer_laptop_closed.obj similarity index 100% rename from computer/models/computer_laptop_closed.obj rename to mods/computer/models/computer_laptop_closed.obj diff --git a/computer/models/computer_monitor.obj b/mods/computer/models/computer_monitor.obj similarity index 100% rename from computer/models/computer_monitor.obj rename to mods/computer/models/computer_monitor.obj diff --git a/computer/models/computer_tower.obj b/mods/computer/models/computer_tower.obj similarity index 100% rename from computer/models/computer_tower.obj rename to mods/computer/models/computer_tower.obj diff --git a/computer/models/tetris_arcade.obj b/mods/computer/models/tetris_arcade.obj similarity index 100% rename from computer/models/tetris_arcade.obj rename to mods/computer/models/tetris_arcade.obj diff --git a/computer/printers.lua b/mods/computer/printers.lua similarity index 100% rename from computer/printers.lua rename to mods/computer/printers.lua diff --git a/computer/recipes.lua b/mods/computer/recipes.lua similarity index 100% rename from computer/recipes.lua rename to mods/computer/recipes.lua diff --git a/computer/tetris.lua b/mods/computer/tetris.lua similarity index 100% rename from computer/tetris.lua rename to mods/computer/tetris.lua diff --git a/computer/textures/computer_3dprinter_bedflinger.png b/mods/computer/textures/computer_3dprinter_bedflinger.png similarity index 100% rename from computer/textures/computer_3dprinter_bedflinger.png rename to mods/computer/textures/computer_3dprinter_bedflinger.png diff --git a/computer/textures/computer_3dprinter_bedflinger_inv.png b/mods/computer/textures/computer_3dprinter_bedflinger_inv.png similarity index 100% rename from computer/textures/computer_3dprinter_bedflinger_inv.png rename to mods/computer/textures/computer_3dprinter_bedflinger_inv.png diff --git a/computer/textures/computer_3dprinter_filament.png b/mods/computer/textures/computer_3dprinter_filament.png similarity index 100% rename from computer/textures/computer_3dprinter_filament.png rename to mods/computer/textures/computer_3dprinter_filament.png diff --git a/computer/textures/computer_ad128_inv.png b/mods/computer/textures/computer_ad128_inv.png similarity index 100% rename from computer/textures/computer_ad128_inv.png rename to mods/computer/textures/computer_ad128_inv.png diff --git a/computer/textures/computer_ad64_inv.png b/mods/computer/textures/computer_ad64_inv.png similarity index 100% rename from computer/textures/computer_ad64_inv.png rename to mods/computer/textures/computer_ad64_inv.png diff --git a/computer/textures/computer_admiral128_bk.png b/mods/computer/textures/computer_admiral128_bk.png similarity index 100% rename from computer/textures/computer_admiral128_bk.png rename to mods/computer/textures/computer_admiral128_bk.png diff --git a/computer/textures/computer_admiral128_bt.png b/mods/computer/textures/computer_admiral128_bt.png similarity index 100% rename from computer/textures/computer_admiral128_bt.png rename to mods/computer/textures/computer_admiral128_bt.png diff --git a/computer/textures/computer_admiral128_ft.png b/mods/computer/textures/computer_admiral128_ft.png similarity index 100% rename from computer/textures/computer_admiral128_ft.png rename to mods/computer/textures/computer_admiral128_ft.png diff --git a/computer/textures/computer_admiral128_lt.png b/mods/computer/textures/computer_admiral128_lt.png similarity index 100% rename from computer/textures/computer_admiral128_lt.png rename to mods/computer/textures/computer_admiral128_lt.png diff --git a/computer/textures/computer_admiral128_rt.png b/mods/computer/textures/computer_admiral128_rt.png similarity index 100% rename from computer/textures/computer_admiral128_rt.png rename to mods/computer/textures/computer_admiral128_rt.png diff --git a/computer/textures/computer_admiral128_tp.png b/mods/computer/textures/computer_admiral128_tp.png similarity index 100% rename from computer/textures/computer_admiral128_tp.png rename to mods/computer/textures/computer_admiral128_tp.png diff --git a/computer/textures/computer_admiral64_bk.png b/mods/computer/textures/computer_admiral64_bk.png similarity index 100% rename from computer/textures/computer_admiral64_bk.png rename to mods/computer/textures/computer_admiral64_bk.png diff --git a/computer/textures/computer_admiral64_bt.png b/mods/computer/textures/computer_admiral64_bt.png similarity index 100% rename from computer/textures/computer_admiral64_bt.png rename to mods/computer/textures/computer_admiral64_bt.png diff --git a/computer/textures/computer_admiral64_ft.png b/mods/computer/textures/computer_admiral64_ft.png similarity index 100% rename from computer/textures/computer_admiral64_ft.png rename to mods/computer/textures/computer_admiral64_ft.png diff --git a/computer/textures/computer_admiral64_lt.png b/mods/computer/textures/computer_admiral64_lt.png similarity index 100% rename from computer/textures/computer_admiral64_lt.png rename to mods/computer/textures/computer_admiral64_lt.png diff --git a/computer/textures/computer_admiral64_rt.png b/mods/computer/textures/computer_admiral64_rt.png similarity index 100% rename from computer/textures/computer_admiral64_rt.png rename to mods/computer/textures/computer_admiral64_rt.png diff --git a/computer/textures/computer_admiral64_tp.png b/mods/computer/textures/computer_admiral64_tp.png similarity index 100% rename from computer/textures/computer_admiral64_tp.png rename to mods/computer/textures/computer_admiral64_tp.png diff --git a/computer/textures/computer_black.png b/mods/computer/textures/computer_black.png similarity index 100% rename from computer/textures/computer_black.png rename to mods/computer/textures/computer_black.png diff --git a/computer/textures/computer_blue.png b/mods/computer/textures/computer_blue.png similarity index 100% rename from computer/textures/computer_blue.png rename to mods/computer/textures/computer_blue.png diff --git a/computer/textures/computer_computer_front_old.png b/mods/computer/textures/computer_computer_front_old.png similarity index 100% rename from computer/textures/computer_computer_front_old.png rename to mods/computer/textures/computer_computer_front_old.png diff --git a/computer/textures/computer_computer_top_old.png b/mods/computer/textures/computer_computer_top_old.png similarity index 100% rename from computer/textures/computer_computer_top_old.png rename to mods/computer/textures/computer_computer_top_old.png diff --git a/computer/textures/computer_cyan.png b/mods/computer/textures/computer_cyan.png similarity index 100% rename from computer/textures/computer_cyan.png rename to mods/computer/textures/computer_cyan.png diff --git a/computer/textures/computer_green.png b/mods/computer/textures/computer_green.png similarity index 100% rename from computer/textures/computer_green.png rename to mods/computer/textures/computer_green.png diff --git a/computer/textures/computer_hueg_box_bk.png b/mods/computer/textures/computer_hueg_box_bk.png similarity index 100% rename from computer/textures/computer_hueg_box_bk.png rename to mods/computer/textures/computer_hueg_box_bk.png diff --git a/computer/textures/computer_hueg_box_bt.png b/mods/computer/textures/computer_hueg_box_bt.png similarity index 100% rename from computer/textures/computer_hueg_box_bt.png rename to mods/computer/textures/computer_hueg_box_bt.png diff --git a/computer/textures/computer_hueg_box_ft.png b/mods/computer/textures/computer_hueg_box_ft.png similarity index 100% rename from computer/textures/computer_hueg_box_ft.png rename to mods/computer/textures/computer_hueg_box_ft.png diff --git a/computer/textures/computer_hueg_box_lt.png b/mods/computer/textures/computer_hueg_box_lt.png similarity index 100% rename from computer/textures/computer_hueg_box_lt.png rename to mods/computer/textures/computer_hueg_box_lt.png diff --git a/computer/textures/computer_hueg_box_rt.png b/mods/computer/textures/computer_hueg_box_rt.png similarity index 100% rename from computer/textures/computer_hueg_box_rt.png rename to mods/computer/textures/computer_hueg_box_rt.png diff --git a/computer/textures/computer_hueg_box_tp.png b/mods/computer/textures/computer_hueg_box_tp.png similarity index 100% rename from computer/textures/computer_hueg_box_tp.png rename to mods/computer/textures/computer_hueg_box_tp.png diff --git a/computer/textures/computer_laptop.png b/mods/computer/textures/computer_laptop.png similarity index 100% rename from computer/textures/computer_laptop.png rename to mods/computer/textures/computer_laptop.png diff --git a/computer/textures/computer_laptop_inv.png b/mods/computer/textures/computer_laptop_inv.png similarity index 100% rename from computer/textures/computer_laptop_inv.png rename to mods/computer/textures/computer_laptop_inv.png diff --git a/computer/textures/computer_magenta.png b/mods/computer/textures/computer_magenta.png similarity index 100% rename from computer/textures/computer_magenta.png rename to mods/computer/textures/computer_magenta.png diff --git a/computer/textures/computer_monitor_inv.png b/mods/computer/textures/computer_monitor_inv.png similarity index 100% rename from computer/textures/computer_monitor_inv.png rename to mods/computer/textures/computer_monitor_inv.png diff --git a/computer/textures/computer_orange.png b/mods/computer/textures/computer_orange.png similarity index 100% rename from computer/textures/computer_orange.png rename to mods/computer/textures/computer_orange.png diff --git a/computer/textures/computer_piepad_inv.png b/mods/computer/textures/computer_piepad_inv.png similarity index 100% rename from computer/textures/computer_piepad_inv.png rename to mods/computer/textures/computer_piepad_inv.png diff --git a/computer/textures/computer_piepad_inv_off.png b/mods/computer/textures/computer_piepad_inv_off.png similarity index 100% rename from computer/textures/computer_piepad_inv_off.png rename to mods/computer/textures/computer_piepad_inv_off.png diff --git a/computer/textures/computer_printer_b.png b/mods/computer/textures/computer_printer_b.png similarity index 100% rename from computer/textures/computer_printer_b.png rename to mods/computer/textures/computer_printer_b.png diff --git a/computer/textures/computer_printer_bt.png b/mods/computer/textures/computer_printer_bt.png similarity index 100% rename from computer/textures/computer_printer_bt.png rename to mods/computer/textures/computer_printer_bt.png diff --git a/computer/textures/computer_printer_f.png b/mods/computer/textures/computer_printer_f.png similarity index 100% rename from computer/textures/computer_printer_f.png rename to mods/computer/textures/computer_printer_f.png diff --git a/computer/textures/computer_printer_inv.png b/mods/computer/textures/computer_printer_inv.png similarity index 100% rename from computer/textures/computer_printer_inv.png rename to mods/computer/textures/computer_printer_inv.png diff --git a/computer/textures/computer_printer_l.png b/mods/computer/textures/computer_printer_l.png similarity index 100% rename from computer/textures/computer_printer_l.png rename to mods/computer/textures/computer_printer_l.png diff --git a/computer/textures/computer_printer_r.png b/mods/computer/textures/computer_printer_r.png similarity index 100% rename from computer/textures/computer_printer_r.png rename to mods/computer/textures/computer_printer_r.png diff --git a/computer/textures/computer_printer_t.png b/mods/computer/textures/computer_printer_t.png similarity index 100% rename from computer/textures/computer_printer_t.png rename to mods/computer/textures/computer_printer_t.png diff --git a/computer/textures/computer_ps1_inv.png b/mods/computer/textures/computer_ps1_inv.png similarity index 100% rename from computer/textures/computer_ps1_inv.png rename to mods/computer/textures/computer_ps1_inv.png diff --git a/computer/textures/computer_ps2_inv.png b/mods/computer/textures/computer_ps2_inv.png similarity index 100% rename from computer/textures/computer_ps2_inv.png rename to mods/computer/textures/computer_ps2_inv.png diff --git a/computer/textures/computer_red.png b/mods/computer/textures/computer_red.png similarity index 100% rename from computer/textures/computer_red.png rename to mods/computer/textures/computer_red.png diff --git a/computer/textures/computer_router_b.png b/mods/computer/textures/computer_router_b.png similarity index 100% rename from computer/textures/computer_router_b.png rename to mods/computer/textures/computer_router_b.png diff --git a/computer/textures/computer_router_bt.png b/mods/computer/textures/computer_router_bt.png similarity index 100% rename from computer/textures/computer_router_bt.png rename to mods/computer/textures/computer_router_bt.png diff --git a/computer/textures/computer_router_f.png b/mods/computer/textures/computer_router_f.png similarity index 100% rename from computer/textures/computer_router_f.png rename to mods/computer/textures/computer_router_f.png diff --git a/computer/textures/computer_router_f_animated.png b/mods/computer/textures/computer_router_f_animated.png similarity index 100% rename from computer/textures/computer_router_f_animated.png rename to mods/computer/textures/computer_router_f_animated.png diff --git a/computer/textures/computer_router_inv.png b/mods/computer/textures/computer_router_inv.png similarity index 100% rename from computer/textures/computer_router_inv.png rename to mods/computer/textures/computer_router_inv.png diff --git a/computer/textures/computer_router_l.png b/mods/computer/textures/computer_router_l.png similarity index 100% rename from computer/textures/computer_router_l.png rename to mods/computer/textures/computer_router_l.png diff --git a/computer/textures/computer_router_r.png b/mods/computer/textures/computer_router_r.png similarity index 100% rename from computer/textures/computer_router_r.png rename to mods/computer/textures/computer_router_r.png diff --git a/computer/textures/computer_router_t.png b/mods/computer/textures/computer_router_t.png similarity index 100% rename from computer/textures/computer_router_t.png rename to mods/computer/textures/computer_router_t.png diff --git a/computer/textures/computer_server_bt.png b/mods/computer/textures/computer_server_bt.png similarity index 100% rename from computer/textures/computer_server_bt.png rename to mods/computer/textures/computer_server_bt.png diff --git a/computer/textures/computer_server_f_off.png b/mods/computer/textures/computer_server_f_off.png similarity index 100% rename from computer/textures/computer_server_f_off.png rename to mods/computer/textures/computer_server_f_off.png diff --git a/computer/textures/computer_server_f_on.png b/mods/computer/textures/computer_server_f_on.png similarity index 100% rename from computer/textures/computer_server_f_on.png rename to mods/computer/textures/computer_server_f_on.png diff --git a/computer/textures/computer_server_inv.png b/mods/computer/textures/computer_server_inv.png similarity index 100% rename from computer/textures/computer_server_inv.png rename to mods/computer/textures/computer_server_inv.png diff --git a/computer/textures/computer_server_l.png b/mods/computer/textures/computer_server_l.png similarity index 100% rename from computer/textures/computer_server_l.png rename to mods/computer/textures/computer_server_l.png diff --git a/computer/textures/computer_server_r.png b/mods/computer/textures/computer_server_r.png similarity index 100% rename from computer/textures/computer_server_r.png rename to mods/computer/textures/computer_server_r.png diff --git a/computer/textures/computer_server_t.png b/mods/computer/textures/computer_server_t.png similarity index 100% rename from computer/textures/computer_server_t.png rename to mods/computer/textures/computer_server_t.png diff --git a/computer/textures/computer_shefriendSOO_bk.png b/mods/computer/textures/computer_shefriendSOO_bk.png similarity index 100% rename from computer/textures/computer_shefriendSOO_bk.png rename to mods/computer/textures/computer_shefriendSOO_bk.png diff --git a/computer/textures/computer_shefriendSOO_bt.png b/mods/computer/textures/computer_shefriendSOO_bt.png similarity index 100% rename from computer/textures/computer_shefriendSOO_bt.png rename to mods/computer/textures/computer_shefriendSOO_bt.png diff --git a/computer/textures/computer_shefriendSOO_ft.png b/mods/computer/textures/computer_shefriendSOO_ft.png similarity index 100% rename from computer/textures/computer_shefriendSOO_ft.png rename to mods/computer/textures/computer_shefriendSOO_ft.png diff --git a/computer/textures/computer_shefriendSOO_ft_off.png b/mods/computer/textures/computer_shefriendSOO_ft_off.png similarity index 100% rename from computer/textures/computer_shefriendSOO_ft_off.png rename to mods/computer/textures/computer_shefriendSOO_ft_off.png diff --git a/computer/textures/computer_shefriendSOO_lt.png b/mods/computer/textures/computer_shefriendSOO_lt.png similarity index 100% rename from computer/textures/computer_shefriendSOO_lt.png rename to mods/computer/textures/computer_shefriendSOO_lt.png diff --git a/computer/textures/computer_shefriendSOO_rt.png b/mods/computer/textures/computer_shefriendSOO_rt.png similarity index 100% rename from computer/textures/computer_shefriendSOO_rt.png rename to mods/computer/textures/computer_shefriendSOO_rt.png diff --git a/computer/textures/computer_shefriendSOO_tp.png b/mods/computer/textures/computer_shefriendSOO_tp.png similarity index 100% rename from computer/textures/computer_shefriendSOO_tp.png rename to mods/computer/textures/computer_shefriendSOO_tp.png diff --git a/computer/textures/computer_slaystation2_bk.png b/mods/computer/textures/computer_slaystation2_bk.png similarity index 100% rename from computer/textures/computer_slaystation2_bk.png rename to mods/computer/textures/computer_slaystation2_bk.png diff --git a/computer/textures/computer_slaystation2_bt.png b/mods/computer/textures/computer_slaystation2_bt.png similarity index 100% rename from computer/textures/computer_slaystation2_bt.png rename to mods/computer/textures/computer_slaystation2_bt.png diff --git a/computer/textures/computer_slaystation2_ft.png b/mods/computer/textures/computer_slaystation2_ft.png similarity index 100% rename from computer/textures/computer_slaystation2_ft.png rename to mods/computer/textures/computer_slaystation2_ft.png diff --git a/computer/textures/computer_slaystation2_ft_off.png b/mods/computer/textures/computer_slaystation2_ft_off.png similarity index 100% rename from computer/textures/computer_slaystation2_ft_off.png rename to mods/computer/textures/computer_slaystation2_ft_off.png diff --git a/computer/textures/computer_slaystation2_lt.png b/mods/computer/textures/computer_slaystation2_lt.png similarity index 100% rename from computer/textures/computer_slaystation2_lt.png rename to mods/computer/textures/computer_slaystation2_lt.png diff --git a/computer/textures/computer_slaystation2_rt.png b/mods/computer/textures/computer_slaystation2_rt.png similarity index 100% rename from computer/textures/computer_slaystation2_rt.png rename to mods/computer/textures/computer_slaystation2_rt.png diff --git a/computer/textures/computer_slaystation2_tp.png b/mods/computer/textures/computer_slaystation2_tp.png similarity index 100% rename from computer/textures/computer_slaystation2_tp.png rename to mods/computer/textures/computer_slaystation2_tp.png diff --git a/computer/textures/computer_slaystation_bk.png b/mods/computer/textures/computer_slaystation_bk.png similarity index 100% rename from computer/textures/computer_slaystation_bk.png rename to mods/computer/textures/computer_slaystation_bk.png diff --git a/computer/textures/computer_slaystation_bt.png b/mods/computer/textures/computer_slaystation_bt.png similarity index 100% rename from computer/textures/computer_slaystation_bt.png rename to mods/computer/textures/computer_slaystation_bt.png diff --git a/computer/textures/computer_slaystation_ft.png b/mods/computer/textures/computer_slaystation_ft.png similarity index 100% rename from computer/textures/computer_slaystation_ft.png rename to mods/computer/textures/computer_slaystation_ft.png diff --git a/computer/textures/computer_slaystation_lt.png b/mods/computer/textures/computer_slaystation_lt.png similarity index 100% rename from computer/textures/computer_slaystation_lt.png rename to mods/computer/textures/computer_slaystation_lt.png diff --git a/computer/textures/computer_slaystation_rt.png b/mods/computer/textures/computer_slaystation_rt.png similarity index 100% rename from computer/textures/computer_slaystation_rt.png rename to mods/computer/textures/computer_slaystation_rt.png diff --git a/computer/textures/computer_slaystation_tp.png b/mods/computer/textures/computer_slaystation_tp.png similarity index 100% rename from computer/textures/computer_slaystation_tp.png rename to mods/computer/textures/computer_slaystation_tp.png diff --git a/computer/textures/computer_slaystation_tp_off.png b/mods/computer/textures/computer_slaystation_tp_off.png similarity index 100% rename from computer/textures/computer_slaystation_tp_off.png rename to mods/computer/textures/computer_slaystation_tp_off.png diff --git a/computer/textures/computer_specter_bk.png b/mods/computer/textures/computer_specter_bk.png similarity index 100% rename from computer/textures/computer_specter_bk.png rename to mods/computer/textures/computer_specter_bk.png diff --git a/computer/textures/computer_specter_bt.png b/mods/computer/textures/computer_specter_bt.png similarity index 100% rename from computer/textures/computer_specter_bt.png rename to mods/computer/textures/computer_specter_bt.png diff --git a/computer/textures/computer_specter_ft.png b/mods/computer/textures/computer_specter_ft.png similarity index 100% rename from computer/textures/computer_specter_ft.png rename to mods/computer/textures/computer_specter_ft.png diff --git a/computer/textures/computer_specter_inv.png b/mods/computer/textures/computer_specter_inv.png similarity index 100% rename from computer/textures/computer_specter_inv.png rename to mods/computer/textures/computer_specter_inv.png diff --git a/computer/textures/computer_specter_lt.png b/mods/computer/textures/computer_specter_lt.png similarity index 100% rename from computer/textures/computer_specter_lt.png rename to mods/computer/textures/computer_specter_lt.png diff --git a/computer/textures/computer_specter_rt.png b/mods/computer/textures/computer_specter_rt.png similarity index 100% rename from computer/textures/computer_specter_rt.png rename to mods/computer/textures/computer_specter_rt.png diff --git a/computer/textures/computer_specter_tp.png b/mods/computer/textures/computer_specter_tp.png similarity index 100% rename from computer/textures/computer_specter_tp.png rename to mods/computer/textures/computer_specter_tp.png diff --git a/computer/textures/computer_spectre_back.png b/mods/computer/textures/computer_spectre_back.png similarity index 100% rename from computer/textures/computer_spectre_back.png rename to mods/computer/textures/computer_spectre_back.png diff --git a/computer/textures/computer_spectre_bottom.png b/mods/computer/textures/computer_spectre_bottom.png similarity index 100% rename from computer/textures/computer_spectre_bottom.png rename to mods/computer/textures/computer_spectre_bottom.png diff --git a/computer/textures/computer_spectre_front.png b/mods/computer/textures/computer_spectre_front.png similarity index 100% rename from computer/textures/computer_spectre_front.png rename to mods/computer/textures/computer_spectre_front.png diff --git a/computer/textures/computer_spectre_left.png b/mods/computer/textures/computer_spectre_left.png similarity index 100% rename from computer/textures/computer_spectre_left.png rename to mods/computer/textures/computer_spectre_left.png diff --git a/computer/textures/computer_spectre_right.png b/mods/computer/textures/computer_spectre_right.png similarity index 100% rename from computer/textures/computer_spectre_right.png rename to mods/computer/textures/computer_spectre_right.png diff --git a/computer/textures/computer_spectre_top.png b/mods/computer/textures/computer_spectre_top.png similarity index 100% rename from computer/textures/computer_spectre_top.png rename to mods/computer/textures/computer_spectre_top.png diff --git a/computer/textures/computer_tower.png b/mods/computer/textures/computer_tower.png similarity index 100% rename from computer/textures/computer_tower.png rename to mods/computer/textures/computer_tower.png diff --git a/computer/textures/computer_tower_inv.png b/mods/computer/textures/computer_tower_inv.png similarity index 100% rename from computer/textures/computer_tower_inv.png rename to mods/computer/textures/computer_tower_inv.png diff --git a/computer/textures/computer_wee_bk.png b/mods/computer/textures/computer_wee_bk.png similarity index 100% rename from computer/textures/computer_wee_bk.png rename to mods/computer/textures/computer_wee_bk.png diff --git a/computer/textures/computer_wee_bt.png b/mods/computer/textures/computer_wee_bt.png similarity index 100% rename from computer/textures/computer_wee_bt.png rename to mods/computer/textures/computer_wee_bt.png diff --git a/computer/textures/computer_wee_ft.png b/mods/computer/textures/computer_wee_ft.png similarity index 100% rename from computer/textures/computer_wee_ft.png rename to mods/computer/textures/computer_wee_ft.png diff --git a/computer/textures/computer_wee_ft_off.png b/mods/computer/textures/computer_wee_ft_off.png similarity index 100% rename from computer/textures/computer_wee_ft_off.png rename to mods/computer/textures/computer_wee_ft_off.png diff --git a/computer/textures/computer_wee_lt.png b/mods/computer/textures/computer_wee_lt.png similarity index 100% rename from computer/textures/computer_wee_lt.png rename to mods/computer/textures/computer_wee_lt.png diff --git a/computer/textures/computer_wee_rt.png b/mods/computer/textures/computer_wee_rt.png similarity index 100% rename from computer/textures/computer_wee_rt.png rename to mods/computer/textures/computer_wee_rt.png diff --git a/computer/textures/computer_wee_tp.png b/mods/computer/textures/computer_wee_tp.png similarity index 100% rename from computer/textures/computer_wee_tp.png rename to mods/computer/textures/computer_wee_tp.png diff --git a/computer/textures/computer_wii_inv.png b/mods/computer/textures/computer_wii_inv.png similarity index 100% rename from computer/textures/computer_wii_inv.png rename to mods/computer/textures/computer_wii_inv.png diff --git a/computer/textures/computer_yellow.png b/mods/computer/textures/computer_yellow.png similarity index 100% rename from computer/textures/computer_yellow.png rename to mods/computer/textures/computer_yellow.png diff --git a/computer/textures/homedecor_plastic_base.png b/mods/computer/textures/homedecor_plastic_base.png similarity index 100% rename from computer/textures/homedecor_plastic_base.png rename to mods/computer/textures/homedecor_plastic_base.png diff --git a/computer/textures/homedecor_plastic_base_inv.png b/mods/computer/textures/homedecor_plastic_base_inv.png similarity index 100% rename from computer/textures/homedecor_plastic_base_inv.png rename to mods/computer/textures/homedecor_plastic_base_inv.png diff --git a/computer/textures/homedecor_plastic_sheeting.png b/mods/computer/textures/homedecor_plastic_sheeting.png similarity index 100% rename from computer/textures/homedecor_plastic_sheeting.png rename to mods/computer/textures/homedecor_plastic_sheeting.png diff --git a/computer/textures/monitor_display.png b/mods/computer/textures/monitor_display.png similarity index 100% rename from computer/textures/monitor_display.png rename to mods/computer/textures/monitor_display.png diff --git a/computer/textures/monitor_plastic.png b/mods/computer/textures/monitor_plastic.png similarity index 100% rename from computer/textures/monitor_plastic.png rename to mods/computer/textures/monitor_plastic.png diff --git a/computer/textures/tetris_arcade.png b/mods/computer/textures/tetris_arcade.png similarity index 100% rename from computer/textures/tetris_arcade.png rename to mods/computer/textures/tetris_arcade.png diff --git a/concrete/depends.txt b/mods/concrete/depends.txt similarity index 100% rename from concrete/depends.txt rename to mods/concrete/depends.txt diff --git a/concrete/init.lua b/mods/concrete/init.lua similarity index 100% rename from concrete/init.lua rename to mods/concrete/init.lua diff --git a/concrete/locale/de.txt b/mods/concrete/locale/de.txt similarity index 100% rename from concrete/locale/de.txt rename to mods/concrete/locale/de.txt diff --git a/concrete/locale/es.txt b/mods/concrete/locale/es.txt similarity index 100% rename from concrete/locale/es.txt rename to mods/concrete/locale/es.txt diff --git a/concrete/locale/fr.txt b/mods/concrete/locale/fr.txt similarity index 100% rename from concrete/locale/fr.txt rename to mods/concrete/locale/fr.txt diff --git a/concrete/locale/pl.txt b/mods/concrete/locale/pl.txt similarity index 100% rename from concrete/locale/pl.txt rename to mods/concrete/locale/pl.txt diff --git a/concrete/locale/pt_BR.txt b/mods/concrete/locale/pt_BR.txt similarity index 100% rename from concrete/locale/pt_BR.txt rename to mods/concrete/locale/pt_BR.txt diff --git a/concrete/locale/template.txt b/mods/concrete/locale/template.txt similarity index 100% rename from concrete/locale/template.txt rename to mods/concrete/locale/template.txt diff --git a/concrete/locale/tr.txt b/mods/concrete/locale/tr.txt similarity index 100% rename from concrete/locale/tr.txt rename to mods/concrete/locale/tr.txt diff --git a/concrete/mod.conf b/mods/concrete/mod.conf similarity index 100% rename from concrete/mod.conf rename to mods/concrete/mod.conf diff --git a/concrete/textures/technic_blast_resistant_concrete_block.png b/mods/concrete/textures/technic_blast_resistant_concrete_block.png similarity index 100% rename from concrete/textures/technic_blast_resistant_concrete_block.png rename to mods/concrete/textures/technic_blast_resistant_concrete_block.png diff --git a/concrete/textures/x32/technic_concrete_block.png b/mods/concrete/textures/x32/technic_concrete_block.png similarity index 100% rename from concrete/textures/x32/technic_concrete_block.png rename to mods/concrete/textures/x32/technic_concrete_block.png diff --git a/concrete/textures/x32/technic_rebar.png b/mods/concrete/textures/x32/technic_rebar.png similarity index 100% rename from concrete/textures/x32/technic_rebar.png rename to mods/concrete/textures/x32/technic_rebar.png diff --git a/concretestairs/depends.txt b/mods/concretestairs/depends.txt similarity index 100% rename from concretestairs/depends.txt rename to mods/concretestairs/depends.txt diff --git a/concretestairs/init.lua b/mods/concretestairs/init.lua similarity index 100% rename from concretestairs/init.lua rename to mods/concretestairs/init.lua diff --git a/constructionarea/depends.txt b/mods/constructionarea/depends.txt similarity index 100% rename from constructionarea/depends.txt rename to mods/constructionarea/depends.txt diff --git a/constructionarea/init.lua b/mods/constructionarea/init.lua similarity index 100% rename from constructionarea/init.lua rename to mods/constructionarea/init.lua diff --git a/cottages/LICENSE b/mods/cottages/LICENSE similarity index 100% rename from cottages/LICENSE rename to mods/cottages/LICENSE diff --git a/cottages/README.md b/mods/cottages/README.md similarity index 100% rename from cottages/README.md rename to mods/cottages/README.md diff --git a/cottages/adaptions.lua b/mods/cottages/adaptions.lua similarity index 100% rename from cottages/adaptions.lua rename to mods/cottages/adaptions.lua diff --git a/cottages/alias.lua b/mods/cottages/alias.lua similarity index 100% rename from cottages/alias.lua rename to mods/cottages/alias.lua diff --git a/cottages/depends.txt b/mods/cottages/depends.txt similarity index 100% rename from cottages/depends.txt rename to mods/cottages/depends.txt diff --git a/cottages/functions.lua b/mods/cottages/functions.lua similarity index 100% rename from cottages/functions.lua rename to mods/cottages/functions.lua diff --git a/cottages/init.lua b/mods/cottages/init.lua similarity index 100% rename from cottages/init.lua rename to mods/cottages/init.lua diff --git a/cottages/locale/de.txt b/mods/cottages/locale/de.txt similarity index 100% rename from cottages/locale/de.txt rename to mods/cottages/locale/de.txt diff --git a/cottages/locale/template.txt b/mods/cottages/locale/template.txt similarity index 100% rename from cottages/locale/template.txt rename to mods/cottages/locale/template.txt diff --git a/cottages/models/cottages_barrel.obj b/mods/cottages/models/cottages_barrel.obj similarity index 100% rename from cottages/models/cottages_barrel.obj rename to mods/cottages/models/cottages_barrel.obj diff --git a/cottages/models/cottages_barrel_closed.obj b/mods/cottages/models/cottages_barrel_closed.obj similarity index 100% rename from cottages/models/cottages_barrel_closed.obj rename to mods/cottages/models/cottages_barrel_closed.obj diff --git a/cottages/models/cottages_barrel_closed_lying.obj b/mods/cottages/models/cottages_barrel_closed_lying.obj similarity index 100% rename from cottages/models/cottages_barrel_closed_lying.obj rename to mods/cottages/models/cottages_barrel_closed_lying.obj diff --git a/cottages/models/cottages_barrel_lying.obj b/mods/cottages/models/cottages_barrel_lying.obj similarity index 100% rename from cottages/models/cottages_barrel_lying.obj rename to mods/cottages/models/cottages_barrel_lying.obj diff --git a/cottages/models/cottages_handmill.obj b/mods/cottages/models/cottages_handmill.obj similarity index 100% rename from cottages/models/cottages_handmill.obj rename to mods/cottages/models/cottages_handmill.obj diff --git a/cottages/models/cottages_tub.obj b/mods/cottages/models/cottages_tub.obj similarity index 100% rename from cottages/models/cottages_tub.obj rename to mods/cottages/models/cottages_tub.obj diff --git a/cottages/models/feldweg-T-junction.obj b/mods/cottages/models/feldweg-T-junction.obj similarity index 100% rename from cottages/models/feldweg-T-junction.obj rename to mods/cottages/models/feldweg-T-junction.obj diff --git a/cottages/models/feldweg-crossing.obj b/mods/cottages/models/feldweg-crossing.obj similarity index 100% rename from cottages/models/feldweg-crossing.obj rename to mods/cottages/models/feldweg-crossing.obj diff --git a/cottages/models/feldweg-curve.obj b/mods/cottages/models/feldweg-curve.obj similarity index 100% rename from cottages/models/feldweg-curve.obj rename to mods/cottages/models/feldweg-curve.obj diff --git a/cottages/models/feldweg.obj b/mods/cottages/models/feldweg.obj similarity index 100% rename from cottages/models/feldweg.obj rename to mods/cottages/models/feldweg.obj diff --git a/cottages/models/feldweg_end.obj b/mods/cottages/models/feldweg_end.obj similarity index 100% rename from cottages/models/feldweg_end.obj rename to mods/cottages/models/feldweg_end.obj diff --git a/cottages/models/feldweg_slope.obj b/mods/cottages/models/feldweg_slope.obj similarity index 100% rename from cottages/models/feldweg_slope.obj rename to mods/cottages/models/feldweg_slope.obj diff --git a/cottages/models/feldweg_slope_long.obj b/mods/cottages/models/feldweg_slope_long.obj similarity index 100% rename from cottages/models/feldweg_slope_long.obj rename to mods/cottages/models/feldweg_slope_long.obj diff --git a/mods/cottages/nodes_anvil.lua b/mods/cottages/nodes_anvil.lua new file mode 100644 index 00000000..cfe04c3a --- /dev/null +++ b/mods/cottages/nodes_anvil.lua @@ -0,0 +1,303 @@ +--------------------------------------------------------------------------------------- +-- simple anvil that can be used to repair tools +--------------------------------------------------------------------------------------- +-- * can be used to repair tools +-- * the hammer gets dammaged a bit at each repair step +--------------------------------------------------------------------------------------- +-- License of the hammer picture: CC-by-SA; done by GloopMaster; source: +-- https://github.com/GloopMaster/glooptest/blob/master/glooptest/textures/glooptest_tool_steelhammer.png + +local S = cottages.S + +-- the hammer for the anvil +minetest.register_tool("cottages:hammer", { + description = S("Steel hammer for repairing tools on the anvil"), + image = "glooptest_tool_steelhammer.png", + inventory_image = "glooptest_tool_steelhammer.png", + + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + -- about equal to a stone pick (it's not intended as a tool) + cracky={times={[2]=2.00, [3]=1.20}, uses=30, maxlevel=1}, + }, + damage_groups = {fleshy=6}, + } +}) + + +local cottages_anvil_formspec = + "size[8,8]".. + "image[7,3;1,1;glooptest_tool_steelhammer.png]".. +-- "list[current_name;sample;0,0.5;1,1;]".. + "list[current_name;input;2.5,1.5;1,1;]".. +-- "list[current_name;material;5,0;3,3;]".. + "list[current_name;hammer;5,3;1,1;]".. +-- "label[0.0,0.0;Sample:]".. +-- "label[0.0,1.0;(Receipe)]".. + "label[2.5,1.0;"..S("Workpiece:").."]".. +-- "label[6.0,-0.5;Materials:]".. + "label[6.0,2.7;"..S("Optional").."]".. + "label[6.0,3.0;"..S("storage for").."]".. + "label[6.0,3.3;"..S("your hammer").."]".. + + "label[0,-0.5;"..S("Anvil").."]".. + "label[0,3.0;"..S("Punch anvil with hammer to").."]".. + "label[0,3.3;"..S("repair tool in workpiece-slot.").."]".. + "list[current_player;main;0,4;8,4;]"; + + +minetest.register_node("cottages:anvil", { + drawtype = "nodebox", + description = S("anvil"), + tiles = {"cottages_stone.png"}, -- TODO default_steel_block.png, default_obsidian.png are also nice + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=2}, + -- the nodebox model comes from realtest + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.3,0.5,-0.4,0.3}, + {-0.35,-0.4,-0.25,0.35,-0.3,0.25}, + {-0.3,-0.3,-0.15,0.3,-0.1,0.15}, + {-0.35,-0.1,-0.2,0.35,0.1,0.2}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.3,0.5,-0.4,0.3}, + {-0.35,-0.4,-0.25,0.35,-0.3,0.25}, + {-0.3,-0.3,-0.15,0.3,-0.1,0.15}, + {-0.35,-0.1,-0.2,0.35,0.1,0.2}, + } + }, + on_construct = function(pos) + + local meta = minetest.get_meta(pos); + meta:set_string("infotext", S("Anvil")); + local inv = meta:get_inventory(); + inv:set_size("input", 1); +-- inv:set_size("material", 9); +-- inv:set_size("sample", 1); + inv:set_size("hammer", 1); + meta:set_string("formspec", cottages_anvil_formspec ); + end, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos); + meta:set_string("owner", placer:get_player_name() or ""); + meta:set_string("infotext", S("Anvil (owned by %s)"):format((meta:get_string("owner") or ""))); + meta:set_string("formspec", + cottages_anvil_formspec, + "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"); + end, + + can_dig = function(pos,player) + + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory(); + local owner = meta:get_string('owner'); + + if( not( inv:is_empty("input")) +-- or not( inv:is_empty("material")) +-- or not( inv:is_empty("sample")) + or not( inv:is_empty("hammer")) + or not( player ) + or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then + + return false; + end + return true; + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if( player and player:get_player_name() ~= meta:get_string('owner' ) and from_list~="input") then + return 0 + end + return count; + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if( player and player:get_player_name() ~= meta:get_string('owner' ) and listname~="input") then + return 0; + end + if( listname=='hammer' and stack and stack:get_name() ~= 'cottages:hammer') then + return 0; + end + if( listname=='input' + and( stack:get_wear() == 0 + or stack:get_name() == "technic:water_can" + or stack:get_name() == "technic:lava_can" )) then + + minetest.chat_send_player( player:get_player_name(), + S('The workpiece slot is for damaged tools only.')); + return 0; + end + return stack:get_count() + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if( player and player:get_player_name() ~= meta:get_string('owner' ) and listname~="input") then + return 0 + end + return stack:get_count() + end, + + + on_punch = function(pos, node, puncher) + if( not( pos ) or not( node ) or not( puncher )) then + return; + end + -- only punching with the hammer is supposed to work + local wielded = puncher:get_wielded_item(); + if( not( wielded ) or not( wielded:get_name() ) or wielded:get_name() ~= 'cottages:hammer') then + return; + end + local name = puncher:get_player_name(); + + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory(); + + local input = inv:get_stack('input',1); + + -- only tools can be repaired + if( not( input ) + or input:is_empty() + or input:get_name() == "technic:water_can" + or input:get_name() == "technic:lava_can" ) then + + meta:set_string("formspec", + cottages_anvil_formspec, + "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"); + return; + end + + -- 65535 is max damage + local damage_state = 40-math.floor(input:get_wear()/1638); + + local tool_name = input:get_name(); + local hud_image = ""; + if( tool_name + and minetest.registered_items[ tool_name ] ) then + if( minetest.registered_items[ tool_name ].inventory_image ) then + hud_image = minetest.registered_items[ tool_name ].inventory_image; + elseif( minetest.registered_items[ tool_name ].textures + and type(minetest.registered_items[ tool_name ].textures)=='table') then + hud_image = minetest.registered_items[ tool_name ].textures[1]; + elseif( minetest.registered_items[ tool_name ].textures + and type(minetest.registered_items[ tool_name ].textures)=='string') then + hud_image = minetest.registered_items[ tool_name ].textures; + end + end + + local hud1 = puncher:hud_add({ + hud_elem_type = "image", + scale = {x = 15, y = 15}, + text = hud_image, + position = {x = 0.5, y = 0.5}, + alignment = {x = 0, y = 0} + }); + local hud2 = nil; + local hud3 = nil; + if( input:get_wear()>0 ) then + hud2 = puncher:hud_add({ + hud_elem_type = "statbar", + text = "default_cloud.png^[colorize:#ff0000:256", + number = 40, + direction = 0, -- left to right + position = {x=0.5, y=0.65}, + alignment = {x = 0, y = 0}, + offset = {x = -320, y = 0}, + size = {x=32, y=32}, + }) + hud3 = puncher:hud_add({ + hud_elem_type = "statbar", + text = "default_cloud.png^[colorize:#00ff00:256", + number = damage_state, + direction = 0, -- left to right + position = {x=0.5, y=0.65}, + alignment = {x = 0, y = 0}, + offset = {x = -320, y = 0}, + size = {x=32, y=32}, + }); + end + minetest.after(2, function() + if( puncher ) then + if(hud1) then puncher:hud_remove(hud1); end + if(hud2) then puncher:hud_remove(hud2); end + if(hud3) then puncher:hud_remove(hud3); end + end + end) + + -- tell the player when the job is done + if( input:get_wear() == 0 ) then +-- minetest.chat_send_player( puncher:get_player_name(), +-- S('Your tool has been repaired successfully.')); + return; + end + + -- do the actual repair + input:add_wear( -5000 ); -- equals to what technic toolshop does in 5 seconds + inv:set_stack("input", 1, input) + + -- damage the hammer slightly + wielded:add_wear( 100 ); + puncher:set_wielded_item( wielded ); + + -- do not spam too much +-- if( math.random( 1,5 )==1 ) then +-- minetest.chat_send_player( puncher:get_player_name(), +-- S('Your workpiece improves.')); +-- end + end, + is_ground_content = false, +}) + + + +--------------------------------------------------------------------------------------- +-- crafting receipes +--------------------------------------------------------------------------------------- +minetest.register_craft({ + output = "cottages:anvil", + recipe = { + {cottages.craftitem_steel,cottages.craftitem_steel,cottages.craftitem_steel}, + {'', cottages.craftitem_steel,'' }, + {cottages.craftitem_steel,cottages.craftitem_steel,cottages.craftitem_steel} }, +}) + + +-- the castle-mod has an anvil as well - with the same receipe. convert the two into each other +if ( minetest.get_modpath("castle") ~= nil ) then + + minetest.register_craft({ + output = "cottages:anvil", + recipe = { + {'castle:anvil'}, + }, + }) + + minetest.register_craft({ + output = "castle:anvil", + recipe = { + {'cottages:anvil'}, + }, + }) +end + + + +minetest.register_craft({ + output = "cottages:hammer", + recipe = { + {cottages.craftitem_steel}, + {'cottages:anvil'}, + {cottages.craftitem_stick} } +}) + diff --git a/cottages/nodes_barrel.lua b/mods/cottages/nodes_barrel.lua similarity index 100% rename from cottages/nodes_barrel.lua rename to mods/cottages/nodes_barrel.lua diff --git a/cottages/nodes_chests.lua b/mods/cottages/nodes_chests.lua similarity index 100% rename from cottages/nodes_chests.lua rename to mods/cottages/nodes_chests.lua diff --git a/cottages/nodes_doorlike.lua b/mods/cottages/nodes_doorlike.lua similarity index 100% rename from cottages/nodes_doorlike.lua rename to mods/cottages/nodes_doorlike.lua diff --git a/cottages/nodes_feldweg.lua b/mods/cottages/nodes_feldweg.lua similarity index 100% rename from cottages/nodes_feldweg.lua rename to mods/cottages/nodes_feldweg.lua diff --git a/cottages/nodes_fences.lua b/mods/cottages/nodes_fences.lua similarity index 100% rename from cottages/nodes_fences.lua rename to mods/cottages/nodes_fences.lua diff --git a/cottages/nodes_furniture.lua b/mods/cottages/nodes_furniture.lua similarity index 100% rename from cottages/nodes_furniture.lua rename to mods/cottages/nodes_furniture.lua diff --git a/cottages/nodes_hay.lua b/mods/cottages/nodes_hay.lua similarity index 100% rename from cottages/nodes_hay.lua rename to mods/cottages/nodes_hay.lua diff --git a/cottages/nodes_historic.lua b/mods/cottages/nodes_historic.lua similarity index 100% rename from cottages/nodes_historic.lua rename to mods/cottages/nodes_historic.lua diff --git a/cottages/nodes_mining.lua b/mods/cottages/nodes_mining.lua similarity index 100% rename from cottages/nodes_mining.lua rename to mods/cottages/nodes_mining.lua diff --git a/cottages/nodes_pitchfork.lua b/mods/cottages/nodes_pitchfork.lua similarity index 100% rename from cottages/nodes_pitchfork.lua rename to mods/cottages/nodes_pitchfork.lua diff --git a/cottages/nodes_roof.lua b/mods/cottages/nodes_roof.lua similarity index 100% rename from cottages/nodes_roof.lua rename to mods/cottages/nodes_roof.lua diff --git a/mods/cottages/nodes_straw.lua b/mods/cottages/nodes_straw.lua new file mode 100644 index 00000000..2ac27474 --- /dev/null +++ b/mods/cottages/nodes_straw.lua @@ -0,0 +1,585 @@ +--------------------------------------------------------------------------------------- +-- straw - a very basic material +--------------------------------------------------------------------------------------- +-- * straw mat - for animals and very poor NPC; also basis for other straw things +-- * straw bale - well, just a good source for building and decoration + +local S = cottages.S + + +-- an even simpler from of bed - usually for animals +-- it is a nodebox and not wallmounted because that makes it easier to replace beds with straw mats +minetest.register_node("cottages:straw_mat", { + description = S("layer of straw"), + drawtype = 'nodebox', + tiles = { cottages.straw_texture }, -- done by VanessaE + wield_image = cottages.straw_texture, + inventory_image = cottages.straw_texture, + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + walkable = false, + groups = { hay = 3, snappy = 2, oddly_breakable_by_hand = 2, flammable=3 }, + sounds = cottages.sounds.leaves, + node_box = { + type = "fixed", + fixed = { + {-0.48, -0.5,-0.48, 0.48, -0.45, 0.48}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.48, -0.5,-0.48, 0.48, -0.25, 0.48}, + } + }, + is_ground_content = false, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + return cottages.sleep_in_bed( pos, node, clicker, itemstack, pointed_thing ); + end +}) + +-- straw bales are a must for farming environments; if you for some reason do not have the darkage mod installed, this here gets you a straw bale +minetest.register_node("cottages:straw_bale", { + drawtype = "nodebox", + description = S("straw bale"), + tiles = {"cottages_darkage_straw_bale.png"}, + paramtype = "light", + groups = { hay = 3, snappy = 2, oddly_breakable_by_hand = 2, flammable=3 }, + sounds = cottages.sounds.leaves, + -- the bale is slightly smaller than a full node + node_box = { + type = "fixed", + fixed = { + {-0.45, -0.5,-0.45, 0.45, 0.45, 0.45}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.45, -0.5,-0.45, 0.45, 0.45, 0.45}, + } + }, + is_ground_content = false, +}) + +-- just straw +if( not(minetest.registered_nodes["farming:straw"])) then + minetest.register_node("cottages:straw", { + drawtype = "normal", + description = S("straw"), + tiles = {cottages.straw_texture}, + groups = { hay = 3, snappy = 2, oddly_breakable_by_hand = 2, flammable=3 }, + sounds = cottages.sounds.leaves, + -- the bale is slightly smaller than a full node + is_ground_content = false, + }) +else + minetest.register_alias("cottages:straw", "farming:straw") +end + + +local cottages_formspec_treshing_floor = + "size[8,8]".. + "image[1.5,0;1,1;"..cottages.texture_stick.."]".. + "image[0,1;1,1;farming_wheat.png]".. + "button_exit[6.8,0.0;1.5,0.5;public;"..S("Public?").."]".. + "list[current_name;harvest;1,1;2,1;]".. + "list[current_name;straw;5,0;2,2;]".. + "list[current_name;seeds;5,2;2,2;]".. + "label[1,0.5;"..S("Harvested wheat:").."]".. + "label[4,0.0;"..S("Straw:").."]".. + "label[4,2.0;"..S("Seeds:").."]".. + "label[0,-0.5;"..S("Threshing floor").."]".. + "label[0,2.5;"..S("Punch threshing floor with a stick").."]".. + "label[0,3.0;"..S("to get straw and seeds from wheat.").."]".. + "list[current_player;main;0,4;8,4;]"; + +minetest.register_node("cottages:threshing_floor", { + drawtype = "nodebox", + description = S("threshing floor"), +-- TODO: stone also looks pretty well for this + tiles = {"cottages_junglewood.png^farming_wheat.png","cottages_junglewood.png","cottages_junglewood.png^"..cottages.texture_stick}, + paramtype = "light", + paramtype2 = "facedir", + -- can be digged with axe and pick + groups = {cracky=2, choppy=2}, + is_ground_content = false, + node_box = { + type = "fixed", + fixed = { + {-0.50, -0.5,-0.50, 0.50, -0.40, 0.50}, + + {-0.50, -0.4,-0.50,-0.45, -0.20, 0.50}, + { 0.45, -0.4,-0.50, 0.50, -0.20, 0.50}, + + {-0.45, -0.4,-0.50, 0.45, -0.20,-0.45}, + {-0.45, -0.4, 0.45, 0.45, -0.20, 0.50}, + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.50, -0.5,-0.50, 0.50, -0.20, 0.50}, + } + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos); + meta:set_string("infotext", S("Public threshing floor")); + local inv = meta:get_inventory(); + inv:set_size("harvest", 2); + inv:set_size("straw", 4); + inv:set_size("seeds", 4); + meta:set_string("formspec", cottages_formspec_treshing_floor ); + meta:set_string("public", "public") + end, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos); + meta:set_string("owner", placer:get_player_name() or ""); + meta:set_string("infotext", S("Private threshing floor (owned by %s)"):format(meta:get_string("owner") or "")); + meta:set_string("formspec", + cottages_formspec_treshing_floor.. + "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string("owner") or "").."]" ); + meta:set_string("public", "private") + end, + + on_receive_fields = function(pos, formname, fields, sender) + cottages.switch_public(pos, formname, fields, sender, 'threshing floor') + end, + + can_dig = function(pos,player) + + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory(); + local owner = meta:get_string('owner'); + + if( not( inv:is_empty("harvest")) + or not( inv:is_empty("straw")) + or not( inv:is_empty("seeds")) + or not( player ) + or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then + + return false; + end + return true; + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if( not( cottages.player_can_use( meta, player ))) then + return 0 + end + return count; + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + -- only accept input the threshing floor can use/process + if( listname=='straw' + or listname=='seeds' + or (listname=='harvest' and stack and stack:get_name() ~= 'farming:wheat' )) then + return 0; + end + + if( not( cottages.player_can_use( meta, player ))) then + return 0 + end + return stack:get_count() + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if( not( cottages.player_can_use( meta, player ))) then + return 0 + end + return stack:get_count() + end, + + + on_punch = function(pos, node, puncher) + if( not( pos ) or not( node ) or not( puncher )) then + return; + end + -- only punching with a normal stick is supposed to work + local wielded = puncher:get_wielded_item(); + if( not( wielded ) + or not( wielded:get_name() ) + or not( minetest.registered_items[ wielded:get_name() ]) + or not( minetest.registered_items[ wielded:get_name() ].groups ) + or not( minetest.registered_items[ wielded:get_name() ].groups.stick )) then + return; + end + local name = puncher:get_player_name(); + + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory(); + + local input = inv:get_list('harvest'); + -- we have two input slots + local stack1 = inv:get_stack( 'harvest', 1); + local stack2 = inv:get_stack( 'harvest', 2); + + if( ( stack1:is_empty() and stack2:is_empty()) + or( not( stack1:is_empty()) and stack1:get_name() ~= 'farming:wheat') + or( not( stack2:is_empty()) and stack2:get_name() ~= 'farming:wheat')) then + +-- minetest.chat_send_player( name, 'One of the input slots contains something else than wheat, or there is no wheat at all.'); + -- update the formspec + meta:set_string("formspec", + cottages_formspec_treshing_floor.. + "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string("owner") or "").."]" ); + return; + end + + -- on average, process 25 wheat at each punch (10..40 are possible) + local anz_wheat = 10 + math.random( 0, 30 ); + -- we already made sure there is only wheat inside + local found_wheat = stack1:get_count() + stack2:get_count(); + + -- do not process more wheat than present in the input slots + if( found_wheat < anz_wheat ) then + anz_wheat = found_wheat; + end + + local overlay1 = "^farming_wheat.png"; + local overlay2 = "^"..cottages.straw_texture; + local overlay3 = "^"..cottages.texture_wheat_seed; + + -- this can be enlarged by a multiplicator if desired + local anz_straw = anz_wheat; + local anz_seeds = anz_wheat; + + if( inv:room_for_item('straw','cottages:straw_mat '..tostring( anz_straw )) + and inv:room_for_item('seeds',cottages.craftitem_seed_wheat..' '..tostring( anz_seeds ))) then + + -- the player gets two kind of output + inv:add_item("straw",'cottages:straw_mat '..tostring( anz_straw )); + inv:add_item("seeds",cottages.craftitem_seed_wheat..' '..tostring( anz_seeds )); + -- consume the wheat + inv:remove_item("harvest", 'farming:wheat '..tostring( anz_wheat )); + + local anz_left = found_wheat - anz_wheat; + if( anz_left > 0 ) then +-- minetest.chat_send_player( name, S('You have threshed %s wheat (%s are left).'):format(anz_wheat,anz_left)); + else +-- minetest.chat_send_player( name, S('You have threshed the last %s wheat.'):format(anz_wheat)); + overlay1 = ""; + end + end + + local hud0 = puncher:hud_add({ + hud_elem_type = "image", + scale = {x = 38, y = 38}, + text = "cottages_junglewood.png^[colorize:#888888:128", + position = {x = 0.5, y = 0.5}, + alignment = {x = 0, y = 0} + }); + + local hud1 = puncher:hud_add({ + hud_elem_type = "image", + scale = {x = 15, y = 15}, + text = "cottages_junglewood.png"..overlay1, + position = {x = 0.4, y = 0.5}, + alignment = {x = 0, y = 0} + }); + local hud2 = puncher:hud_add({ + hud_elem_type = "image", + scale = {x = 15, y = 15}, + text = "cottages_junglewood.png"..overlay2, + position = {x = 0.6, y = 0.35}, + alignment = {x = 0, y = 0} + }); + local hud3 = puncher:hud_add({ + hud_elem_type = "image", + scale = {x = 15, y = 15}, + text = "cottages_junglewood.png"..overlay3, + position = {x = 0.6, y = 0.65}, + alignment = {x = 0, y = 0} + }); + + local hud4 = puncher:hud_add({ + hud_elem_type = "text", + text = tostring( found_wheat-anz_wheat ), + number = 0x00CC00, + alignment = {x = 0, y = 0}, + scale = {x = 100, y = 100}, -- bounding rectangle of the text + position = {x = 0.4, y = 0.5}, + }); + if( not( anz_straw )) then + anz_straw = "0"; + end + if( not( anz_seed )) then + anz_seed = "0"; + end + local hud5 = puncher:hud_add({ + hud_elem_type = "text", + text = '+ '..tostring( anz_straw )..' straw', + number = 0x00CC00, + alignment = {x = 0, y = 0}, + scale = {x = 100, y = 100}, -- bounding rectangle of the text + position = {x = 0.6, y = 0.35}, + }); + local hud6 = puncher:hud_add({ + hud_elem_type = "text", + text = '+ '..tostring( anz_seed )..' seeds', + number = 0x00CC00, + alignment = {x = 0, y = 0}, + scale = {x = 100, y = 100}, -- bounding rectangle of the text + position = {x = 0.6, y = 0.65}, + }); + + + + minetest.after(2, function() + if( puncher ) then + if(hud1) then puncher:hud_remove(hud1); end + if(hud2) then puncher:hud_remove(hud2); end + if(hud3) then puncher:hud_remove(hud3); end + if(hud4) then puncher:hud_remove(hud4); end + if(hud5) then puncher:hud_remove(hud5); end + if(hud6) then puncher:hud_remove(hud6); end + if(hud0) then puncher:hud_remove(hud0); end + end + end) + end, +}) + + +local cottages_handmill_formspec = "size[8,8]".. + "image[0,1;1,1;"..cottages.texture_wheat_seed.."]".. + "button_exit[6.0,0.0;1.5,0.5;public;"..S("Public?").."]".. + "list[current_name;seeds;1,1;1,1;]".. + "list[current_name;flour;5,1;2,2;]".. + "label[0,0.5;"..S("Wheat seeds:").."]".. + "label[4,0.5;"..S("Flour:").."]".. + "label[0,-0.3;"..S("Mill").."]".. + "label[0,2.5;"..S("Punch this hand-driven mill").."]".. + "label[0,3.0;"..S("to convert wheat seeds into flour.").."]".. + "list[current_player;main;0,4;8,4;]"; + +minetest.register_node("cottages:handmill", { + description = S("mill, powered by punching"), + drawtype = "mesh", + mesh = "cottages_handmill.obj", + tiles = {"cottages_stone.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=2}, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = { + {-0.50, -0.5,-0.50, 0.50, 0.25, 0.50}, + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.50, -0.5,-0.50, 0.50, 0.25, 0.50}, + } + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos); + meta:set_string("infotext", S("Public mill, powered by punching")); + local inv = meta:get_inventory(); + inv:set_size("seeds", 1); + inv:set_size("flour", 4); + meta:set_string("formspec", cottages_handmill_formspec ); + meta:set_string("public", "public") + end, + + after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos); + meta:set_string("owner", placer:get_player_name() or ""); + meta:set_string("infotext", S("Private mill, powered by punching (owned by %s)"):format(meta:get_string("owner") or "")); + meta:set_string("formspec", + cottages_handmill_formspec.. + "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]" ); + meta:set_string("public", "private") + end, + + on_receive_fields = function(pos, formname, fields, sender) + cottages.switch_public(pos, formname, fields, sender, 'mill, powered by punching') + end, + + can_dig = function(pos,player) + + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory(); + local owner = meta:get_string('owner'); + + if( not( inv:is_empty("flour")) + or not( inv:is_empty("seeds")) + or not( player ) + or ( owner and owner ~= '' and player:get_player_name() ~= owner )) then + + return false; + end + return true; + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + if( not( cottages.player_can_use( meta, player ))) then + return 0 + end + return count; + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + -- only accept input the threshing floor can use/process + if( listname=='flour' + or (listname=='seeds' and stack and not( cottages.handmill_product[ stack:get_name()] ))) then + return 0; + end + + if( not( cottages.player_can_use( meta, player ))) then + return 0 + end + return stack:get_count() + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if( not( cottages.player_can_use( meta, player ))) then + return 0 + end + return stack:get_count() + end, + + -- this code is very similar to the threshing floor; except that it has only one input- and output-slot + -- and does not require the usage of a stick + on_punch = function(pos, node, puncher) + if( not( pos ) or not( node ) or not( puncher )) then + return; + end + local name = puncher:get_player_name(); + + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory(); + + local input = inv:get_list('seeds'); + local stack1 = inv:get_stack( 'seeds', 1); + + if( ( stack1:is_empty()) + or( not( stack1:is_empty()) + and not( cottages.handmill_product[ stack1:get_name() ] ))) then + + if not( stack1:is_empty() ) then + minetest.chat_send_player(name,"Nothing happens...") + end + -- update the formspec + meta:set_string("formspec", + cottages_handmill_formspec.. + "label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]" ); + return; + end + + -- turning the mill is a slow process; 1-21 flour are generated per turn + local anz = 1 + math.random( cottages.handmill_min_per_turn, cottages.handmill_max_per_turn ); + -- we already made sure there is only wheat inside + local found = stack1:get_count(); + + -- do not process more wheat than present in the input slots + if( found < anz ) then + anz = found; + end + + local product_stack = ItemStack( cottages.handmill_product[ stack1:get_name() ]); + local anz_result = anz; + -- items that produce more + if( product_stack:get_count()> 1 ) then + anz_result = anz * product_stack:get_count(); + end + + if( inv:room_for_item('flour', product_stack:get_name()..' '..tostring( anz_result ))) then + + inv:add_item( 'flour', product_stack:get_name()..' '..tostring( anz_result )); + inv:remove_item( 'seeds', stack1:get_name()..' '..tostring( anz )); + + local anz_left = found - anz; + if( anz_left > 0 ) then + minetest.chat_send_player( name, S('You have ground a %s (%s are left).'):format(stack1:get_definition().description,(anz_left))); + else + minetest.chat_send_player( name, S('You have ground the last %s.'):format(stack1:get_definition().description)); + end + + -- if the version of MT is recent enough, rotate the mill a bit + if( minetest.swap_node ) then + node.param2 = node.param2 + 1; + if( node.param2 > 3 ) then + node.param2 = 0; + end + minetest.swap_node( pos, node ); + end + end + end, +}) + + + + +--------------------------------------------------------------------------------------- +-- crafting receipes +--------------------------------------------------------------------------------------- +-- this returns corn as well +-- the replacements work only if the replaced slot gets empty... +minetest.register_craft({ + output = "cottages:straw_mat 6", + recipe = { + {cottages.craftitem_stone,'',''}, + {"farming:wheat", "farming:wheat", "farming:wheat", }, + }, + replacements = {{ cottages.craftitem_stone, cottages.craftitem_seed_wheat.." 3" }}, +}) + +-- this is a better way to get straw mats +minetest.register_craft({ + output = "cottages:threshing_floor", + recipe = { + {cottages.craftitem_junglewood, cottages.craftitem_chest_locked, cottages.craftitem_junglewood, }, + {cottages.craftitem_junglewood, cottages.craftitem_stone, cottages.craftitem_junglewood, }, + }, +}) + +-- and a way to turn wheat seeds into flour +minetest.register_craft({ + output = "cottages:handmill", + recipe = { + {cottages.craftitem_stick, cottages.craftitem_stone, "", }, + {"", cottages.craftitem_steel, "", }, + {"", cottages.craftitem_stone, "", }, + }, +}) + +minetest.register_craft({ + output = "cottages:straw_bale", + recipe = { + {"cottages:straw_mat"}, + {"cottages:straw_mat"}, + {"cottages:straw_mat"}, + }, +}) + +minetest.register_craft({ + output = "cottages:straw", + recipe = { + {"cottages:straw_bale"}, + }, +}) + +minetest.register_craft({ + output = "cottages:straw_bale", + recipe = { + {"cottages:straw"}, + }, +}) + +minetest.register_craft({ + output = "cottages:straw_mat 3", + recipe = { + {"cottages:straw_bale"}, + }, +}) diff --git a/cottages/nodes_water.lua b/mods/cottages/nodes_water.lua similarity index 100% rename from cottages/nodes_water.lua rename to mods/cottages/nodes_water.lua diff --git a/cottages/screenshot.jpg b/mods/cottages/screenshot.jpg similarity index 100% rename from cottages/screenshot.jpg rename to mods/cottages/screenshot.jpg diff --git a/cottages/textures/cottages_barrel.png b/mods/cottages/textures/cottages_barrel.png similarity index 100% rename from cottages/textures/cottages_barrel.png rename to mods/cottages/textures/cottages_barrel.png diff --git a/cottages/textures/cottages_beds_bed_side.png b/mods/cottages/textures/cottages_beds_bed_side.png similarity index 100% rename from cottages/textures/cottages_beds_bed_side.png rename to mods/cottages/textures/cottages_beds_bed_side.png diff --git a/cottages/textures/cottages_beds_bed_side_top_l.png b/mods/cottages/textures/cottages_beds_bed_side_top_l.png similarity index 100% rename from cottages/textures/cottages_beds_bed_side_top_l.png rename to mods/cottages/textures/cottages_beds_bed_side_top_l.png diff --git a/cottages/textures/cottages_beds_bed_side_top_r.png b/mods/cottages/textures/cottages_beds_bed_side_top_r.png similarity index 100% rename from cottages/textures/cottages_beds_bed_side_top_r.png rename to mods/cottages/textures/cottages_beds_bed_side_top_r.png diff --git a/cottages/textures/cottages_beds_bed_top_bottom.png b/mods/cottages/textures/cottages_beds_bed_top_bottom.png similarity index 100% rename from cottages/textures/cottages_beds_bed_top_bottom.png rename to mods/cottages/textures/cottages_beds_bed_top_bottom.png diff --git a/cottages/textures/cottages_beds_bed_top_top.png b/mods/cottages/textures/cottages_beds_bed_top_top.png similarity index 100% rename from cottages/textures/cottages_beds_bed_top_top.png rename to mods/cottages/textures/cottages_beds_bed_top_top.png diff --git a/cottages/textures/cottages_clay.png b/mods/cottages/textures/cottages_clay.png similarity index 100% rename from cottages/textures/cottages_clay.png rename to mods/cottages/textures/cottages_clay.png diff --git a/cottages/textures/cottages_darkage_straw.png b/mods/cottages/textures/cottages_darkage_straw.png similarity index 100% rename from cottages/textures/cottages_darkage_straw.png rename to mods/cottages/textures/cottages_darkage_straw.png diff --git a/cottages/textures/cottages_darkage_straw_bale.png b/mods/cottages/textures/cottages_darkage_straw_bale.png similarity index 100% rename from cottages/textures/cottages_darkage_straw_bale.png rename to mods/cottages/textures/cottages_darkage_straw_bale.png diff --git a/cottages/textures/cottages_feldweg.png b/mods/cottages/textures/cottages_feldweg.png similarity index 100% rename from cottages/textures/cottages_feldweg.png rename to mods/cottages/textures/cottages_feldweg.png diff --git a/cottages/textures/cottages_feldweg_ecke.png b/mods/cottages/textures/cottages_feldweg_ecke.png similarity index 100% rename from cottages/textures/cottages_feldweg_ecke.png rename to mods/cottages/textures/cottages_feldweg_ecke.png diff --git a/cottages/textures/cottages_feldweg_edges.png b/mods/cottages/textures/cottages_feldweg_edges.png similarity index 100% rename from cottages/textures/cottages_feldweg_edges.png rename to mods/cottages/textures/cottages_feldweg_edges.png diff --git a/cottages/textures/cottages_feldweg_end.png b/mods/cottages/textures/cottages_feldweg_end.png similarity index 100% rename from cottages/textures/cottages_feldweg_end.png rename to mods/cottages/textures/cottages_feldweg_end.png diff --git a/cottages/textures/cottages_feldweg_kreuzung.png b/mods/cottages/textures/cottages_feldweg_kreuzung.png similarity index 100% rename from cottages/textures/cottages_feldweg_kreuzung.png rename to mods/cottages/textures/cottages_feldweg_kreuzung.png diff --git a/cottages/textures/cottages_feldweg_surface.png b/mods/cottages/textures/cottages_feldweg_surface.png similarity index 100% rename from cottages/textures/cottages_feldweg_surface.png rename to mods/cottages/textures/cottages_feldweg_surface.png diff --git a/cottages/textures/cottages_feldweg_t-kreuzung.png b/mods/cottages/textures/cottages_feldweg_t-kreuzung.png similarity index 100% rename from cottages/textures/cottages_feldweg_t-kreuzung.png rename to mods/cottages/textures/cottages_feldweg_t-kreuzung.png diff --git a/cottages/textures/cottages_glass_pane.png b/mods/cottages/textures/cottages_glass_pane.png similarity index 100% rename from cottages/textures/cottages_glass_pane.png rename to mods/cottages/textures/cottages_glass_pane.png diff --git a/cottages/textures/cottages_homedecor_shingles_asphalt.png b/mods/cottages/textures/cottages_homedecor_shingles_asphalt.png similarity index 100% rename from cottages/textures/cottages_homedecor_shingles_asphalt.png rename to mods/cottages/textures/cottages_homedecor_shingles_asphalt.png diff --git a/cottages/textures/cottages_homedecor_shingles_terracotta.png b/mods/cottages/textures/cottages_homedecor_shingles_terracotta.png similarity index 100% rename from cottages/textures/cottages_homedecor_shingles_terracotta.png rename to mods/cottages/textures/cottages_homedecor_shingles_terracotta.png diff --git a/cottages/textures/cottages_homedecor_shingles_wood.png b/mods/cottages/textures/cottages_homedecor_shingles_wood.png similarity index 100% rename from cottages/textures/cottages_homedecor_shingles_wood.png rename to mods/cottages/textures/cottages_homedecor_shingles_wood.png diff --git a/cottages/textures/cottages_junglewood.png b/mods/cottages/textures/cottages_junglewood.png similarity index 100% rename from cottages/textures/cottages_junglewood.png rename to mods/cottages/textures/cottages_junglewood.png diff --git a/cottages/textures/cottages_loam.png b/mods/cottages/textures/cottages_loam.png similarity index 100% rename from cottages/textures/cottages_loam.png rename to mods/cottages/textures/cottages_loam.png diff --git a/cottages/textures/cottages_minimal_wood.png b/mods/cottages/textures/cottages_minimal_wood.png similarity index 100% rename from cottages/textures/cottages_minimal_wood.png rename to mods/cottages/textures/cottages_minimal_wood.png diff --git a/cottages/textures/cottages_pitchfork.png b/mods/cottages/textures/cottages_pitchfork.png similarity index 100% rename from cottages/textures/cottages_pitchfork.png rename to mods/cottages/textures/cottages_pitchfork.png diff --git a/cottages/textures/cottages_reet.png b/mods/cottages/textures/cottages_reet.png similarity index 100% rename from cottages/textures/cottages_reet.png rename to mods/cottages/textures/cottages_reet.png diff --git a/cottages/textures/cottages_rope.png b/mods/cottages/textures/cottages_rope.png similarity index 100% rename from cottages/textures/cottages_rope.png rename to mods/cottages/textures/cottages_rope.png diff --git a/cottages/textures/cottages_slate.png b/mods/cottages/textures/cottages_slate.png similarity index 100% rename from cottages/textures/cottages_slate.png rename to mods/cottages/textures/cottages_slate.png diff --git a/cottages/textures/cottages_sleepingmat.png b/mods/cottages/textures/cottages_sleepingmat.png similarity index 100% rename from cottages/textures/cottages_sleepingmat.png rename to mods/cottages/textures/cottages_sleepingmat.png diff --git a/cottages/textures/cottages_steel_block.png b/mods/cottages/textures/cottages_steel_block.png similarity index 100% rename from cottages/textures/cottages_steel_block.png rename to mods/cottages/textures/cottages_steel_block.png diff --git a/cottages/textures/cottages_stone.png b/mods/cottages/textures/cottages_stone.png similarity index 100% rename from cottages/textures/cottages_stone.png rename to mods/cottages/textures/cottages_stone.png diff --git a/cottages/textures/cottages_wagonwheel.png b/mods/cottages/textures/cottages_wagonwheel.png similarity index 100% rename from cottages/textures/cottages_wagonwheel.png rename to mods/cottages/textures/cottages_wagonwheel.png diff --git a/cottages/textures/cottages_wool.png b/mods/cottages/textures/cottages_wool.png similarity index 100% rename from cottages/textures/cottages_wool.png rename to mods/cottages/textures/cottages_wool.png diff --git a/cottages/textures/glooptest_tool_steelhammer.png b/mods/cottages/textures/glooptest_tool_steelhammer.png similarity index 100% rename from cottages/textures/glooptest_tool_steelhammer.png rename to mods/cottages/textures/glooptest_tool_steelhammer.png diff --git a/crafting_bench/LICENSE b/mods/crafting_bench/LICENSE similarity index 100% rename from crafting_bench/LICENSE rename to mods/crafting_bench/LICENSE diff --git a/crafting_bench/README.txt b/mods/crafting_bench/README.txt similarity index 100% rename from crafting_bench/README.txt rename to mods/crafting_bench/README.txt diff --git a/crafting_bench/i18n.py b/mods/crafting_bench/i18n.py similarity index 100% rename from crafting_bench/i18n.py rename to mods/crafting_bench/i18n.py diff --git a/crafting_bench/init.lua b/mods/crafting_bench/init.lua similarity index 100% rename from crafting_bench/init.lua rename to mods/crafting_bench/init.lua diff --git a/crafting_bench/locale/crafting_bench.fr.tr b/mods/crafting_bench/locale/crafting_bench.fr.tr similarity index 100% rename from crafting_bench/locale/crafting_bench.fr.tr rename to mods/crafting_bench/locale/crafting_bench.fr.tr diff --git a/crafting_bench/locale/template.txt b/mods/crafting_bench/locale/template.txt similarity index 100% rename from crafting_bench/locale/template.txt rename to mods/crafting_bench/locale/template.txt diff --git a/crafting_bench/mod.conf b/mods/crafting_bench/mod.conf similarity index 100% rename from crafting_bench/mod.conf rename to mods/crafting_bench/mod.conf diff --git a/crafting_bench/screenshot.png b/mods/crafting_bench/screenshot.png similarity index 100% rename from crafting_bench/screenshot.png rename to mods/crafting_bench/screenshot.png diff --git a/crafting_bench/settingtypes.txt b/mods/crafting_bench/settingtypes.txt similarity index 100% rename from crafting_bench/settingtypes.txt rename to mods/crafting_bench/settingtypes.txt diff --git a/crafting_bench/textures/LICENSE.txt b/mods/crafting_bench/textures/LICENSE.txt similarity index 100% rename from crafting_bench/textures/LICENSE.txt rename to mods/crafting_bench/textures/LICENSE.txt diff --git a/crafting_bench/textures/crafting_bench_workbench_back.png b/mods/crafting_bench/textures/crafting_bench_workbench_back.png similarity index 100% rename from crafting_bench/textures/crafting_bench_workbench_back.png rename to mods/crafting_bench/textures/crafting_bench_workbench_back.png diff --git a/crafting_bench/textures/crafting_bench_workbench_bottom.png b/mods/crafting_bench/textures/crafting_bench_workbench_bottom.png similarity index 100% rename from crafting_bench/textures/crafting_bench_workbench_bottom.png rename to mods/crafting_bench/textures/crafting_bench_workbench_bottom.png diff --git a/crafting_bench/textures/crafting_bench_workbench_front.png b/mods/crafting_bench/textures/crafting_bench_workbench_front.png similarity index 100% rename from crafting_bench/textures/crafting_bench_workbench_front.png rename to mods/crafting_bench/textures/crafting_bench_workbench_front.png diff --git a/crafting_bench/textures/crafting_bench_workbench_side.png b/mods/crafting_bench/textures/crafting_bench_workbench_side.png similarity index 100% rename from crafting_bench/textures/crafting_bench_workbench_side.png rename to mods/crafting_bench/textures/crafting_bench_workbench_side.png diff --git a/crafting_bench/textures/crafting_bench_workbench_top.png b/mods/crafting_bench/textures/crafting_bench_workbench_top.png similarity index 100% rename from crafting_bench/textures/crafting_bench_workbench_top.png rename to mods/crafting_bench/textures/crafting_bench_workbench_top.png diff --git a/mods/creative/README.txt b/mods/creative/README.txt new file mode 100644 index 00000000..32e8d22a --- /dev/null +++ b/mods/creative/README.txt @@ -0,0 +1,17 @@ +Minetest Game mod: creative +=========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Jean-Patrick G. (kilbith) (MIT) + +Author of media (textures) +-------------------------- +paramat (CC BY-SA 3.0): +* creative_prev_icon.png +* creative_next_icon.png +* creative_search_icon.png +* creative_clear_icon.png +* creative_trash_icon.png derived from a texture by kilbith (CC BY-SA 3.0) diff --git a/mods/creative/init.lua b/mods/creative/init.lua new file mode 100644 index 00000000..f3134858 --- /dev/null +++ b/mods/creative/init.lua @@ -0,0 +1,101 @@ +-- creative/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("creative") + +creative = {} +creative.get_translator = S + +local function update_sfinv(name) + minetest.after(0, function() + local player = minetest.get_player_by_name(name) + if player then + if sfinv.get_page(player):sub(1, 9) == "creative:" then + sfinv.set_page(player, sfinv.get_homepage_name(player)) + else + sfinv.set_player_inventory_formspec(player) + end + end + end) +end + +minetest.register_privilege("creative", { + description = S("Allow player to use creative inventory"), + give_to_singleplayer = false, + give_to_admin = false, + on_grant = update_sfinv, + on_revoke = update_sfinv, +}) + +-- Override the engine's creative mode function +local old_is_creative_enabled = minetest.is_creative_enabled + +function minetest.is_creative_enabled(name) + if name == "" then + return old_is_creative_enabled(name) + end + return minetest.check_player_privs(name, {creative = true}) or + old_is_creative_enabled(name) +end + +-- For backwards compatibility: +function creative.is_enabled_for(name) + return minetest.is_creative_enabled(name) +end + +dofile(minetest.get_modpath("creative") .. "/inventory.lua") + +if minetest.is_creative_enabled("") then + -- Dig time is modified according to difference (leveldiff) between tool + -- 'maxlevel' and node 'level'. Digtime is divided by the larger of + -- leveldiff and 1. + -- To speed up digging in creative, hand 'maxlevel' and 'digtime' have been + -- increased such that nodes of differing levels have an insignificant + -- effect on digtime. + local digtime = 42 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} + + -- Override the hand tool + minetest.override_item("", { + range = 10, + tool_capabilities = { + full_punch_interval = 0.5, + max_drop_level = 3, + groupcaps = { + crumbly = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, + -- dig_immediate group doesn't use value 1. Value 3 is instant dig + dig_immediate = + {times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256}, + }, + damage_groups = {fleshy = 10}, + } + }) +end + +-- Unlimited node placement +minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) + if placer and placer:is_player() then + return minetest.is_creative_enabled(placer:get_player_name()) + end +end) + +-- Don't pick up if the item is already in the inventory +local old_handle_node_drops = minetest.handle_node_drops +function minetest.handle_node_drops(pos, drops, digger) + if not digger or not digger:is_player() or + not minetest.is_creative_enabled(digger:get_player_name()) then + return old_handle_node_drops(pos, drops, digger) + end + local inv = digger:get_inventory() + if inv then + for _, item in ipairs(drops) do + if not inv:contains_item("main", item, true) then + inv:add_item("main", item) + end + end + end +end diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua new file mode 100644 index 00000000..46da80a1 --- /dev/null +++ b/mods/creative/inventory.lua @@ -0,0 +1,256 @@ +-- creative/inventory.lua + +-- support for MT game translation. +local S = creative.get_translator + +local player_inventory = {} +local inventory_cache = {} + +local function init_creative_cache(items) + inventory_cache[items] = {} + local i_cache = inventory_cache[items] + + for name, def in pairs(items) do + if def.groups.not_in_creative_inventory ~= 1 and + def.description and def.description ~= "" then + i_cache[name] = def + end + end + table.sort(i_cache) + return i_cache +end + +function creative.init_creative_inventory(player) + local player_name = player:get_player_name() + player_inventory[player_name] = { + size = 0, + filter = "", + start_i = 0, + old_filter = nil, -- use only for caching in update_creative_inventory + old_content = nil + } + + minetest.create_detached_inventory("creative_" .. player_name, { + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player2) + local name = player2 and player2:get_player_name() or "" + if not minetest.is_creative_enabled(name) or + to_list == "main" then + return 0 + end + return count + end, + allow_put = function(inv, listname, index, stack, player2) + return 0 + end, + allow_take = function(inv, listname, index, stack, player2) + local name = player2 and player2:get_player_name() or "" + if not minetest.is_creative_enabled(name) then + return 0 + end + return -1 + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player2) + end, + on_take = function(inv, listname, index, stack, player2) + if stack and stack:get_count() > 0 then + minetest.log("action", player_name .. " takes " .. stack:get_name().. " from creative inventory") + end + end, + }, player_name) + + return player_inventory[player_name] +end + +local NO_MATCH = 999 +local function match(s, filter) + if filter == "" then + return 0 + end + if s:lower():find(filter, 1, true) then + return #s - #filter + end + return NO_MATCH +end + +local function description(def, lang_code) + local s = def.description + if lang_code then + s = minetest.get_translated_string(lang_code, s) + end + return s:gsub("\n.*", "") -- First line only +end + +function creative.update_creative_inventory(player_name, tab_content) + local inv = player_inventory[player_name] or + creative.init_creative_inventory(minetest.get_player_by_name(player_name)) + local player_inv = minetest.get_inventory({type = "detached", name = "creative_" .. player_name}) + + if inv.filter == inv.old_filter and tab_content == inv.old_content then + return + end + inv.old_filter = inv.filter + inv.old_content = tab_content + + local items = inventory_cache[tab_content] or init_creative_cache(tab_content) + + local lang + local player_info = minetest.get_player_information(player_name) + if player_info and player_info.lang_code ~= "" then + lang = player_info.lang_code + end + + local creative_list = {} + local order = {} + for name, def in pairs(items) do + local m = match(description(def), inv.filter) + if m > 0 then + m = math.min(m, match(description(def, lang), inv.filter)) + end + if m > 0 then + m = math.min(m, match(name, inv.filter)) + end + + if m < NO_MATCH then + creative_list[#creative_list+1] = name + -- Sort by match value first so closer matches appear earlier + order[name] = string.format("%02d", m) .. name + end + end + + table.sort(creative_list, function(a, b) return order[a] < order[b] end) + + player_inv:set_size("main", #creative_list) + player_inv:set_list("main", creative_list) + inv.size = #creative_list +end + +-- Create the trash field +local trash = minetest.create_detached_inventory("creative_trash", { + -- Allow the stack to be placed and remove it in on_put() + -- This allows the creative inventory to restore the stack + allow_put = function(inv, listname, index, stack, player) + return stack:get_count() + end, + on_put = function(inv, listname) + inv:set_list(listname, {}) + end, +}) +trash:set_size("main", 1) + +creative.formspec_add = "" + +function creative.register_tab(name, title, items) + sfinv.register_page("creative:" .. name, { + title = title, + is_in_nav = function(self, player, context) + return minetest.is_creative_enabled(player:get_player_name()) + end, + get = function(self, player, context) + local player_name = player:get_player_name() + creative.update_creative_inventory(player_name, items) + local inv = player_inventory[player_name] + local pagenum = math.floor(inv.start_i / (4*8) + 1) + local pagemax = math.ceil(inv.size / (4*8)) + local esc = minetest.formspec_escape + return sfinv.make_formspec(player, context, + "label[5.8,4.15;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" .. + [[ + image[4.08,4.2;0.8,0.8;creative_trash_icon.png] + listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] + list[detached:creative_trash;main;4.02,4.1;1,1;] + listring[] + image_button[5,4.05;0.8,0.8;creative_prev_icon.png;creative_prev;] + image_button[7.2,4.05;0.8,0.8;creative_next_icon.png;creative_next;] + image_button[2.63,4.05;0.8,0.8;creative_search_icon.png;creative_search;] + image_button[3.25,4.05;0.8,0.8;creative_clear_icon.png;creative_clear;] + ]] .. + "tooltip[creative_search;" .. esc(S("Search")) .. "]" .. + "tooltip[creative_clear;" .. esc(S("Reset")) .. "]" .. + "tooltip[creative_prev;" .. esc(S("Previous page")) .. "]" .. + "tooltip[creative_next;" .. esc(S("Next page")) .. "]" .. + "listring[current_player;main]" .. + "field_close_on_enter[creative_filter;false]" .. + "field[0.3,4.2;2.8,1.2;creative_filter;;" .. esc(inv.filter) .. "]" .. + "listring[detached:creative_" .. player_name .. ";main]" .. + "list[detached:creative_" .. player_name .. ";main;0,0;8,4;" .. tostring(inv.start_i) .. "]" .. + creative.formspec_add, true) + end, + on_enter = function(self, player, context) + local player_name = player:get_player_name() + local inv = player_inventory[player_name] + if inv then + inv.start_i = 0 + end + end, + on_player_receive_fields = function(self, player, context, fields) + local player_name = player:get_player_name() + local inv = player_inventory[player_name] + assert(inv) + + if fields.creative_clear then + inv.start_i = 0 + inv.filter = "" + sfinv.set_player_inventory_formspec(player, context) + elseif fields.creative_search or + fields.key_enter_field == "creative_filter" then + inv.start_i = 0 + inv.filter = fields.creative_filter:lower() + sfinv.set_player_inventory_formspec(player, context) + elseif not fields.quit then + local start_i = inv.start_i or 0 + + if fields.creative_prev then + start_i = start_i - 4*8 + if start_i < 0 then + start_i = inv.size - (inv.size % (4*8)) + if inv.size == start_i then + start_i = math.max(0, inv.size - (4*8)) + end + end + elseif fields.creative_next then + start_i = start_i + 4*8 + if start_i >= inv.size then + start_i = 0 + end + end + + inv.start_i = start_i + sfinv.set_player_inventory_formspec(player, context) + end + end + }) +end + +-- Sort registered items +local registered_nodes = {} +local registered_tools = {} +local registered_craftitems = {} + +minetest.register_on_mods_loaded(function() + for name, def in pairs(minetest.registered_items) do + local group = def.groups or {} + + local nogroup = not (group.node or group.tool or group.craftitem) + if group.node or (nogroup and minetest.registered_nodes[name]) then + registered_nodes[name] = def + elseif group.tool or (nogroup and minetest.registered_tools[name]) then + registered_tools[name] = def + elseif group.craftitem or (nogroup and minetest.registered_craftitems[name]) then + registered_craftitems[name] = def + end + end +end) + +creative.register_tab("all", S("All"), minetest.registered_items) +creative.register_tab("nodes", S("Nodes"), registered_nodes) +creative.register_tab("tools", S("Tools"), registered_tools) +creative.register_tab("craftitems", S("Items"), registered_craftitems) + +local old_homepage_name = sfinv.get_homepage_name +function sfinv.get_homepage_name(player) + if minetest.is_creative_enabled(player:get_player_name()) then + return "creative:all" + else + return old_homepage_name(player) + end +end diff --git a/mods/creative/license.txt b/mods/creative/license.txt new file mode 100644 index 00000000..50ff9c74 --- /dev/null +++ b/mods/creative/license.txt @@ -0,0 +1,61 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2016 Jean-Patrick G. (kilbith) +Copyright (C) 2018 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/creative/locale/creative.de.tr b/mods/creative/locale/creative.de.tr new file mode 100644 index 00000000..02b02777 --- /dev/null +++ b/mods/creative/locale/creative.de.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Spieler erlauben, das Kreativinventar zu benutzen +Search=Suchen +Reset=Zurücksetzen +Previous page=Vorherige Seite +Next page=Nächste Seite +All=Alles +Nodes=Blöcke +Tools=Werkzeuge +Items=Gegenstände diff --git a/mods/creative/locale/creative.es.tr b/mods/creative/locale/creative.es.tr new file mode 100644 index 00000000..f4e39a70 --- /dev/null +++ b/mods/creative/locale/creative.es.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permitir al jugador usar el inventario creativo +Search=Buscar +Reset=Resetear +Previous page=Pág. siguiente +Next page=Pág. anterior +All=Todos +Nodes=Nodos +Tools=Herramientas +Items=Objetos diff --git a/mods/creative/locale/creative.fr.tr b/mods/creative/locale/creative.fr.tr new file mode 100644 index 00000000..695c0a19 --- /dev/null +++ b/mods/creative/locale/creative.fr.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permettre aux joueurs d'utiliser l'inventaire du mode créatif +Search=Rechercher +Reset=Réinitialiser +Previous page=Page précédente +Next page=Page suivante +All=Tout +Nodes=Nœuds +Tools=Outils +Items=Article diff --git a/mods/creative/locale/creative.id.tr b/mods/creative/locale/creative.id.tr new file mode 100644 index 00000000..613ab137 --- /dev/null +++ b/mods/creative/locale/creative.id.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Bolehkan pemain memakai inventaris kreatif +Search=Cari +Reset=Atur ulang +Previous page=Halaman sebelumnya +Next page=Halaman selanjutnya +All=Semua +Nodes=Nodus +Tools=Perkakas +Items=Barang diff --git a/mods/creative/locale/creative.it.tr b/mods/creative/locale/creative.it.tr new file mode 100644 index 00000000..32f540db --- /dev/null +++ b/mods/creative/locale/creative.it.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permette al giocatore di usare l'inventario creativo +Search=Cerca +Reset=Azzera +Previous page=Pagina precedente +Next page=Pagina successiva +All=Tutto +Nodes=Nodi +Tools=Strumenti +Items=Oggetti diff --git a/mods/creative/locale/creative.jbo.tr b/mods/creative/locale/creative.jbo.tr new file mode 100644 index 00000000..6d0b7361 --- /dev/null +++ b/mods/creative/locale/creative.jbo.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=zifre le ka pilno le finti ke dacti liste +Search=sisku +Reset=kraga'igau +Previous page=lidne +Next page=selyli'e +All=ro dacti +Nodes=bliku +Tools=tutci +Items=dacti diff --git a/mods/creative/locale/creative.ms.tr b/mods/creative/locale/creative.ms.tr new file mode 100644 index 00000000..a2aef801 --- /dev/null +++ b/mods/creative/locale/creative.ms.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Benarkan pemain menggunakan inventori kreatif +Search=Cari +Reset=Set semula +Previous page=Halaman sebelumnya +Next page=Halaman seterusnya +All=Semua +Nodes=Nod +Tools=Alatan +Items=Item diff --git a/mods/creative/locale/creative.pt_BR.tr b/mods/creative/locale/creative.pt_BR.tr new file mode 100644 index 00000000..c8a04bde --- /dev/null +++ b/mods/creative/locale/creative.pt_BR.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permitir o jogador usar o inventário criativo +Search=Pesquisar +Reset=Redefinir +Previous page=Página anterior +Next page=Próxima página +All=Todos +Nodes=Blocos +Tools=Ferramentas +Items=Itens diff --git a/mods/creative/locale/creative.ru.tr b/mods/creative/locale/creative.ru.tr new file mode 100644 index 00000000..f649dbc6 --- /dev/null +++ b/mods/creative/locale/creative.ru.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Разрешить игроку использовать творческий инвентарь +Search=Поиск +Reset=Сброс +Previous page=Предыдущая страница +Next page=Следующая страница +All=Всё +Nodes=Ноды +Tools=Инструменты +Items=Предметы diff --git a/mods/creative/locale/creative.se.tr b/mods/creative/locale/creative.se.tr new file mode 100644 index 00000000..3b5da58f --- /dev/null +++ b/mods/creative/locale/creative.se.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Tilllåt spelare att används kreativa saker +Search=Sök +Reset=Återställ +Previous page=Förra sidan +Next page=Nästa sidan +All=Alla +Nodes=Noder +Tools=Verktyg +Items=Saker diff --git a/mods/creative/locale/creative.sk.tr b/mods/creative/locale/creative.sk.tr new file mode 100644 index 00000000..935c7803 --- /dev/null +++ b/mods/creative/locale/creative.sk.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Povolí hráčovi použivať kreatívny inventár +Search=Hľadaj +Reset=Vrátiť späť +Previous page=Predchádzajúca stránka +Next page=Nasledujúca stránka +All=Všetko +Nodes=Kocky +Tools=Nástroje +Items=Veci diff --git a/mods/creative/locale/creative.zh_CN.tr b/mods/creative/locale/creative.zh_CN.tr new file mode 100644 index 00000000..1ca424e5 --- /dev/null +++ b/mods/creative/locale/creative.zh_CN.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=允许玩家使用创造模式物品栏 +Search=搜索 +Reset=重置 +Previous page=上一页 +Next page=下一页 +All=所有 +Nodes=节点 +Tools=工具 +Items=物品 diff --git a/mods/creative/locale/creative.zh_TW.tr b/mods/creative/locale/creative.zh_TW.tr new file mode 100644 index 00000000..c5746d40 --- /dev/null +++ b/mods/creative/locale/creative.zh_TW.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=允許玩家使用創造模式物品欄 +Search=搜索 +Reset=重置 +Previous page=上一頁 +Next page=下一頁 +All=所有 +Nodes=節點 +Tools=工具 +Items=物品 diff --git a/mods/creative/locale/template.txt b/mods/creative/locale/template.txt new file mode 100644 index 00000000..3e79730c --- /dev/null +++ b/mods/creative/locale/template.txt @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory= +Search= +Reset= +Previous page= +Next page= +All= +Nodes= +Tools= +Items= diff --git a/mods/creative/mod.conf b/mods/creative/mod.conf new file mode 100644 index 00000000..0b3f745d --- /dev/null +++ b/mods/creative/mod.conf @@ -0,0 +1,3 @@ +name = creative +description = Minetest Game mod: creative +depends = default, sfinv diff --git a/mods/creative/textures/creative_clear_icon.png b/mods/creative/textures/creative_clear_icon.png new file mode 100644 index 00000000..ab421d98 Binary files /dev/null and b/mods/creative/textures/creative_clear_icon.png differ diff --git a/mods/creative/textures/creative_next_icon.png b/mods/creative/textures/creative_next_icon.png new file mode 100644 index 00000000..4a3637dc Binary files /dev/null and b/mods/creative/textures/creative_next_icon.png differ diff --git a/mods/creative/textures/creative_prev_icon.png b/mods/creative/textures/creative_prev_icon.png new file mode 100644 index 00000000..d5e3c27a Binary files /dev/null and b/mods/creative/textures/creative_prev_icon.png differ diff --git a/mods/creative/textures/creative_search_icon.png b/mods/creative/textures/creative_search_icon.png new file mode 100644 index 00000000..421b833e Binary files /dev/null and b/mods/creative/textures/creative_search_icon.png differ diff --git a/mods/creative/textures/creative_trash_icon.png b/mods/creative/textures/creative_trash_icon.png new file mode 100644 index 00000000..a0f6d237 Binary files /dev/null and b/mods/creative/textures/creative_trash_icon.png differ diff --git a/currency/LICENSE b/mods/currency/LICENSE similarity index 100% rename from currency/LICENSE rename to mods/currency/LICENSE diff --git a/currency/Money_Info.txt b/mods/currency/Money_Info.txt similarity index 100% rename from currency/Money_Info.txt rename to mods/currency/Money_Info.txt diff --git a/currency/README.md b/mods/currency/README.md similarity index 100% rename from currency/README.md rename to mods/currency/README.md diff --git a/currency/barter.lua b/mods/currency/barter.lua similarity index 100% rename from currency/barter.lua rename to mods/currency/barter.lua diff --git a/currency/crafting.lua b/mods/currency/crafting.lua similarity index 100% rename from currency/crafting.lua rename to mods/currency/crafting.lua diff --git a/currency/craftitems.lua b/mods/currency/craftitems.lua similarity index 100% rename from currency/craftitems.lua rename to mods/currency/craftitems.lua diff --git a/currency/income.lua b/mods/currency/income.lua similarity index 100% rename from currency/income.lua rename to mods/currency/income.lua diff --git a/currency/init.lua b/mods/currency/init.lua similarity index 100% rename from currency/init.lua rename to mods/currency/init.lua diff --git a/currency/locale/currency.de.tr b/mods/currency/locale/currency.de.tr similarity index 100% rename from currency/locale/currency.de.tr rename to mods/currency/locale/currency.de.tr diff --git a/currency/locale/currency.es.tr b/mods/currency/locale/currency.es.tr similarity index 100% rename from currency/locale/currency.es.tr rename to mods/currency/locale/currency.es.tr diff --git a/currency/locale/currency.fr.tr b/mods/currency/locale/currency.fr.tr similarity index 100% rename from currency/locale/currency.fr.tr rename to mods/currency/locale/currency.fr.tr diff --git a/currency/locale/currency.it.tr b/mods/currency/locale/currency.it.tr similarity index 100% rename from currency/locale/currency.it.tr rename to mods/currency/locale/currency.it.tr diff --git a/currency/locale/currency.ms.tr b/mods/currency/locale/currency.ms.tr similarity index 100% rename from currency/locale/currency.ms.tr rename to mods/currency/locale/currency.ms.tr diff --git a/currency/locale/currency.ru.tr b/mods/currency/locale/currency.ru.tr similarity index 100% rename from currency/locale/currency.ru.tr rename to mods/currency/locale/currency.ru.tr diff --git a/currency/locale/template.txt b/mods/currency/locale/template.txt similarity index 100% rename from currency/locale/template.txt rename to mods/currency/locale/template.txt diff --git a/currency/loot.lua b/mods/currency/loot.lua similarity index 100% rename from currency/loot.lua rename to mods/currency/loot.lua diff --git a/currency/mod.conf b/mods/currency/mod.conf similarity index 100% rename from currency/mod.conf rename to mods/currency/mod.conf diff --git a/currency/safe.lua b/mods/currency/safe.lua similarity index 100% rename from currency/safe.lua rename to mods/currency/safe.lua diff --git a/currency/settingtypes.txt b/mods/currency/settingtypes.txt similarity index 100% rename from currency/settingtypes.txt rename to mods/currency/settingtypes.txt diff --git a/currency/shop.lua b/mods/currency/shop.lua similarity index 100% rename from currency/shop.lua rename to mods/currency/shop.lua diff --git a/currency/textures/barter_base.png b/mods/currency/textures/barter_base.png similarity index 100% rename from currency/textures/barter_base.png rename to mods/currency/textures/barter_base.png diff --git a/currency/textures/barter_side.png b/mods/currency/textures/barter_side.png similarity index 100% rename from currency/textures/barter_side.png rename to mods/currency/textures/barter_side.png diff --git a/currency/textures/barter_top.png b/mods/currency/textures/barter_top.png similarity index 100% rename from currency/textures/barter_top.png rename to mods/currency/textures/barter_top.png diff --git a/currency/textures/minegeld.png b/mods/currency/textures/minegeld.png similarity index 100% rename from currency/textures/minegeld.png rename to mods/currency/textures/minegeld.png diff --git a/currency/textures/minegeld_10.png b/mods/currency/textures/minegeld_10.png similarity index 100% rename from currency/textures/minegeld_10.png rename to mods/currency/textures/minegeld_10.png diff --git a/currency/textures/minegeld_100.png b/mods/currency/textures/minegeld_100.png similarity index 100% rename from currency/textures/minegeld_100.png rename to mods/currency/textures/minegeld_100.png diff --git a/currency/textures/minegeld_5.png b/mods/currency/textures/minegeld_5.png similarity index 100% rename from currency/textures/minegeld_5.png rename to mods/currency/textures/minegeld_5.png diff --git a/currency/textures/minegeld_50.png b/mods/currency/textures/minegeld_50.png similarity index 100% rename from currency/textures/minegeld_50.png rename to mods/currency/textures/minegeld_50.png diff --git a/currency/textures/minegeld_bundle.png b/mods/currency/textures/minegeld_bundle.png similarity index 100% rename from currency/textures/minegeld_bundle.png rename to mods/currency/textures/minegeld_bundle.png diff --git a/currency/textures/minegeld_cent_10.png b/mods/currency/textures/minegeld_cent_10.png similarity index 100% rename from currency/textures/minegeld_cent_10.png rename to mods/currency/textures/minegeld_cent_10.png diff --git a/currency/textures/minegeld_cent_25.png b/mods/currency/textures/minegeld_cent_25.png similarity index 100% rename from currency/textures/minegeld_cent_25.png rename to mods/currency/textures/minegeld_cent_25.png diff --git a/currency/textures/minegeld_cent_5.png b/mods/currency/textures/minegeld_cent_5.png similarity index 100% rename from currency/textures/minegeld_cent_5.png rename to mods/currency/textures/minegeld_cent_5.png diff --git a/currency/textures/safe_front.png b/mods/currency/textures/safe_front.png similarity index 100% rename from currency/textures/safe_front.png rename to mods/currency/textures/safe_front.png diff --git a/currency/textures/safe_side.png b/mods/currency/textures/safe_side.png similarity index 100% rename from currency/textures/safe_side.png rename to mods/currency/textures/safe_side.png diff --git a/currency/textures/shop_front.png b/mods/currency/textures/shop_front.png similarity index 100% rename from currency/textures/shop_front.png rename to mods/currency/textures/shop_front.png diff --git a/currency/textures/shop_front_empty.png b/mods/currency/textures/shop_front_empty.png similarity index 100% rename from currency/textures/shop_front_empty.png rename to mods/currency/textures/shop_front_empty.png diff --git a/currency/textures/shop_side.png b/mods/currency/textures/shop_side.png similarity index 100% rename from currency/textures/shop_side.png rename to mods/currency/textures/shop_side.png diff --git a/currency/textures/shop_side_empty.png b/mods/currency/textures/shop_side_empty.png similarity index 100% rename from currency/textures/shop_side_empty.png rename to mods/currency/textures/shop_side_empty.png diff --git a/currency/textures/shop_top.png b/mods/currency/textures/shop_top.png similarity index 100% rename from currency/textures/shop_top.png rename to mods/currency/textures/shop_top.png diff --git a/datastorage/README.md b/mods/datastorage/README.md similarity index 100% rename from datastorage/README.md rename to mods/datastorage/README.md diff --git a/datastorage/depends.txt b/mods/datastorage/depends.txt similarity index 100% rename from datastorage/depends.txt rename to mods/datastorage/depends.txt diff --git a/datastorage/init.lua b/mods/datastorage/init.lua similarity index 100% rename from datastorage/init.lua rename to mods/datastorage/init.lua diff --git a/mods/default/README.txt b/mods/default/README.txt new file mode 100644 index 00000000..06266be1 --- /dev/null +++ b/mods/default/README.txt @@ -0,0 +1,410 @@ +Dreambuilder mod: default +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by celeron55, Perttu Ahola (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +The torch code was derived by sofar from the 'torches' mod by +BlockMen (LGPLv2.1+) + +Authors of media (textures, sounds, models and schematics) +---------------------------------------------------------- +Everything not listed in here: +celeron55, Perttu Ahola (CC BY-SA 3.0) + + +Textures +-------- +Cisoun's texture pack (CC BY-SA 3.0): + default_jungletree.png + default_lava.png + default_leaves.png + default_sapling.png + default_bush_sapling.png + default_stone.png + default_tree.png + default_tree_top.png + default_water.png + +RealBadAngel's animated water (CC BY-SA 3.0): + default_water_source_animated.png + default_water_flowing_animated.png + +VanessaE (CC BY-SA 3.0): + default_torch_animated.png + default_torch_on_ceiling_animated.png + default_torch_on_floor_animated.png + default_torch_on_floor.png + default_desert_sand.png + default_desert_stone.png + default_sand.png + default_mese_crystal.png + default_mese_crystal_fragment.png + +Calinou (CC BY-SA 3.0): + default_brick.png + default_papyrus.png + default_mineral_copper.png + +PilzAdam (CC BY-SA 3.0): + default_jungleleaves.png + default_junglesapling.png + default_obsidian_glass.png + default_obsidian_shard.png + default_mineral_gold.png + +jojoa1997 (CC BY-SA 3.0): + default_obsidian.png + +InfinityProject (CC BY-SA 3.0): + default_mineral_diamond.png + +Splizard (CC BY-SA 3.0): + default_pine_sapling.png + default_pine_needles.png + +Zeg9 (CC BY-SA 3.0): + default_coal_block.png + +paramat (CC BY-SA 3.0): + wieldhand.png -- Copied from character.png by Jordach (CC BY-SA 3.0) + default_pinetree.png + default_pinetree_top.png + default_pinewood.png + default_acacia_leaves.png + default_acacia_leaves_simple.png + default_acacia_sapling.png + default_acacia_bush_sapling.png + default_pine_bush_sapling.png + default_acacia_tree.png + default_acacia_tree_top.png + default_acacia_wood.png + default_acacia_bush_stem.png + default_bush_stem.png + default_pine_bush_stem.png + default_junglewood.png + default_jungletree_top.png + default_sandstone_brick.png + default_obsidian_brick.png + default_stone_brick.png + default_desert_stone_brick.png + default_sandstone_block.png + default_obsidian_block.png + default_stone_block.png + default_desert_stone_block.png + default_river_water.png + default_river_water_source_animated.png + default_river_water_flowing_animated.png + default_dry_grass.png + default_dry_grass_side.png + default_dry_grass_*.png + default_grass_side.png -- Derived from a texture by TumeniNodes (CC-BY-SA 3.0) + default_mese_block.png + default_silver_sand.png + default_mese_post_light_side.png + default_mese_post_light_side_dark.png + default_mese_post_light_top.png + default_silver_sandstone.png -- Derived from a texture by GreenXenith (CC-BY-SA 3.0) + default_silver_sandstone_brick.png -- Derived from a texture by GreenXenith (CC-BY-SA 3.0) + default_silver_sandstone_block.png -- Derived from a texture by GreenXenith (CC-BY-SA 3.0) + default_bookshelf_slot.png -- Derived from a texture by Gambit (CC-BY-SA 3.0) + default_marram_grass_*.png -- Derived from textures by TumeniNodes (CC-BY-SA 3.0) + default_emergent_jungle_sapling.png + default_permafrost.png -- Derived from a texture by Neuromancer (CC BY-SA 3.0) + default_stones.png -- Derived from a texture by sofar (CC0 1.0) + default_stones_side.png -- Derived from a texture by sofar (CC0 1.0) + default_moss.png + default_moss_side.png + default_fence_rail_acacia_wood + default_fence_rail_aspen_wood -- Derived from a texture by sofar (CC BY-SA 3.0) + default_fence_rail_junglewood + default_fence_rail_pine_wood + default_fence_rail_wood -- Derived from a texture by BlockMen (CC BY-SA 3.0) + gui_hotbar.png + gui_hotbar_selected.png + +TumeniNodes (CC BY-SA 3.0): + default_desert_cobble.png -- Derived from a texture by brunob.santos (CC BY-SA 3.0) + default_coniferous_litter.png + default_coniferous_litter_side.png + default_grass.png + default_dry_dirt.png + +BlockMen (CC BY-SA 3.0): + default_aspen_leaves.png -- Derived from Sofar's texture + default_wood.png + default_clay_brick.png + default_iron_ingot.png + default_gold_ingot.png + default_tool_steelsword.png + default_diamond.png + default_tool_*.png + default_lava_source_animated.png + default_lava_flowing_animated.png + default_stick.png + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + default_mineral_mese.png + default_meselamp.png + gui_formbg.png + gui_furnace_arrow_bg.png + gui_furnace_arrow_fg.png + gui_hb_bg.png + +sofar (CC BY-SA 3.0): + default_aspen_sapling + default_aspen_tree + default_aspen_tree_top, derived from default_pine_tree_top (by paramat) + default_aspen_wood, derived from default_pine_wood (by paramat) + default_chest_inside + +sofar (CC0 1.0): + default_gravel.png -- Derived from Gambit's PixelBOX texture pack light gravel + +Neuromancer (CC BY-SA 3.0): + default_cobble.png, based on texture by Brane praefect + default_mossycobble.png, based on texture by Brane praefect + default_furnace_*.png + +Gambit (CC BY-SA 3.0): + default_bronze_ingot.png + default_copper_ingot.png + default_copper_lump.png + default_iron_lump.png + default_gold_lump.png + default_clay_lump.png + default_coal.png + default_grass_*.png + default_paper.png + default_diamond_block.png + default_ladder_steel.png + default_sign_wall_wood.png + default_flint.png + default_snow.png + default_snow_side.png + default_snowball.png + default_key.png + default_key_skeleton.png + default_book.png + +asl97 (CC BY-SA 3.0): + default_ice.png + +Pithydon (CC BY-SA 3.0) + default_coral_brown.png + default_coral_orange.png + default_coral_skeleton.png + +Ferk (CC0 1.0): + default_item_smoke.png + +npx (CC BY-SA 3.0): + default_rainforest_litter.png + default_rainforest_litter_side.png + +kaeza (CC-BY-SA 3.0): + default_desert_sandstone.png + default_desert_sandstone_brick.png + default_desert_sandstone_block.png + +kilbith (CC BY-SA 3.0): + default_steel_block.png + default_copper_block.png + default_bronze_block.png + default_gold_block.png + default_tin_block.png + default_mineral_tin.png + default_tin_ingot.png + default_tin_lump.png + +tobyplowy (CC BY-SA 3.0): + default_kelp.png + +CloudyProton (CC BY-SA 3.0): + default_book_written.png, based on default_book.png by Gambit + +Mossmanikin (CC BY-SA 3.0): + default_fern_*.png + +random-geek (CC BY-SA 3.0): + default_blueberries.png + default_blueberry_overlay.png + default_blueberry_bush_leaves.png, derived from default_bush_leaves (by paramat) + default_blueberry_bush_sapling.png + default_dirt.png -- Derived from a texture by Neuromancer (CC BY-SA 3.0) + +Krock (CC0 1.0): + default_glass.png + default_glass_detail.png + +Topywo (CC BY-SA 3.0) + default_coral_cyan.png + default_coral_green.png + default_coral_pink.png + +Extex101 (CC BY-SA 3.0) + default_large_cactus_seedling.png + default_dry_shrub.png -- Derived from the original texture by celeron55 + +An0n3m0us (CC BY-SA 3.0): + heart.png -- Derived from a texture by KevDoy (CC BY-SA 3.0) + bubble.png -- Derived from a texture by BlockMen (CC BY-SA 3.0) + + +Sounds +------ +Glass breaking sounds (CC BY 3.0): + 1: http://www.freesound.org/people/cmusounddesign/sounds/71947/ + 2: http://www.freesound.org/people/Tomlija/sounds/97669/ + 3: http://www.freesound.org/people/lsprice/sounds/88808/ + +Mito551 (sounds) (CC BY-SA 3.0): + default_dig_crumbly.*.ogg + default_dig_dig_immediate.ogg + default_dig_oddly_breakable_by_hand.ogg + default_dug_node.*.ogg + default_grass_footstep.1.ogg + default_grass_footstep.2.ogg + default_grass_footstep.3.ogg + default_gravel_footstep.*.ogg + default_place_node.*.ogg + default_place_node_hard.*.ogg + default_glass_footstep.ogg + default_wood_footstep.1.ogg + default_wood_footstep.2.ogg + default_dirt_footstep.1.ogg + default_dirt_footstep.2.ogg + default_glass_footstep.ogg + +Metal sounds: + default_dig_metal.ogg - yadronoff - CC-BY-3.0 + - https://www.freesound.org/people/yadronoff/sounds/320397/ + default_dug_metal.*.ogg - Iwan Gabovitch - qubodup - CC0 + - http://opengameart.org/users/qubodup + default_metal_footstep.*.ogg - (CC0 1.0) - CC0 1.0 + - https://freesound.org/people/mypantsfelldown/sounds/398937/ + default_place_node_metal.*.ogg - Ogrebane - CC0 + - http://opengameart.org/content/wood-and-metal-sound-effects-volume-2 + +Tool breaking sounds added by sofar: CC-BY-3.0 + default_tool_breaks.* - http://www.freesound.org/people/HerbertBoland/sounds/33206/ + +AGFX (CC BY 3.0): +https://www.freesound.org/people/AGFX/packs/1253/ + default_water_footstep.1.ogg + default_water_footstep.2.ogg + default_water_footstep.3.ogg +(default_water_footstep.4.ogg is silent) + +blukotek (CC0 1.0): +https://www.freesound.org/people/blukotek/sounds/251660/ + default_dig_snappy.ogg + +Chests sounds added by sofar, derived of several files mixed together: + default_chest_open.ogg + default_chest_close.ogg + - http://www.freesound.org/people/Sevin7/sounds/269722/ CC0 + - http://www.freesound.org/people/Percy%20Duke/sounds/23448/ CC-BY-3.0 + - http://www.freesound.org/people/kingsamas/sounds/135576/ CC-BY-3.0 + - http://www.freesound.org/people/bulbastre/sounds/126887/ CC-BY-3.0 + - http://www.freesound.org/people/Yoyodaman234/sounds/183541/ CC0 + +Ryding (CC0 1.0): +http://freesound.org/people/Ryding/sounds/94337/ + default_snow_footstep.*.ogg + +Ferk (CC0 1.0): + default_item_smoke.ogg, based on a sound by http://opengameart.org/users/bart + +sonictechtonic (CC BY 3.0): +https://www.freesound.org/people/sonictechtonic/sounds/241872/ + player_damage.ogg + +Sheyvan (CC0 1.0): +https://freesound.org/people/Sheyvan/sounds/476113/ + default_dig_choppy.*.ogg + +lolamadeus (CC0 1.0): +https://freesound.org/people/lolamadeus/sounds/179341/ + default_gravel_dig.*.ogg + default_gravel_dug.*.ogg + +Benboncan (CC BY 3.0): +https://freesound.org/people/Benboncan/sounds/71823/ + default_dig_cracky.*.ogg + +Erdie (CC BY 3.0): +https://freesound.org/people/Erdie/sounds/41579/ + default_hard_footstep.*.ogg + +worthahep88 (CC0 1.0): +https://freesound.org/people/worthahep88/sounds/319224/ + default_sand_footstep.*.ogg + +dheming (CC BY 3.0): +https://freesound.org/people/dheming/sounds/268023/ + default_ice_dig.*.ogg + +InspectorJ (CC BY 3.0): +https://freesound.org/people/InspectorJ/sounds/416967/ + default_ice_footstep.*.ogg + +Angel_Perez_Grandi (CC BY 3.0): +https://freesound.org/people/Angel_Perez_Grandi/sounds/49190/ + default_ice_dug.ogg + +iankath (CC0 1.0) +https://freesound.org/people/iankath/sounds/173991/ + default_furnace_active.ogg + + +Models +------ +sofar (CC BY-SA 3.0): + chest_open.obj + torch_ceiling.obj + torch_floor.obj + torch_wall.obj + + +Schematics +---------- +paramat (CC BY-SA 3.0): + acacia_bush.mts + acacia_tree.mts + acacia_tree_from_sapling.mts + apple_tree.mts + apple_tree_from_sapling.mts + aspen_tree.mts + aspen_tree_from_sapling.mts + bush.mts + emergent_jungle_tree.mts + emergent_jungle_tree_from_sapling.mts + jungle_tree.mts + jungle_tree_from_sapling.mts + large_cactus.mts + papyrus.mts + pine_tree.mts + pine_tree_from_sapling.mts + snowy_pine_tree_from_sapling.mts + small_pine_tree.mts + small_pine_tree_from_sapling.mts + snowy_small_pine_tree_from_sapling.mts + +Shara RedCat (CC BY-SA 3.0): + acacia_log.mts + apple_log.mts + aspen_log.mts + jungle_log.mts + pine_log.mts + +TumeniNodes (CC BY-SA 3.0): + pine_bush.mts + +random-geek (CC BY-SA 3.0): + blueberry_bush.mts diff --git a/mods/default/aliases.lua b/mods/default/aliases.lua new file mode 100644 index 00000000..6db3fc8d --- /dev/null +++ b/mods/default/aliases.lua @@ -0,0 +1,77 @@ +-- mods/default/aliases.lua + +-- Aliases to support loading worlds using nodes following the old naming convention +-- These can also be helpful when using chat commands, for example /giveme +minetest.register_alias("stone", "default:stone") +minetest.register_alias("stone_with_coal", "default:stone_with_coal") +minetest.register_alias("stone_with_iron", "default:stone_with_iron") +minetest.register_alias("dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("dirt_with_grass_footsteps", "default:dirt_with_grass_footsteps") +minetest.register_alias("dirt", "default:dirt") +minetest.register_alias("sand", "default:sand") +minetest.register_alias("gravel", "default:gravel") +minetest.register_alias("sandstone", "default:sandstone") +minetest.register_alias("clay", "default:clay") +minetest.register_alias("brick", "default:brick") +minetest.register_alias("tree", "default:tree") +minetest.register_alias("jungletree", "default:jungletree") +minetest.register_alias("junglegrass", "default:junglegrass") +minetest.register_alias("leaves", "default:leaves") +minetest.register_alias("cactus", "default:cactus") +minetest.register_alias("papyrus", "default:papyrus") +minetest.register_alias("bookshelf", "default:bookshelf") +minetest.register_alias("glass", "default:glass") +minetest.register_alias("wooden_fence", "default:fence_wood") +minetest.register_alias("rail", "carts:rail") +minetest.register_alias("ladder", "default:ladder_wood") +minetest.register_alias("wood", "default:wood") +minetest.register_alias("mese", "default:mese") +minetest.register_alias("cloud", "default:cloud") +minetest.register_alias("water_flowing", "default:water_flowing") +minetest.register_alias("water_source", "default:water_source") +minetest.register_alias("lava_flowing", "default:lava_flowing") +minetest.register_alias("lava_source", "default:lava_source") +minetest.register_alias("torch", "default:torch") +minetest.register_alias("sign_wall", "default:sign_wall_wood") +minetest.register_alias("furnace", "default:furnace") +minetest.register_alias("chest", "default:chest") +minetest.register_alias("locked_chest", "default:chest_locked") +minetest.register_alias("cobble", "default:cobble") +minetest.register_alias("mossycobble", "default:mossycobble") +minetest.register_alias("steelblock", "default:steelblock") +minetest.register_alias("sapling", "default:sapling") +minetest.register_alias("apple", "default:apple") + +minetest.register_alias("WPick", "default:pick_wood") +minetest.register_alias("STPick", "default:pick_stone") +minetest.register_alias("SteelPick", "default:pick_steel") +minetest.register_alias("MesePick", "default:pick_mese") +minetest.register_alias("WShovel", "default:shovel_wood") +minetest.register_alias("STShovel", "default:shovel_stone") +minetest.register_alias("SteelShovel", "default:shovel_steel") +minetest.register_alias("WAxe", "default:axe_wood") +minetest.register_alias("STAxe", "default:axe_stone") +minetest.register_alias("SteelAxe", "default:axe_steel") +minetest.register_alias("WSword", "default:sword_wood") +minetest.register_alias("STSword", "default:sword_stone") +minetest.register_alias("SteelSword", "default:sword_steel") + +minetest.register_alias("Stick", "default:stick") +minetest.register_alias("paper", "default:paper") +minetest.register_alias("book", "default:book") +minetest.register_alias("lump_of_coal", "default:coal_lump") +minetest.register_alias("lump_of_iron", "default:iron_lump") +minetest.register_alias("lump_of_clay", "default:clay_lump") +minetest.register_alias("steel_ingot", "default:steel_ingot") +minetest.register_alias("clay_brick", "default:clay_brick") +minetest.register_alias("snow", "default:snow") + +-- 'mese_block' was used for a while for the block form of mese +minetest.register_alias("default:mese_block", "default:mese") + +-- Aliases for corrected pine node names +minetest.register_alias("default:pinetree", "default:pine_tree") +minetest.register_alias("default:pinewood", "default:pine_wood") + +minetest.register_alias("default:ladder", "default:ladder_wood") +minetest.register_alias("default:sign_wall", "default:sign_wall_wood") diff --git a/mods/default/chests.lua b/mods/default/chests.lua new file mode 100644 index 00000000..f4462ae7 --- /dev/null +++ b/mods/default/chests.lua @@ -0,0 +1,360 @@ +default.chest = {} + +-- support for MT game translation. +local S = default.get_translator + +function default.chest.get_chest_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," .. pos.z + local formspec = + "size[8,9]" .. + "list[nodemeta:" .. spos .. ";main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[nodemeta:" .. spos .. ";main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +function default.chest.chest_lid_obstructed(pos) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local def = minetest.registered_nodes[minetest.get_node(above).name] + -- allow ladders, signs, wallmounted things and torches to not obstruct + if def and + (def.drawtype == "airlike" or + def.drawtype == "signlike" or + def.drawtype == "torchlike" or + (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then + return false + end + return true +end + +function default.chest.chest_lid_close(pn) + local chest_open_info = default.chest.open_chests[pn] + local pos = chest_open_info.pos + local sound = chest_open_info.sound + local swap = chest_open_info.swap + + default.chest.open_chests[pn] = nil + for k, v in pairs(default.chest.open_chests) do + if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then + return true + end + end + + local node = minetest.get_node(pos) + minetest.after(0.2, minetest.swap_node, pos, { name = swap, + param2 = node.param2 }) + minetest.sound_play(sound, {gain = 0.3, pos = pos, + max_hear_distance = 10}, true) +end + +default.chest.open_chests = {} + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "default:chest" then + return + end + if not player or not fields.quit then + return + end + local pn = player:get_player_name() + + if not default.chest.open_chests[pn] then + return + end + + default.chest.chest_lid_close(pn) + return true +end) + +minetest.register_on_leaveplayer(function(player) + local pn = player:get_player_name() + if default.chest.open_chests[pn] then + default.chest.chest_lid_close(pn) + end +end) + +function default.chest.register_chest(prefixed_name, d) + local name = prefixed_name:sub(1,1) == ':' and prefixed_name:sub(2,-1) or prefixed_name + local def = table.copy(d) + def.drawtype = "mesh" + def.visual = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.legacy_facedir_simple = true + def.is_ground_content = false + + if def.protected then + def.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Locked Chest")) + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end + def.after_place_node = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", S("Locked Chest (owned by @1)", meta:get_string("owner"))) + end + def.can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and + default.can_interact_with_node(player, pos) + end + def.allow_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return count + end + def.allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return stack:get_count() + end + def.allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return stack:get_count() + end + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + if not default.can_interact_with_node(clicker, pos) then + return itemstack + end + + minetest.sound_play(def.sound_open, {gain = 0.3, + pos = pos, max_hear_distance = 10}, true) + if not default.chest.chest_lid_obstructed(pos) then + minetest.swap_node(pos, + { name = name .. "_open", + param2 = node.param2 }) + end + minetest.after(0.2, minetest.show_formspec, + clicker:get_player_name(), + "default:chest", default.chest.get_chest_formspec(pos)) + default.chest.open_chests[clicker:get_player_name()] = { pos = pos, + sound = def.sound_close, swap = name } + end + def.on_blast = function() end + def.on_key_use = function(pos, player) + local secret = minetest.get_meta(pos):get_string("key_lock_secret") + local itemstack = player:get_wielded_item() + local key_meta = itemstack:get_meta() + + if itemstack:get_metadata() == "" then + return + end + + if key_meta:get_string("secret") == "" then + key_meta:set_string("secret", minetest.parse_json(itemstack:get_metadata()).secret) + itemstack:set_metadata("") + end + + if secret ~= key_meta:get_string("secret") then + return + end + + minetest.show_formspec( + player:get_player_name(), + "default:chest_locked", + default.chest.get_chest_formspec(pos) + ) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pn = player:get_player_name() + + -- verify placer is owner of lockable chest + if owner ~= pn then + minetest.record_protection_violation(pos, pn) + minetest.chat_send_player(pn, S("You do not own this chest.")) + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, S("a locked chest"), owner + end + else + def.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Chest")) + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end + def.can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end + def.on_rightclick = function(pos, node, clicker) + minetest.sound_play(def.sound_open, {gain = 0.3, pos = pos, + max_hear_distance = 10}, true) + if not default.chest.chest_lid_obstructed(pos) then + minetest.swap_node(pos, { + name = name .. "_open", + param2 = node.param2 }) + end + minetest.after(0.2, minetest.show_formspec, + clicker:get_player_name(), + "default:chest", default.chest.get_chest_formspec(pos)) + default.chest.open_chests[clicker:get_player_name()] = { pos = pos, + sound = def.sound_close, swap = name } + end + def.on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "main", drops) + drops[#drops+1] = name + minetest.remove_node(pos) + return drops + end + end + + def.on_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in chest at " .. minetest.pos_to_string(pos)) + end + def.on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves " .. stack:get_name() .. + " to chest at " .. minetest.pos_to_string(pos)) + end + def.on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes " .. stack:get_name() .. + " from chest at " .. minetest.pos_to_string(pos)) + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_opened.mesh = "chest_open.obj" + for i = 1, #def_opened.tiles do + if type(def_opened.tiles[i]) == "string" then + def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} + elseif def_opened.tiles[i].backface_culling == nil then + def_opened.tiles[i].backface_culling = true + end + end + def_opened.drop = name + def_opened.groups.not_in_creative_inventory = 1 + def_opened.selection_box = { + type = "fixed", + fixed = { -1/2, -1/2, -1/2, 1/2, 3/16, 1/2 }, + } + def_opened.can_dig = function() + return false + end + def_opened.on_blast = function() end + + def_closed.mesh = nil + def_closed.drawtype = nil + def_closed.tiles[6] = def.tiles[5] -- swap textures around for "normal" + def_closed.tiles[5] = def.tiles[3] -- drawtype to make them match the mesh + def_closed.tiles[3] = def.tiles[3].."^[transformFX" + + minetest.register_node(prefixed_name, def_closed) + minetest.register_node(prefixed_name .. "_open", def_opened) + + -- convert old chests to this new variant + if name == "default:chest" or name == "default:chest_locked" then + minetest.register_lbm({ + label = "update chests to opening chests", + name = "default:upgrade_" .. name:sub(9,-1) .. "_v2", + nodenames = {name}, + action = function(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", nil) + local inv = meta:get_inventory() + local list = inv:get_list("default:chest") + if list then + inv:set_size("main", 8*4) + inv:set_list("main", list) + inv:set_list("default:chest", nil) + end + end + }) + end +end + +default.chest.register_chest("default:chest", { + description = S("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" + }, + sounds = default.node_sound_wood_defaults(), + sound_open = "default_chest_open", + sound_close = "default_chest_close", + groups = {choppy = 2, oddly_breakable_by_hand = 2}, +}) + +default.chest.register_chest("default:chest_locked", { + description = S("Locked Chest"), + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_lock.png", + "default_chest_inside.png" + }, + 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 = true, +}) + +minetest.register_craft({ + output = "default:chest", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +minetest.register_craft({ + output = "default:chest_locked", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "default:steel_ingot", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "default:chest_locked", + recipe = {"default:chest", "default:steel_ingot"}, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest_locked", + burntime = 30, +}) diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua new file mode 100644 index 00000000..ecbe9d12 --- /dev/null +++ b/mods/default/crafting.lua @@ -0,0 +1,737 @@ +-- mods/default/crafting.lua + +minetest.register_craft({ + output = "default:wood 4", + recipe = { + {"default:tree"}, + } +}) + +minetest.register_craft({ + output = "default:junglewood 4", + recipe = { + {"default:jungletree"}, + } +}) + +minetest.register_craft({ + output = "default:pine_wood 4", + recipe = { + {"default:pine_tree"}, + } +}) + +minetest.register_craft({ + output = "default:acacia_wood 4", + recipe = { + {"default:acacia_tree"}, + } +}) + +minetest.register_craft({ + output = "default:aspen_wood 4", + recipe = { + {"default:aspen_tree"}, + } +}) + +minetest.register_craft({ + output = "default:wood", + recipe = { + {"default:bush_stem"}, + } +}) + +minetest.register_craft({ + output = "default:acacia_wood", + recipe = { + {"default:acacia_bush_stem"}, + } +}) + +minetest.register_craft({ + output = "default:pine_wood", + recipe = { + {"default:pine_bush_stem"}, + } +}) + +minetest.register_craft({ + output = "default:sign_wall_steel 3", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:sign_wall_wood 3", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + {"", "group:stick", ""}, + } +}) + +minetest.register_craft({ + output = "default:coalblock", + recipe = { + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + } +}) + +minetest.register_craft({ + output = "default:steelblock", + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:copperblock", + recipe = { + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:tinblock", + recipe = { + {"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}, + {"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}, + {"default:tin_ingot", "default:tin_ingot", "default:tin_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:bronzeblock", + recipe = { + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:bronze_ingot 9", + recipe = { + {"default:bronzeblock"}, + } +}) + +minetest.register_craft({ + output = "default:goldblock", + recipe = { + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:diamondblock", + recipe = { + {"default:diamond", "default:diamond", "default:diamond"}, + {"default:diamond", "default:diamond", "default:diamond"}, + {"default:diamond", "default:diamond", "default:diamond"}, + } +}) + +minetest.register_craft({ + output = "default:sandstone", + recipe = { + {"default:sand", "default:sand"}, + {"default:sand", "default:sand"}, + } +}) + +minetest.register_craft({ + output = "default:sand 4", + recipe = { + {"default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:sandstonebrick 4", + recipe = { + {"default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:sandstone_block 9", + recipe = { + {"default:sandstone", "default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone", + recipe = { + {"default:desert_sand", "default:desert_sand"}, + {"default:desert_sand", "default:desert_sand"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sand 4", + recipe = { + {"default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone_brick 4", + recipe = { + {"default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone_block 9", + recipe = { + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone", + recipe = { + {"default:silver_sand", "default:silver_sand"}, + {"default:silver_sand", "default:silver_sand"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sand 4", + recipe = { + {"default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone_brick 4", + recipe = { + {"default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone_block 9", + recipe = { + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:clay", + recipe = { + {"default:clay_lump", "default:clay_lump"}, + {"default:clay_lump", "default:clay_lump"}, + } +}) + +minetest.register_craft({ + output = "default:brick", + recipe = { + {"default:clay_brick", "default:clay_brick"}, + {"default:clay_brick", "default:clay_brick"}, + } +}) + +minetest.register_craft({ + output = "default:bookshelf", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"default:book", "default:book", "default:book"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +minetest.register_craft({ + output = "default:ladder_wood 5", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + {"group:stick", "", "group:stick"}, + } +}) + +minetest.register_craft({ + output = "default:ladder_steel 15", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:mese", + recipe = { + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + } +}) + +minetest.register_craft({ + output = "default:meselamp", + recipe = { + {"default:glass"}, + {"default:mese_crystal"}, + } +}) + +minetest.register_craft({ + output = "default:obsidian", + recipe = { + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + } +}) + +minetest.register_craft({ + output = "default:obsidianbrick 4", + recipe = { + {"default:obsidian", "default:obsidian"}, + {"default:obsidian", "default:obsidian"} + } +}) + +minetest.register_craft({ + output = "default:obsidian_block 9", + recipe = { + {"default:obsidian", "default:obsidian", "default:obsidian"}, + {"default:obsidian", "default:obsidian", "default:obsidian"}, + {"default:obsidian", "default:obsidian", "default:obsidian"}, + } +}) + +minetest.register_craft({ + output = "default:stonebrick 4", + recipe = { + {"default:stone", "default:stone"}, + {"default:stone", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "default:stone_block 9", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_stonebrick 4", + recipe = { + {"default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_stone_block 9", + recipe = { + {"default:desert_stone", "default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone", "default:desert_stone"}, + } +}) + +minetest.register_craft({ + output = "default:snowblock", + recipe = { + {"default:snow", "default:snow", "default:snow"}, + {"default:snow", "default:snow", "default:snow"}, + {"default:snow", "default:snow", "default:snow"}, + } +}) + +minetest.register_craft({ + output = "default:snow 9", + recipe = { + {"default:snowblock"}, + } +}) + +minetest.register_craft({ + output = "default:emergent_jungle_sapling", + recipe = { + {"default:junglesapling", "default:junglesapling", "default:junglesapling"}, + {"default:junglesapling", "default:junglesapling", "default:junglesapling"}, + {"default:junglesapling", "default:junglesapling", "default:junglesapling"}, + } +}) + +minetest.register_craft({ + output = "default:large_cactus_seedling", + recipe = { + {"", "default:cactus", ""}, + {"default:cactus", "default:cactus", "default:cactus"}, + {"", "default:cactus", ""}, + } +}) + + +-- +-- Crafting (tool repair) +-- + +minetest.register_craft({ + type = "toolrepair", + additional_wear = -0.02, +}) + + +-- +-- Cooking recipes +-- + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "group:sand", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:obsidian_glass", + recipe = "default:obsidian_shard", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:mossycobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:desert_stone", + recipe = "default:desert_cobble", +}) + + +-- +-- Fuels +-- + +-- Support use of group:tree, includes default:tree which has the same burn time +minetest.register_craft({ + type = "fuel", + recipe = "group:tree", + burntime = 30, +}) + +-- Burn time for all woods are in order of wood density, +-- which is also the order of wood colour darkness: +-- aspen, pine, apple, acacia, jungle + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_tree", + burntime = 22, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_tree", + burntime = 26, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_tree", + burntime = 34, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:jungletree", + burntime = 38, +}) + + +-- Support use of group:wood, includes default:wood which has the same burn time +minetest.register_craft({ + type = "fuel", + recipe = "group:wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_wood", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglewood", + burntime = 9, +}) + + +-- Support use of group:sapling, includes default:sapling which has the same burn time +minetest.register_craft({ + type = "fuel", + recipe = "group:sapling", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_sapling", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_sapling", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_bush_sapling", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_sapling", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_sapling", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_sapling", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglesapling", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:emergent_jungle_sapling", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_aspen_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_pine_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_acacia_wood", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_junglewood", + burntime = 9, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_rail_aspen_wood", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_rail_pine_wood", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_rail_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_rail_acacia_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_rail_junglewood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_stem", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_stem", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_bush_stem", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglegrass", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:leaves", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:cactus", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:large_cactus_seedling", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:papyrus", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bookshelf", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:ladder_wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:lava_source", + burntime = 60, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sign_wall_wood", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coalblock", + burntime = 370, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:dry_grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fern_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:marram_grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:dry_shrub", + burntime = 2, +}) diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua new file mode 100644 index 00000000..efb26ef3 --- /dev/null +++ b/mods/default/craftitems.lua @@ -0,0 +1,539 @@ +-- mods/default/craftitems.lua + +-- support for MT game translation. +local S = default.get_translator + +local lpp = 14 -- Lines per book's page +local function book_on_use(itemstack, user) + local player_name = user:get_player_name() + local meta = itemstack:get_meta() + local title, text, owner = "", "", player_name + local page, page_max, lines, string = 1, 1, {}, "" + + -- Backwards compatibility + local old_data = minetest.deserialize(itemstack:get_metadata()) + if old_data then + meta:from_table({ fields = old_data }) + end + + local data = meta:to_table().fields + + if data.owner then + title = data.title + text = data.text + owner = data.owner + + for str in (text .. "\n"):gmatch("([^\n]*)[\n]") do + lines[#lines+1] = str + end + + if data.page then + page = data.page + page_max = data.page_max + + for i = ((lpp * page) - lpp) + 1, lpp * page do + if not lines[i] then break end + string = string .. lines[i] .. "\n" + end + end + end + + local formspec + local esc = minetest.formspec_escape + if owner == player_name then + formspec = "size[8,8]" .. + "field[0.5,1;7.5,0;title;" .. esc(S("Title:")) .. ";" .. + esc(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;text;" .. esc(S("Contents:")) .. ";" .. + esc(text) .. "]" .. + "button_exit[2.5,7.5;3,1;save;" .. esc(S("Save")) .. "]" + else + formspec = "size[8,8]" .. + "label[0.5,0.5;" .. esc(S("by @1", owner)) .. "]" .. + "tablecolumns[color;text]" .. + "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. + "table[0.4,0;7,0.5;title;#FFFF00," .. esc(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;;" .. + minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. + "button[2.4,7.6;0.8,0.8;book_prev;<]" .. + "label[3.2,7.7;" .. esc(S("Page @1 of @2", page, page_max)) .. "]" .. + "button[4.9,7.6;0.8,0.8;book_next;>]" + end + + minetest.show_formspec(player_name, "default:book", formspec) + return itemstack +end + +local max_text_size = 10000 +local max_title_size = 80 +local short_title_size = 35 +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "default:book" then return end + local inv = player:get_inventory() + local stack = player:get_wielded_item() + + if fields.save and fields.title and fields.text + and fields.title ~= "" and fields.text ~= "" then + local new_stack, data + if stack:get_name() ~= "default:book_written" then + local count = stack:get_count() + if count == 1 then + stack:set_name("default:book_written") + else + stack:set_count(count - 1) + new_stack = ItemStack("default:book_written") + end + else + data = stack:get_meta():to_table().fields + end + + if data and data.owner and data.owner ~= player:get_player_name() then + return + end + + if not data then data = {} end + data.title = fields.title:sub(1, max_title_size) + data.owner = player:get_player_name() + local short_title = data.title + -- Don't bother triming the title if the trailing dots would make it longer + if #short_title > short_title_size + 3 then + short_title = short_title:sub(1, short_title_size) .. "..." + end + data.description = S("\"@1\" by @2", short_title, data.owner) + data.text = fields.text:sub(1, max_text_size) + data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n") + data.page = 1 + data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp) + + if new_stack then + new_stack:get_meta():from_table({ fields = data }) + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(player:get_pos(), new_stack) + end + else + stack:get_meta():from_table({ fields = data }) + end + + elseif fields.book_next or fields.book_prev then + local data = stack:get_meta():to_table().fields + if not data or not data.page then + return + end + + data.page = tonumber(data.page) + data.page_max = tonumber(data.page_max) + + if fields.book_next then + data.page = data.page + 1 + if data.page > data.page_max then + data.page = 1 + end + else + data.page = data.page - 1 + if data.page == 0 then + data.page = data.page_max + end + end + + stack:get_meta():from_table({fields = data}) + stack = book_on_use(stack, player) + end + + -- Update stack + player:set_wielded_item(stack) +end) + +minetest.register_craftitem("default:skeleton_key", { + description = S("Skeleton Key"), + inventory_image = "default_key_skeleton.png", + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local pos = pointed_thing.under + local node = minetest.get_node(pos) + + if not node then + return itemstack + end + + local node_reg = minetest.registered_nodes[node.name] + local on_skeleton_key_use = node_reg and node_reg.on_skeleton_key_use + if not on_skeleton_key_use then + return itemstack + end + + -- make a new key secret in case the node callback needs it + local random = math.random + local newsecret = string.format( + "%04x%04x%04x%04x", + random(2^16) - 1, random(2^16) - 1, + random(2^16) - 1, random(2^16) - 1) + + local secret, _, _ = on_skeleton_key_use(pos, user, newsecret) + + if secret then + local inv = minetest.get_inventory({type="player", name=user:get_player_name()}) + + -- update original itemstack + itemstack:take_item() + + -- finish and return the new key + local new_stack = ItemStack("default:key") + local meta = new_stack:get_meta() + meta:set_string("secret", secret) + meta:set_string("description", S("Key to @1's @2", user:get_player_name(), + minetest.registered_nodes[node.name].description)) + + if itemstack:get_count() == 0 then + itemstack = new_stack + else + if inv:add_item("main", new_stack):get_count() > 0 then + minetest.add_item(user:get_pos(), new_stack) + end -- else: added to inventory successfully + end + + return itemstack + end + end +}) + +-- +-- Craftitem registry +-- + +minetest.register_craftitem("default:blueberries", { + description = S("Blueberries"), + inventory_image = "default_blueberries.png", + groups = {food_blueberries = 1, food_berry = 1}, + on_use = minetest.item_eat(2), +}) + +minetest.register_craftitem("default:book", { + description = S("Book"), + inventory_image = "default_book.png", + groups = {book = 1, flammable = 3}, + on_use = book_on_use, +}) + +minetest.register_craftitem("default:book_written", { + description = S("Book with Text"), + inventory_image = "default_book_written.png", + groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, + stack_max = 1, + on_use = book_on_use, +}) + +minetest.register_craftitem("default:bronze_ingot", { + description = S("Bronze Ingot"), + inventory_image = "default_bronze_ingot.png" +}) + +minetest.register_craftitem("default:clay_brick", { + description = S("Clay Brick"), + inventory_image = "default_clay_brick.png", +}) + +minetest.register_craftitem("default:clay_lump", { + description = S("Clay Lump"), + inventory_image = "default_clay_lump.png", +}) + +minetest.register_craftitem("default:coal_lump", { + description = S("Coal Lump"), + inventory_image = "default_coal_lump.png", + groups = {coal = 1, flammable = 1} +}) + +minetest.register_craftitem("default:copper_ingot", { + description = S("Copper Ingot"), + inventory_image = "default_copper_ingot.png" +}) + +minetest.register_craftitem("default:copper_lump", { + description = S("Copper Lump"), + inventory_image = "default_copper_lump.png" +}) + +minetest.register_craftitem("default:diamond", { + description = S("Diamond"), + inventory_image = "default_diamond.png", +}) + +minetest.register_craftitem("default:flint", { + description = S("Flint"), + inventory_image = "default_flint.png" +}) + +minetest.register_craftitem("default:gold_ingot", { + description = S("Gold Ingot"), + inventory_image = "default_gold_ingot.png" +}) + +minetest.register_craftitem("default:gold_lump", { + description = S("Gold Lump"), + inventory_image = "default_gold_lump.png" +}) + +minetest.register_craftitem("default:iron_lump", { + description = S("Iron Lump"), + inventory_image = "default_iron_lump.png" +}) + +minetest.register_craftitem("default:mese_crystal", { + description = S("Mese Crystal"), + inventory_image = "default_mese_crystal.png", +}) + +minetest.register_craftitem("default:mese_crystal_fragment", { + description = S("Mese Crystal Fragment"), + inventory_image = "default_mese_crystal_fragment.png", +}) + +minetest.register_craftitem("default:obsidian_shard", { + description = S("Obsidian Shard"), + inventory_image = "default_obsidian_shard.png", +}) + +minetest.register_craftitem("default:paper", { + description = S("Paper"), + inventory_image = "default_paper.png", + groups = {flammable = 3}, +}) + +minetest.register_craftitem("default:steel_ingot", { + description = S("Steel Ingot"), + inventory_image = "default_steel_ingot.png" +}) + +minetest.register_craftitem("default:stick", { + description = S("Stick"), + inventory_image = "default_stick.png", + groups = {stick = 1, flammable = 2}, +}) + +minetest.register_craftitem("default:tin_ingot", { + description = S("Tin Ingot"), + inventory_image = "default_tin_ingot.png" +}) + +minetest.register_craftitem("default:tin_lump", { + description = S("Tin Lump"), + inventory_image = "default_tin_lump.png" +}) + +-- +-- Crafting recipes +-- + +minetest.register_craft({ + output = "default:book", + recipe = { + {"default:paper"}, + {"default:paper"}, + {"default:paper"}, + } +}) + +default.register_craft_metadata_copy("default:book", "default:book_written") + +minetest.register_craft({ + output = "default:bronze_ingot 9", + recipe = { + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:clay_brick 4", + recipe = { + {"default:brick"}, + } +}) + +minetest.register_craft({ + output = "default:clay_lump 4", + recipe = { + {"default:clay"}, + } +}) + +minetest.register_craft({ + output = "default:coal_lump 9", + recipe = { + {"default:coalblock"}, + } +}) + +minetest.register_craft({ + output = "default:copper_ingot 9", + recipe = { + {"default:copperblock"}, + } +}) + +minetest.register_craft({ + output = "default:diamond 9", + recipe = { + {"default:diamondblock"}, + } +}) + +minetest.register_craft({ + output = "default:gold_ingot 9", + recipe = { + {"default:goldblock"}, + } +}) + +minetest.register_craft({ + output = "default:mese_crystal", + recipe = { + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + } +}) + +minetest.register_craft({ + output = "default:mese_crystal 9", + recipe = { + {"default:mese"}, + } +}) + +minetest.register_craft({ + output = "default:mese_crystal_fragment 9", + recipe = { + {"default:mese_crystal"}, + } +}) + +minetest.register_craft({ + output = "default:obsidian_shard 9", + recipe = { + {"default:obsidian"} + } +}) + +minetest.register_craft({ + output = "default:paper", + recipe = { + {"default:papyrus", "default:papyrus", "default:papyrus"}, + } +}) + +minetest.register_craft({ + output = "default:skeleton_key", + recipe = { + {"default:gold_ingot"}, + } +}) + +minetest.register_craft({ + output = "default:steel_ingot 9", + recipe = { + {"default:steelblock"}, + } +}) + +minetest.register_craft({ + output = "default:stick 4", + recipe = { + {"group:wood"}, + } +}) + +minetest.register_craft({ + output = "default:tin_ingot 9", + recipe = { + {"default:tinblock"}, + } +}) + +-- +-- Cooking recipes +-- + +minetest.register_craft({ + type = "cooking", + output = "default:clay_brick", + recipe = "default:clay_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:copper_ingot", + recipe = "default:copper_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:gold_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:key", + cooktime = 5, +}) + +minetest.register_craft({ + type = "cooking", + output = "default:gold_ingot", + recipe = "default:skeleton_key", + cooktime = 5, +}) + +minetest.register_craft({ + type = "cooking", + output = "default:steel_ingot", + recipe = "default:iron_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:tin_ingot", + recipe = "default:tin_lump", +}) + +-- +-- Fuels +-- + +minetest.register_craft({ + type = "fuel", + recipe = "default:book", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:book_written", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coal_lump", + burntime = 40, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:paper", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:stick", + burntime = 1, +}) diff --git a/mods/default/functions.lua b/mods/default/functions.lua new file mode 100644 index 00000000..1e46c45e --- /dev/null +++ b/mods/default/functions.lua @@ -0,0 +1,755 @@ +-- +-- Sounds +-- + +function default.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "", gain = 1.0} + table.dug = table.dug or + {name = "default_dug_node", gain = 0.25} + table.place = table.place or + {name = "default_place_node_hard", gain = 1.0} + return table +end + +function default.node_sound_stone_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_hard_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_hard_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_dirt_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_dirt_footstep", gain = 0.4} + table.dug = table.dug or + {name = "default_dirt_footstep", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_sand_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_sand_footstep", gain = 0.05} + table.dug = table.dug or + {name = "default_sand_footstep", gain = 0.15} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_gravel_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_gravel_footstep", gain = 0.1} + table.dig = table.dig or + {name = "default_gravel_dig", gain = 0.35} + table.dug = table.dug or + {name = "default_gravel_dug", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_wood_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_wood_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_grass_footstep", gain = 0.45} + table.dug = table.dug or + {name = "default_grass_footstep", gain = 0.7} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_glass_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_glass_footstep", gain = 0.3} + table.dig = table.dig or + {name = "default_glass_footstep", gain = 0.5} + table.dug = table.dug or + {name = "default_break_glass", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_ice_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_ice_footstep", gain = 0.3} + table.dig = table.dig or + {name = "default_ice_dig", gain = 0.5} + table.dug = table.dug or + {name = "default_ice_dug", gain = 0.5} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_metal_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_metal_footstep", gain = 0.4} + table.dig = table.dig or + {name = "default_dig_metal", gain = 0.5} + table.dug = table.dug or + {name = "default_dug_metal", gain = 0.5} + table.place = table.place or + {name = "default_place_node_metal", gain = 0.5} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_water_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_water_footstep", gain = 0.2} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_snow_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_snow_footstep", gain = 0.2} + table.dig = table.dig or + {name = "default_snow_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_snow_footstep", gain = 0.3} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + + +-- +-- Lavacooling +-- + +default.cool_lava = function(pos, node) + if node.name == "default:lava_source" then + minetest.set_node(pos, {name = "default:obsidian"}) + else -- Lava flowing + minetest.set_node(pos, {name = "default:stone"}) + end + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.25}, true) +end + +if minetest.settings:get_bool("enable_lavacooling") ~= false then + minetest.register_abm({ + label = "Lava cooling", + nodenames = {"default:lava_source", "default:lava_flowing"}, + neighbors = {"group:cools_lava", "group:water"}, + interval = 2, + chance = 2, + catch_up = false, + action = function(...) + default.cool_lava(...) + end, + }) +end + + +-- +-- Optimized helper to put all items in an inventory into a drops list +-- + +function default.get_inventory_drops(pos, inventory, drops) + local inv = minetest.get_meta(pos):get_inventory() + local n = #drops + for i = 1, inv:get_size(inventory) do + local stack = inv:get_stack(inventory, i) + if stack:get_count() > 0 then + drops[n+1] = stack:to_table() + n = n + 1 + end + end +end + + +-- +-- Papyrus and cactus growing +-- + +-- Wrapping the functions in ABM action is necessary to make overriding them possible + +function default.grow_cactus(pos, node) + if node.param2 >= 4 then + return + end + pos.y = pos.y - 1 + if minetest.get_item_group(minetest.get_node(pos).name, "sand") == 0 then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:cactus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:cactus"}) + return true +end + +function default.grow_papyrus(pos, node) + pos.y = pos.y - 1 + local name = minetest.get_node(pos).name + if name ~= "default:dirt" and + name ~= "default:dirt_with_grass" and + name ~= "default:dirt_with_dry_grass" and + name ~= "default:dirt_with_rainforest_litter" and + name ~= "default:dry_dirt" and + name ~= "default:dry_dirt_with_dry_grass" then + return + end + if not minetest.find_node_near(pos, 3, {"group:water"}) then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:papyrus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:papyrus"}) + return true +end + +minetest.register_abm({ + label = "Grow cactus", + nodenames = {"default:cactus"}, + neighbors = {"group:sand"}, + interval = 12, + chance = 83, + action = function(...) + default.grow_cactus(...) + end +}) + +minetest.register_abm({ + label = "Grow papyrus", + nodenames = {"default:papyrus"}, + -- Grows on the dirt and surface dirt nodes of the biomes papyrus appears in, + -- including the old savanna nodes. + -- 'default:dirt_with_grass' is here only because it was allowed before. + neighbors = { + "default:dirt", + "default:dirt_with_grass", + "default:dirt_with_dry_grass", + "default:dirt_with_rainforest_litter", + "default:dry_dirt", + "default:dry_dirt_with_dry_grass", + }, + interval = 14, + chance = 71, + action = function(...) + default.grow_papyrus(...) + end +}) + + +-- +-- Dig upwards +-- + +function default.dig_up(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y + 1, z = pos.z} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end + + +-- +-- Fence registration helper +-- +local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0 + +function default.register_fence(name, def) + minetest.register_craft({ + output = name .. " 4", + recipe = { + { def.material, 'group:stick', def.material }, + { def.material, 'group:stick', def.material }, + } + }) + + local fence_texture = "default_fence_overlay.png^" .. def.texture .. + "^default_fence_overlay.png^[makealpha:255,126,126" + -- Allow almost everything to be overridden + local default_fields = { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, + -- connect_top = + -- connect_bottom = + connect_front = {{-1/16, 3/16, -1/2, 1/16, 5/16, -1/8 }, + {-1/16, -5/16, -1/2, 1/16, -3/16, -1/8 }}, + connect_left = {{-1/2, 3/16, -1/16, -1/8, 5/16, 1/16}, + {-1/2, -5/16, -1/16, -1/8, -3/16, 1/16}}, + connect_back = {{-1/16, 3/16, 1/8, 1/16, 5/16, 1/2 }, + {-1/16, -5/16, 1/8, 1/16, -3/16, 1/2 }}, + connect_right = {{ 1/8, 3/16, -1/16, 1/2, 5/16, 1/16}, + { 1/8, -5/16, -1/16, 1/2, -3/16, 1/16}} + }, + collision_box = { + type = "connected", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2 + fence_collision_extra, 1/8}, + -- connect_top = + -- connect_bottom = + connect_front = {-1/8, -1/2, -1/2, 1/8, 1/2 + fence_collision_extra, -1/8}, + connect_left = {-1/2, -1/2, -1/8, -1/8, 1/2 + fence_collision_extra, 1/8}, + connect_back = {-1/8, -1/2, 1/8, 1/8, 1/2 + fence_collision_extra, 1/2}, + connect_right = { 1/8, -1/2, -1/8, 1/2, 1/2 + fence_collision_extra, 1/8} + }, + connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"}, + inventory_image = fence_texture, + wield_image = fence_texture, + tiles = {def.texture}, + sunlight_propagates = true, + is_ground_content = false, + groups = {}, + } + for k, v in pairs(default_fields) do + if def[k] == nil then + def[k] = v + end + end + + -- Always add to the fence group, even if no group provided + def.groups.fence = 1 + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +end + + +-- +-- Fence rail registration helper +-- + +function default.register_fence_rail(name, def) + minetest.register_craft({ + output = name .. " 16", + recipe = { + { def.material, def.material }, + { "", ""}, + { def.material, def.material }, + } + }) + + local fence_rail_texture = "default_fence_rail_overlay.png^" .. def.texture .. + "^default_fence_rail_overlay.png^[makealpha:255,126,126" + -- Allow almost everything to be overridden + local default_fields = { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/16, 3/16, -1/16, 1/16, 5/16, 1/16}, + {-1/16, -3/16, -1/16, 1/16, -5/16, 1/16}}, + -- connect_top = + -- connect_bottom = + connect_front = {{-1/16, 3/16, -1/2, 1/16, 5/16, -1/16}, + {-1/16, -5/16, -1/2, 1/16, -3/16, -1/16}}, + connect_left = {{-1/2, 3/16, -1/16, -1/16, 5/16, 1/16}, + {-1/2, -5/16, -1/16, -1/16, -3/16, 1/16}}, + connect_back = {{-1/16, 3/16, 1/16, 1/16, 5/16, 1/2 }, + {-1/16, -5/16, 1/16, 1/16, -3/16, 1/2 }}, + connect_right = {{ 1/16, 3/16, -1/16, 1/2, 5/16, 1/16}, + { 1/16, -5/16, -1/16, 1/2, -3/16, 1/16}} + }, + collision_box = { + type = "connected", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2 + fence_collision_extra, 1/8}, + -- connect_top = + -- connect_bottom = + connect_front = {-1/8, -1/2, -1/2, 1/8, 1/2 + fence_collision_extra, -1/8}, + connect_left = {-1/2, -1/2, -1/8, -1/8, 1/2 + fence_collision_extra, 1/8}, + connect_back = {-1/8, -1/2, 1/8, 1/8, 1/2 + fence_collision_extra, 1/2}, + connect_right = { 1/8, -1/2, -1/8, 1/2, 1/2 + fence_collision_extra, 1/8} + }, + connects_to = {"group:fence", "group:wall"}, + inventory_image = fence_rail_texture, + wield_image = fence_rail_texture, + tiles = {def.texture}, + sunlight_propagates = true, + is_ground_content = false, + groups = {}, + } + for k, v in pairs(default_fields) do + if def[k] == nil then + def[k] = v + end + end + + -- Always add to the fence group, even if no group provided + def.groups.fence = 1 + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +end + +-- +-- Mese post registration helper +-- + +function default.register_mesepost(name, def) + minetest.register_craft({ + output = name .. " 4", + recipe = { + {'', 'default:glass', ''}, + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'', def.material, ''}, + } + }) + + local post_texture = def.texture .. "^default_mese_post_light_side.png^[makealpha:0,0,0" + local post_texture_dark = def.texture .. "^default_mese_post_light_side_dark.png^[makealpha:0,0,0" + -- Allow almost everything to be overridden + local default_fields = { + wield_image = post_texture, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-2 / 16, -8 / 16, -2 / 16, 2 / 16, 8 / 16, 2 / 16}, + }, + }, + paramtype = "light", + tiles = {def.texture, def.texture, post_texture_dark, post_texture_dark, post_texture, post_texture}, + use_texture_alpha = "opaque", + light_source = default.LIGHT_MAX, + sunlight_propagates = true, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + } + for k, v in pairs(default_fields) do + if def[k] == nil then + def[k] = v + end + end + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +end + +-- +-- Leafdecay +-- + +-- Prevent decay of placed leaves + +default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) + if placer and placer:is_player() then + local node = minetest.get_node(pos) + node.param2 = 1 + minetest.set_node(pos, node) + end +end + +-- Leafdecay +local function leafdecay_after_destruct(pos, oldnode, def) + for _, v in pairs(minetest.find_nodes_in_area(vector.subtract(pos, def.radius), + vector.add(pos, def.radius), def.leaves)) do + local node = minetest.get_node(v) + local timer = minetest.get_node_timer(v) + if node.param2 ~= 1 and not timer:is_started() then + timer:start(math.random(20, 120) / 10) + end + end +end + +local movement_gravity = tonumber( + minetest.settings:get("movement_gravity")) or 9.81 + +local function leafdecay_on_timer(pos, def) + if minetest.find_node_near(pos, def.radius, def.trunks) then + return false + end + + local node = minetest.get_node(pos) + local drops = minetest.get_node_drops(node.name) + for _, item in ipairs(drops) do + local is_leaf + for _, v in pairs(def.leaves) do + if v == item then + is_leaf = true + end + end + if minetest.get_item_group(item, "leafdecay_drop") ~= 0 or + not is_leaf then + minetest.add_item({ + x = pos.x - 0.5 + math.random(), + y = pos.y - 0.5 + math.random(), + z = pos.z - 0.5 + math.random(), + }, item) + end + end + + minetest.remove_node(pos) + minetest.check_for_falling(pos) + + -- spawn a few particles for the removed node + minetest.add_particlespawner({ + amount = 8, + time = 0.001, + minpos = vector.subtract(pos, {x=0.5, y=0.5, z=0.5}), + maxpos = vector.add(pos, {x=0.5, y=0.5, z=0.5}), + minvel = vector.new(-0.5, -1, -0.5), + maxvel = vector.new(0.5, 0, 0.5), + minacc = vector.new(0, -movement_gravity, 0), + maxacc = vector.new(0, -movement_gravity, 0), + minsize = 0, + maxsize = 0, + node = node, + }) +end + +function default.register_leafdecay(def) + assert(def.leaves) + assert(def.trunks) + assert(def.radius) + for _, v in pairs(def.trunks) do + minetest.override_item(v, { + after_destruct = function(pos, oldnode) + leafdecay_after_destruct(pos, oldnode, def) + end, + }) + end + for _, v in pairs(def.leaves) do + minetest.override_item(v, { + on_timer = function(pos) + leafdecay_on_timer(pos, def) + end, + }) + end +end + + +-- +-- Convert default:dirt to something that fits the environment +-- + +minetest.register_abm({ + label = "Grass spread", + nodenames = {"default:dirt"}, + neighbors = { + "air", + "group:grass", + "group:dry_grass", + "default:snow", + }, + interval = 6, + chance = 50, + catch_up = false, + action = function(pos, node) + -- Check for darkness: night, shadow or under a light-blocking node + -- Returns if ignore above + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node_light(above) or 0) < 13 then + return + end + + -- Look for spreading dirt-type neighbours + local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type") + if p2 then + local n3 = minetest.get_node(p2) + minetest.set_node(pos, {name = n3.name}) + return + end + + -- Else, any seeding nodes on top? + local name = minetest.get_node(above).name + -- Snow check is cheapest, so comes first + if name == "default:snow" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + elseif minetest.get_item_group(name, "grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_grass"}) + elseif minetest.get_item_group(name, "dry_grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) + end + end +}) + + +-- +-- Grass and dry grass removed in darkness +-- + +minetest.register_abm({ + label = "Grass covered", + nodenames = {"group:spreading_dirt_type", "default:dry_dirt_with_dry_grass"}, + interval = 8, + chance = 50, + catch_up = false, + action = function(pos, node) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or + nodedef.paramtype == "light") and + nodedef.liquidtype == "none") then + if node.name == "default:dry_dirt_with_dry_grass" then + minetest.set_node(pos, {name = "default:dry_dirt"}) + else + minetest.set_node(pos, {name = "default:dirt"}) + end + end + end +}) + + +-- +-- Moss growth on cobble near water +-- + +local moss_correspondences = { + ["default:cobble"] = "default:mossycobble", + ["stairs:slab_cobble"] = "stairs:slab_mossycobble", + ["stairs:stair_cobble"] = "stairs:stair_mossycobble", + ["stairs:stair_inner_cobble"] = "stairs:stair_inner_mossycobble", + ["stairs:stair_outer_cobble"] = "stairs:stair_outer_mossycobble", + ["walls:cobble"] = "walls:mossycobble", +} +minetest.register_abm({ + label = "Moss growth", + nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", + "stairs:stair_inner_cobble", "stairs:stair_outer_cobble", + "walls:cobble"}, + neighbors = {"group:water"}, + interval = 16, + chance = 200, + catch_up = false, + action = function(pos, node) + node.name = moss_correspondences[node.name] + if node.name then + minetest.set_node(pos, node) + end + end +}) + +-- +-- Register a craft to copy the metadata of items +-- + +function default.register_craft_metadata_copy(ingredient, result) + minetest.register_craft({ + type = "shapeless", + output = result, + recipe = {ingredient, result} + }) + + minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if itemstack:get_name() ~= result then + return + end + + local original + local index + for i = 1, #old_craft_grid do + if old_craft_grid[i]:get_name() == result then + original = old_craft_grid[i] + index = i + end + end + if not original then + return + end + local copymeta = original:get_meta():to_table() + itemstack:get_meta():from_table(copymeta) + -- put the book with metadata back in the craft grid + craft_inv:set_stack("craft", index, original) + end) +end + + +-- +-- NOTICE: This method is not an official part of the API yet. +-- This method may change in future. +-- + +function default.can_interact_with_node(player, pos) + if player and player:is_player() then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + else + return false + end + + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + + if not owner or owner == "" or owner == player:get_player_name() then + return true + end + + -- Is player wielding the right key? + local item = player:get_wielded_item() + if minetest.get_item_group(item:get_name(), "key") == 1 then + local key_meta = item:get_meta() + + if key_meta:get_string("secret") == "" then + local key_oldmeta = item:get_metadata() + if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then + return false + end + + key_meta:set_string("secret", minetest.parse_json(key_oldmeta).secret) + item:set_metadata("") + end + + return meta:get_string("key_lock_secret") == key_meta:get_string("secret") + end + + return false +end diff --git a/mods/default/furnace.lua b/mods/default/furnace.lua new file mode 100644 index 00000000..d5703cd6 --- /dev/null +++ b/mods/default/furnace.lua @@ -0,0 +1,380 @@ +-- default/furnace.lua + +-- support for MT game translation. +local S = default.get_translator + +-- +-- Formspecs +-- + +function default.get_furnace_active_formspec(fuel_percent, item_percent) + return "size[8,8.5]".. + "list[context;src;2.75,0.5;1,1;]".. + "list[context;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (fuel_percent)..":default_furnace_fire_fg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[context;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + +function default.get_furnace_inactive_formspec() + return "size[8,8.5]".. + "list[context;src;2.75,0.5;1,1;]".. + "list[context;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + "list[context;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[context;dst]".. + "listring[current_player;main]".. + "listring[context;src]".. + "listring[current_player;main]".. + "listring[context;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) +end + +-- +-- Node callback functions that are the same for active and inactive furnace +-- + +local function can_dig(pos, player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext", S("Furnace is empty")) + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +local function swap_node(pos, name) + local node = minetest.get_node(pos) + if node.name == name then + return + end + node.name = name + minetest.swap_node(pos, node) +end + +local function furnace_node_timer(pos, elapsed) + -- + -- Initialize metadata + -- + local meta = minetest.get_meta(pos) + local fuel_time = meta:get_float("fuel_time") or 0 + local src_time = meta:get_float("src_time") or 0 + local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 + + local inv = meta:get_inventory() + local srclist, fuellist + local dst_full = false + + local timer_elapsed = meta:get_int("timer_elapsed") or 0 + meta:set_int("timer_elapsed", timer_elapsed + 1) + + local cookable, cooked + local fuel + + local update = true + while elapsed > 0 and update do + update = false + + srclist = inv:get_list("src") + fuellist = inv:get_list("fuel") + + -- + -- Cooking + -- + + -- Check if we have cookable content + local aftercooked + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + cookable = cooked.time ~= 0 + + local el = math.min(elapsed, fuel_totaltime - fuel_time) + if cookable then -- fuel lasts long enough, adjust el to cooking duration + el = math.min(el, cooked.time - src_time) + end + + -- Check if we have enough fuel to burn + if fuel_time < fuel_totaltime then + -- The furnace is currently active and has enough fuel + fuel_time = fuel_time + el + -- If there is a cookable item then check if it is ready yet + if cookable then + src_time = src_time + el + if src_time >= cooked.time then + -- Place result in dst list if possible + if inv:room_for_item("dst", cooked.item) then + inv:add_item("dst", cooked.item) + inv:set_stack("src", 1, aftercooked.items[1]) + src_time = src_time - cooked.time + update = true + else + dst_full = true + end + -- Play cooling sound + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.1}, true) + else + -- Item could not be cooked: probably missing fuel + update = true + end + end + else + -- Furnace ran out of fuel + if cookable then + -- We need to get new fuel + local afterfuel + fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + + if fuel.time == 0 then + -- No valid fuel in fuel list + fuel_totaltime = 0 + src_time = 0 + else + -- Take fuel from fuel list + inv:set_stack("fuel", 1, afterfuel.items[1]) + -- Put replacements in dst list or drop them on the furnace. + local replacements = fuel.replacements + if replacements[1] then + local leftover = inv:add_item("dst", replacements[1]) + if not leftover:is_empty() then + local above = vector.new(pos.x, pos.y + 1, pos.z) + local drop_pos = minetest.find_node_near(above, 1, {"air"}) or above + minetest.item_drop(replacements[1], nil, drop_pos) + end + end + update = true + fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) + end + else + -- We don't need to get new fuel since there is no cookable item + fuel_totaltime = 0 + src_time = 0 + end + fuel_time = 0 + end + + elapsed = elapsed - el + end + + if fuel and fuel_totaltime > fuel.time then + fuel_totaltime = fuel.time + end + if srclist and srclist[1]:is_empty() then + src_time = 0 + end + + -- + -- Update formspec, infotext and node + -- + local formspec + local item_state + local item_percent = 0 + if cookable then + item_percent = math.floor(src_time / cooked.time * 100) + if dst_full then + item_state = S("100% (output full)") + else + item_state = S("@1%", item_percent) + end + else + if srclist and not srclist[1]:is_empty() then + item_state = S("Not cookable") + else + item_state = S("Empty") + end + end + + local fuel_state = S("Empty") + local active = false + local result = false + + if fuel_totaltime ~= 0 then + active = true + local fuel_percent = 100 - math.floor(fuel_time / fuel_totaltime * 100) + fuel_state = S("@1%", fuel_percent) + formspec = default.get_furnace_active_formspec(fuel_percent, item_percent) + swap_node(pos, "default:furnace_active") + -- make sure timer restarts automatically + result = true + + -- Play sound every 5 seconds while the furnace is active + if timer_elapsed == 0 or (timer_elapsed+1) % 5 == 0 then + minetest.sound_play("default_furnace_active", + {pos = pos, max_hear_distance = 16, gain = 0.5}, true) + end + else + if fuellist and not fuellist[1]:is_empty() then + fuel_state = S("@1%", 0) + end + formspec = default.get_furnace_inactive_formspec() + swap_node(pos, "default:furnace") + -- stop timer on the inactive furnace + minetest.get_node_timer(pos):stop() + meta:set_int("timer_elapsed", 0) + end + + + local infotext + if active then + infotext = S("Furnace active") + else + infotext = S("Furnace inactive") + end + infotext = infotext .. "\n" .. S("(Item: @1; Fuel: @2)", item_state, fuel_state) + + -- + -- Set meta values + -- + meta:set_float("fuel_totaltime", fuel_totaltime) + meta:set_float("fuel_time", fuel_time) + meta:set_float("src_time", src_time) + meta:set_string("formspec", formspec) + meta:set_string("infotext", infotext) + + return result +end + +-- +-- Node definitions +-- + +minetest.register_node("default:furnace", { + description = S("Furnace"), + tiles = { + "default_furnace_top.png", "default_furnace_bottom.png", + "default_furnace_side.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_front.png" + }, + paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + + can_dig = can_dig, + + on_timer = furnace_node_timer, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size('src', 1) + inv:set_size('fuel', 1) + inv:set_size('dst', 4) + furnace_node_timer(pos, 0) + end, + + on_metadata_inventory_move = function(pos) + minetest.get_node_timer(pos):start(1.0) + end, + on_metadata_inventory_put = function(pos) + -- start timer function, it will sort out whether furnace can burn or not. + minetest.get_node_timer(pos):start(1.0) + end, + on_metadata_inventory_take = function(pos) + -- check whether the furnace is empty or not. + minetest.get_node_timer(pos):start(1.0) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "src", drops) + default.get_inventory_drops(pos, "fuel", drops) + default.get_inventory_drops(pos, "dst", drops) + drops[#drops+1] = "default:furnace" + minetest.remove_node(pos) + return drops + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +}) + +minetest.register_node("default:furnace_active", { + description = S("Furnace"), + tiles = { + "default_furnace_top.png", "default_furnace_bottom.png", + "default_furnace_side.png", "default_furnace_side.png", + "default_furnace_side.png", + { + image = "default_furnace_front_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + } + }, + paramtype2 = "facedir", + light_source = 8, + drop = "default:furnace", + groups = {cracky=2, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_timer = furnace_node_timer, + + can_dig = can_dig, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +}) + +minetest.register_craft({ + output = "default:furnace", + recipe = { + {"group:stone", "group:stone", "group:stone"}, + {"group:stone", "", "group:stone"}, + {"group:stone", "group:stone", "group:stone"}, + } +}) diff --git a/mods/default/init.lua b/mods/default/init.lua new file mode 100644 index 00000000..d4388e5f --- /dev/null +++ b/mods/default/init.lua @@ -0,0 +1,68 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +-- The API documentation in here was moved into game_api.txt + +-- Load support for MT game translation. +local S = minetest.get_translator("default") + +-- Definitions made by this mod that other mods can use too +default = {} + +default.LIGHT_MAX = 14 +default.get_translator = S + +-- GUI related stuff +minetest.register_on_joinplayer(function(player) + -- Set formspec prepend + local formspec = [[ + bgcolor[#080808BB;true] + listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] ]] + local name = player:get_player_name() + local info = minetest.get_player_information(name) + if info.formspec_version > 1 then + formspec = formspec .. "background9[5,5;1,1;gui_formbg.png;true;10]" + else + formspec = formspec .. "background[5,5;1,1;gui_formbg.png;true]" + end + player:set_formspec_prepend(formspec) + + -- Set hotbar textures + player:hud_set_hotbar_image("gui_hotbar.png") + player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") +end) + +function default.get_hotbar_bg(x,y) + local out = "" + for i=0,7,1 do + out = out .."image["..x+i..","..y..";1,1;gui_hb_bg.png]" + end + return out +end + +default.gui_survival_form = "size[8,8.5]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "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]".. + default.get_hotbar_bg(0,4.25) + +-- Load files +local default_path = minetest.get_modpath("default") + +dofile(default_path.."/functions.lua") +dofile(default_path.."/trees.lua") +dofile(default_path.."/nodes.lua") +dofile(default_path.."/chests.lua") +dofile(default_path.."/furnace.lua") +dofile(default_path.."/torch.lua") +dofile(default_path.."/tools.lua") +dofile(default_path.."/item_entity.lua") +dofile(default_path.."/craftitems.lua") +dofile(default_path.."/crafting.lua") +dofile(default_path.."/mapgen.lua") +dofile(default_path.."/aliases.lua") +dofile(default_path.."/legacy.lua") diff --git a/mods/default/item_entity.lua b/mods/default/item_entity.lua new file mode 100644 index 00000000..25fb8328 --- /dev/null +++ b/mods/default/item_entity.lua @@ -0,0 +1,78 @@ +-- mods/default/item_entity.lua + +local builtin_item = minetest.registered_entities["__builtin:item"] + +local item = { + set_item = function(self, itemstring) + builtin_item.set_item(self, itemstring) + + local stack = ItemStack(itemstring) + local itemdef = minetest.registered_items[stack:get_name()] + if itemdef and itemdef.groups.flammable ~= 0 then + self.flammable = itemdef.groups.flammable + end + end, + + burn_up = function(self) + -- disappear in a smoke puff + local p = self.object:get_pos() + self.object:remove() + minetest.sound_play("default_item_smoke", { + pos = p, + max_hear_distance = 8, + }, true) + minetest.add_particlespawner({ + amount = 3, + time = 0.1, + minpos = {x = p.x - 0.1, y = p.y + 0.1, z = p.z - 0.1 }, + maxpos = {x = p.x + 0.1, y = p.y + 0.2, z = p.z + 0.1 }, + minvel = {x = 0, y = 2.5, z = 0}, + maxvel = {x = 0, y = 2.5, z = 0}, + minacc = {x = -0.15, y = -0.02, z = -0.15}, + maxacc = {x = 0.15, y = -0.01, z = 0.15}, + minexptime = 4, + maxexptime = 6, + minsize = 5, + maxsize = 5, + collisiondetection = true, + texture = "default_item_smoke.png" + }) + end, + + on_step = function(self, dtime, ...) + builtin_item.on_step(self, dtime, ...) + + if self.flammable then + -- flammable, check for igniters every 10 s + self.ignite_timer = (self.ignite_timer or 0) + dtime + if self.ignite_timer > 10 then + self.ignite_timer = 0 + + local pos = self.object:get_pos() + if pos == nil then + return -- object already deleted + end + local node = minetest.get_node_or_nil(pos) + if not node then + return + end + + -- Immediately burn up flammable items in lava + if minetest.get_item_group(node.name, "lava") > 0 then + self:burn_up() + else + -- otherwise there'll be a chance based on its igniter value + local burn_chance = self.flammable + * minetest.get_item_group(node.name, "igniter") + if burn_chance > 0 and math.random(0, burn_chance) ~= 0 then + self:burn_up() + end + end + end + end + end, +} + +-- set defined item as new __builtin:item, with the old one as fallback table +setmetatable(item, { __index = builtin_item }) +minetest.register_entity(":__builtin:item", item) diff --git a/mods/default/legacy.lua b/mods/default/legacy.lua new file mode 100644 index 00000000..a2d812d4 --- /dev/null +++ b/mods/default/legacy.lua @@ -0,0 +1,49 @@ +-- mods/default/legacy.lua + +-- Horrible stuff to support old code registering falling nodes +-- Don't use this and never do what this does, it's completely wrong! +-- (More specifically, the client and the C++ code doesn't get the group) +function default.register_falling_node(nodename, texture) + minetest.log("error", debug.traceback()) + minetest.log('error', "WARNING: default.register_falling_node is deprecated") + if minetest.registered_nodes[nodename] then + minetest.registered_nodes[nodename].groups.falling_node = 1 + end +end + +function default.spawn_falling_node(p, nodename) + spawn_falling_node(p, nodename) +end + +-- Liquids +WATER_ALPHA = minetest.registered_nodes["default:water_source"].alpha +WATER_VISC = minetest.registered_nodes["default:water_source"].liquid_viscosity +LAVA_VISC = minetest.registered_nodes["default:lava_source"].liquid_viscosity +LIGHT_MAX = default.LIGHT_MAX + +-- Formspecs +default.gui_suvival_form = default.gui_survival_form +default.gui_bg = "" +default.gui_bg_img = "" +default.gui_slots = "" + +-- Players +if minetest.get_modpath("player_api") then + default.registered_player_models = player_api.registered_models + default.player_register_model = player_api.register_model + default.player_attached = player_api.player_attached + default.player_get_animation = player_api.get_animation + default.player_set_model = player_api.set_model + default.player_set_textures = player_api.set_textures + default.player_set_animation = player_api.set_animation +end + +-- Chests +default.register_chest = default.chest.register_chest + +-- Check for a volume intersecting protection +function default.intersects_protection(minp, maxp, player_name, interval) + minetest.log("warning", "default.intersects_protection() is " .. + "deprecated, use minetest.is_area_protected() instead.") + return minetest.is_area_protected(minp, maxp, player_name, interval) +end diff --git a/mods/default/license.txt b/mods/default/license.txt new file mode 100644 index 00000000..3c95c1b4 --- /dev/null +++ b/mods/default/license.txt @@ -0,0 +1,157 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2018 celeron55, Perttu Ahola +Copyright (C) 2011-2018 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2010-2018: + + celeron55, Perttu Ahola + Cisoun + G4JC + VanessaE + RealBadAngel + Calinou + MirceaKitsune + Jordach + PilzAdam + jojoa1997 + InfinityProject + Splizard + Zeg9 + paramat + BlockMen + sofar + Neuromancer + Gambit + asl97 + KevDoy + Mito551 + GreenXenith + kaeza + kilbith + tobyplowy + CloudyProton + TumeniNodes + Mossmanikin + random-geek + Extex101 + An0n3m0us + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) + +Copyright (C) 2009 cmusounddesign +Copyright (C) 2010 Tomlija +Copyright (C) 2010 lsprice +Copyright (C) 2014 sonictechtonic +Copyright (C) 2015 yadronoff +Copyright (C) 2007 HerbertBoland +Copyright (C) 2006 AGFX + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication + +Iwan Gabovitch +Ottomaani138 +Ogrebane +blukotek +Sevin7 +Yoyodaman234 +Ryding + +No Copyright + +The person who associated a work with this deed has dedicated the work to the +public domain by waiving all of his or her rights to the work worldwide under +copyright law, including all related and neighboring rights, to the extent +allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial +purposes, all without asking permission. See Other Information below. + +Other Information: + +In no way are the patent or trademark rights of any person affected by CC0, nor +are the rights that other persons may have in the work or in how the work is +used, such as publicity or privacy rights. + +Unless expressly stated otherwise, the person who associated a work with this +deed makes no warranties about the work, and disclaims liability for all uses +of the work, to the fullest extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author +or the affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/mods/default/locale/default.de.tr b/mods/default/locale/default.de.tr new file mode 100644 index 00000000..a1e49dc0 --- /dev/null +++ b/mods/default/locale/default.de.tr @@ -0,0 +1,220 @@ +# textdomain: default +Locked Chest=Abgeschlossene Truhe +Locked Chest (owned by @1)=Abgeschlossene Truhe (Eigentum von @1) +You do not own this chest.=Ihnen gehört diese Truhe nicht. +a locked chest=eine abgeschlossene Truhe +Chest=Truhe +Title:=Titel: +Contents:=Inhalt: +Save=Speichern +by @1=von @1 +Page @1 of @2=Seite @1 von @2 +"@1" by @2=„@1“ von @2 +Skeleton Key=Skelettschlüssel +Key to @1's @2=Schlüssel für @2 von @1 +Blueberries=Blaubeeren +Book=Buch +Book with Text=Buch mit Text +Bronze Ingot=Bronzebarren +Clay Brick=Tonziegel +Clay Lump=Tonklumpen +Coal Lump=Kohleklumpen +Copper Ingot=Kupferbarren +Copper Lump=Kupferklumpen +Diamond=Diamant +Flint=Feuerstein +Gold Ingot=Goldbarren +Gold Lump=Goldklumpen +Iron Lump=Eisenklumpen +Mese Crystal=Mesekristall +Mese Crystal Fragment=Mesekristallfragment +Obsidian Shard=Obsidianscherbe +Paper=Papier +Steel Ingot=Stahlbarren +Stick=Stock +Tin Ingot=Zinnbarren +Tin Lump=Zinnklumpen +Furnace is empty=Ofen ist leer +100% (output full)=100% (Ausgabe voll) +@1%=@1% +Not cookable=Nicht kochbar +Empty=Leer +Furnace active=Ofen aktiv +Furnace inactive=Ofen inaktiv +(Item: @1; Fuel: @2)=(Gegenstand: @1; Brennstoff: @2) +Furnace=Ofen +Stone=Stein +Cobblestone=Kopfsteinpflaster +Stone Brick=Steinziegel +Stone Block=Steinblock +Mossy Cobblestone=Moosiges Kopfsteinpflaster +Desert Stone=Wüstenstein +Desert Cobblestone=Wüstenkopfsteinpflaster +Desert Stone Brick=Wüstensteinziegel +Desert Stone Block=Wüstensteinblock +Sandstone=Sandstein +Sandstone Brick=Sandsteinziegel +Sandstone Block=Sandsteinblock +Desert Sandstone=Wüstensandstein +Desert Sandstone Brick=Wüstensandsteinziegel +Desert Sandstone Block=Wüstensandsteinblock +Silver Sandstone=Silbersandstein +Silver Sandstone Brick=Silbersandsteinziegel +Silver Sandstone Block=Silbersandsteinblock +Obsidian=Obsidian +Obsidian Brick=Obsidianziegel +Obsidian Block=Obsidianblock +Dirt=Erde +Dirt with Grass=Erde mit Gras +Dirt with Grass and Footsteps=Erde mit Gras und Fußstapfen +Dirt with Savanna Grass=Erde mit Savannengras +Dirt with Snow=Erde mit Schnee +Dirt with Rainforest Litter=Erde mit Regenwaldboden +Dirt with Coniferous Litter=Erde mit Nadelwaldboden +Savanna Dirt=Savannenerde +Savanna Dirt with Savanna Grass=Savannenerde mit Savannengras +Permafrost=Permafrost +Permafrost with Stones=Permafrost mit Steinen +Permafrost with Moss=Permafrost mit Moos +Sand=Sand +Desert Sand=Wüstensand +Silver Sand=Silbersand +Gravel=Kies +Clay=Ton +Snow=Schnee +Snow Block=Schneeblock +Ice=Eis +Cave Ice=Höhleneis +Apple Tree=Apfelbaum +Apple Wood Planks=Apfelbaumplanken +Apple Tree Sapling=Apfelbaumsetzling +Apple Tree Leaves=Apfelbaumblätter +Apple=Apfel +Apple Marker=Apfelmarkierung +Jungle Tree=Dschungelbaum +Jungle Wood Planks=Dschungelholzplanken +Jungle Tree Leaves=Dschungelbaumblätter +Jungle Tree Sapling=Dschungelbaumsetzling +Emergent Jungle Tree Sapling=Hervorstehender Dschungelbaumsetzling +Pine Tree=Kiefernbaum +Pine Wood Planks=Kiefernholzplanken +Pine Needles=Kiefernnadeln +Pine Tree Sapling=Kiefernbaumsetzling +Acacia Tree=Akazienbaum +Acacia Wood Planks=Akazienholzplanken +Acacia Tree Leaves=Akazienbaumblätter +Acacia Tree Sapling=Akazienbaumsetzling +Aspen Tree=Espenbaum +Aspen Wood Planks=Espenholzplanken +Aspen Tree Leaves=Espenbaumblätter +Aspen Tree Sapling=Esepenbaumsetzling +Coal Ore=Kohleerz +Coal Block=Kohleblock +Iron Ore=Eisenerz +Steel Block=Stahlblock +Copper Ore=Kupfererz +Copper Block=Kupferblock +Tin Ore=Zinnerz +Tin Block=Zinnblock +Bronze Block=Bronzeblock +Mese Ore=Meseerz +Mese Block=Meseblock +Gold Ore=Golderz +Gold Block=Goldblock +Diamond Ore=Diamanterz +Diamond Block=Diamantblock +Cactus=Kaktus +Large Cactus Seedling=Großer Kaktussämling +Papyrus=Papyrus +Dry Shrub=Trockener Busch +Jungle Grass=Dschungelgras +Grass=Gras +Savanna Grass=Savannengras +Fern=Farn +Marram Grass=Dünengras +Bush Stem=Buschstamm +Bush Leaves=Buschblätter +Bush Sapling=Buschsetzling +Blueberry Bush Leaves with Berries=Blaubeerbuschblätter mit Beeren +Blueberry Bush Leaves=Blaubeerbuschblätter +Blueberry Bush Sapling=Blaubeerbuschsetzling +Acacia Bush Stem=Akazienbuschstamm +Acacia Bush Leaves=Akazienbuschblätter +Acacia Bush Sapling=Akazienbuschsetzling +Pine Bush Stem=Kiefernbuschstamm +Pine Bush Needles=Kiefernbuschnadeln +Pine Bush Sapling=Kiefernbuschsetzling +Kelp=Seetang +Green Coral=Grüne Koralle +Pink Coral=Rosa Koralle +Cyan Coral=Türkise Koralle +Brown Coral=Braune Koralle +Orange Coral=Orange Koralle +Coral Skeleton=Korallenskelett +Water Source=Wasserquelle +Flowing Water=Fließendes Wasser +River Water Source=Flusswasserquelle +Flowing River Water=Fließendes Flusswasser +Lava Source=Lavaquelle +Flowing Lava=Fließende Lava +Empty Bookshelf=Leeres Bücherregal +Bookshelf (@1 written, @2 empty books)=Bücherregal (@1 beschriebene, @2 leere Bücher) +Bookshelf=Bücherregal +Text too long=Text zu lang +"@1"=„@1“ +Wooden Sign=Holzschild +Steel Sign=Stahlschild +Wooden Ladder=Holzleiter +Steel Ladder=Stahlleiter +Apple Wood Fence=Apfelholzzaun +Acacia Wood Fence=Akazienholzzaun +Jungle Wood Fence=Dschungelholzzaun +Pine Wood Fence=Kiefernholzzaun +Aspen Wood Fence=Espenholzzaun +Apple Wood Fence Rail=Apfelholzzaungeländer +Acacia Wood Fence Rail=Akazienholzzaungeländer +Jungle Wood Fence Rail=Dschungelholzzaungeländer +Pine Wood Fence Rail=Kiefernholzzaungeländer +Aspen Wood Fence Rail=Espenholzzaungeländer +Glass=Glas +Obsidian Glass=Obsidianglas +Brick Block=Ziegelblock +Mese Lamp=Meselampe +Apple Wood Mese Post Light=Apfelholzmesestandlampe +Acacia Wood Mese Post Light=Akazienholzmesestandlampe +Jungle Wood Mese Post Light=Dschungelholzmesestandlampe +Pine Wood Mese Post Light=Kiefernholzmesestandlampe +Aspen Wood Mese Post Light=Espenholzmesestandlampe +Cloud=Wolke +Wooden Pickaxe=Holzspitzhacke +Stone Pickaxe=Steinspitzhacke +Bronze Pickaxe=Bronzespitzhacke +Steel Pickaxe=Stahlspitzhacke +Mese Pickaxe=Mesespitzhacke +Diamond Pickaxe=Diamantspitzhacke +Wooden Shovel=Holzschaufel +Stone Shovel=Steinschaufel +Bronze Shovel=Bronzeschaufel +Steel Shovel=Stahlschaufel +Mese Shovel=Meseschaufel +Diamond Shovel=Diamantschaufel +Wooden Axe=Holzaxt +Stone Axe=Steinaxt +Bronze Axe=Bronzeaxt +Steel Axe=Stahlaxt +Mese Axe=Meseaxt +Diamond Axe=Diamantaxt +Wooden Sword=Holzschwert +Stone Sword=Steinschwert +Bronze Sword=Bronzeschwert +Steel Sword=Stahlschwert +Mese Sword=Meseschwert +Diamond Sword=Diamantschwert +Key=Schlüssel +Torch=Fackel +@1 will intersect protection on growth.=@1 wird bei Wachstum mit geschützter Zone überlappen. + + +##### not used anymore ##### + +Mese Post Light=Mesestandlampe diff --git a/mods/default/locale/default.es.tr b/mods/default/locale/default.es.tr new file mode 100644 index 00000000..094e8c61 --- /dev/null +++ b/mods/default/locale/default.es.tr @@ -0,0 +1,225 @@ +# textdomain: default + +Locked Chest=Cofre cerrado +Locked Chest (owned by @1)=Cofre cerrado (propiedad de @1) +You do not own this chest.=Este cofre no te pertenece. +a locked chest=un cofre cerrado +Chest=Cofre +Title:=Título: +Contents:=Contenidos: +Save=Guardar +by @1=por @1 +Page @1 of @2=Página @1 de @2 +"@1" by @2="@1" por @2 +Skeleton Key=Llave esqueleto +Key to @1's @2=Llave para @2 de @1 +Blueberries=Arándanos +Book=Libro +Book with Text=Libro escrito +Bronze Ingot=Lingote de bronce +Clay Brick=Ladrillo de arcilla +Clay Lump=Bola de arcilla +Coal Lump=Carbón +Copper Ingot=Lingote de cobre +Copper Lump=Pepita de cobre +Diamond=Diamante +Flint=Pedernal +Gold Ingot=Lingote de oro +Gold Lump=Pepita de oro +Iron Lump=Pepita de hierro +Mese Crystal=Cristal de mese +Mese Crystal Fragment=Fragmento de cristal de mese +Obsidian Shard=Esquirla de obsidiana +Paper=Papel +Steel Ingot=Lingote de acero +Stick=Palo +Tin Ingot=Lingote de estaño +Tin Lump=Pepita de estaño +Furnace is empty=El horno está vacío +100% (output full)=100% (salida completa) +@1%=@1% +Not cookable=No se puede cocinar +Empty=Vacío +Furnace active=Horno activado +Furnace inactive=Horno desactivado +(Item: @1; Fuel: @2)=(Objeto: @1; Combustible: @2) +Furnace=Horno +Stone=Piedra +Cobblestone=Adoquín +Stone Brick=Ladrillo de piedra +Stone Block=Bloque de piedra +Mossy Cobblestone=Adoquín musgoso +Desert Stone=Piedra desértica +Desert Cobblestone=Adoquín desértico +Desert Stone Brick=Ladrillo de piedra desértica +Desert Stone Block=Bloque de piedra desértica +Sandstone=Piedra arenisca +Sandstone Brick=Ladrillo de arenisca +Sandstone Block=Bloque de arenisca +Desert Sandstone=Piedra arenisca desértica +Desert Sandstone Brick=Ladrillo de arenisca desértica +Desert Sandstone Block=Bloque de arenisca deśertica +Silver Sandstone=Piedra arenisca plateada +Silver Sandstone Brick=Ladrillo de arenisca plateada +Silver Sandstone Block=Bloque de arenisca plateada +Obsidian=Obsidiana +Obsidian Brick=Ladrillo de obsidiana +Obsidian Block=Bloque de obsidiana +Dirt=Tierra +Dirt with Grass=Tierra con pasto +Dirt with Grass and Footsteps=Tierra con pasto y pisadas +Dirt with Savanna Grass=Tierra con hierba de sabana +Dirt with Snow=Tierra con nieve +Dirt with Rainforest Litter=Tierra con hojarasca de selva tropical +Dirt with Coniferous Litter=Tierra con hojarasca de coníferas +Savanna Dirt=Tierra de sabana +Savanna Dirt with Savanna Grass=Tierra de sabana con hierba de sabana +Permafrost=Permafrost +Permafrost with Stones=Permafrost pedregoso +Permafrost with Moss=Permafrost musgoso +Sand=Arena +Desert Sand=Arena desértica +Silver Sand=Arena plateada +Gravel=Grava +Clay=Arcilla +Snow=Nieve +Snow Block=Bloque de nieve +Ice=Hielo +Cave Ice=Hielo de cueva +Apple Tree=Madera de manzano +Apple Wood Planks=Tablas de manzano +Apple Tree Sapling=Retoño de manzano +Apple Tree Leaves=Hojas de manzano +Apple=Manzana +Apple Marker=Marcador de manzano +Jungle Tree=Madera de árbol tropical +Jungle Wood Planks=Tablas de madera tropical +Jungle Tree Leaves=Hojas de árbol tropical +Jungle Tree Sapling=Retoño de árbol tropical +Emergent Jungle Tree Sapling=Retoño de árbol tropical +Pine Tree=Madera de pino +Pine Wood Planks=Tablas de pino +Pine Needles=Agujas de pino +Pine Tree Sapling=Retoño de pino +Acacia Tree=Madera de acacia +Acacia Wood Planks=Tablas de acacia +Acacia Tree Leaves=Hojas de acacia +Acacia Tree Sapling=Retoño de acacia +Aspen Tree=Madera de álamo +Aspen Wood Planks=Tablas de álamo +Aspen Tree Leaves=Hojas de álamo +Aspen Tree Sapling=Retoño de álamo +Coal Ore=Mineral de carbón +Coal Block=Bloque de carbón +Iron Ore=Mineral de hierro +Steel Block=Bloque de acero +Copper Ore=Mineral de cobre +Copper Block=Bloque de cobre +Tin Ore=Mineral de estaño +Tin Block=Bloque de estaño +Bronze Block=Bloque de bronce +Mese Ore=Mineral de mese +Mese Block=Bloque de mese +Gold Ore=Mineral de oro +Gold Block=Bloque de oro +Diamond Ore=Mineral de diamante +Diamond Block=Bloque de diamante +Cactus=Cáctus +Large Cactus Seedling=Vástago grande de cactus +Papyrus=Papiro +Dry Shrub=Arbusto seco +Jungle Grass=Pasto de jungla +Grass=Pasto +Savanna Grass=Hierba de sabana +Fern=Helecho +Marram Grass=Carrizo +Bush Stem=Tallo de arbusto +Bush Leaves=Hojas de arbusto +Bush Sapling=Retoño de arbusto +Blueberry Bush Leaves with Berries=Hojas de arbusto de arándano con bayas +Blueberry Bush Leaves=Hojas de arbusto de arándano +Blueberry Bush Sapling=Retoño de arbusto de arándano +Acacia Bush Stem=Tallo de arbusto de acacia +Acacia Bush Leaves=Hojas de arbusto de acacia +Acacia Bush Sapling=Retoño de arbusto de acacia +Pine Bush Stem=Tallo de arbusto de pino +Pine Bush Needles=Agujas de arbusto de pino +Pine Bush Sapling=Retoño de arbusto de pino +Kelp=Alga marina +Green Coral=Coral verde +Pink Coral=Coral rosa +Cyan Coral=Coral cián +Brown Coral=Coral café +Orange Coral=Coral naranja +Coral Skeleton=Esqueleto de coral +Water Source=Fuente de agua +Flowing Water=Fluído de agua +River Water Source=Fuente de agua de río +Flowing River Water=Fluído de agua de río +Lava Source=Fuente de lava +Flowing Lava=Fluído de lava +Empty Bookshelf=Librería vacía +Bookshelf (@1 written, @2 empty books)=Librería(@1 escritos, @2 libros en blanco) +Bookshelf=Librería +Text too long=Texto demasiado largo +"@1"="@1" +Wooden Sign=Cartel de madera +Steel Sign=Cartel de acero +Wooden Ladder=Escalera de madera +Steel Ladder=Escalera de acero +Apple Wood Fence=Cerca de manzano +Acacia Wood Fence=Cerca de acacia +Jungle Wood Fence=Cerca de madera tropical +Pine Wood Fence=Cerca de pino +Aspen Wood Fence=Cerca de álamo +Apple Wood Fence Rail=Listones de manzano para cerca +Acacia Wood Fence Rail=Listones de acacia para cerca +Jungle Wood Fence Rail=Listones de madera tropical para cerca +Pine Wood Fence Rail=Listones de pino para cerca +Aspen Wood Fence Rail=Listones de álamo para cerca +Glass=Vidrio +Obsidian Glass=Vidrio de obsidiana +Brick Block=Bloque de ladrillo +Mese Lamp=Lámpara de mese +Apple Wood Mese Post Light=Poste de luz de madera de manzano +Acacia Wood Mese Post Light=Poste de luz de madera de acacia +Jungle Wood Mese Post Light=Poste de luz de madera de jungla +Pine Wood Mese Post Light=Poste de luz de madera de pino +Aspen Wood Mese Post Light=Poste de luz de madera de álamo +Cloud=Nube +Wooden Pickaxe=Pico de madera +Stone Pickaxe=Pico de piedra +Bronze Pickaxe=Pico de bronce +Steel Pickaxe=Pico de acero +Mese Pickaxe=Pico de mese +Diamond Pickaxe=Pico de diamante +Wooden Shovel=Pala de madera +Stone Shovel=Pala de piedra +Bronze Shovel=Pala de bronce +Steel Shovel=Pala de acero +Mese Shovel=Pala de mese +Diamond Shovel=Pala de diamante +Wooden Axe=Hacha de madera +Stone Axe=Hacha de piedra +Bronze Axe=Hacha de bronce +Steel Axe=Hacha de acero +Mese Axe=Hacha de mese +Diamond Axe=Hacha de diamante +Wooden Sword=Espada de madera +Stone Sword=Espada de piedra +Bronze Sword=Espada de bronce +Steel Sword=Espada de acero +Mese Sword=Espada de mese +Diamond Sword=Espada de diamante +Key=Llave +Torch=Antorcha +@1 will intersect protection on growth.=@1 intersectará con protección cuando crezca. + + +##### not used anymore ##### + +Dirt with Dry Grass=Tierra con pasto seco +Dry Dirt=Tierra Seca +Dry Dirt with Dry Grass=Tierra seca con pasto seco +Dry Grass=Pasto seco +Mese Post Light=Poste de luz de mese diff --git a/mods/default/locale/default.fr.tr b/mods/default/locale/default.fr.tr new file mode 100644 index 00000000..d74cb83d --- /dev/null +++ b/mods/default/locale/default.fr.tr @@ -0,0 +1,224 @@ +# textdomain: default +Locked Chest=Coffre verrouillé +Locked Chest (owned by @1)=Coffre verrouillé (possédé par @1) +You do not own this chest.=Ce coffre ne vous appartient pas. +a locked chest=un coffre verrouillé +Chest=Coffre +Title:=Titre : +Contents:=Contenu : +Save=Sauvegarder +by @1=de @1 +Page @1 of @2=Page @1 sur @2 +"@1" by @2=« @1 » de @2 +Skeleton Key=Squelette +Key to @1's @2=Clé pour @2 de @1 +Blueberries=Myrtille +Book=Livre +Book with Text=Livre avec du texte +Bronze Ingot=Lingot de bronze +Clay Brick=Brique d'argile +Clay Lump=Morceau d'argile +Coal Lump=Morceau de charbon +Copper Ingot=Lingot de cuivre +Copper Lump=Morceau de cuivre +Diamond=Diamant +Flint=Silex +Gold Ingot=Lingot d'or +Gold Lump=Morceau d'or +Iron Lump=Morceau de fer +Mese Crystal=Cristal de Mese +Mese Crystal Fragment=Fragment de cristal de Mese +Obsidian Shard=Tesson d'obsidienne +Paper=Papier +Steel Ingot=Lingot d'acier +Stick=Baton +Tin Ingot=Lingot d'étain +Tin Lump=Morceau d'étain +Furnace is empty=Le four est vide +100% (output full)=100% (Sortie pleine) +@1%=@1% +Not cookable=Ne se cuit pas +Empty=Vide +Furnace active=Four actif +Furnace inactive=Four inactif +(Item: @1; Fuel: @2)=(Article: @1; Carburant: @2) +Furnace=Four +Stone=Pierre +Cobblestone=Pavé +Stone Brick=Brique de pierre +Stone Block=Bloc de pierre +Mossy Cobblestone=Pavé moussu +Desert Stone=Pierre du désert +Desert Cobblestone=Pavé de pierre du désert +Desert Stone Brick=Brique de pierre du désert +Desert Stone Block=Bloc de pierre du désert +Sandstone=Grès +Sandstone Brick=Brique de grès +Sandstone Block=Bloc de grès +Desert Sandstone=Grès du désert +Desert Sandstone Brick=Brique de grès du désert +Desert Sandstone Block=Bloc de grès du désert +Silver Sandstone=Grès argenté +Silver Sandstone Brick=Brique de grès argenté +Silver Sandstone Block=Bloc de grès argenté +Obsidian=Obsidienne +Obsidian Brick=Brique d'obsidienne +Obsidian Block=Block d'obsidienne +Dirt=Terre +Dirt with Grass=Terre avec de l'herbe +Dirt with Grass and Footsteps=Terre avec de l'herbe et des traces de pas +Dirt with Savanna Grass= +Dirt with Snow=Terre avec de la neige +Dirt with Rainforest Litter=Terre avec sol de forêt humide +Dirt with Coniferous Litter=Terre avec sol de forêt de conifère +Savanna Dirt= +Savanna Dirt with Savanna Grass= +Permafrost=Pergélisol +Permafrost with Stones=Pergélisol avec de la pierre +Permafrost with Moss=Pergélisol avec de la mousse +Sand=Sable +Desert Sand=Sable du désert +Silver Sand=Sable argenté +Gravel=Gravier +Clay=Argile +Snow=Neige +Snow Block=Bloc de neige +Ice=Glace +Cave Ice=Glace de grotte +Apple Tree=Pommier +Apple Wood Planks=Planche de pommier +Apple Tree Sapling=Pousse de pommier +Apple Tree Leaves=Feuilles de pommier +Apple=Pomme +Apple Marker=Marqueur de pomme +Jungle Tree=Arbre de la jungle +Jungle Wood Planks=Planche d'arbre de la jungle +Jungle Tree Leaves=Feuilles d'arbre de la jungle +Jungle Tree Sapling=Pousse d'arbre de la jungle +Emergent Jungle Tree Sapling=Pousse d'arbre de la jungle émergent +Pine Tree=Pin +Pine Wood Planks=Planche de pin +Pine Needles=Aiguilles de pin +Pine Tree Sapling=Pousse de pin +Acacia Tree=Acacia +Acacia Wood Planks=Planche d'acacia +Acacia Tree Leaves=Feuilles d'acacia +Acacia Tree Sapling=Pousse d'acacia +Aspen Tree=Tremble +Aspen Wood Planks=Planche de tremble +Aspen Tree Leaves=Feuilles de tremble +Aspen Tree Sapling=Pousse de tremble +Coal Ore=Minerai de charbon +Coal Block=Bloc de charbon +Iron Ore=Bloc de fer +Steel Block=Bloc d'acier +Copper Ore=Minerai de cuivre +Copper Block=Bloc de cuivre +Tin Ore=Minerai d'étain +Tin Block=Bloc d'étain +Bronze Block=Bloc de bronze +Mese Ore=Minerai de Mese +Mese Block=Bloc de Mese +Gold Ore=Minerai d'or +Gold Block=Bloc d'or +Diamond Ore=Minerai de diamant +Diamond Block=Bloc de diamant +Cactus=Cactus +Large Cactus Seedling=Grand plan de cactus +Papyrus=Papyrus +Dry Shrub=Arbuste sec +Jungle Grass=Herbe de la jungle +Grass=Herbe +Savanna Grass= +Fern=Fougère +Marram Grass=Ammophile +Bush Stem=Tige de buisson +Bush Leaves=Feuilles de buisson +Bush Sapling=Pousse de buisson +Blueberry Bush Leaves with Berries=Buisson de myrtille avec des myrtilles +Blueberry Bush Leaves=Feuilles de buisson à myrtilles +Blueberry Bush Sapling=Pousse de buisson à myrtilles +Acacia Bush Stem=Tige de buisson d'acacia +Acacia Bush Leaves=Feuilles de buisson d'acacia +Acacia Bush Sapling=Pousses de buisson d'acacia +Pine Bush Stem=Tige de buisson de pin +Pine Bush Needles=Aiguilles de buisson de pin +Pine Bush Sapling=Pousse de buisson de pin +Kelp=Varech +Green Coral=Corail vert +Pink Coral=Corail rose +Cyan Coral=Corail cyan +Brown Coral=Corail marron +Orange Coral=Corail orange +Coral Skeleton=Squelette de corail +Water Source=Source d'eau +Flowing Water=Ecoulement d'eau +River Water Source=Source d'eau de rivière +Flowing River Water=Ecoulement d'eau de rivière +Lava Source=Source de lave +Flowing Lava=Ecoulement de lave +Empty Bookshelf=Bibliothèque vide +Bookshelf (@1 written, @2 empty books)=Bibliothèque (@1 écrits, @2 livres vides) +Bookshelf=Bibliothèque +Text too long=Texte trop longue +"@1"=« @1 » +Wooden Sign=Panneau en bois +Steel Sign=Panneau en acier +Wooden Ladder=Echelle en bois +Steel Ladder=Echelle en acier +Apple Wood Fence=Barrière de bois de pommier +Acacia Wood Fence=Barrière de bois d'acacia +Jungle Wood Fence=Barrière de bois de la jungle +Pine Wood Fence=Barrière de bois de pin +Aspen Wood Fence=Barrière de bois de tremble +Apple Wood Fence Rail=Clôture de bois de pommier +Acacia Wood Fence Rail=Clôture de bois d'acacia +Jungle Wood Fence Rail=Clôture de bois de la jungle +Pine Wood Fence Rail=Clôture de bois de pin +Aspen Wood Fence Rail=Clôture de bois de tremble +Glass=Verre +Obsidian Glass=Verre d'obsidienne +Brick Block=Bloc de brique +Mese Lamp=Lampe de Mese +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Nuage +Wooden Pickaxe=Pioche en bois +Stone Pickaxe=Pioche en pierre +Bronze Pickaxe=Pioche en bronze +Steel Pickaxe=Pioche en acier +Mese Pickaxe=Pioche de Mese +Diamond Pickaxe=Pioche en diamant +Wooden Shovel=Pelle en bois +Stone Shovel=Pelle en pierre +Bronze Shovel=Pelle en bronze +Steel Shovel=Pelle en acier +Mese Shovel=Pelle en Mese +Diamond Shovel=Pelle en diamant +Wooden Axe=Hache en bois +Stone Axe=Hache en pierre +Bronze Axe=Hache en bronze +Steel Axe=Hache en acier +Mese Axe=Hache en Mese +Diamond Axe=Hache en diamant +Wooden Sword=Epée en bois +Stone Sword=Epée en pierre +Bronze Sword=Epée en bronze +Steel Sword=Epée en acier +Mese Sword=Epée en Mese +Diamond Sword=Epée en diamant +Key=Clé +Torch=Torche +@1 will intersect protection on growth.=@1 chevauchera la zone protégée avec la croissance. + + +##### not used anymore ##### + +Dirt with Dry Grass=Terre avec de l'herbe sèche +Dry Dirt=Terre sèche +Dry Dirt with Dry Grass=Terre sèche avec de l'herbe sèche +Dry Grass=Herbe sèche +Mese Post Light=Réverbère de Mese diff --git a/mods/default/locale/default.id.tr b/mods/default/locale/default.id.tr new file mode 100644 index 00000000..658f0741 --- /dev/null +++ b/mods/default/locale/default.id.tr @@ -0,0 +1,220 @@ +# textdomain: default +Locked Chest=Peti Terkunci +Locked Chest (owned by @1)=Peti Terkunci (milik @1) +You do not own this chest.=Anda bukan pemilik peti ini. +a locked chest=peti terkunci +Chest=Peti +Title:=Judul: +Contents:=Isi: +Save=Simpan +by @1=oleh @1 +Page @1 of @2=Halaman @1 dari @2 +"@1" by @2="@1" oleh @2 +Skeleton Key=Kunci Induk +Key to @1's @2=Kunci @2 milik @1 +Blueberries=Blueberry +Book=Buku +Book with Text=Buku Tertulis +Bronze Ingot=Perunggu Batangan +Clay Brick=Bata +Clay Lump=Bongkahan Tanah Liat +Coal Lump=Bongkahan Batu Bara +Copper Ingot=Tembaga Batangan +Copper Lump=Bongkahan Tembaga +Diamond=Berlian +Flint=Batu Api +Gold Ingot=Emas Batangan +Gold Lump=Bongkahan Emas +Iron Lump=Bongkahan Besi +Mese Crystal=Kristal Mese +Mese Crystal Fragment=Pecahan Kristal Mese +Obsidian Shard=Pecahan Obsidian +Paper=Kertas +Steel Ingot=Baja Batangan +Stick=Tongkat +Tin Ingot=Timah Batangan +Tin Lump=Bongkahan Timah +Furnace is empty=Tungku kosong +100% (output full)=100% (keluaran penuh) +@1%=@1% +Not cookable=Tidak dapat dimasak +Empty=Kosong +Furnace active=Tungku nyala +Furnace inactive=Tungku mati +(Item: @1; Fuel: @2)=(Barang: @1; Bahan Bakar: @2) +Furnace=Tungku +Stone=Batu +Cobblestone=Bongkahan Batu +Stone Brick=Tembok Batu +Stone Block=Balok Batu +Mossy Cobblestone=Bongkahan Batu Berlumut +Desert Stone=Batu Gurun +Desert Cobblestone=Bongkahan Batu Gurun +Desert Stone Brick=Tembok Batu Gurun +Desert Stone Block=Balok Batu Gurun +Sandstone=Batu Pasir +Sandstone Brick=Tembok Batu Pasir +Sandstone Block=Balok Batu Pasir +Desert Sandstone=Batu Pasir Gurun +Desert Sandstone Brick=Tembok Batu Pasir Gurun +Desert Sandstone Block=Balok Batu Pasir Gurun +Silver Sandstone=Batu Pasir Perak +Silver Sandstone Brick=Tembok Batu Pasir Perak +Silver Sandstone Block=Balok Batu Pasir Perak +Obsidian=Obsidian +Obsidian Brick=Tembok Obsidian +Obsidian Block=Balok Obsidian +Dirt=Tanah +Dirt with Grass=Tanah Berumput +Dirt with Grass and Footsteps=Tanah Berumput dengan Jejak Kaki +Dirt with Savanna Grass=Tanah Berumput Sabana +Dirt with Snow=Tanah Bersalju +Dirt with Rainforest Litter=Tanah Berserasah Hutan Hujan +Dirt with Coniferous Litter=Tanah Berserasah Hutan Konifer +Savanna Dirt=Tanah Sabana +Savanna Dirt with Savanna Grass=Tanah Sabana Berumput Sabana +Permafrost=Ibun Abadi +Permafrost with Stones=Ibun Abadi Berbatu +Permafrost with Moss=Ibun Abadi Berlumut +Sand=Pasir +Desert Sand=Pasir Gurun +Silver Sand=Pasir Perak +Gravel=Kerikil +Clay=Tanah Liat +Snow=Salju +Snow Block=Balok Salju +Ice=Es +Cave Ice=Gua Es +Apple Tree=Pohon Apel +Apple Wood Planks=Papan Kayu Pohon Apel +Apple Tree Sapling=Anak Pohon Apel +Apple Tree Leaves=Daun Pohon Apel +Apple=Apel +Apple Marker=Penanda Apel +Jungle Tree=Pohon Hutan Rimba +Jungle Wood Planks=Papan Kayu Pohon Rimba +Jungle Tree Leaves=Daun Pohon Rimba +Jungle Tree Sapling=Anak Pohon Rimba +Emergent Jungle Tree Sapling=Anak Pohon Rimba Bertumbuh +Pine Tree=Pohon Pinus +Pine Wood Planks=Papan Kayu Pinus +Pine Needles=Daun Pinus +Pine Tree Sapling=Anak Pohon Pinus +Acacia Tree=Pohon Akasia +Acacia Wood Planks=Papan Kayu Akasia +Acacia Tree Leaves=Daun Akasia +Acacia Tree Sapling=Anak Pohon Akasia +Aspen Tree=Pohon Aspen +Aspen Wood Planks=Papan Kayu Aspen +Aspen Tree Leaves=Daun Aspen +Aspen Tree Sapling=Anak Pohon Aspen +Coal Ore=Bijih Batu Bara +Coal Block=Balok Batu Bara +Iron Ore=Bijih Besi +Steel Block=Balok Baja +Copper Ore=Bijih Tembaga +Copper Block=Balok Tembaga +Tin Ore=Bijih Timah +Tin Block=Balok Timah +Bronze Block=Balok Perunggu +Mese Ore=Bijih Mese +Mese Block=Balok Mese +Gold Ore=Bijih Emas +Gold Block=Balok Emas +Diamond Ore=Bijih Berlian +Diamond Block=Balok Berlian +Cactus=Kaktus +Large Cactus Seedling=Bibit Kaktus Besar +Papyrus=Papirus +Dry Shrub=Semak Kering +Jungle Grass=Rumput Rimba +Grass=Rumput +Savanna Grass=Rumput Sabana +Fern=Pakis +Marram Grass=Rumput Maram +Bush Stem=Batang Semak +Bush Leaves=Daun Semak +Bush Sapling=Anak Semak +Blueberry Bush Leaves with Berries=Daun Semak Blueberry Berbuah +Blueberry Bush Leaves=Daun Semak Blueberry +Blueberry Bush Sapling=Anak Semak Blueberry +Acacia Bush Stem=Batang Semak Akasia +Acacia Bush Leaves=Daun Semak Akasia +Acacia Bush Sapling=Bibit Semak Akasia +Pine Bush Stem=Batang Semak Pinus +Pine Bush Needles=Daun Semak Pinus +Pine Bush Sapling=Bibit Semak Pinus +Kelp=Kelp +Green Coral=Koral Hijau +Pink Coral=Koral Jambon +Cyan Coral=Koral Sian +Brown Coral=Koral Cokelat +Orange Coral=Koral Oranye +Coral Skeleton=Kerangka Koral +Water Source=Mata Air +Flowing Water=Aliran Air +River Water Source=Mata Air Sungai +Flowing River Water=Aliran Air Sungai +Lava Source=Sumber Lava +Flowing Lava=Aliran Lava +Empty Bookshelf=Rak Buku Kosong +Bookshelf (@1 written, @2 empty books)=Rak Buku (@1 buku tertulis, @2 buku kosong) +Bookshelf=Rak Buku +Text too long=Teks terlalu panjang +"@1"="@1" +Wooden Sign=Penanda Kayu +Steel Sign=Penanda Baja +Wooden Ladder=Tangga Kayu +Steel Ladder=Tangga Baja +Apple Wood Fence=Pagar Kayu Apel +Acacia Wood Fence=Pagar Akasia +Jungle Wood Fence=Pagar Kayu Rimba +Pine Wood Fence=Pagar Pinus +Aspen Wood Fence=Pagar Aspen +Apple Wood Fence Rail=Rel Pagar Kayu Apel +Acacia Wood Fence Rail=Rel Pagar Akasia +Jungle Wood Fence Rail=Rel Pagar Kayu Rimba +Pine Wood Fence Rail=Rel Pagar Pinus +Aspen Wood Fence Rail=Rel Pagar Aspen +Glass=Kaca +Obsidian Glass=Kaca Obsidian +Brick Block=Balok Bata +Mese Lamp=Lampu Mese +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Awan +Wooden Pickaxe=Gancu Kayu +Stone Pickaxe=Gancu Batu +Bronze Pickaxe=Gancu Perunggu +Steel Pickaxe=Gancu Baja +Mese Pickaxe=Gancu Mese +Diamond Pickaxe=Gancu Berlian +Wooden Shovel=Sekop Kayu +Stone Shovel=Sekop Batu +Bronze Shovel=Sekop Perunggu +Steel Shovel=Sekop Baja +Mese Shovel=Sekop Mese +Diamond Shovel=Sekop Berlian +Wooden Axe=Kapak Kayu +Stone Axe=Kapak Batu +Bronze Axe=Kapak Perunggu +Steel Axe=Kapak Baja +Mese Axe=Kapak Mese +Diamond Axe=Kapak Berlian +Wooden Sword=Pedang Kayu +Stone Sword=Pedang Batu +Bronze Sword=Pedang Perunggu +Steel Sword=Pedang Baja +Mese Sword=Pedang Mese +Diamond Sword=Pedang Berlian +Key=Kunci +Torch=Obor +@1 will intersect protection on growth.=@1 akan memotong perlindungan ketika tumbuh. + + +##### not used anymore ##### + +Mese Post Light=Lampu Taman Mese diff --git a/mods/default/locale/default.it.tr b/mods/default/locale/default.it.tr new file mode 100644 index 00000000..92029d66 --- /dev/null +++ b/mods/default/locale/default.it.tr @@ -0,0 +1,224 @@ +# textdomain: default +Locked Chest=Baule chiuso a chiave +Locked Chest (owned by @1)=Baule chiuso a chiave (di proprietà di @1) +You do not own this chest.=Questo baule non ti appartiene. +a locked chest=un baule chiuso a chiave +Chest=Baule +Title:= +Contents:= +Save= +by @1= +Page @1 of @2= +"@1" by @2="@1" di @2 +Skeleton Key=Chiave dello Scheletro +Key to @1's @2=Chiave per @2 di @1 +Blueberries=Mirtilli +Book=Libro +Book with Text=Libro con testo +Bronze Ingot=Lingotto di bronzo +Clay Brick=Mattone d'argilla +Clay Lump=Grumo d'argilla +Coal Lump=Grumo di carbone +Copper Ingot=Lingotto di rame +Copper Lump=Grumo di rame +Diamond=Diamante +Flint=Selce +Gold Ingot=Lingotto d'oro +Gold Lump=Grumo d'oro +Iron Lump=Grumo di ferro +Mese Crystal=Cristallo di mese +Mese Crystal Fragment=Frammento di cristallo di mese +Obsidian Shard=Scheggia d'ossidiana +Paper=Carta +Steel Ingot=Lingotto d'acciaio +Stick=Bastone +Tin Ingot=Lingotto di stagno +Tin Lump=Grumo di stagno +Furnace is empty=La fornace è vuota +100% (output full)=100% (uscita piena) +@1%=@1% +Not cookable=Non cucinabile +Empty=Vuota +Furnace active=Fornace attiva +Furnace inactive=Fornace inattiva +(Item: @1; Fuel: @2)=(Oggetto: @1; Combustibile: @2) +Furnace=Fornace +Stone=Pietra +Cobblestone=Ciottoli +Stone Brick=Mattone di pietra +Stone Block=Blocco di pietra +Mossy Cobblestone=Ciottoli muschiosi +Desert Stone=Pietra del deserto +Desert Cobblestone=Ciottoli del deserto +Desert Stone Brick=Mattone di pietra del deserto +Desert Stone Block=Blocco di pietra del deserto +Sandstone=Arenaria +Sandstone Brick=Mattone d'arenaria +Sandstone Block=Blocco d'arenaria +Desert Sandstone=Arenaria del deserto +Desert Sandstone Brick=Mattone d'arenaria del deserto +Desert Sandstone Block=Blocco d'arenaria del deserto +Silver Sandstone=Arenaria argentata +Silver Sandstone Brick=Mattone d'arenaria argentata +Silver Sandstone Block=Blocco d'arenaria argentata +Obsidian=Ossidiana +Obsidian Brick=Mattone d'ossidiana +Obsidian Block=Blocco d'ossidiana +Dirt=Terra +Dirt with Grass=Terra con erba +Dirt with Grass and Footsteps=Terra con erba e impronte +Dirt with Savanna Grass= +Dirt with Snow=Terra con neve +Dirt with Rainforest Litter=Terra con detriti della foresta pluviale +Dirt with Coniferous Litter=Terra con detriti di conifera +Savanna Dirt= +Savanna Dirt with Savanna Grass= +Permafrost=Permafrost +Permafrost with Stones=Permafrost con pietra +Permafrost with Moss=Permafrost con muschio +Sand=Sabbia +Desert Sand=Sabbia del deserto +Silver Sand=Sabbia argentata +Gravel=Ghiaia +Clay=Argilla +Snow=Neve +Snow Block=Blocco di neve +Ice=Ghiaccio +Cave Ice=Ghiaccio di caverna +Apple Tree=Melo +Apple Wood Planks=Assi di melo +Apple Tree Sapling=Alberello di melo +Apple Tree Leaves=Foglie di melo +Apple=Mela +Apple Marker=Marcatore mela +Jungle Tree=Albero della giungla +Jungle Wood Planks=Assi di legno della giungla +Jungle Tree Leaves=Foglie di albero della giungla +Jungle Tree Sapling=Alberello della giungla +Emergent Jungle Tree Sapling=Alberello della giungla emergente +Pine Tree=Pino +Pine Wood Planks=Assi di legno di pino +Pine Needles=Aghi di pino +Pine Tree Sapling=Alberello di pino +Acacia Tree=Acacia +Acacia Wood Planks=Assi di legno d'acacia +Acacia Tree Leaves=Foglie d'acacia +Acacia Tree Sapling=Alberello d'acacia +Aspen Tree=Pioppo +Aspen Wood Planks=Assi di legno di pioppo +Aspen Tree Leaves=Foglie di pioppo +Aspen Tree Sapling=Alberello di pioppo +Coal Ore=Minerale di carbone +Coal Block=Blocco di carbone +Iron Ore=Minerale di ferro +Steel Block=Blocco d'acciaio +Copper Ore=Minerale di rame +Copper Block=Blocco di rame +Tin Ore=Minerale di stagno +Tin Block=Blocco di stagno +Bronze Block=Blocco di bronzo +Mese Ore=Minerale di mese +Mese Block=Blocco di mese +Gold Ore=Minerale d'oro +Gold Block=Blocco d'oro +Diamond Ore=Minerale di diamante +Diamond Block=Blocco di diamante +Cactus=Cactus +Large Cactus Seedling=Piantina di cactus grande +Papyrus=Papiro +Dry Shrub=Arbusto secco +Jungle Grass=Erba della giungla +Grass=Erba +Savanna Grass= +Fern=Felce +Marram Grass=Ammofila arenaria +Bush Stem=Fusto di cespuglio +Bush Leaves=Foglie di cespuglio +Bush Sapling=Alberello di cespuglio +Blueberry Bush Leaves with Berries=Foglie di cespuglio di mirtilli con bacche +Blueberry Bush Leaves=Foglie di cespuglio di mirtilli +Blueberry Bush Sapling=Alberello di cespuglio di mirtilli +Acacia Bush Stem=Fusto di cespuglio d'acacia +Acacia Bush Leaves=Foglie di cespuglio d'acacia +Acacia Bush Sapling=Alberello di cespuglio d'acacia +Pine Bush Stem=Fusto di cespuglio di pino +Pine Bush Needles=Aghi di cespuglio di pino +Pine Bush Sapling=Alberello di cespuglio di pino +Kelp=Alga +Green Coral=Corallo verde +Pink Coral=Corallo rosa +Cyan Coral=Corallo ciano +Brown Coral=Corallo marrone +Orange Coral=Corallo arancione +Coral Skeleton=Scheletro di corallo +Water Source=Fonte d'acqua +Flowing Water=Acqua corrente +River Water Source=Fonte d'acqua di fiume +Flowing River Water=Acqua corrente di fiume +Lava Source=Fonte di lava +Flowing Lava=Lava corrente +Empty Bookshelf=Libreria vuota +Bookshelf (@1 written, @2 empty books)=Libreria (@1 scritti, @2 vuoti) +Bookshelf=Libreria +Text too long=Testo troppo lungo +"@1"= +Wooden Sign=Cartello di legno +Steel Sign=Cartello d'acciaio +Wooden Ladder=Scala a pioli di legno +Steel Ladder=Scala a pioli d'acciaio +Apple Wood Fence=Recinzione di legno di melo +Acacia Wood Fence=Recinzione di legno d'acacia +Jungle Wood Fence=Recinzione di legno della giungla +Pine Wood Fence=Recinzione di legno di pino +Aspen Wood Fence=Recinzione di legno di pioppo +Apple Wood Fence Rail=Ringhiera della recinzione di legno di melo +Acacia Wood Fence Rail=Ringhiera della recinzione di legno d'acacia +Jungle Wood Fence Rail=Ringhiera della recinzione di legno della giungla +Pine Wood Fence Rail=Ringhiera della recinzione di legno di pino +Aspen Wood Fence Rail=Ringhiera della recinzione di legno di pioppo +Glass=Vetro +Obsidian Glass=Vetro d'ossidiana +Brick Block=Blocco di mattone +Mese Lamp=Lampada di mese +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Nuvola +Wooden Pickaxe=Piccone di legno +Stone Pickaxe=Piccone di pietra +Bronze Pickaxe=Piccone di bronzo +Steel Pickaxe=Piccone d'acciaio +Mese Pickaxe=Piccone di mese +Diamond Pickaxe=Piccone di diamante +Wooden Shovel=Pala di legno +Stone Shovel=Pala di pietra +Bronze Shovel=Pala di bronzo +Steel Shovel=Pala d'acciaio +Mese Shovel=Pala di mese +Diamond Shovel=Pala di diamante +Wooden Axe=Ascia di legno +Stone Axe=Ascia di pietra +Bronze Axe=Ascia di bronzo +Steel Axe=Ascia d'acciaio +Mese Axe=Ascia di mese +Diamond Axe=Ascia di diamante +Wooden Sword=Spada di legno +Stone Sword=Spada di pietra +Bronze Sword=Spada di bronzo +Steel Sword=Spada d'acciaio +Mese Sword=Spada di mese +Diamond Sword=Spada di diamante +Key=Chiave +Torch=Torcia +@1 will intersect protection on growth.=@1 crescendo attraverserà la protezione. + + +##### not used anymore ##### + +Dirt with Dry Grass=Terra con erba secca +Dry Dirt=Terra asciutta +Dry Dirt with Dry Grass=Terra asciutta con erba secca +Dry Grass=Erba secca +Mese Post Light=Lampioncino di mese diff --git a/mods/default/locale/default.jbo.tr b/mods/default/locale/default.jbo.tr new file mode 100644 index 00000000..6f3e7492 --- /dev/null +++ b/mods/default/locale/default.jbo.tr @@ -0,0 +1,215 @@ +# textdomain: default +Locked Chest=lo selstela gairvau +Locked Chest (owned by @1)=.i ti selstela gairvau po la'o zo'i.@1.zo'i +You do not own this chest.=.i do na ponse lo ti gairvau +a locked chest=lo selstela gairvau +Chest=lo gairvau +Title:=cmene +Contents:=se cukta +Save=rejgau +by @1=la'o zo'i.@1.zo'i te cukta +Page @1 of @2=meirmoi fe li @1 li @2 le'i papri +"@1" by @2=lo cukta be la'o gy.@1.gy. bei la'o zo'i.@2.zo'i +Skeleton Key=lo greku ckiku +Key to @1's @2=lo ckiku be @2 po la'o zo'i.@1.zo'i +Blueberries=lo blajba +Book=lo cukta +Book with Text=lo cukta joi selci'a +Bronze Ingot=lo ransu manfybli +Clay Brick=lo kitybli +Clay Lump=lo kliti bakfu +Coal Lump=lo kolme bakfu +Copper Ingot=lo tunka manfybli +Copper Lump=lo tunka bakfu +Diamond=lo tabjme +Flint=lo fagyro'i +Gold Ingot=lo solji manfybli +Gold Lump=lo solji bakfu +Iron Lump=lo tirse bakfu +Mese Crystal=lo za'e krilrmese +Mese Crystal Fragment=lo za'e krilrmese spisa +Obsidian Shard=lo je'erma'ablaci spisa +Paper=lo pelji +Steel Ingot=lo gasta manfybli +Stick=lo grana +Tin Ingot=lo tinci manfybli +Tin Lump=lo tinci bakfu +Furnace is empty=.i lo toknu cu kunti +100% (output full)=100 ce'i to lo se zbasu cu culno toi +@1%=@1 ce'i +Not cookable=na kakne le ka se jukpa +Empty=ti kunti +Furnace active=.i lo toknu cu tolcando +Furnace inactive=.i lo toknu cu cando +(Item: @1; Fuel: @2)=to jukpa @1 @2 +Furnace=lo toknu +Stone=lo rokci +Cobblestone=lo lolro'iboi +Stone Brick=lo morna rokci +Stone Block=lo rokci bliku +Mossy Cobblestone=lo clika lolro'iboi +Desert Stone=lo cantu'a rokci +Desert Cobblestone=lo cantu'a lolro'iboi +Desert Stone Brick=lo morna ke cantu'a rokci +Desert Stone Block=lo cantu'a rokci bliku +Sandstone=lo canro'i +Sandstone Brick=lo morna canro'i +Sandstone Block=lo canro'i bliku +Desert Sandstone=lo cantu'a canro'i +Desert Sandstone Brick=lo morna ke cantu'a canro'i +Desert Sandstone Block=lo cantu'a canro'i bliku +Silver Sandstone=lo rijyska sanro'i +Silver Sandstone Brick=lo morna ke rijyska canro'i +Silver Sandstone Block=lo rijyska canro'i bliku +Obsidian=lo je'erma'ablaci +Obsidian Brick=lo morna je'erma'ablaci +Obsidian Block=lo je'erma'ablaci bliku +Dirt=lo dertu +Dirt with Grass=lo dertu joi srasu +Dirt with Grass and Footsteps=lo dertu joi srasu jebo stapa bo prina +Dirt with Savanna Grass=lo dertu joi sudytu'a bo srasu +Dirt with Snow=lo dertu joi snime +Dirt with Rainforest Litter=lo dertu joi glatimdemricfoi bo festi +Dirt with Coniferous Litter=lo dertu joi ckunu bo festi +Savanna Dirt=lo sudytu'a dertu +Savanna Dirt with Savanna Grass=lo sudysu'a bo dertu joi sudytu'a bo srasu +Permafrost=le bislunsa dertu +Permafrost with Stones=le bislunsa bo dertu joi rokci +Permafrost with Moss=le bislunsa bo dertu joi clika +Sand=lo canre +Desert Sand=lo cantu'a canre +Silver Sand=lo rijyska canre +Gravel=lo cmaro'i +Clay=lo kliti +Snow=lo snime +Snow Block=lo snime bliku +Ice=lo bisli +Cave Ice=lo kevzda bisli +Apple Tree=lo plisytricu ricystani +Apple Wood Planks=lo plise mudri tanbo +Apple Tree Sapling=lo plisytricu ciftricu +Apple Tree Leaves=lo plisytricu pezli +Apple=lo plise +Apple Marker=lo plise barna +Jungle Tree=lo glatimdemricfoi ricystani +Jungle Wood Planks=lo glatimdemricfoi mudri tanbo +Jungle Tree Leaves=lo glatimdemricfoi pezli +Jungle Tree Sapling=lo glatimdemricfoi ciftricu +Emergent Jungle Tree Sapling=lo barda ke glatimdemricfoi ciftricu +Pine Tree=lo ckunu ricystani +Pine Wood Planks=lo ckunu mudri tanbo +Pine Needles=lo ckunu jezpezli +Pine Tree Sapling=lo ckunu ciftricu +Acacia Tree=lo atkaci,ia ricystani +Acacia Wood Planks=lo atkaci,ia mudri tanbo +Acacia Tree Leaves=lo atkaci,ia pezli +Acacia Tree Sapling=lo atkaci,ia ciftricu +Aspen Tree=lo ricrpopulu ricystani +Aspen Wood Planks=lo mudrpopulu tanbo +Aspen Tree Leaves=lo ricrpopulu pezli +Aspen Tree Sapling=lo ricrpopulu ciftricu +Coal Ore=lo kolme kunra +Coal Block=lo kolme bliku +Iron Ore=lo tirse kunra +Steel Block=lo gasta bliku +Copper Ore=lo tunka kunra +Copper Block=lo tunka bliku +Tin Ore=lo tinci kunra +Tin Block=lo tinci bliku +Bronze Block=lo ransu bliku +Mese Ore=lo za'e kunrmese +Mese Block=lo za'e blikrmese +Gold Ore=lo solji kunra +Gold Block=lo solji bliku +Diamond Ore=lo tabjme kunra +Diamond Block=lo tabjme bliku +Cactus=lo jesyspa +Large Cactus Seedling=lo barda ke jesyspa tsiju +Papyrus=lo misryplespa +Dry Shrub=lo sudga dzitricu +Jungle Grass=lo glatimdemricfoi srasu +Grass=lo srasu +Savanna Grass=lo sudytu'a srasu +Fern=lo filcina +Marram Grass=lo xaskoi srasu +Bush Stem=lo dzitricu stani +Bush Leaves=lo dzitricu pezli +Bush Sapling=lo dzitricu ciftricu +Blueberry Bush Leaves with Berries=lo ke blajba dzitricu pezli ke'e joi jbari +Blueberry Bush Leaves=lo blajba dzitricu pezli +Blueberry Bush Sapling=lo blajba dzitrcu ciftricu +Acacia Bush Stem=lo atkaci,ia dzitricu stani +Acacia Bush Leaves=lo atkaci,ia dzitricu pezli +Acacia Bush Sapling=lo atkaci,ia dzitricu ciftricu +Pine Bush Stem=lo ckunu dzitricu stani +Pine Bush Needles=lo ckunu dzitricu jezpezli +Pine Bush Sapling=lo ckunu dzitricu ciftricu +Kelp=lo vraike +Green Coral=lo crino pevypanje +Pink Coral=lo xunblabi pevypanje +Cyan Coral=lo cicna pevypanje +Brown Coral=lo bunre pevypanje +Orange Coral=lo narju pevypanje +Coral Skeleton=lo pevypanje greku +Water Source=lo djacu velflecu +Flowing Water=lo flecu djacu +River Water Source=lo rirxe djacu velflecu +Flowing River Water=lo flecu ke rirxe djacu +Lava Source=lo likro'i velflecu +Flowing Lava=lo flecu likro'i +Empty Bookshelf=.i ti kunti ckukajna +Bookshelf (@1 written, @2 empty books)=.i ti ckukajna to @1 cukta joi selci'a .ije @2 kunti cukta toi +Bookshelf=lo ckukajna +Text too long=.i lo lerpoi cu dukse lo ka clani +"@1"=zoi sy.@1.sy. +Wooden Sign=lo mudri sinxa +Steel Sign=lo gasta sinxa +Wooden Ladder=lo mudri rajyserti +Steel Ladder=lo gasta rajyserti +Apple Wood Fence=lo plise mudri garbi'u +Acacia Wood Fence=lo atkaci,ia mudri garbi'u +Jungle Wood Fence=lo glatimdemricfoi mudri garbi'u +Pine Wood Fence=lo ckunu mudri garbi'u +Aspen Wood Fence=lo mudrpopulu garbi'u +Apple Wood Fence Rail=lo plise mudri garbi'u garna +Acacia Wood Fence Rail=lo atkaci,ia mudri garbi'u garna +Jungle Wood Fence Rail=lo glatimdemricfoi mudri garbi'u garna +Pine Wood Fence Rail=lo ckunu mudri garbi'u garna +Aspen Wood Fence Rail=lo mudrpopulu garbi'u garna +Glass=lo blaci +Obsidian Glass=lo je'erma'ablaci blaci +Brick Block=lo kitybli bliku +Mese Lamp=lo za'e kunrmese tergu'i +Apple Wood Mese Post Light=lo plise mudri za'e kunrmese ke kamju tergu'i +Acacia Wood Mese Post Light=lo atkaci,ia mudri za'e kunrmese ke kamju tergu'i +Jungle Wood Mese Post Light=lo glatimdemricfoi mudri za'e kunrmese ke kamju tergu'i +Pine Wood Mese Post Light=lo ckunu mudri za'e kunrmese ke kamju tergu'i +Aspen Wood Mese Post Light=lo mudrpopulu za'e kunrmese ke kamju tergu'i +Cloud=lo dilnu +Wooden Pickaxe=lo mudri velkakpymru +Stone Pickaxe=lo rokci velkakpymru +Bronze Pickaxe=lo ransu velkakpymru +Steel Pickaxe=lo gasta velkakpymru +Mese Pickaxe=lo za'e kunrmese velkakpymru +Diamond Pickaxe=lo tabjme velkakpymru +Wooden Shovel=lo mudri canpa +Stone Shovel=lo rokci canpa +Bronze Shovel=lo ransu canpa +Steel Shovel=lo gasta canpa +Mese Shovel=lo za'e kunrmese canpa +Diamond Shovel=lo tabjme canpa +Wooden Axe=lo mudri ka'amru +Stone Axe=lo rokci ka'amru +Bronze Axe=lo ransu ka'amru +Steel Axe=lo gasta ka'amru +Mese Axe=lo za'e kunrmese ka'amru +Diamond Axe=lo tabjme ka'amru +Wooden Sword=lo mudri cladakyxa'i +Stone Sword=lo rokci cladakyxa'i +Bronze Sword=lo ransu cladakyxa'i +Steel Sword=lo gasta cladakyxa'i +Mese Sword=lo za'e kunrmese cladakyxa'i +Diamond Sword=lo tabjme cladakyxa'i +Key=lo ckiku +Torch=lo fagytergu'i +@1 will intersect protection on growth.=.i @1 cu ba kruca lo bandu ca lo nu banro diff --git a/mods/default/locale/default.ms.tr b/mods/default/locale/default.ms.tr new file mode 100644 index 00000000..8c1ed42c --- /dev/null +++ b/mods/default/locale/default.ms.tr @@ -0,0 +1,224 @@ +# textdomain: default +Locked Chest=Peti Berkunci +Locked Chest (owned by @1)=Peti Berkunci (milik @1) +You do not own this chest.=Ini bukan peti milik anda. +a locked chest=peti berkunci +Chest=Peti +Title:=Tajuk: +Contents:=Kandungan: +Save=Simpan +by @1=oleh @1 +Page @1 of @2=Ms. @1 / @2 +"@1" by @2="@1" oleh @2 +Skeleton Key=Kunci Induk +Key to @1's @2=Kunci @2 milik @1 +Blueberries=Beri Biru +Book=Buku +Book with Text=Buku Bertulisan +Bronze Ingot=Jongkong Gangsa +Clay Brick=Bata Tanah Liat +Clay Lump=Longgokan Tanah Liat +Coal Lump=Longgokan Batu Arang +Copper Ingot=Jongkong Tembaga +Copper Lump=Longgokan Tembaga +Diamond=Berlian +Flint=Batu Api +Gold Ingot=Jongkong Emas +Gold Lump=Longgokan Emas +Iron Lump=Longgokan Besi +Mese Crystal=Kristal Mese +Mese Crystal Fragment=Serpihan Mese +Obsidian Shard=Serpihan Obsidia +Paper=Kertas +Steel Ingot=Jongkong Keluli +Stick=Serpihan Kayu +Tin Ingot=Jongkong Timah +Tin Lump=Longgokan Timah +Furnace is empty=Relau masih kosong +100% (output full)=100% (keluaran penuh) +@1%=@1% +Not cookable=Tidak boleh dimasak +Empty=Kosong +Furnace active=Relau aktif +Furnace inactive=Relau tidak aktif +(Item: @1; Fuel: @2)=(Item: @1; Bahan api: @2) +Furnace=Relau +Stone=Batu +Cobblestone=Batu Buntar +Stone Brick=Bata Batu +Stone Block=Bongkah Batu +Mossy Cobblestone=Batu Buntar Berlumut +Desert Stone=Batu Gurun +Desert Cobblestone=Batu Buntar Gurun +Desert Stone Brick=Bata Batu Gurun +Desert Stone Block=Bongkah Batu Gurun +Sandstone=Batu Pasir +Sandstone Brick=Bata Batu Pasir +Sandstone Block=Bongkah Batu Pasir +Desert Sandstone=Batu Pasir Gurun +Desert Sandstone Brick=Bata Batu Pasir Gurun +Desert Sandstone Block=Bongkah Batu Pasir Gurun +Silver Sandstone=Batu Pasir Perak +Silver Sandstone Brick=Bata Batu Pasir Perak +Silver Sandstone Block=Bongkah Batu Pasir Perak +Obsidian=Obsidia +Obsidian Brick=Bata Obsidia +Obsidian Block=Bongkah Obsidia +Dirt=Tanah +Dirt with Grass=Tanah Berumput +Dirt with Grass and Footsteps=Tanah Berumput dan Tapak Kaki +Dirt with Savanna Grass= +Dirt with Snow=Tanah Bersalji +Dirt with Rainforest Litter=Tanah Bersarap Hutan Hujan +Dirt with Coniferous Litter=Tanah Bersarap Hutan Konifer +Savanna Dirt= +Savanna Dirt with Savanna Grass= +Permafrost=Ibun Abadi +Permafrost with Stones=Ibun Abadi Berbatu +Permafrost with Moss=Ibun Abadi Berlumut +Sand=Pasir +Desert Sand=Pasir Gurun +Silver Sand=Pasir Perak +Gravel=Kelikir +Clay=Tanah Liat +Snow=Salji +Snow Block=Bongkah Salji +Ice=Ais +Cave Ice=Ais Gua +Apple Tree=Kayu Pokok Epal +Apple Wood Planks=Papan Kayu Epal +Apple Tree Sapling=Anak Pokok Epal +Apple Tree Leaves=Daun Pokok Epal +Apple=Epal +Apple Marker=Penanda Epal +Jungle Tree=Kayu Pokok Hutan +Jungle Wood Planks=Papan Kayu Hutan +Jungle Tree Leaves=Daun Pokok Hutan +Jungle Tree Sapling=Anak Pokok Hutan +Emergent Jungle Tree Sapling=Anak Pokok Hutan Kembang +Pine Tree=Kayu Pokok Pain +Pine Wood Planks=Papan Kayu Pain +Pine Needles=Daun Pokok Pain +Pine Tree Sapling=Anak Pokok Pain +Acacia Tree=Kayu Pokok Akasia +Acacia Wood Planks=Papan Kayu Akasia +Acacia Tree Leaves=Daun Pokok Akasia +Acacia Tree Sapling=Anak Pokok Akasia +Aspen Tree=Kayu Pokok Aspen +Aspen Wood Planks=Papan Kayu Aspen +Aspen Tree Leaves=Daun Pokok Aspen +Aspen Tree Sapling=Anak Pokok Aspen +Coal Ore=Bijih Batu Arang +Coal Block=Bongkah Batu Arang +Iron Ore=Bijih Besi +Steel Block=Bongkah Keluli +Copper Ore=Bijih Tembaga +Copper Block=Bongkah Tembaga +Tin Ore=Bijih Timah +Tin Block=Bongkah Timah +Bronze Block=Bongkah Gangsa +Mese Ore=Bijih Mese +Mese Block=Bongkah Mese +Gold Ore=Bijih Emas +Gold Block=Bongkah Emas +Diamond Ore=Bijih Intan +Diamond Block=Bongkah Intan +Cactus=Kaktus +Large Cactus Seedling=Benih Kaktus Besar +Papyrus=Papirus +Dry Shrub=Pokok Renek Kering +Jungle Grass=Rumput Hutan +Grass=Rumput +Savanna Grass= +Fern=Paku Pakis +Marram Grass=Rumput Maram +Bush Stem=Batang Belukar +Bush Leaves=Daun Belukar +Bush Sapling=Anak Belukar +Blueberry Bush Leaves with Berries=Daun Belukar Beri Biru Berberi +Blueberry Bush Leaves=Daun Belukar Beri Biru +Blueberry Bush Sapling=Anak Belukar Beri Biru +Acacia Bush Stem=Batang Belukar Akasia +Acacia Bush Leaves=Daun Belukar Akasia +Acacia Bush Sapling=Anak Belukar Akasia +Pine Bush Stem=Batang Belukar Pain +Pine Bush Needles=Daun Belukar Pain +Pine Bush Sapling=Anak Belukar Pain +Kelp=Kelpa +Green Coral=Batu Karang Hijau +Pink Coral=Batu Karang Merah Jambu +Cyan Coral=Batu Karang Biru Kehijauan +Brown Coral=Batu Karang Perang +Orange Coral=Batu Karang Jingga +Coral Skeleton= Rangka Karang +Water Source=Sumber Air +Flowing Water=Air Mengalir +River Water Source=Sumber Air Sungai +Flowing River Water=Air Sungai Mengalir +Lava Source=Sumber Lava +Flowing Lava=Lava Mengalir +Empty Bookshelf=Rak Buku Kosong +Bookshelf (@1 written, @2 empty books)=Rak Buku (@1 buku bertulis, @2 buku kosong) +Bookshelf=Rak Buku +Text too long=Tulisan terlalu panjang +"@1"="@1" +Wooden Sign=Papan Tanda Kayu +Steel Sign=Papan Tanda Keluli +Wooden Ladder=Tangga Panjat Kayu +Steel Ladder=Tangga Panjat Keluli +Apple Wood Fence=Pagar Kayu Epal +Acacia Wood Fence=Pagar Kayu Akasia +Jungle Wood Fence=Pagar Kayu Hutan +Pine Wood Fence=Pagar Kayu Pain +Aspen Wood Fence=Pagar Kayu Aspen +Apple Wood Fence Rail=Pagar Rel Kayu Epal +Acacia Wood Fence Rail=Pagar Rel Kayu Akasia +Jungle Wood Fence Rail=Pagar Rel Kayu Hutan +Pine Wood Fence Rail=Pagar Rel Kayu Pain +Aspen Wood Fence Rail=Pagar Rel Kayu Aspen +Glass=Kaca +Obsidian Glass=Kaca Obsidia +Brick Block=Bongkah Bata +Mese Lamp=Lampu Mese +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Awan +Wooden Pickaxe=Beliung Kayu +Stone Pickaxe=Beliung Batu +Bronze Pickaxe=Beliung Gangsa +Steel Pickaxe=Beliung Keluli +Mese Pickaxe=Beliung Mese +Diamond Pickaxe=Beliung Intan +Wooden Shovel=Penyodok Kayu +Stone Shovel=Penyodok Batu +Bronze Shovel=Penyodok Gangsa +Steel Shovel=Penyodok Keluli +Mese Shovel=Penyodok Mese +Diamond Shovel=Penyodok Intan +Wooden Axe=Kapak Kayu +Stone Axe=Kapak Batu +Bronze Axe=Kapak Gangsa +Steel Axe=Kapak Keluli +Mese Axe=Kapak Mese +Diamond Axe=Kapak Intan +Wooden Sword=Pedang Kayu +Stone Sword=Pedang Batu +Bronze Sword=Pedang Gangsa +Steel Sword=Pedang Keluli +Mese Sword=Pedang Mese +Diamond Sword=Pedang Intan +Key=Kunci +Torch=Obor +@1 will intersect protection on growth.=@1 akan masuk kawasan perlindungan lain apabila ia tumbuh. + + +##### not used anymore ##### + +Dirt with Dry Grass=Tanah Berumput Kering +Dry Dirt=Tanah Kering +Dry Dirt with Dry Grass=Tanah Kering Berumput Kering +Dry Grass=Rumput Kering +Mese Post Light=Lampu Tiang Mese diff --git a/mods/default/locale/default.pt_BR.tr b/mods/default/locale/default.pt_BR.tr new file mode 100644 index 00000000..34ae20ae --- /dev/null +++ b/mods/default/locale/default.pt_BR.tr @@ -0,0 +1,215 @@ +# textdomain: default +Locked Chest=Baú Trancado +Locked Chest (owned by @1)=Baú Trancado (pertence a @1) +You do not own this chest.=Você não é dono deste baú. +a locked chest=um baú trancado +Chest=Baú +Title:=Título: +Contents:=Conteúdo: +Save=Salvar +by @1=por @1 +Page @1 of @2=Página @1 de @2 +"@1" by @2="@1" por @2 +Skeleton Key=Chave de Mestra +Key to @1's @2=Chave para @2 de @1 +Blueberries=Mirtilo +Book=Livro +Book with Text=Livro com Texto +Bronze Ingot=Lingote de Bronze +Clay Brick=Tijolo de Argila +Clay Lump=Pedaço de Argila +Coal Lump=Pedaço de Carvão +Copper Ingot=Lingote de Cobre +Copper Lump=Pedaço de Cobre +Diamond=Diamante +Flint=Sílex (Flint) +Gold Ingot=Lingote de Ouro +Gold Lump=Pedaço de Ouro +Iron Lump=Pedaço de Ferro +Mese Crystal=Cristal de Mese +Mese Crystal Fragment=Fragmento de Cristal de Mese +Obsidian Shard=Caco de Obsidian +Paper=Papel +Steel Ingot=Lingote de Aço +Stick=Graveto +Tin Ingot=Lingote de Estanho +Tin Lump=Pedaço de Estanho +Furnace is empty=A fornalha está vazia +100% (output full)=100% (saída cheia) +@1%=@1% +Not cookable=Não pode cozinhar +Empty=Vazio +Furnace active=Fornalha ativa +Furnace inactive=Fornalha inativa +(Item: @1; Fuel: @2)=(Item: @1; Combustível: @2) +Furnace=Fornalha +Stone=Pedra +Cobblestone=Pedregulho +Stone Brick=Tijolo de Pedra +Stone Block=Bloco de Pedra +Mossy Cobblestone=Pedregulho Musgoso +Desert Stone=Pedra do Deserto +Desert Cobblestone=Pedregulho do Deserto +Desert Stone Brick=Tijolo de Pedra do Deserto +Desert Stone Block=Bloco de Pedra do Deserto +Sandstone=Arenito +Sandstone Brick=Tijolo de Arenito +Sandstone Block=Bloco de Arenito +Desert Sandstone=Bloco de Arenito do Deserto +Desert Sandstone Brick=Tijolo de Arenito do Deserto +Desert Sandstone Block=Bloco de Arenito do Deserto +Silver Sandstone=Arenito Prateado +Silver Sandstone Brick=Tijolo de Arenito Prateado +Silver Sandstone Block=Bloco de Arenito Prateado +Obsidian=Obsidiana +Obsidian Brick=Tijolo de Obsidiana +Obsidian Block=Bloco de Obsidiana +Dirt=Terra +Dirt with Grass=Terra com Grama +Dirt with Grass and Footsteps=Terra com Grama e Pegadas +Dirt with Savanna Grass=Terra com Grama da Savana +Dirt with Snow=Terra com Neve +Dirt with Rainforest Litter=Terra com Serrapilheira Tropical +Dirt with Coniferous Litter=Terra com Serrapilheira +Savanna Dirt=Terra da Savana +Savanna Dirt with Savanna Grass=Terra da Savana com Grama da Savana +Permafrost=Terra Congelada +Permafrost with Stones=Terra Congelada com Pedras +Permafrost with Moss=Terra Congelada com Musgo +Sand=Areia +Desert Sand=Areia do Deserto +Silver Sand=Areia Prateada +Gravel=Cascalho +Clay=Argila +Snow=Neve +Snow Block=Bloco de Neve +Ice=Gelo +Cave Ice=Caverna de Gelo +Apple Tree=Macieira +Apple Wood Planks=Tábuas de Macieira +Apple Tree Sapling=Muda de Macieira +Apple Tree Leaves=Folhas de Macieira +Apple=Maçã +Apple Marker=Marcador de Maçã +Jungle Tree=Árvore da Selva +Jungle Wood Planks=Tábuas de Árvore da Selva +Jungle Tree Leaves=Folhas de Árvore da Selva +Jungle Tree Sapling=Muda de Árvore da Selva +Emergent Jungle Tree Sapling=Muda Crescida de Árvore da Selva +Pine Tree=Pinheiro +Pine Wood Planks=Tábuas de Pinheiro +Pine Needles=Agulhas de Pinheiro +Pine Tree Sapling=Muda de Pinheiro +Acacia Tree=Acácia +Acacia Wood Planks=Tábuas de Acácia +Acacia Tree Leaves=Folhas de Acácia +Acacia Tree Sapling=Mudas de Acácia +Aspen Tree=Álamo +Aspen Wood Planks=Tábuas de Álamo +Aspen Tree Leaves=Folhas de Álamo +Aspen Tree Sapling=Muda de Álamo +Coal Ore=Minério de Carvão +Coal Block=Bloco de Carvão +Iron Ore=Minério de Ferro +Steel Block=Bloco de Aço +Copper Ore=Minério de Cobre +Copper Block=Bloco de Cobre +Tin Ore=Minério de Estanho +Tin Block=Bloco de Estanho +Bronze Block=Bloco de Bronze +Mese Ore=Minério de Mese +Mese Block=Bloco de Mese +Gold Ore=Minério de Ouro +Gold Block=Bloco de Ouro +Diamond Ore=Minério de Diamante +Diamond Block=Bloco de Diamante +Cactus=Cacto +Large Cactus Seedling=Grande Muda de Cacto +Papyrus=Papiro +Dry Shrub=Arbusto Seco +Jungle Grass=Grama da Selva +Grass=Grama +Savanna Grass=Grama da Savana +Fern=Samambaia +Marram Grass=Grama de Feno +Bush Stem=Caule de Arbusto +Bush Leaves=Folhas de Arbusto +Bush Sapling=Muda de Arbusto +Blueberry Bush Leaves with Berries=Folhas de Arbusto de Mirtilo com Bagas +Blueberry Bush Leaves=Folhas de Arbusto de Mirtilo +Blueberry Bush Sapling=Muda de Arbusto de Mirtilo +Acacia Bush Stem=Caule de Arbusto de Acácia +Acacia Bush Leaves=Folhas de Arbusto de Acácia +Acacia Bush Sapling=Muda de Arbusto de Acácia +Pine Bush Stem=Caule de Arbusto de Pinheiro +Pine Bush Needles=Agulha de Arbusto de Pinheiro +Pine Bush Sapling=Muda de Arbusto de Pinheiro +Kelp=Alga +Green Coral=Coral Verde +Pink Coral=Coral Rosa +Cyan Coral=Coral Ciano +Brown Coral=Coral Marrom +Orange Coral=Coral Laranja +Coral Skeleton=Esqueleto de Coral +Water Source=Fonte de Água +Flowing Water=Água Corrente +River Water Source=Fonte de Água do Rio +Flowing River Water=Água Corrente do Rio +Lava Source=Fonte de Lava +Flowing Lava=Lava Corrente +Empty Bookshelf=Estante de Livros Vazia +Bookshelf (@1 written, @2 empty books)=Estante de Livros (@1 livros escritos, @2 livros em branco) +Bookshelf=Estante de Livros +Text too long=Texto muito longo +"@1"="@1" +Wooden Sign=Placa de Madeira +Steel Sign=Placa de Aço +Wooden Ladder=Escada de Madeira +Steel Ladder=Escada de Aço +Apple Wood Fence=Cerca de Macieira +Acacia Wood Fence=Cerca de Acácia +Jungle Wood Fence=Cerca de Madeira da Selva +Pine Wood Fence=Cerca de Pinheiro +Aspen Wood Fence=Cerca de Álamo +Apple Wood Fence Rail=Trilho de Cerca de Macieira +Acacia Wood Fence Rail=Trilho de Cerca de Acácia +Jungle Wood Fence Rail=Trilho de Cerca de Madeira da Selva +Pine Wood Fence Rail=Trilho de Cerca de Pinheiro +Aspen Wood Fence Rail=Trilho de Cerca de Álamo +Glass=Vidro +Obsidian Glass=Vidro de Obsidiana +Brick Block=Bloco de Tijolos +Mese Lamp=Lâmpada de Mese +Apple Wood Mese Post Light=Poste de Lâmpada de Mese de Macieira +Acacia Wood Mese Post Light=Poste de Lâmpada de Mese de Acácia +Jungle Wood Mese Post Light=Poste de Lâmpada de Mese de Madeira da Selva +Pine Wood Mese Post Light=Poste de Lâmpada de Mese de Pinheiro +Aspen Wood Mese Post Light=Poste de Lâmpada de Mese de Aspen +Cloud=Nuvem +Wooden Pickaxe=Picareta de Madeira +Stone Pickaxe=Picareta de Pedra +Bronze Pickaxe=Picareta de Bronze +Steel Pickaxe=Picareta de Aço +Mese Pickaxe=Picareta de Mese +Diamond Pickaxe=Picareta de Diamante +Wooden Shovel=Pá de Madeira +Stone Shovel=Pá de Pedra +Bronze Shovel=Pá de Bronze +Steel Shovel=Pá de Aço +Mese Shovel=Pá de Mese +Diamond Shovel=Pá de Diamante +Wooden Axe=Machado de Madeira +Stone Axe=Machado de Pedra +Bronze Axe=Machado de Bronze +Steel Axe=Machado de Aço +Mese Axe=Machado de Mese +Diamond Axe=Machado de Diamante +Wooden Sword=Espada de Madeira +Stone Sword=Espada de Pedra +Bronze Sword=Espada de Bronze +Steel Sword=Espada de Aço +Mese Sword=Espada de Mese +Diamond Sword=Espada de Diamante +Key=Chave +Torch=Tocha +@1 will intersect protection on growth.=@1 cruzará a proteção no crescimento. diff --git a/mods/default/locale/default.ru.tr b/mods/default/locale/default.ru.tr new file mode 100644 index 00000000..4415f672 --- /dev/null +++ b/mods/default/locale/default.ru.tr @@ -0,0 +1,224 @@ +# textdomain: default +Locked Chest=Заблокированный Сундук +Locked Chest (owned by @1)=Заблокированный Сундук (владелец: @1) +You do not own this chest.=Вы не владелец этого сундука. +a locked chest=заблокированный сундук +Chest=Сундук +Title:=Заголовок: +Contents:=Содержимое: +Save=Сохранить +by @1=@1 +Page @1 of @2=Страница @1 из @2 +"@1" by @2="@1" @2 +Skeleton Key=Ключ Скелета +Key to @1's @2=Ключ к @2 от @1 +Blueberries=Черника +Book=Книга +Book with Text=Книга с Текстом +Bronze Ingot=Бронзовый Слиток +Clay Brick=Глиняный Кирпич +Clay Lump=Ком Глины +Coal Lump=Кусок Угля +Copper Ingot=Медный Слиток +Copper Lump=Кусок Меди +Diamond=Алмаз +Flint=Кремень +Gold Ingot=Золотой Слиток +Gold Lump=Кусок Золота +Iron Lump=Кусок Железа +Mese Crystal=Кристалл Месе +Mese Crystal Fragment=Осколок Кристалла Месе +Obsidian Shard=Обсидиановый Осколок +Paper=Бумага +Steel Ingot=Железный Слиток +Stick=Палка +Tin Ingot=Оловянный Слиток +Tin Lump=Кусок Олова +Furnace is empty=Печь пуста +100% (output full)=100% (полное приготовление) +@1%=@1% +Not cookable=Не может быть приготовлено +Empty=Пустое +Furnace active=Печь зажжена +Furnace inactive=Печь не зажжена +(Item: @1; Fuel: @2)=(Предмет: @1; Топливо: @2) +Furnace=Печь +Stone=Камень +Cobblestone=Булыжник +Stone Brick=Каменный Кирпич +Stone Block=Каменный Блок +Mossy Cobblestone=Мшистый Булыжник +Desert Stone=Пустынный Камень +Desert Cobblestone=Пустынный Булыжник +Desert Stone Brick=Пустынный Каменный Кирпич +Desert Stone Block=Пустынный Каменный Блок +Sandstone=Песчаник +Sandstone Brick=Песчаниковый Кирпич +Sandstone Block=Песчаниковый Блок +Desert Sandstone=Пустынный Песчаник +Desert Sandstone Brick=Пустынный Песчаниковый Кирпич +Desert Sandstone Block=Пустынный Песчаниковый Блок +Silver Sandstone=Серебряный Песчаник +Silver Sandstone Brick=Серебряный Песчаниковый Кирпич +Silver Sandstone Block=Серебряный Песчаниковый Блок +Obsidian=Обсидиан +Obsidian Brick=Обсидиановый Кирпич +Obsidian Block=Обсидиановый Блок +Dirt=Земля +Dirt with Grass=Земля с Травой +Dirt with Grass and Footsteps=Земля с Травой и Следами +Dirt with Savanna Grass= +Dirt with Snow=Земля Со Снегом +Dirt with Rainforest Litter=Земля с Тропической Подстилкой +Dirt with Coniferous Litter=Земля с Сосновой Подстилкой +Savanna Dirt= +Savanna Dirt with Savanna Grass= +Permafrost=Замороженная Почва +Permafrost with Stones=Замороженная Почва с Камнями +Permafrost with Moss=Замороженная Почва с Мхом +Sand=Песок +Desert Sand=Пустынный Песок +Silver Sand=Серебряный Песок +Gravel=Гравий +Clay=Глиняный Блок +Snow=Снег +Snow Block=Снежный Блок +Ice=Лёд +Cave Ice=Пещерный Лёд +Apple Tree=Ствол Яблони +Apple Wood Planks=Яблоневые Доски +Apple Tree Sapling=Саженец Яблони +Apple Tree Leaves=Яблоневая Листва +Apple=Яблоко +Apple Marker=Яблочная Метка +Jungle Tree=Ствол Тропического Дерева +Jungle Wood Planks=Доски из Тропического Дерева +Jungle Tree Leaves=Листва Тропического Дерева +Jungle Tree Sapling=Саженец Тропического Дерева +Emergent Jungle Tree Sapling=Выросший Саженец Тропического Дерева +Pine Tree=Сосновый Ствол +Pine Wood Planks=Сосновые Доски +Pine Needles=Сосновая Хвоя +Pine Tree Sapling=Саженец Сосны +Acacia Tree=Ствол Акации +Acacia Wood Planks=Доски Акации +Acacia Tree Leaves=Листва Акации +Acacia Tree Sapling=Саженец Акации +Aspen Tree=Ствол Осины +Aspen Wood Planks=Осиновые Доски +Aspen Tree Leaves=Осиновая Листва +Aspen Tree Sapling=Саженец Осины +Coal Ore=Уголь +Coal Block=Угольный Блок +Iron Ore=Железная Руда +Steel Block=Стальной Блок +Copper Ore=Медная Руда +Copper Block=Медный Блок +Tin Ore=Оловянная Руда +Tin Block=Оловянный Блок +Bronze Block=Бронзовый Блок +Mese Ore=Месевая Руда +Mese Block=Месевый Блок +Gold Ore=Золотая Руда +Gold Block=Золотой Блок +Diamond Ore=Алмаз +Diamond Block=Алмазный Блок +Cactus=Кактус +Large Cactus Seedling=Саженец Кактуса +Papyrus=Папирус +Dry Shrub=Сухой Куст +Jungle Grass=Тропическая Трава +Grass=Трава +Savanna Grass= +Fern=Папоротник +Marram Grass=Песколюб +Bush Stem=Стебли Куста +Bush Leaves=Листья Куста +Bush Sapling=Саженец Куста +Blueberry Bush Leaves with Berries=Куст Черники с Ягодами +Blueberry Bush Leaves=Куст Черники +Blueberry Bush Sapling=Саженец Куста Черники +Acacia Bush Stem=Стебли Куста Акации +Acacia Bush Leaves=Листья Куста Акации +Acacia Bush Sapling=Саженец Куста Акации +Pine Bush Stem=Стебли Хвойного Куста +Pine Bush Needles=Хвоя Куста +Pine Bush Sapling=Саженец Хвойного Куста +Kelp=Ламинария +Green Coral=Зеленый Коралл +Pink Coral=Розовый Коралл +Cyan Coral=Голубой Коралл +Brown Coral=Коричневый Коралл +Orange Coral=Оранжевый Коралл +Coral Skeleton=Коралловый Остов +Water Source=Водный Источник +Flowing Water=Текущая Вода +River Water Source=Речной Водный Источник +Flowing River Water=Текущая Речная Вода +Lava Source=Лавовый Источник +Flowing Lava=Текущая Лава +Empty Bookshelf=Пустая Книжная Полка +Bookshelf (@1 written, @2 empty books)=Книжная Полка (@1 написано, @2 чистые книги) +Bookshelf=Книжная Полка +Text too long=Текст слишком длинный +"@1"="@1" +Wooden Sign=Деревянная Табличка +Steel Sign=Стальная Табличка +Wooden Ladder=Деревянная Лестница +Steel Ladder=Стальная Лестница +Apple Wood Fence=Яблоневый Деревянный Забор +Acacia Wood Fence=Деревянный Забор Из Акации +Jungle Wood Fence=Деревянный Забор Из Тропического Дерева +Pine Wood Fence=Сосновый Деревянный Забор +Aspen Wood Fence=Осиновый Деревянный Забор +Apple Wood Fence Rail=Яблоневый Деревянный Реечный Забор +Acacia Wood Fence Rail=Деревянный Реечный Забор Из Акации +Jungle Wood Fence Rail=Деревянный Реечный Забор Из Тропического Дерева +Pine Wood Fence Rail=Сосновый Деревянный Реечный Забор +Aspen Wood Fence Rail=Осиновый Деревянный Реечный Забор +Glass=Стекло +Obsidian Glass=Обсидиановое Стекло +Brick Block=Кирпичный Блок +Mese Lamp=Месе Лампа +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Облако +Wooden Pickaxe=Деревянная Кирка +Stone Pickaxe=Каменная Кирка +Bronze Pickaxe=Бронзовая Кирка +Steel Pickaxe=Стальная Кирка +Mese Pickaxe=Месе Кирка +Diamond Pickaxe=Алмазная Кирка +Wooden Shovel=Деревянная Лопата +Stone Shovel=Каменная Лопата +Bronze Shovel=Бронзовая Лопата +Steel Shovel=Стальная Лопата +Mese Shovel=Месе Лопата +Diamond Shovel=Алмазная Лопата +Wooden Axe=Деревянный Топор +Stone Axe=Каменный Топор +Bronze Axe=Бронзовый Топор +Steel Axe=Стальной Топор +Mese Axe=Месе Топор +Diamond Axe=Алмазный Топор +Wooden Sword=Деревянный Меч +Stone Sword=Каменный Меч +Bronze Sword=Бронзовый Меч +Steel Sword=Стальной Меч +Mese Sword=Месе Меч +Diamond Sword=Алмазный Меч +Key=Ключ +Torch=Факел +@1 will intersect protection on growth.=@1 пересечёт защиту по росту. + + +##### not used anymore ##### + +Dirt with Dry Grass=Земля с Сухой Травой +Dry Dirt=Сухая Земля +Dry Dirt with Dry Grass=Сухая Земля с Сухой Травой +Dry Grass=Сухая Трава +Mese Post Light=Столб с Месе Фонарем diff --git a/mods/default/locale/default.se.tr b/mods/default/locale/default.se.tr new file mode 100644 index 00000000..74f165f2 --- /dev/null +++ b/mods/default/locale/default.se.tr @@ -0,0 +1,225 @@ +# textdomain: default +## textdomain: default +Locked Chest=Låst kista +Locked Chest (owned by @1)=Låst kista (Ägd av @1) +You do not own this chest.=Du äger inte denna kistan. +a locked chest=en låst kista +Chest=Kista +Title:=Titel: +Contents:=Innehåll: +Save=Spara +by @1=av @1 +Page @1 of @2=Sida @1 av @2 +"@1" by @2="@1" av @2 +Skeleton Key=Skelett Nyckel +Key to @1's @2=Nyckel till @1s @2 +Blueberries=Blåbär +Book=Bok +Book with Text=Bok med text +Bronze Ingot=Brons tacka +Clay Brick=Tegelsten +Clay Lump=Lerklump +Coal Lump=Kol Klumo +Copper Ingot=Koppar tacka +Copper Lump=Koppar Klump +Diamond=Diamant +Flint=Flinta +Gold Ingot=Guld tacka +Gold Lump=Guld Klump +Iron Lump=Järn Klump +Mese Crystal=Mese Kristall +Mese Crystal Fragment=Mese Kristall Fragment +Obsidian Shard=Obsidian Skärva +Paper=Papper +Steel Ingot=Stål tacka +Stick=Pinne +Tin Ingot=Tenn tacka +Tin Lump=Tenn Klump +Furnace is empty=Ugnen är tom +100% (output full)=100% (utgången full) +@1%=@1% +Not cookable=Inte kokbar +Empty=Tom +Furnace active=Ugn aktiv +Furnace inactive=Ugn inaktiv +(Item: @1; Fuel: @2)=(Sak: @1; Bränsle: @2) +Furnace=Ugn +Stone=Sten +Cobblestone=Kullersten +Stone Brick=Stentegel +Stone Block=Sten block +Mossy Cobblestone=Mossig kullersten +Desert Stone=Öken sten +Desert Cobblestone=Öken kullersten +Desert Stone Brick=Öken stentegel +Desert Stone Block=Öken sten block +Sandstone=Sandsten +Sandstone Brick=Sandstenstegel +Sandstone Block=Sandsten block +Desert Sandstone=Öken sandsten +Desert Sandstone Brick=Öken Sandstenstegel +Desert Sandstone Block=Öken sandsten block +Silver Sandstone=Silver sandsten +Silver Sandstone Brick=Silver Sandstenstegel +Silver Sandstone Block=Silver sandsten block +Obsidian=Obsidian +Obsidian Brick=Obsidiantegel +Obsidian Block=Obsidian block +Dirt=Jord +Dirt with Grass=Jord med gräs +Dirt with Grass and Footsteps=Jord med gräs och fotsteg +Dirt with Savanna Grass= +Dirt with Snow=Jord med snö +Dirt with Rainforest Litter=Jord med regnskogströ +Dirt with Coniferous Litter=Jord med Barrträd +Savanna Dirt= +Savanna Dirt with Savanna Grass= +Permafrost=Permafrost +Permafrost with Stones=Permafrost med sten +Permafrost with Moss=Permafrost med mossa +Sand=Sand +Desert Sand=Öken sand +Silver Sand=Silver sand +Gravel=Grus +Clay=Lera +Snow=Snö +Snow Block=Snö block +Ice=Is +Cave Ice=Grott Is +Apple Tree=Äpple Träd +Apple Wood Planks=Äpple Plankor +Apple Tree Sapling=Äpple Planta +Apple Tree Leaves=Äpple Löv +Apple=Äpple +Apple Marker=Äpple Markör +Jungle Tree=Djungel Träd +Jungle Wood Planks=Djungel Plankor +Jungle Tree Leaves=Djungel Löv +Jungle Tree Sapling=Djungel Planta +Emergent Jungle Tree Sapling=Nybliven Djungel Planta +Pine Tree=Tall +Pine Wood Planks= Tall Plankor +Pine Needles=Granbarr +Pine Tree Sapling=Tall Planta +Acacia Tree=Akacia Träd +Acacia Wood Planks=Akacia Plankor +Acacia Tree Leaves=Akacia Löv +Acacia Tree Sapling=Akacia Planta +Aspen Tree=Asp +Aspen Wood Planks=Asp Plankor +Aspen Tree Leaves=Asp Löv +Aspen Tree Sapling=Asp Planta +Coal Ore=Kol Malm +Coal Block=Kol Block +Iron Ore=Järn Malm +Steel Block=Stål Block +Copper Ore=Koppar Malm +Copper Block=Koppar Block +Tin Ore=Tenn Malm +Tin Block=Tenn Block +Bronze Block=Brons Block +Mese Ore=Mese Malm +Mese Block=Mese Block +Gold Ore=Guld Malm +Gold Block=Guld Block +Diamond Ore=Diamant Malm +Diamond Block=Diamant Block +Cactus=Kaktus +Large Cactus Seedling=Stor kaktusplanta +Papyrus=Papyrus +Dry Shrub=Torr Buske +Jungle Grass=Djungel Gräs +Grass=Gräs +Savanna Grass= +Fern=Ormbunke +Marram Grass=Marram Gräs +Bush Stem=Busk Stam +Bush Leaves=Busk Löv +Bush Sapling=Busk Planta +Blueberry Bush Leaves with Berries=Blåbärsbusks Löv med Bär +Blueberry Bush Leaves=Blåbärsbusks Löv +Blueberry Bush Sapling=Blåbärsbusks Plantga +Acacia Bush Stem=Akacia Busks Stam +Acacia Bush Leaves=Akacia Busks Löv +Acacia Bush Sapling=Akacia Busks Planta +Pine Bush Stem=Tall Busks Stam +Pine Bush Needles=Tall Busks Granbarr +Pine Bush Sapling=Tall Busks Planta +Kelp=Brunalg +Green Coral=Grön Korall +Pink Coral=Rosa Korall +Cyan Coral=Cyan Korall +Brown Coral=Brun Korall +Orange Coral=Orange Korall +Coral Skeleton=Korall Skelett +Water Source=Vattenkälla +Flowing Water=Flödande Vatten +River Water Source=Flodvattenkälla +Flowing River Water=Flödande Flodvatten +Lava Source=Lavakälla +Flowing Lava=Flödande Lava +Empty Bookshelf=Tom Bokhylla +Bookshelf (@1 written, @2 empty books)=Bokhylla (@1 skriva, @2 tomma böcker) +Bookshelf=Bokhylla +Text too long=Text för lång +"@1"="@1" +Wooden Sign=Trä Skylt +Steel Sign=Stål Skylt +Wooden Ladder=Trä Stege +Steel Ladder=Stål Stege +Apple Wood Fence=Äpple Trä Staket +Acacia Wood Fence=Akacia Trä Staket +Jungle Wood Fence=Djungel Trä Staket +Pine Wood Fence=Tall Trä Staket +Aspen Wood Fence=Asp Trä Staket +Apple Wood Fence Rail=Äpple Trä Staket Pinne +Acacia Wood Fence Rail=Akacia Trä Staket Pinne +Jungle Wood Fence Rail=Djungel Trä Staket Pinne +Pine Wood Fence Rail=Tall Trä Staket Pinne +Aspen Wood Fence Rail=Asp Trä Staket Pinne +Glass=Glas +Obsidian Glass=Obsidian Glas +Brick Block=Tegelstens Block +Mese Lamp=Mese Lampa +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Moln +Wooden Pickaxe=Trä Hacka +Stone Pickaxe=Sten Hacka +Bronze Pickaxe=Brons Hacka +Steel Pickaxe=Stål Hacka +Mese Pickaxe=Mese Hacka +Diamond Pickaxe=Diamant Hacka +Wooden Shovel=Trä Spade +Stone Shovel=Sten Spade +Bronze Shovel=Brons Spade +Steel Shovel=Stål Spade +Mese Shovel=Mese Spade +Diamond Shovel=Diamant Spade +Wooden Axe=Trä Yxa +Stone Axe=Sten Yxa +Bronze Axe=Brons Yxa +Steel Axe=Stål Yxa +Mese Axe=Mese Yxa +Diamond Axe=Diamant Yxa +Wooden Sword=Trä Svärd +Stone Sword=Sten Svärd +Bronze Sword=Brons Svärd +Steel Sword=Stål Svärd +Mese Sword=Mese Svärd +Diamond Sword=Diamant Svärd +Key=Nyckel +Torch=Fakla +@1 will intersect protection on growth.=@1 kommer korsa skyddet mot tillväxt. + + +##### not used anymore ##### + +Dirt with Dry Grass=Jord med torrt gräs +Dry Dirt=Torr jord +Dry Dirt with Dry Grass=Torr jord med torrt gräs +Dry Grass=Torrt Gräs +Mese Post Light=Mese Postljus diff --git a/mods/default/locale/default.sk.tr b/mods/default/locale/default.sk.tr new file mode 100644 index 00000000..25f4b919 --- /dev/null +++ b/mods/default/locale/default.sk.tr @@ -0,0 +1,220 @@ +# textdomain: default +Locked Chest=Uzamknutá truhlica +Locked Chest (owned by @1)=Uzamknutá truhlica (Vlastník - @1) +You do not own this chest.=Túto truhlicu nevlastníš. +a locked chest=zamknutá truhlica +Chest=Truhlica +Title:=Názov: +Contents:=Obsah: +Save=Uložiť +by @1=od @1 +Page @1 of @2=Strana @1 z @2 +"@1" by @2=„@1“ z @2 +Skeleton Key=Základný kľuč +Key to @1's @2=Kľuč pre @2 hráča @1 +Blueberries=Čučoriedky +Book=Kniha +Book with Text=Kniha s textom +Bronze Ingot=Bronzový ingot +Clay Brick=Nepálená tehla +Clay Lump=Hruda ílu +Coal Lump=Hruda uhlia +Copper Ingot=Medený ingot +Copper Lump=Hruda medi +Diamond=Diamant +Flint=Kresací kamienok +Gold Ingot=Zlatý ingot +Gold Lump=Hruda zlata +Iron Lump=Hruda železa +Mese Crystal=Mese Krištáľ +Mese Crystal Fragment=Fragment Mese krištáľu +Obsidian Shard=Úlomok obsidiánu +Paper=Papier +Steel Ingot=Oceľový ingot +Stick=Palica +Tin Ingot=Cínový ingot +Tin Lump=Hruda cínu +Furnace is empty=Pec je prázdna +100% (output full)=100% (Výstup je plný) +@1%=@1% +Not cookable=Nie je variteľné +Empty=Prázdne +Furnace active=Pec je aktívna +Furnace inactive=Pec je neaktívna +(Item: @1; Fuel: @2)=(Vec: @1; Palivo: @2) +Furnace=Pec +Stone=Kameň +Cobblestone=Dlažbový kameň +Stone Brick=Tehla z kameňa +Stone Block=Blok kameňa +Mossy Cobblestone=Dlažbový kameň obrastený machom +Desert Stone=Púštny kameň +Desert Cobblestone=Púštny dlažbový kameň +Desert Stone Brick=Tehla z púštneho kameňa +Desert Stone Block=Blok púštneho kameňa +Sandstone=Pieskovec +Sandstone Brick=Tehla z pieskovca +Sandstone Block=Blok pieskovca +Desert Sandstone=Púštny pieskovec +Desert Sandstone Brick=Tehla z púštneho pieskovca +Desert Sandstone Block=Blok púštneho pieskovca +Silver Sandstone=Strieborný pieskovec +Silver Sandstone Brick=Tehla zo strieborného pieskovca +Silver Sandstone Block=Blok strieborného pieskovca +Obsidian=Obsidián +Obsidian Brick=Tehla z obsidiánu +Obsidian Block=Blok obsidiánu +Dirt=Hlina +Dirt with Grass=Hlina s trávou +Dirt with Grass and Footsteps=Hlina s trávou a stopami +Dirt with Savanna Grass=Hlina s trávou zo savany +Dirt with Snow=Hlina so snehom +Dirt with Rainforest Litter=Hlina s povrchom dažďového pralesa +Dirt with Coniferous Litter=Hlina s ihličnatým povrchom +Savanna Dirt=Hlina zo savany +Savanna Dirt with Savanna Grass=Hlina zo savany s trávou +Permafrost=Permafrost +Permafrost with Stones=Permafrost s kameňmi +Permafrost with Moss=Permafrost s machom +Sand=Piesok +Desert Sand=Púštny piesok +Silver Sand=Strieborný piesok +Gravel=Štrk +Clay=Íl +Snow=Sneh +Snow Block=Blok snehu +Ice=Ľad +Cave Ice=Jaskynný ľad +Apple Tree=Jabloň +Apple Wood Planks=Drevené dosky z jablone +Apple Tree Sapling=Stromček jablone +Apple Tree Leaves=Listy z jablone +Apple=Jablko +Apple Marker=Jablková značka +Jungle Tree=Ďungľový strom +Jungle Wood Planks=Drevené dosky z džungľového stromu +Jungle Tree Leaves=Listy z džungľového stromu +Jungle Tree Sapling=Džungľový stromček +Emergent Jungle Tree Sapling=Vznikajúci džungľový stromček +Pine Tree=Borovica +Pine Wood Planks=Drevené dosky z borovice +Pine Needles=Ihličie z borovice +Pine Tree Sapling=Borovicový stromček +Acacia Tree=Akácia +Acacia Wood Planks=Drevené dosky z akácie +Acacia Tree Leaves=Listy z akácie +Acacia Tree Sapling=Stromček akácie +Aspen Tree=Osika +Aspen Wood Planks=Drevené dosky z osiky +Aspen Tree Leaves=Listy z osiky +Aspen Tree Sapling=Stromček osiky +Coal Ore=Uhoľná ruda +Coal Block=Blok uhlia +Iron Ore=Železná ruda +Steel Block=Blok ocele +Copper Ore=Medená ruda +Copper Block=Blok medi +Tin Ore=Cínová ruda +Tin Block=Blok cínu +Bronze Block=Blok bronzu +Mese Ore=Mese Ruda +Mese Block=Blok Mese +Gold Ore=Zlatá ruda +Gold Block=Blok zlata +Diamond Ore=Diamantová ruda +Diamond Block=Blok diamantu +Cactus=Kaktus +Large Cactus Seedling=Vaľká sadenica kaktusu +Papyrus=Papyrus +Dry Shrub=Suchý ker +Jungle Grass=Džungľová tráva +Grass=Tráva +Savanna Grass=Tráva zo savany +Fern=Papraď +Marram Grass=Pobrežná tráva +Bush Stem=Stonka z kríka +Bush Leaves=Listy z kríka +Bush Sapling=Sadenica kríka +Blueberry Bush Leaves with Berries=Čučoriedkové listy s čučoriedkami +Blueberry Bush Leaves=Čučoriedkové listy +Blueberry Bush Sapling=Sadenica čučoriedky +Acacia Bush Stem=Stonka z kríka akácie +Acacia Bush Leaves=Listy z kríka akácie +Acacia Bush Sapling=Sadenica kríka akácie +Pine Bush Stem=Stonka kríka borovice +Pine Bush Needles=Ihličie kríka borovice +Pine Bush Sapling=Sadenica kríka borovice +Kelp=Riasa +Green Coral=Zelený koral +Pink Coral=Ružový koral +Cyan Coral=Tyrkysový koral +Brown Coral=Hnedý koral +Orange Coral=Oranžový koral +Coral Skeleton=Koralová kostra +Water Source=Zdroj vody +Flowing Water=Tečúca voda +River Water Source=Zdroj riečnej voda +Flowing River Water=Tečúca riečna voda +Lava Source=Zdroj lávy +Flowing Lava=Tečúca láva +Empty Bookshelf=Prázdna knižnica +Bookshelf (@1 written, @2 empty books)=Knižnica (@1 popísané, @2 prázdne knihy) +Bookshelf=Knižnica +Text too long=Text je príliš dlhý +"@1"=„@1“ +Wooden Sign=Drevená tabuľka +Steel Sign=Oceľová tabuľka +Wooden Ladder=Drevený rebrík +Steel Ladder=Oceľový rebrík +Apple Wood Fence=Drevený plot z jablone +Acacia Wood Fence=Drevený plot z akácie +Jungle Wood Fence=Drevený plot z džungľového dreva +Pine Wood Fence=Drevený plot z borovice +Aspen Wood Fence=Drevený plot z osiky +Apple Wood Fence Rail=Drevené zábradlie z jablone +Acacia Wood Fence Rail=Drevené zábradlie z akácie +Jungle Wood Fence Rail=Drevené zábradlie z džungľového dreva +Pine Wood Fence Rail=Drevené zábradlie z borovice +Aspen Wood Fence Rail=Drevené zábradlie z osiky +Glass=Sklo +Obsidian Glass=Obsidiánové sklo +Brick Block=Blok z tehál +Mese Lamp=Mese lampa +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud=Oblak +Wooden Pickaxe=Drevený krompáč +Stone Pickaxe=Kamenný krompáč +Bronze Pickaxe=Bronzový krompáč +Steel Pickaxe=Oceľový krompáč +Mese Pickaxe=Mese krompáč +Diamond Pickaxe=Diamantový krompáč +Wooden Shovel=Drevená lopata +Stone Shovel=Kamenná lopata +Bronze Shovel=Bronzová lopata +Steel Shovel=Oceľová lopata +Mese Shovel=Mese lopata +Diamond Shovel=Diamantová lopata +Wooden Axe=Drevená sekera +Stone Axe=Kamenná sekera +Bronze Axe=Bronzová sekera +Steel Axe=Oceľová sekera +Mese Axe=Mese sekera +Diamond Axe=Diamantová sekera +Wooden Sword=Drevený meč +Stone Sword=Kamenný meč +Bronze Sword=Bronzový meč +Steel Sword=Oceľový meč +Mese Sword=Mese meč +Diamond Sword=Diamantový meč +Key=Kľúč +Torch=Fakľa +@1 will intersect protection on growth.=@1 prekročí pri raste chránenú zónu. + + +##### not used anymore ##### + +Mese Post Light=Mese stĺpová lampa diff --git a/mods/default/locale/default.zh_CN.tr b/mods/default/locale/default.zh_CN.tr new file mode 100644 index 00000000..0db652d4 --- /dev/null +++ b/mods/default/locale/default.zh_CN.tr @@ -0,0 +1,221 @@ +# textdomain: default +Locked Chest=已上锁的箱子 +Locked Chest (owned by @1)=已上锁的箱子(属于@1所有) +You do not own this chest.=这个箱子不属于你所有。 +a locked chest=一个已上锁的箱子 +Chest=箱子 +Title:=标题: +Contents:=内容: +Save=保存 +by @1=由@1 +Page @1 of @2=第@1页,共@2页。 +"@1" by @2="@1" by @2 +Skeleton Key=万能钥匙 +Key to @1's @2=@1的@2的钥匙 +Blueberries=蓝莓 +Book=书 +Book with Text=带文字的书 +Bronze Ingot=青铜锭 +Clay Brick=粘土砖 +Clay Lump=粘土块 +Coal Lump=煤块 +Copper Ingot=铜锭 +Copper Lump=铜块 +Diamond=钻石 +Flint=燧石 +Gold Ingot=金锭 +Gold Lump=金块 +Iron Lump=铁块 +Mese Crystal=黄石晶体 +Mese Crystal Fragment=黄石晶体碎片 +Obsidian Shard=黑曜石碎片 +Paper=纸 +Steel Ingot=铁锭 +Stick=棒 +Tin Ingot=锡锭 +Tin Lump=锡块 +Furnace is empty=熔炉是空的 +100% (output full)=100%(输出已满) +@1%=@1% +Not cookable=不可烹饪 +Empty=空 +Furnace active=熔炉正在运转 +Furnace inactive=熔炉未使用 +(Item: @1; Fuel: @2)=(项目:@1;燃料:@2) +Furnace=熔炉 +Stone=石 +Cobblestone=鹅卵石 +Stone Brick=石砖 +Stone Block=石方块 +Mossy Cobblestone=苔藓覆盖的鹅卵石 +Desert Stone=沙漠石 +Desert Cobblestone=沙漠鹅卵石 +Desert Stone Brick=沙漠鹅卵石砖 +Desert Stone Block=沙漠鹅卵石方块 +Sandstone=砂岩 +Sandstone Brick=砂岩砖 +Sandstone Block=砂岩方块 +Desert Sandstone=沙漠砂岩 +Desert Sandstone Brick=沙漠砂岩砖 +Desert Sandstone Block=沙漠砂岩方块 +Silver Sandstone=银砂岩 +Silver Sandstone Brick=银砂岩砖 +Silver Sandstone Block=银砂岩方块 +Obsidian=黑曜石 +Obsidian Brick=黑曜石砖 +Obsidian Block=黑曜石方块 +Dirt=土方块 +Dirt with Grass=草方块 +Dirt with Grass and Footsteps=草方块及脚印 +Dirt with Savanna Grass=草原草方块 +Dirt with Snow=雪土方块 +Dirt with Rainforest Litter=雨林腐土 +Dirt with Coniferous Litter=针叶林腐土 +Savanna Dirt=草原土 +Savanna Dirt with Savanna Grass=草原草方块(草原土) +Permafrost=多年冻土 +Permafrost with Stones=带石头的多年冻土 +Permafrost with Moss=生苔的多年冻土 +Sand=沙 +Desert Sand=沙漠沙 +Silver Sand=银沙 +Gravel=沙砾 +Clay=粘土 +Snow=雪 +Snow Block=雪方块 +Ice=冰 +Cave Ice=洞穴冰 +Apple Tree=苹果树 +Apple Wood Planks=苹果树木板 +Apple Tree Sapling=苹果树苗 +Apple Tree Leaves=苹果树叶 +Apple=苹果 +Apple Marker=苹果标记 +Jungle Tree=丛林树 +Jungle Wood Planks=丛林树木板 +Jungle Tree Leaves=丛林树叶 +Jungle Tree Sapling=丛林树苗 +Emergent Jungle Tree Sapling=应急丛林树苗 +Pine Tree=松树 +Pine Wood Planks=松树木板 +Pine Needles=松针 +Pine Tree Sapling=松树树苗 +Acacia Tree=相思树 +Acacia Wood Planks=相思树木板 +Acacia Tree Leaves=相思树叶 +Acacia Tree Sapling=相思树树苗 +Aspen Tree=白杨树 +Aspen Wood Planks=白杨树木板 +Aspen Tree Leaves=白杨树叶 +Aspen Tree Sapling=白杨树树苗 +Coal Ore=煤炭矿石 +Coal Block=煤炭方块 +Iron Ore=铁矿石 +Steel Block=钢方块 +Copper Ore=铜矿石 +Copper Block=铜方块 +Tin Ore=锡矿石 +Tin Block=锡方块 +Bronze Block=青铜方块 +Mese Ore=黄石矿石 +Mese Block=黄石方块 +Gold Ore=金矿石 +Gold Block=金方块 +Diamond Ore=钻石矿石 +Diamond Block=钻石方块 +Cactus=仙人掌 +Large Cactus Seedling=大仙人掌苗 +Papyrus=莎草纸 +Dry Shrub=干灌木 +Jungle Grass=丛林草 +Grass=草 +Savanna Grass= +Fern=蕨 +Marram Grass=滨草 +Bush Stem=灌木 +Bush Leaves=灌木叶 +Bush Sapling=灌木苗 +Blueberry Bush Leaves with Berries=蓝莓灌木叶与浆果 +Blueberry Bush Leaves=蓝莓灌木叶 +Blueberry Bush Sapling=蓝莓灌木苗 +Acacia Bush Stem=相思灌木 +Acacia Bush Leaves=相思灌木叶 +Acacia Bush Sapling=相思灌木苗 +Pine Bush Stem=松树灌木 +Pine Bush Needles=松树灌木针 +Pine Bush Sapling=松树灌木苗 +Kelp=海带 +Green Coral=绿珊瑚 +Pink Coral=淡红珊瑚 +Cyan Coral=青珊瑚 +Brown Coral=棕珊瑚 +Orange Coral=橙珊瑚 +Coral Skeleton=珊瑚骨架 +Water Source=水方块 +Flowing Water=流动的水 +River Water Source=河水方块 +Flowing River Water=流动的河水 +Lava Source=岩浆方块 +Flowing Lava=流动的岩浆 +Empty Bookshelf=空书架 +Bookshelf (@1 written, @2 empty books)=书架(@1本有字的书,@2本空书) +Bookshelf=书架 +Text too long=文字太长 +"@1"="@1" +Wooden Sign=木牌 +Steel Sign=铁牌 +Wooden Ladder=木梯子 +Steel Ladder=铁梯子 +Apple Wood Fence=苹果木栅栏 +Acacia Wood Fence=相思木栅栏 +Jungle Wood Fence=丛林木栅栏 +Pine Wood Fence=松木栅栏 +Aspen Wood Fence=白杨木栅栏 +Apple Wood Fence Rail=苹果木栏杆 +Acacia Wood Fence Rail=相思木栏杆 +Jungle Wood Fence Rail=丛林木栏杆 +Pine Wood Fence Rail=松木栏杆 +Aspen Wood Fence Rail=白杨木栏杆 +Glass=玻璃 +Obsidian Glass=黑曜石玻璃 +Brick Block=砖方块 +Mese Lamp=黄石灯 +Apple Wood Mese Post Light=苹果木黄石灯柱 +Acacia Wood Mese Post Light=金合欢木黄石灯柱 +Jungle Wood Mese Post Light=丛林木黄石灯柱 +Pine Wood Mese Post Light=松木黄石灯柱 +Aspen Wood Mese Post Light=白杨木黄石灯柱 +Cloud=云 +Wooden Pickaxe=木镐 +Stone Pickaxe=石镐 +Bronze Pickaxe=青铜镐 +Steel Pickaxe=铁镐 +Mese Pickaxe=黄石镐 +Diamond Pickaxe=钻石镐 +Wooden Shovel=木铲 +Stone Shovel=石铲 +Bronze Shovel=青铜铲 +Steel Shovel=铁铲 +Mese Shovel=黄石铲 +Diamond Shovel=钻石铲 +Wooden Axe=木斧 +Stone Axe=石斧 +Bronze Axe=青铜斧 +Steel Axe=铁斧 +Mese Axe=黄石斧 +Diamond Axe=钻石斧 +Wooden Sword=木剑 +Stone Sword=石剑 +Bronze Sword=青铜剑 +Steel Sword=铁剑 +Mese Sword=黄石剑 +Diamond Sword=钻石剑 +Key=钥匙 +Torch=火把 +@1 will intersect protection on growth.=@1将与增长的保护相交。 + + +##### not used anymore ##### + +Dirt with Dry Grass=干草土方块 +Dry Grass=干草 diff --git a/mods/default/locale/default.zh_TW.tr b/mods/default/locale/default.zh_TW.tr new file mode 100644 index 00000000..257f0e5d --- /dev/null +++ b/mods/default/locale/default.zh_TW.tr @@ -0,0 +1,221 @@ +# textdomain: default +Locked Chest=已上鎖的箱子 +Locked Chest (owned by @1)=已上鎖的箱子(屬於@1所有) +You do not own this chest.=這個箱子不屬於你所有。 +a locked chest=一個已上鎖的箱子 +Chest=箱子 +Title:=標題: +Contents:=內容: +Save=保存 +by @1=由@1 +Page @1 of @2=第@1頁,共@2頁。 +"@1" by @2="@1" by @2 +Skeleton Key=萬能鑰匙 +Key to @1's @2=@1的@2的鑰匙 +Blueberries=藍莓 +Book=書 +Book with Text=帶文字的書 +Bronze Ingot=青銅錠 +Clay Brick=粘土磚 +Clay Lump=粘土塊 +Coal Lump=煤塊 +Copper Ingot=銅錠 +Copper Lump=銅塊 +Diamond=鑽石 +Flint=燧石 +Gold Ingot=金錠 +Gold Lump=金塊 +Iron Lump=鐵塊 +Mese Crystal=黃石晶體 +Mese Crystal Fragment=黃石晶體碎片 +Obsidian Shard=黑曜石碎片 +Paper=紙 +Steel Ingot=鐵錠 +Stick=棒 +Tin Ingot=錫錠 +Tin Lump=錫塊 +Furnace is empty=熔爐是空的 +100% (output full)=100%(輸出已滿) +@1%=@1% +Not cookable=不可烹飪 +Empty=空 +Furnace active=熔爐正在運轉 +Furnace inactive=熔爐未使用 +(Item: @1; Fuel: @2)=(項目:@1;燃料:@2) +Furnace=熔爐 +Stone=石 +Cobblestone=鵝卵石 +Stone Brick=石磚 +Stone Block=石方塊 +Mossy Cobblestone=苔蘚覆蓋的鵝卵石 +Desert Stone=沙漠石 +Desert Cobblestone=沙漠鵝卵石 +Desert Stone Brick=沙漠鵝卵石磚 +Desert Stone Block=沙漠鵝卵石方塊 +Sandstone=砂岩 +Sandstone Brick=砂岩磚 +Sandstone Block=砂岩方塊 +Desert Sandstone=沙漠砂岩 +Desert Sandstone Brick=沙漠砂岩磚 +Desert Sandstone Block=沙漠砂岩方塊 +Silver Sandstone=銀砂岩 +Silver Sandstone Brick=銀砂岩磚 +Silver Sandstone Block=銀砂岩方塊 +Obsidian=黑曜石 +Obsidian Brick=黑曜石磚 +Obsidian Block=黑曜石方塊 +Dirt=土方塊 +Dirt with Grass=草方塊 +Dirt with Grass and Footsteps=草方塊及腳印 +Dirt with Savanna Grass=草原草方塊 +Dirt with Snow=雪土方塊 +Dirt with Rainforest Litter=雨林腐土 +Dirt with Coniferous Litter=針葉林腐土 +Savanna Dirt=草原土 +Savanna Dirt with Savanna Grass=草原草方塊(草原土) +Permafrost=多年凍土 +Permafrost with Stones=帶石頭的多年凍土 +Permafrost with Moss=生苔的多年凍土 +Sand=沙 +Desert Sand=沙漠沙 +Silver Sand=銀沙 +Gravel=沙礫 +Clay=粘土 +Snow=雪 +Snow Block=雪方塊 +Ice=冰 +Cave Ice=洞穴冰 +Apple Tree=蘋果樹 +Apple Wood Planks=蘋果樹木板 +Apple Tree Sapling=蘋果樹苗 +Apple Tree Leaves=蘋果樹葉 +Apple=蘋果 +Apple Marker=蘋果標記 +Jungle Tree=叢林樹 +Jungle Wood Planks=叢林樹木板 +Jungle Tree Leaves=叢林樹葉 +Jungle Tree Sapling=叢林樹苗 +Emergent Jungle Tree Sapling=應急叢林樹苗 +Pine Tree=松樹 +Pine Wood Planks=松樹木板 +Pine Needles=松針 +Pine Tree Sapling=松樹樹苗 +Acacia Tree=相思樹 +Acacia Wood Planks=相思樹木板 +Acacia Tree Leaves=相思樹葉 +Acacia Tree Sapling=相思樹樹苗 +Aspen Tree=白楊樹 +Aspen Wood Planks=白楊樹木板 +Aspen Tree Leaves=白楊樹葉 +Aspen Tree Sapling=白楊樹樹苗 +Coal Ore=煤炭礦石 +Coal Block=煤炭方塊 +Iron Ore=鐵礦石 +Steel Block=鋼方塊 +Copper Ore=銅礦石 +Copper Block=銅方塊 +Tin Ore=錫礦石 +Tin Block=錫方塊 +Bronze Block=青銅方塊 +Mese Ore=黃石礦石 +Mese Block=黃石方塊 +Gold Ore=金礦石 +Gold Block=金方塊 +Diamond Ore=鑽石礦石 +Diamond Block=鑽石方塊 +Cactus=仙人掌 +Large Cactus Seedling=大仙人掌苗 +Papyrus=莎草紙 +Dry Shrub=幹灌木 +Jungle Grass=叢林草 +Grass=草 +Savanna Grass= +Fern=蕨 +Marram Grass=濱草 +Bush Stem=灌木 +Bush Leaves=灌木葉 +Bush Sapling=灌木苗 +Blueberry Bush Leaves with Berries=藍莓灌木葉與漿果 +Blueberry Bush Leaves=藍莓灌木葉 +Blueberry Bush Sapling=藍莓灌木苗 +Acacia Bush Stem=相思灌木 +Acacia Bush Leaves=相思灌木葉 +Acacia Bush Sapling=相思灌木苗 +Pine Bush Stem=松樹灌木 +Pine Bush Needles=松樹灌木針 +Pine Bush Sapling=松樹灌木苗 +Kelp=海帶 +Green Coral=綠珊瑚 +Pink Coral=淡紅珊瑚 +Cyan Coral=青珊瑚 +Brown Coral=棕珊瑚 +Orange Coral=橙珊瑚 +Coral Skeleton=珊瑚骨架 +Water Source=水方塊 +Flowing Water=流動的水 +River Water Source=河水方塊 +Flowing River Water=流動的河水 +Lava Source=岩漿方塊 +Flowing Lava=流動的岩漿 +Empty Bookshelf=空書架 +Bookshelf (@1 written, @2 empty books)=書架(@1本有字的書,@2本空書) +Bookshelf=書架 +Text too long=文字太長 +"@1"="@1" +Wooden Sign=木牌 +Steel Sign=鐵牌 +Wooden Ladder=木梯子 +Steel Ladder=鐵梯子 +Apple Wood Fence=蘋果木柵欄 +Acacia Wood Fence=相思木柵欄 +Jungle Wood Fence=叢林木柵欄 +Pine Wood Fence=松木柵欄 +Aspen Wood Fence=白楊木柵欄 +Apple Wood Fence Rail=蘋果木欄杆 +Acacia Wood Fence Rail=相思木欄杆 +Jungle Wood Fence Rail=叢林木欄杆 +Pine Wood Fence Rail=松木欄杆 +Aspen Wood Fence Rail=白楊木欄杆 +Glass=玻璃 +Obsidian Glass=黑曜石玻璃 +Brick Block=磚方塊 +Mese Lamp=黃石燈 +Apple Wood Mese Post Light=蘋果木黃石燈柱 +Acacia Wood Mese Post Light=金合歡木黃石燈柱 +Jungle Wood Mese Post Light=叢林木黃石燈柱 +Pine Wood Mese Post Light=松木黃石燈柱 +Aspen Wood Mese Post Light=白楊木黃石燈柱 +Cloud=雲 +Wooden Pickaxe=木鎬 +Stone Pickaxe=石鎬 +Bronze Pickaxe=青銅鎬 +Steel Pickaxe=鐵鎬 +Mese Pickaxe=黃石鎬 +Diamond Pickaxe=鑽石鎬 +Wooden Shovel=木鏟 +Stone Shovel=石鏟 +Bronze Shovel=青銅鏟 +Steel Shovel=鐵鏟 +Mese Shovel=黃石鏟 +Diamond Shovel=鑽石鏟 +Wooden Axe=木斧 +Stone Axe=石斧 +Bronze Axe=青銅斧 +Steel Axe=鐵斧 +Mese Axe=黃石斧 +Diamond Axe=鑽石斧 +Wooden Sword=木劍 +Stone Sword=石劍 +Bronze Sword=青銅劍 +Steel Sword=鐵劍 +Mese Sword=黃石劍 +Diamond Sword=鑽石劍 +Key=鑰匙 +Torch=火把 +@1 will intersect protection on growth.=@1將與增長的保護相交。 + + +##### not used anymore ##### + +Dirt with Dry Grass=乾草土方塊 +Dry Grass=乾草 diff --git a/mods/default/locale/template.txt b/mods/default/locale/template.txt new file mode 100644 index 00000000..8734752a --- /dev/null +++ b/mods/default/locale/template.txt @@ -0,0 +1,215 @@ +# textdomain: default +Locked Chest= +Locked Chest (owned by @1)= +You do not own this chest.= +a locked chest= +Chest= +Title:= +Contents:= +Save= +by @1= +Page @1 of @2= +"@1" by @2= +Skeleton Key= +Key to @1's @2= +Blueberries= +Book= +Book with Text= +Bronze Ingot= +Clay Brick= +Clay Lump= +Coal Lump= +Copper Ingot= +Copper Lump= +Diamond= +Flint= +Gold Ingot= +Gold Lump= +Iron Lump= +Mese Crystal= +Mese Crystal Fragment= +Obsidian Shard= +Paper= +Steel Ingot= +Stick= +Tin Ingot= +Tin Lump= +Furnace is empty= +100% (output full)= +@1%= +Not cookable= +Empty= +Furnace active= +Furnace inactive= +(Item: @1; Fuel: @2)= +Furnace= +Stone= +Cobblestone= +Stone Brick= +Stone Block= +Mossy Cobblestone= +Desert Stone= +Desert Cobblestone= +Desert Stone Brick= +Desert Stone Block= +Sandstone= +Sandstone Brick= +Sandstone Block= +Desert Sandstone= +Desert Sandstone Brick= +Desert Sandstone Block= +Silver Sandstone= +Silver Sandstone Brick= +Silver Sandstone Block= +Obsidian= +Obsidian Brick= +Obsidian Block= +Dirt= +Dirt with Grass= +Dirt with Grass and Footsteps= +Dirt with Savanna Grass= +Dirt with Snow= +Dirt with Rainforest Litter= +Dirt with Coniferous Litter= +Savanna Dirt= +Savanna Dirt with Savanna Grass= +Permafrost= +Permafrost with Stones= +Permafrost with Moss= +Sand= +Desert Sand= +Silver Sand= +Gravel= +Clay= +Snow= +Snow Block= +Ice= +Cave Ice= +Apple Tree= +Apple Wood Planks= +Apple Tree Sapling= +Apple Tree Leaves= +Apple= +Apple Marker= +Jungle Tree= +Jungle Wood Planks= +Jungle Tree Leaves= +Jungle Tree Sapling= +Emergent Jungle Tree Sapling= +Pine Tree= +Pine Wood Planks= +Pine Needles= +Pine Tree Sapling= +Acacia Tree= +Acacia Wood Planks= +Acacia Tree Leaves= +Acacia Tree Sapling= +Aspen Tree= +Aspen Wood Planks= +Aspen Tree Leaves= +Aspen Tree Sapling= +Coal Ore= +Coal Block= +Iron Ore= +Steel Block= +Copper Ore= +Copper Block= +Tin Ore= +Tin Block= +Bronze Block= +Mese Ore= +Mese Block= +Gold Ore= +Gold Block= +Diamond Ore= +Diamond Block= +Cactus= +Large Cactus Seedling= +Papyrus= +Dry Shrub= +Jungle Grass= +Grass= +Savanna Grass= +Fern= +Marram Grass= +Bush Stem= +Bush Leaves= +Bush Sapling= +Blueberry Bush Leaves with Berries= +Blueberry Bush Leaves= +Blueberry Bush Sapling= +Acacia Bush Stem= +Acacia Bush Leaves= +Acacia Bush Sapling= +Pine Bush Stem= +Pine Bush Needles= +Pine Bush Sapling= +Kelp= +Green Coral= +Pink Coral= +Cyan Coral= +Brown Coral= +Orange Coral= +Coral Skeleton= +Water Source= +Flowing Water= +River Water Source= +Flowing River Water= +Lava Source= +Flowing Lava= +Empty Bookshelf= +Bookshelf (@1 written, @2 empty books)= +Bookshelf= +Text too long= +"@1"= +Wooden Sign= +Steel Sign= +Wooden Ladder= +Steel Ladder= +Apple Wood Fence= +Acacia Wood Fence= +Jungle Wood Fence= +Pine Wood Fence= +Aspen Wood Fence= +Apple Wood Fence Rail= +Acacia Wood Fence Rail= +Jungle Wood Fence Rail= +Pine Wood Fence Rail= +Aspen Wood Fence Rail= +Glass= +Obsidian Glass= +Brick Block= +Mese Lamp= +Apple Wood Mese Post Light= +Acacia Wood Mese Post Light= +Jungle Wood Mese Post Light= +Pine Wood Mese Post Light= +Aspen Wood Mese Post Light= +Cloud= +Wooden Pickaxe= +Stone Pickaxe= +Bronze Pickaxe= +Steel Pickaxe= +Mese Pickaxe= +Diamond Pickaxe= +Wooden Shovel= +Stone Shovel= +Bronze Shovel= +Steel Shovel= +Mese Shovel= +Diamond Shovel= +Wooden Axe= +Stone Axe= +Bronze Axe= +Steel Axe= +Mese Axe= +Diamond Axe= +Wooden Sword= +Stone Sword= +Bronze Sword= +Steel Sword= +Mese Sword= +Diamond Sword= +Key= +Torch= +@1 will intersect protection on growth.= diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua new file mode 100644 index 00000000..8c161d1e --- /dev/null +++ b/mods/default/mapgen.lua @@ -0,0 +1,2492 @@ +-- +-- Aliases for map generators +-- + +-- All mapgens + +minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_water_source", "default:water_source") +minetest.register_alias("mapgen_river_water_source", "default:river_water_source") + +-- Additional aliases needed for mapgen v6 + +minetest.register_alias("mapgen_lava_source", "default:lava_source") +minetest.register_alias("mapgen_dirt", "default:dirt") +minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("mapgen_sand", "default:sand") +minetest.register_alias("mapgen_gravel", "default:gravel") +minetest.register_alias("mapgen_desert_stone", "default:desert_stone") +minetest.register_alias("mapgen_desert_sand", "default:desert_sand") +minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") +minetest.register_alias("mapgen_snowblock", "default:snowblock") +minetest.register_alias("mapgen_snow", "default:snow") +minetest.register_alias("mapgen_ice", "default:ice") + +minetest.register_alias("mapgen_tree", "default:tree") +minetest.register_alias("mapgen_leaves", "default:leaves") +minetest.register_alias("mapgen_apple", "default:apple") +minetest.register_alias("mapgen_jungletree", "default:jungletree") +minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves") +minetest.register_alias("mapgen_junglegrass", "default:junglegrass") +minetest.register_alias("mapgen_pine_tree", "default:pine_tree") +minetest.register_alias("mapgen_pine_needles", "default:pine_needles") + +minetest.register_alias("mapgen_cobble", "default:cobble") +minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") +minetest.register_alias("mapgen_mossycobble", "default:mossycobble") +minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone") + + +-- +-- Register ores +-- + +-- Mgv6 + +function default.register_mgv6_ores() + + -- Blob ore + -- These first to avoid other ores in blobs + + -- Clay + -- This first to avoid clay in sand blobs + + minetest.register_ore({ + ore_type = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 0, + y_min = -15, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Sand + + minetest.register_ore({ + ore_type = "blob", + ore = "default:sand", + wherein = {"default:stone", "default:desert_stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 0, + y_min = -31, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Dirt + + minetest.register_ore({ + ore_type = "blob", + ore = "default:dirt", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 31000, + y_min = -31, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + }) + + -- Gravel + + minetest.register_ore({ + ore_type = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 31000, + y_min = -31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + }) + + -- Scatter ores + + -- Coal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 9, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 8, + clust_size = 3, + y_max = 64, + y_min = -31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_max = 0, + y_min = -31000, + }) + + -- Iron + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 12, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_max = 0, + y_min = -31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_max = -64, + y_min = -31000, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 4, + clust_size = 3, + y_max = -16, + y_min = -63, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_max = -64, + y_min = -31000, + }) + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 4, + clust_size = 3, + y_max = -32, + y_min = -127, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_max = -128, + y_min = -31000, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + y_max = -64, + y_min = -255, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_max = -256, + y_min = -31000, + }) + + -- Mese crystal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + y_max = -64, + y_min = -255, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_max = -256, + y_min = -31000, + }) + + -- Diamond + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + y_max = -128, + y_min = -255, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_max = -256, + y_min = -31000, + }) + + -- Mese block + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_max = -1024, + y_min = -31000, + }) +end + + +-- All mapgens except mgv6 + +function default.register_ores() + + -- Stratum ores. + -- These obviously first. + + -- Silver sandstone + + minetest.register_ore({ + ore_type = "stratum", + ore = "default:silver_sandstone", + wherein = {"default:stone"}, + clust_scarcity = 1, + y_max = 46, + y_min = 10, + noise_params = { + offset = 28, + scale = 16, + spread = {x = 128, y = 128, z = 128}, + seed = 90122, + octaves = 1, + }, + stratum_thickness = 4, + biomes = {"cold_desert"}, + }) + + minetest.register_ore({ + ore_type = "stratum", + ore = "default:silver_sandstone", + wherein = {"default:stone"}, + clust_scarcity = 1, + y_max = 42, + y_min = 6, + noise_params = { + offset = 24, + scale = 16, + spread = {x = 128, y = 128, z = 128}, + seed = 90122, + octaves = 1, + }, + stratum_thickness = 2, + biomes = {"cold_desert"}, + }) + + -- Desert sandstone + + minetest.register_ore({ + ore_type = "stratum", + ore = "default:desert_sandstone", + wherein = {"default:desert_stone"}, + clust_scarcity = 1, + y_max = 46, + y_min = 10, + noise_params = { + offset = 28, + scale = 16, + spread = {x = 128, y = 128, z = 128}, + seed = 90122, + octaves = 1, + }, + stratum_thickness = 4, + biomes = {"desert"}, + }) + + minetest.register_ore({ + ore_type = "stratum", + ore = "default:desert_sandstone", + wherein = {"default:desert_stone"}, + clust_scarcity = 1, + y_max = 42, + y_min = 6, + noise_params = { + offset = 24, + scale = 16, + spread = {x = 128, y = 128, z = 128}, + seed = 90122, + octaves = 1, + }, + stratum_thickness = 2, + biomes = {"desert"}, + }) + + -- Sandstone + + minetest.register_ore({ + ore_type = "stratum", + ore = "default:sandstone", + wherein = {"default:desert_stone"}, + clust_scarcity = 1, + y_max = 39, + y_min = 3, + noise_params = { + offset = 21, + scale = 16, + spread = {x = 128, y = 128, z = 128}, + seed = 90122, + octaves = 1, + }, + stratum_thickness = 2, + biomes = {"desert"}, + }) + + -- Blob ore. + -- These before scatter ores to avoid other ores in blobs. + + -- Clay + + minetest.register_ore({ + ore_type = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 0, + y_min = -15, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Silver sand + + minetest.register_ore({ + ore_type = "blob", + ore = "default:silver_sand", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 31000, + y_min = -31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Dirt + + minetest.register_ore({ + ore_type = "blob", + ore = "default:dirt", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 31000, + y_min = -31, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + -- Only where default:dirt is present as surface material + biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", + "deciduous_forest", "deciduous_forest_shore", "rainforest", + "rainforest_swamp"} + }) + + -- Gravel + + minetest.register_ore({ + ore_type = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_max = 31000, + y_min = -31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + }) + + -- Scatter ores + + -- Coal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 9, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 8, + clust_size = 3, + y_max = 64, + y_min = -127, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 30, + clust_size = 5, + y_max = -128, + y_min = -31000, + }) + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 4, + clust_size = 3, + y_max = -64, + y_min = -127, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_max = -128, + y_min = -31000, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 4, + clust_size = 3, + y_max = -64, + y_min = -127, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_max = -128, + y_min = -31000, + }) + + -- Iron + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 12, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_max = -128, + y_min = -255, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 29, + clust_size = 5, + y_max = -256, + y_min = -31000, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + y_max = -256, + y_min = -511, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_max = -512, + y_min = -31000, + }) + + -- Mese crystal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + y_max = -512, + y_min = -1023, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_max = -1024, + y_min = -31000, + }) + + -- Diamond + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + y_max = -1024, + y_min = -2047, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_max = -2048, + y_min = -31000, + }) + + -- Mese block + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_max = 31000, + y_min = 1025, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_max = -2048, + y_min = -4095, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 28 * 28 * 28, + clust_num_ores = 5, + clust_size = 3, + y_max = -4096, + y_min = -31000, + }) +end + + +-- +-- Register biomes +-- + +-- All mapgens except mgv6 + +function default.register_biomes() + + -- Icesheet + + minetest.register_biome({ + name = "icesheet", + node_dust = "default:snowblock", + node_top = "default:snowblock", + depth_top = 1, + node_filler = "default:snowblock", + depth_filler = 3, + node_stone = "default:cave_ice", + node_water_top = "default:ice", + depth_water_top = 10, + node_river_water = "default:ice", + node_riverbed = "default:gravel", + depth_riverbed = 2, + node_dungeon = "default:ice", + node_dungeon_stair = "stairs:stair_ice", + y_max = 31000, + y_min = -8, + heat_point = 0, + humidity_point = 73, + }) + + minetest.register_biome({ + name = "icesheet_ocean", + node_dust = "default:snowblock", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_water_top = "default:ice", + depth_water_top = 10, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -9, + y_min = -255, + heat_point = 0, + humidity_point = 73, + }) + + minetest.register_biome({ + name = "icesheet_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 0, + humidity_point = 73, + }) + + -- Tundra + + minetest.register_biome({ + name = "tundra_highland", + node_dust = "default:snow", + node_riverbed = "default:gravel", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 47, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra", + node_top = "default:permafrost_with_stones", + depth_top = 1, + node_filler = "default:permafrost", + depth_filler = 1, + node_riverbed = "default:gravel", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 4, + y_max = 46, + y_min = 2, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_beach", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 2, + node_riverbed = "default:gravel", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 1, + y_min = -3, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:gravel", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = -4, + y_min = -255, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 0, + humidity_point = 40, + }) + + -- Taiga + + minetest.register_biome({ + name = "taiga", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 4, + heat_point = 25, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "taiga_ocean", + node_dust = "default:snow", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 3, + y_min = -255, + heat_point = 25, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "taiga_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 25, + humidity_point = 70, + }) + + -- Snowy grassland + + minetest.register_biome({ + name = "snowy_grassland", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 4, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "snowy_grassland_ocean", + node_dust = "default:snow", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 3, + y_min = -255, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "snowy_grassland_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 20, + humidity_point = 35, + }) + + -- Grassland + + minetest.register_biome({ + name = "grassland", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 6, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 5, + y_min = 4, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 3, + y_min = -255, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 50, + humidity_point = 35, + }) + + -- Coniferous forest + + minetest.register_biome({ + name = "coniferous_forest", + node_top = "default:dirt_with_coniferous_litter", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 6, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_dunes", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 5, + y_min = 4, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 3, + y_min = -255, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 45, + humidity_point = 70, + }) + + -- Deciduous forest + + minetest.register_biome({ + name = "deciduous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 1, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_shore", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 0, + y_min = -1, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = -2, + y_min = -255, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 60, + humidity_point = 68, + }) + + -- Desert + + minetest.register_biome({ + name = "desert", + node_top = "default:desert_sand", + depth_top = 1, + node_filler = "default:desert_sand", + depth_filler = 1, + node_stone = "default:desert_stone", + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:desert_stone", + node_dungeon_stair = "stairs:stair_desert_stone", + y_max = 31000, + y_min = 4, + heat_point = 92, + humidity_point = 16, + }) + + minetest.register_biome({ + name = "desert_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:desert_stone", + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:desert_stone", + node_dungeon_stair = "stairs:stair_desert_stone", + vertical_blend = 1, + y_max = 3, + y_min = -255, + heat_point = 92, + humidity_point = 16, + }) + + minetest.register_biome({ + name = "desert_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 92, + humidity_point = 16, + }) + + -- Sandstone desert + + minetest.register_biome({ + name = "sandstone_desert", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 1, + node_stone = "default:sandstone", + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:sandstonebrick", + node_dungeon_stair = "stairs:stair_sandstone_block", + y_max = 31000, + y_min = 4, + heat_point = 60, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "sandstone_desert_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:sandstone", + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:sandstonebrick", + node_dungeon_stair = "stairs:stair_sandstone_block", + y_max = 3, + y_min = -255, + heat_point = 60, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "sandstone_desert_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 60, + humidity_point = 0, + }) + + -- Cold desert + + minetest.register_biome({ + name = "cold_desert", + node_top = "default:silver_sand", + depth_top = 1, + node_filler = "default:silver_sand", + depth_filler = 1, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 4, + heat_point = 40, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "cold_desert_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = 3, + y_min = -255, + heat_point = 40, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "cold_desert_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 40, + humidity_point = 0, + }) + + -- Savanna + + minetest.register_biome({ + name = "savanna", + node_top = "default:dry_dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dry_dirt", + depth_filler = 1, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 1, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_shore", + node_top = "default:dry_dirt", + depth_top = 1, + node_filler = "default:dry_dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 0, + y_min = -1, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = -2, + y_min = -255, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 89, + humidity_point = 42, + }) + + -- Rainforest + + minetest.register_biome({ + name = "rainforest", + node_top = "default:dirt_with_rainforest_litter", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 31000, + y_min = 1, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_swamp", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = 0, + y_min = -1, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_ocean", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_riverbed = "default:sand", + depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + vertical_blend = 1, + y_max = -2, + y_min = -255, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, + heat_point = 86, + humidity_point = 65, + }) +end + + +-- +-- Register decorations +-- + +-- Mgv6 + +function default.register_mgv6_decorations() + + -- Papyrus + + minetest.register_decoration({ + name = "default:papyrus", + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 100, y = 100, z = 100}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + y_max = 1, + y_min = 1, + decoration = "default:papyrus", + height = 2, + height_max = 4, + spawn_by = "default:water_source", + num_spawn_by = 1, + }) + + -- Cacti + + minetest.register_decoration({ + name = "default:cactus", + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.012, + scale = 0.024, + spread = {x = 100, y = 100, z = 100}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + y_max = 30, + y_min = 1, + decoration = "default:cactus", + height = 3, + height_max = 4, + }) + + -- Long grasses + + for length = 1, 5 do + minetest.register_decoration({ + name = "default:grass_"..length, + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.007, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_max = 30, + y_min = 1, + decoration = "default:grass_"..length, + }) + end + + -- Dry shrubs + + minetest.register_decoration({ + name = "default:dry_shrub", + deco_type = "simple", + place_on = {"default:desert_sand", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.035, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_max = 30, + y_min = 1, + decoration = "default:dry_shrub", + param2 = 4, + }) +end + + +-- All mapgens except mgv6 + +local function register_grass_decoration(offset, scale, length) + minetest.register_decoration({ + name = "default:grass_" .. length, + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland", "deciduous_forest"}, + y_max = 31000, + y_min = 1, + decoration = "default:grass_" .. length, + }) +end + +local function register_dry_grass_decoration(offset, scale, length) + minetest.register_decoration({ + name = "default:dry_grass_" .. length, + deco_type = "simple", + place_on = {"default:dry_dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + decoration = "default:dry_grass_" .. length, + }) +end + +local function register_fern_decoration(seed, length) + minetest.register_decoration({ + name = "default:fern_" .. length, + deco_type = "simple", + place_on = {"default:dirt_with_coniferous_litter"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.2, + spread = {x = 100, y = 100, z = 100}, + seed = seed, + octaves = 3, + persist = 0.7 + }, + biomes = {"coniferous_forest"}, + y_max = 31000, + y_min = 6, + decoration = "default:fern_" .. length, + }) +end + + +function default.register_decorations() + -- Savanna bare dirt patches. + -- Must come before all savanna decorations that are placed on dry grass. + -- Noise is similar to long dry grass noise, but scale inverted, to appear + -- where long dry grass is least dense and shortest. + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dry_dirt_with_dry_grass"}, + sidelen = 4, + noise_params = { + offset = -1.5, + scale = -1.5, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 4, + persist = 1.0 + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + decoration = "default:dry_dirt", + place_offset_y = -1, + flags = "force_placement", + }) + + -- Apple tree and log + + minetest.register_decoration({ + name = "default:apple_tree", + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.024, + scale = 0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + name = "default:apple_log", + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + place_offset_y = 1, + sidelen = 16, + noise_params = { + offset = 0.0012, + scale = 0.0007, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts", + flags = "place_center_x", + rotation = "random", + spawn_by = "default:dirt_with_grass", + num_spawn_by = 8, + }) + + -- Emergent jungle tree + -- Due to 32 node height, altitude is limited and prescence depends on chunksize + + local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) + if chunksize >= 5 then + minetest.register_decoration({ + name = "default:emergent_jungle_tree", + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 80, + noise_params = { + offset = 0.0, + scale = 0.0025, + spread = {x = 250, y = 250, z = 250}, + seed = 2685, + octaves = 3, + persist = 0.7 + }, + biomes = {"rainforest"}, + y_max = 32, + y_min = 1, + schematic = minetest.get_modpath("default") .. + "/schematics/emergent_jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + place_offset_y = -4, + }) + end + + -- Jungle tree and log + + minetest.register_decoration({ + name = "default:jungle_tree", + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 80, + fill_ratio = 0.1, + biomes = {"rainforest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + -- Swamp jungle trees + + minetest.register_decoration({ + name = "default:jungle_tree(swamp)", + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + -- Noise tuned to place swamp trees where papyrus is absent + noise_params = { + offset = 0.0, + scale = -0.1, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 1, + persist = 0.5 + }, + biomes = {"rainforest_swamp"}, + y_max = 0, + y_min = -1, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + name = "default:jungle_log", + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter"}, + place_offset_y = 1, + sidelen = 80, + fill_ratio = 0.005, + biomes = {"rainforest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts", + flags = "place_center_x", + rotation = "random", + spawn_by = "default:dirt_with_rainforest_litter", + num_spawn_by = 8, + }) + + -- Taiga and temperate coniferous forest pine tree, small pine tree and log + + minetest.register_decoration({ + name = "default:pine_tree", + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, + sidelen = 16, + noise_params = { + offset = 0.010, + scale = 0.048, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_max = 31000, + y_min = 4, + schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + name = "default:small_pine_tree", + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, + sidelen = 16, + noise_params = { + offset = 0.010, + scale = -0.048, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_max = 31000, + y_min = 4, + schematic = minetest.get_modpath("default") .. "/schematics/small_pine_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + name = "default:pine_log", + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, + place_offset_y = 1, + sidelen = 80, + fill_ratio = 0.0018, + biomes = {"taiga", "coniferous_forest"}, + y_max = 31000, + y_min = 4, + schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts", + flags = "place_center_x", + rotation = "random", + spawn_by = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"}, + num_spawn_by = 8, + }) + + -- Acacia tree and log + + minetest.register_decoration({ + name = "default:acacia_tree", + deco_type = "schematic", + place_on = {"default:dry_dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + name = "default:acacia_log", + deco_type = "schematic", + place_on = {"default:dry_dirt_with_dry_grass"}, + place_offset_y = 1, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", + flags = "place_center_x", + rotation = "random", + spawn_by = "default:dry_dirt_with_dry_grass", + num_spawn_by = 8, + }) + + -- Aspen tree and log + + minetest.register_decoration({ + name = "default:aspen_tree", + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + name = "default:aspen_log", + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + place_offset_y = 1, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.0008, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts", + flags = "place_center_x", + rotation = "random", + spawn_by = "default:dirt_with_grass", + num_spawn_by = 8, + }) + + -- Large cactus + + minetest.register_decoration({ + name = "default:large_cactus", + deco_type = "schematic", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_max = 31000, + y_min = 4, + schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + -- Cactus + + minetest.register_decoration({ + name = "default:cactus", + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_max = 31000, + y_min = 4, + decoration = "default:cactus", + height = 2, + height_max = 5, + }) + + -- Papyrus + + -- Dirt version for rainforest swamp + + minetest.register_decoration({ + name = "default:papyrus_on_dirt", + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + biomes = {"rainforest_swamp"}, + y_max = 0, + y_min = 0, + schematic = minetest.get_modpath("default") .. "/schematics/papyrus_on_dirt.mts", + }) + + -- Dry dirt version for savanna shore + + minetest.register_decoration({ + name = "default:papyrus_on_dry_dirt", + deco_type = "schematic", + place_on = {"default:dry_dirt"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + biomes = {"savanna_shore"}, + y_max = 0, + y_min = 0, + schematic = minetest.get_modpath("default") .. + "/schematics/papyrus_on_dry_dirt.mts", + }) + + -- Bush + + minetest.register_decoration({ + name = "default:bush", + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 137, + octaves = 3, + persist = 0.7, + }, + biomes = {"grassland", "deciduous_forest"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Blueberry bush + + minetest.register_decoration({ + name = "default:blueberry_bush", + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 697, + octaves = 3, + persist = 0.7, + }, + biomes = {"grassland", "snowy_grassland"}, + y_max = 31000, + y_min = 1, + place_offset_y = 1, + schematic = minetest.get_modpath("default") .. "/schematics/blueberry_bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Acacia bush + + minetest.register_decoration({ + name = "default:acacia_bush", + deco_type = "schematic", + place_on = {"default:dry_dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 90155, + octaves = 3, + persist = 0.7, + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Pine bush + + minetest.register_decoration({ + name = "default:pine_bush", + deco_type = "schematic", + place_on = {"default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 137, + octaves = 3, + persist = 0.7, + }, + biomes = {"taiga", "snowy_grassland"}, + y_max = 31000, + y_min = 4, + schematic = minetest.get_modpath("default") .. "/schematics/pine_bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Grasses + + register_grass_decoration(-0.03, 0.09, 5) + register_grass_decoration(-0.015, 0.075, 4) + register_grass_decoration(0, 0.06, 3) + register_grass_decoration(0.015, 0.045, 2) + register_grass_decoration(0.03, 0.03, 1) + + -- Dry grasses + + register_dry_grass_decoration(0.01, 0.05, 5) + register_dry_grass_decoration(0.03, 0.03, 4) + register_dry_grass_decoration(0.05, 0.01, 3) + register_dry_grass_decoration(0.07, -0.01, 2) + register_dry_grass_decoration(0.09, -0.03, 1) + + -- Ferns + + register_fern_decoration(14936, 3) + register_fern_decoration(801, 2) + register_fern_decoration(5, 1) + + -- Junglegrass + + minetest.register_decoration({ + name = "default:junglegrass", + deco_type = "simple", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 80, + fill_ratio = 0.1, + biomes = {"rainforest"}, + y_max = 31000, + y_min = 1, + decoration = "default:junglegrass", + }) + + -- Dry shrub + + minetest.register_decoration({ + name = "default:dry_shrub", + deco_type = "simple", + place_on = {"default:desert_sand", + "default:sand", "default:silver_sand"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.02, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert", "sandstone_desert", "cold_desert"}, + y_max = 31000, + y_min = 2, + decoration = "default:dry_shrub", + param2 = 4, + }) + + -- Marram grass + + minetest.register_decoration({ + name = "default:marram_grass", + deco_type = "simple", + place_on = {"default:sand"}, + sidelen = 4, + noise_params = { + offset = -0.7, + scale = 4.0, + spread = {x = 16, y = 16, z = 16}, + seed = 513337, + octaves = 1, + persist = 0.0, + flags = "absvalue, eased" + }, + biomes = {"coniferous_forest_dunes", "grassland_dunes"}, + y_max = 6, + y_min = 4, + decoration = { + "default:marram_grass_1", + "default:marram_grass_2", + "default:marram_grass_3", + }, + }) + + -- Tundra moss + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:permafrost_with_stones"}, + sidelen = 4, + noise_params = { + offset = -0.8, + scale = 2.0, + spread = {x = 100, y = 100, z = 100}, + seed = 53995, + octaves = 3, + persist = 1.0 + }, + biomes = {"tundra"}, + y_max = 50, + y_min = 2, + decoration = "default:permafrost_with_moss", + place_offset_y = -1, + flags = "force_placement", + }) + + -- Tundra patchy snow + + minetest.register_decoration({ + deco_type = "simple", + place_on = { + "default:permafrost_with_moss", + "default:permafrost_with_stones", + "default:stone", + "default:gravel" + }, + sidelen = 4, + noise_params = { + offset = 0, + scale = 1.0, + spread = {x = 100, y = 100, z = 100}, + seed = 172555, + octaves = 3, + persist = 1.0 + }, + biomes = {"tundra", "tundra_beach"}, + y_max = 50, + y_min = 1, + decoration = "default:snow", + }) + + -- Coral reef + + minetest.register_decoration({ + name = "default:corals", + deco_type = "simple", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 4, + noise_params = { + offset = -4, + scale = 4, + spread = {x = 50, y = 50, z = 50}, + seed = 7013, + octaves = 3, + persist = 0.7, + }, + biomes = { + "desert_ocean", + "savanna_ocean", + "rainforest_ocean", + }, + y_max = -2, + y_min = -8, + flags = "force_placement", + decoration = { + "default:coral_green", "default:coral_pink", + "default:coral_cyan", "default:coral_brown", + "default:coral_orange", "default:coral_skeleton", + }, + }) + + -- Kelp + + minetest.register_decoration({ + name = "default:kelp", + deco_type = "simple", + place_on = {"default:sand"}, + place_offset_y = -1, + sidelen = 16, + noise_params = { + offset = -0.04, + scale = 0.1, + spread = {x = 200, y = 200, z = 200}, + seed = 87112, + octaves = 3, + persist = 0.7 + }, + biomes = { + "taiga_ocean", + "snowy_grassland_ocean", + "grassland_ocean", + "coniferous_forest_ocean", + "deciduous_forest_ocean", + "sandstone_desert_ocean", + "cold_desert_ocean"}, + y_max = -5, + y_min = -10, + flags = "force_placement", + decoration = "default:sand_with_kelp", + param2 = 48, + param2_max = 96, + }) +end + + +-- +-- Detect mapgen to select functions +-- + +minetest.clear_registered_biomes() +minetest.clear_registered_ores() +minetest.clear_registered_decorations() + +local mg_name = minetest.get_mapgen_setting("mg_name") + +if mg_name == "v6" then + default.register_mgv6_ores() + default.register_mgv6_decorations() +else + default.register_biomes() + default.register_ores() + default.register_decorations() +end diff --git a/mods/default/mod.conf b/mods/default/mod.conf new file mode 100644 index 00000000..c9e74684 --- /dev/null +++ b/mods/default/mod.conf @@ -0,0 +1,3 @@ +name = default +description = Minetest Game mod: default +optional_depends = player_api diff --git a/mods/default/models/chest_open.obj b/mods/default/models/chest_open.obj new file mode 100644 index 00000000..72ba175a --- /dev/null +++ b/mods/default/models/chest_open.obj @@ -0,0 +1,79 @@ +# Blender v2.78 (sub 0) OBJ File: 'chest-open.blend' +# www.blender.org +o Top_Cube.002_None_Top_Cube.002_None_bottom +v -0.500000 0.408471 0.720970 +v -0.500000 1.115578 0.013863 +v -0.500000 0.894607 -0.207108 +v -0.500000 0.187501 0.499999 +v 0.500000 1.115578 0.013863 +v 0.500000 0.408471 0.720970 +v 0.500000 0.187501 0.499999 +v 0.500000 0.894607 -0.207108 +v -0.500000 0.187500 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.187500 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 0.0000 1.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 0.0000 0.6875 +vt 1.0000 1.0000 +vt 0.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 0.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.6875 +vt 0.0000 0.6875 +vt 0.0000 0.0000 +vt 1.0000 0.5000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.5000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 1.0000 -0.0000 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Top +s off +f 6/1/1 5/2/1 2/3/1 1/4/1 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Bottom +f 11/5/2 10/6/2 14/7/2 13/8/2 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Right-Left +f 1/9/3 2/10/3 3/11/3 4/12/3 +f 5/13/4 6/1/4 7/14/4 8/15/4 +f 4/12/3 9/16/3 10/17/3 11/18/3 +f 12/19/4 7/14/4 13/8/4 14/20/4 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Back +f 6/21/5 1/9/5 4/12/5 7/22/5 +f 7/22/6 4/12/6 11/18/6 13/23/6 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Front +f 2/10/7 5/24/7 8/25/7 3/11/7 +f 9/16/8 12/26/8 14/27/8 10/17/8 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Inside +f 4/28/9 3/29/9 8/30/9 7/31/9 +f 7/31/10 12/32/10 9/33/10 4/28/10 diff --git a/mods/default/models/torch_ceiling.obj b/mods/default/models/torch_ceiling.obj new file mode 100644 index 00000000..ea51f3ce --- /dev/null +++ b/mods/default/models/torch_ceiling.obj @@ -0,0 +1,58 @@ +# Blender v2.77 (sub 0) OBJ File: 'torch_ceiling.blend' +# www.blender.org +mtllib torch_ceiling.mtl +o Cube_Cube.001 +v -0.062469 -0.047331 0.068152 +v -0.062469 -0.559515 -0.164388 +v -0.062469 0.004344 -0.045667 +v -0.062469 -0.507839 -0.278206 +v 0.062531 -0.047331 0.068152 +v 0.062531 -0.559515 -0.164388 +v 0.062531 0.004344 -0.045667 +v 0.062531 -0.507839 -0.278206 +v 0.353584 0.040000 0.363553 +v 0.353584 -0.397500 0.363553 +v -0.353522 0.040000 -0.343553 +v -0.353522 -0.397500 -0.343553 +v 0.353584 0.040000 -0.343553 +v -0.353522 0.040000 0.363553 +v 0.353584 -0.397500 -0.343553 +v -0.353522 -0.397500 0.363553 +vt 0.5625 0.5000 +vt 0.5625 0.6250 +vt 0.4375 0.6250 +vt 0.4375 0.5000 +vt 0.4375 0.0000 +vt 0.5625 0.0000 +vt 0.5625 0.1250 +vt 0.4375 0.1250 +vt 0.5625 0.6250 +vt 0.4375 0.6250 +vt 0.4375 0.6250 +vt 0.4375 0.0000 +vt 0.5625 0.6250 +vt 0.5625 0.0000 +vt 1.0000 0.5625 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.5625 +vt 0.0000 0.5625 +vt 1.0000 0.5625 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vn 0.0000 0.9105 0.4134 +vn -0.0000 -0.4134 0.9105 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +usemtl Material.001 +s off +f 3/1/1 1/2/1 5/3/1 7/4/1 +f 8/5/1 4/6/1 2/7/1 6/8/1 +f 3/9/2 4/6/2 8/5/2 7/10/2 +f 1/11/3 3/9/3 4/6/3 2/12/3 +f 5/13/2 1/11/2 2/12/2 6/14/2 +f 7/10/3 8/5/3 6/14/3 5/13/3 +usemtl Material.002 +f 9/15/4 10/16/4 12/17/4 11/18/4 +f 13/19/5 14/20/5 16/21/5 15/22/5 diff --git a/mods/default/models/torch_floor.obj b/mods/default/models/torch_floor.obj new file mode 100644 index 00000000..e2487efe --- /dev/null +++ b/mods/default/models/torch_floor.obj @@ -0,0 +1,50 @@ +# Blender v2.76 (sub 11) OBJ File: 'torch_floor.blend' +# www.blender.org +mtllib torch_floor.mtl +o Cube_Cube.001 +v 0.062500 0.062500 -0.062500 +v 0.062500 -0.500000 -0.062500 +v 0.062500 0.062500 0.062500 +v 0.062500 -0.500000 0.062500 +v -0.062500 0.062500 -0.062500 +v -0.062500 -0.500000 -0.062500 +v -0.062500 0.062500 0.062500 +v -0.062500 -0.500000 0.062500 +v -0.353553 -0.500000 0.353553 +v -0.353553 0.500000 0.353553 +v 0.353553 -0.500000 -0.353553 +v 0.353553 0.500000 -0.353553 +v -0.353553 -0.500000 -0.353553 +v 0.353553 -0.500000 0.353553 +v -0.353553 0.500000 -0.353553 +v 0.353553 0.500000 0.353553 +vt 0.562500 0.500000 +vt 0.562500 0.625000 +vt 0.437500 0.625000 +vt 0.437500 0.500000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.125000 +vt 0.437500 0.125000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn -0.707100 0.000000 -0.707100 +vn -0.707100 -0.000000 0.707100 +g Cube_Cube.001_Cube_Cube.001_Material.001 +usemtl Material.001 +s off +f 3/1/1 1/2/1 5/3/1 7/4/1 +f 8/5/1 4/6/1 2/7/1 6/8/1 +f 3/2/2 4/6/2 8/5/2 7/3/2 +f 1/3/3 3/2/3 4/6/3 2/5/3 +f 5/2/2 1/3/2 2/5/2 6/6/2 +f 7/3/3 8/5/3 6/6/3 5/2/3 +g Cube_Cube.001_Cube_Cube.001_Material.002 +usemtl Material.002 +f 9/9/4 10/10/4 12/11/4 11/12/4 +f 13/12/5 14/9/5 16/10/5 15/11/5 diff --git a/mods/default/models/torch_wall.obj b/mods/default/models/torch_wall.obj new file mode 100644 index 00000000..57baa9e6 --- /dev/null +++ b/mods/default/models/torch_wall.obj @@ -0,0 +1,64 @@ +# Blender v2.76 (sub 11) OBJ File: 'torch_wall.blend' +# www.blender.org +mtllib torch_wall.mtl +o Cube_Cube.001 +v 0.062469 -0.195248 0.023570 +v 0.062469 -0.476498 -0.463570 +v 0.062469 -0.303502 0.086070 +v 0.062469 -0.584752 -0.401070 +v -0.062531 -0.195248 0.023570 +v -0.062531 -0.476498 -0.463570 +v -0.062531 -0.303502 0.086070 +v -0.062531 -0.584752 -0.401070 +v -0.353584 -0.613553 0.022500 +v -0.353584 -0.613553 0.460000 +v 0.353522 0.093553 0.022500 +v 0.353522 0.093553 0.460000 +v -0.353584 0.093553 0.022500 +v 0.353522 -0.613553 0.022500 +v -0.353584 0.093553 0.460000 +v 0.353522 -0.613553 0.460000 +v 0.353553 0.056811 -0.121957 +v 0.353553 -0.224439 -0.609096 +v -0.353553 -0.555561 0.231596 +v -0.353553 -0.836811 -0.255543 +v -0.353553 0.056811 -0.121957 +v -0.353553 -0.224439 -0.609096 +v 0.353553 -0.555561 0.231596 +v 0.353553 -0.836811 -0.255543 +vt 0.562500 0.500000 +vt 0.562500 0.625000 +vt 0.437500 0.625000 +vt 0.437500 0.500000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.125000 +vt 0.437500 0.125000 +vt 0.000000 0.562500 +vt 0.000000 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.562500 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn -0.000000 0.500000 0.866000 +vn -0.000000 0.866000 -0.500000 +vn 1.000000 0.000000 0.000000 +vn -0.707100 0.612400 -0.353600 +vn -0.707100 -0.612400 0.353600 +vn -0.707100 0.707100 -0.000000 +vn -0.707100 -0.707100 -0.000000 +g Cube_Cube.001_Cube_Cube.001_Material.001 +usemtl Material.001 +s off +f 3/1/1 1/2/1 5/3/1 7/4/1 +f 8/5/1 4/6/1 2/7/1 6/8/1 +f 3/2/2 4/6/2 8/5/2 7/3/2 +f 1/3/3 3/2/3 4/6/3 2/5/3 +f 5/2/2 1/3/2 2/5/2 6/6/2 +f 7/3/3 8/5/3 6/6/3 5/2/3 +f 17/9/4 18/10/4 20/11/4 19/12/4 +f 21/9/5 22/10/5 24/11/5 23/12/5 +g Cube_Cube.001_Cube_Cube.001_Material.002 +usemtl Material.002 +f 9/12/6 10/13/6 12/14/6 11/9/6 +f 13/9/7 14/12/7 16/13/7 15/14/7 diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua new file mode 100644 index 00000000..66f1c6e3 --- /dev/null +++ b/mods/default/nodes.lua @@ -0,0 +1,2958 @@ +-- mods/default/nodes.lua + +-- support for MT game translation. +local S = default.get_translator + +--[[ Node name convention: + +Although many node names are in combined-word form, the required form for new +node names is words separated by underscores. If both forms are used in written +language (for example pinewood and pine wood) the underscore form should be used. + +--]] + + +--[[ Index: + +Stone +----- +(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms) + +default:stone +default:cobble +default:stonebrick +default:stone_block +default:mossycobble + +default:desert_stone +default:desert_cobble +default:desert_stonebrick +default:desert_stone_block + +default:sandstone +default:sandstonebrick +default:sandstone_block +default:desert_sandstone +default:desert_sandstone_brick +default:desert_sandstone_block +default:silver_sandstone +default:silver_sandstone_brick +default:silver_sandstone_block + +default:obsidian +default:obsidianbrick +default:obsidian_block + +Soft / Non-Stone +---------------- +(1. Material 2. Modified forms) + +default:dirt +default:dirt_with_grass +default:dirt_with_grass_footsteps +default:dirt_with_dry_grass +default:dirt_with_snow +default:dirt_with_rainforest_litter +default:dirt_with_coniferous_litter +default:dry_dirt +default:dry_dirt_with_dry_grass + +default:permafrost +default:permafrost_with_stones +default:permafrost_with_moss + +default:sand +default:desert_sand +default:silver_sand + +default:gravel + +default:clay + +default:snow +default:snowblock +default:ice +default:cave_ice + +Trees +----- +(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling 5. Fruits) + +default:tree +default:wood +default:leaves +default:sapling +default:apple + +default:jungletree +default:junglewood +default:jungleleaves +default:junglesapling +default:emergent_jungle_sapling + +default:pine_tree +default:pine_wood +default:pine_needles +default:pine_sapling + +default:acacia_tree +default:acacia_wood +default:acacia_leaves +default:acacia_sapling + +default:aspen_tree +default:aspen_wood +default:aspen_leaves +default:aspen_sapling + +Ores +---- +(1. In stone 2. Blocks) + +default:stone_with_coal +default:coalblock + +default:stone_with_iron +default:steelblock + +default:stone_with_copper +default:copperblock + +default:stone_with_tin +default:tinblock + +default:bronzeblock + +default:stone_with_gold +default:goldblock + +default:stone_with_mese +default:mese + +default:stone_with_diamond +default:diamondblock + +Plantlife +--------- + +default:cactus +default:large_cactus_seedling + +default:papyrus +default:dry_shrub +default:junglegrass + +default:grass_1 +default:grass_2 +default:grass_3 +default:grass_4 +default:grass_5 + +default:dry_grass_1 +default:dry_grass_2 +default:dry_grass_3 +default:dry_grass_4 +default:dry_grass_5 + +default:fern_1 +default:fern_2 +default:fern_3 + +default:marram_grass_1 +default:marram_grass_2 +default:marram_grass_3 + +default:bush_stem +default:bush_leaves +default:bush_sapling +default:acacia_bush_stem +default:acacia_bush_leaves +default:acacia_bush_sapling +default:pine_bush_stem +default:pine_bush_needles +default:pine_bush_sapling +default:blueberry_bush_leaves_with_berries +default:blueberry_bush_leaves +default:blueberry_bush_sapling + +default:sand_with_kelp + +Corals +------ + +default:coral_green +default:coral_pink +default:coral_cyan +default:coral_brown +default:coral_orange +default:coral_skeleton + +Liquids +------- +(1. Source 2. Flowing) + +default:water_source +default:water_flowing + +default:river_water_source +default:river_water_flowing + +default:lava_source +default:lava_flowing + +Tools / "Advanced" crafting / Non-"natural" +------------------------------------------- + +default:bookshelf + +default:sign_wall_wood +default:sign_wall_steel + +default:ladder_wood +default:ladder_steel + +default:fence_wood +default:fence_acacia_wood +default:fence_junglewood +default:fence_pine_wood +default:fence_aspen_wood + +default:fence_rail_wood +default:fence_rail_acacia_wood +default:fence_rail_junglewood +default:fence_rail_pine_wood +default:fence_rail_aspen_wood + +default:glass +default:obsidian_glass + +default:brick + +default:meselamp +default:mese_post_light +default:mese_post_light_acacia_wood +default:mese_post_light_junglewood +default:mese_post_light_pine_wood +default:mese_post_light_aspen_wood + +Misc +---- + +default:cloud + +--]] + +-- Required wrapper to allow customization of default.after_place_leaves +local function after_place_leaves(...) + return default.after_place_leaves(...) +end + +-- Required wrapper to allow customization of default.grow_sapling +local function grow_sapling(...) + return default.grow_sapling(...) +end + +-- +-- Stone +-- + +minetest.register_node("default:stone", { + description = S("Stone"), + tiles = {"default_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = "default:cobble", + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:cobble", { + description = S("Cobblestone"), + tiles = {"default_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stonebrick", { + description = S("Stone Brick"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_stone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_block", { + description = S("Stone Block"), + tiles = {"default_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mossycobble", { + description = S("Mossy Cobblestone"), + tiles = {"default_mossycobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:desert_stone", { + description = S("Desert Stone"), + tiles = {"default_desert_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = "default:desert_cobble", + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_cobble", { + description = S("Desert Cobblestone"), + tiles = {"default_desert_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stonebrick", { + description = S("Desert Stone Brick"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_desert_stone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_block", { + description = S("Desert Stone Block"), + tiles = {"default_desert_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone", { + description = S("Sandstone"), + tiles = {"default_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstonebrick", { + description = S("Sandstone Brick"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone_block", { + description = S("Sandstone Block"), + tiles = {"default_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone", { + description = S("Desert Sandstone"), + tiles = {"default_desert_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone_brick", { + description = S("Desert Sandstone Brick"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_desert_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone_block", { + description = S("Desert Sandstone Block"), + tiles = {"default_desert_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone", { + description = S("Silver Sandstone"), + tiles = {"default_silver_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone_brick", { + description = S("Silver Sandstone Brick"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_silver_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone_block", { + description = S("Silver Sandstone Block"), + tiles = {"default_silver_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:obsidian", { + description = S("Obsidian"), + tiles = {"default_obsidian.png"}, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidianbrick", { + description = S("Obsidian Brick"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_obsidian_brick.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidian_block", { + description = S("Obsidian Block"), + tiles = {"default_obsidian_block.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +-- +-- Soft / Non-Stone +-- + +minetest.register_node("default:dirt", { + description = S("Dirt"), + tiles = {"default_dirt.png"}, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:dirt_with_grass", { + description = S("Dirt with Grass"), + tiles = {"default_grass.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_grass_footsteps", { + description = S("Dirt with Grass and Footsteps"), + tiles = {"default_grass.png^default_footprint.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_dry_grass", { + description = S("Dirt with Savanna Grass"), + tiles = {"default_dry_grass.png", + "default_dirt.png", + {name = "default_dirt.png^default_dry_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:dirt_with_snow", { + description = S("Dirt with Snow"), + tiles = {"default_snow.png", "default_dirt.png", + {name = "default_dirt.png^default_snow_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1, snowy = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.2}, + }), +}) + +minetest.register_node("default:dirt_with_rainforest_litter", { + description = S("Dirt with Rainforest Litter"), + tiles = { + "default_rainforest_litter.png", + "default_dirt.png", + {name = "default_dirt.png^default_rainforest_litter_side.png", + tileable_vertical = false} + }, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:dirt_with_coniferous_litter", { + description = S("Dirt with Coniferous Litter"), + tiles = { + "default_coniferous_litter.png", + "default_dirt.png", + {name = "default_dirt.png^default_coniferous_litter_side.png", + tileable_vertical = false} + }, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:dry_dirt", { + description = S("Savanna Dirt"), + tiles = {"default_dry_dirt.png"}, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:dry_dirt_with_dry_grass", { + description = S("Savanna Dirt with Savanna Grass"), + tiles = {"default_dry_grass.png", "default_dry_dirt.png", + {name = "default_dry_dirt.png^default_dry_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1}, + drop = "default:dry_dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:permafrost", { + description = S("Permafrost"), + tiles = {"default_permafrost.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:permafrost_with_stones", { + description = S("Permafrost with Stones"), + tiles = {"default_permafrost.png^default_stones.png", + "default_permafrost.png", + "default_permafrost.png^default_stones_side.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_gravel_defaults(), +}) + +minetest.register_node("default:permafrost_with_moss", { + description = S("Permafrost with Moss"), + tiles = {"default_moss.png", "default_permafrost.png", + {name = "default_permafrost.png^default_moss_side.png", + tileable_vertical = false}}, + groups = {cracky = 3}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:sand", { + description = S("Sand"), + tiles = {"default_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:desert_sand", { + description = S("Desert Sand"), + tiles = {"default_desert_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:silver_sand", { + description = S("Silver Sand"), + tiles = {"default_silver_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + + +minetest.register_node("default:gravel", { + description = S("Gravel"), + tiles = {"default_gravel.png"}, + groups = {crumbly = 2, falling_node = 1}, + sounds = default.node_sound_gravel_defaults(), + drop = { + max_items = 1, + items = { + {items = {"default:flint"}, rarity = 16}, + {items = {"default:gravel"}} + } + } +}) + +minetest.register_node("default:clay", { + description = S("Clay"), + tiles = {"default_clay.png"}, + groups = {crumbly = 3}, + drop = "default:clay_lump 4", + sounds = default.node_sound_dirt_defaults(), +}) + + +minetest.register_node("default:snow", { + description = S("Snow"), + tiles = {"default_snow.png"}, + inventory_image = "default_snowball.png", + wield_image = "default_snowball.png", + paramtype = "light", + buildable_to = true, + floodable = true, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + }, + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -6 / 16, 0.5}, + }, + }, + groups = {crumbly = 3, falling_node = 1, snowy = 1}, + sounds = default.node_sound_snow_defaults(), + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + end + end, +}) + +minetest.register_node("default:snowblock", { + description = S("Snow Block"), + tiles = {"default_snow.png"}, + groups = {crumbly = 3, cools_lava = 1, snowy = 1}, + sounds = default.node_sound_snow_defaults(), + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + end + end, +}) + +-- 'is ground content = false' to avoid tunnels in sea ice or ice rivers +minetest.register_node("default:ice", { + description = S("Ice"), + tiles = {"default_ice.png"}, + is_ground_content = false, + paramtype = "light", + groups = {cracky = 3, cools_lava = 1, slippery = 3}, + sounds = default.node_sound_ice_defaults(), +}) + +-- Mapgen-placed ice with 'is ground content = true' to contain tunnels +minetest.register_node("default:cave_ice", { + description = S("Cave Ice"), + tiles = {"default_ice.png"}, + paramtype = "light", + groups = {cracky = 3, cools_lava = 1, slippery = 3, + not_in_creative_inventory = 1}, + drop = "default:ice", + sounds = default.node_sound_ice_defaults(), +}) + +-- +-- Trees +-- + +minetest.register_node("default:tree", { + description = S("Tree"), + tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:wood", { + description = S("Wood Planks"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:sapling", { + description = S("Sapling"), + drawtype = "plantlike", + tiles = {"default_sapling.png"}, + inventory_image = "default_sapling.png", + wield_image = "default_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -3, y = 1, z = -3}, + {x = 3, y = 6, z = 3}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:leaves", { + description = S("Leaves"), + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves.png"}, + special_tiles = {"default_leaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {"default:sapling"}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {"default:leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:apple", { + description = S("Apple"), + drawtype = "plantlike", + tiles = {"default_apple.png"}, + inventory_image = "default_apple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16} + }, + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1, food_apple = 1}, + on_use = minetest.item_eat(2), + sounds = default.node_sound_leaves_defaults(), + + after_place_node = function(pos, placer, itemstack) + minetest.set_node(pos, {name = "default:apple", param2 = 1}) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + if oldnode.param2 == 0 then + minetest.set_node(pos, {name = "default:apple_mark"}) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end + end, +}) + +minetest.register_node("default:apple_mark", { + description = S("Apple Marker"), + inventory_image = "default_apple.png^default_invisible_node_overlay.png", + wield_image = "default_apple.png^default_invisible_node_overlay.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_timer = function(pos, elapsed) + if not minetest.find_node_near(pos, 1, "default:leaves") then + minetest.remove_node(pos) + elseif minetest.get_node_light(pos) < 11 then + minetest.get_node_timer(pos):start(200) + else + minetest.set_node(pos, {name = "default:apple"}) + end + end +}) + + +minetest.register_node("default:jungletree", { + description = S("Jungle Tree"), + tiles = {"default_jungletree_top.png", "default_jungletree_top.png", + "default_jungletree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:junglewood", { + description = S("Jungle Wood Planks"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_junglewood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:jungleleaves", { + description = S("Jungle Tree Leaves"), + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_jungleleaves.png"}, + special_tiles = {"default_jungleleaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:junglesapling"}, rarity = 20}, + {items = {"default:jungleleaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:junglesapling", { + description = S("Jungle Tree Sapling"), + drawtype = "plantlike", + tiles = {"default_junglesapling.png"}, + inventory_image = "default_junglesapling.png", + wield_image = "default_junglesapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:junglesapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 15, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:emergent_jungle_sapling", { + description = S("Emergent Jungle Tree Sapling"), + drawtype = "plantlike", + tiles = {"default_emergent_jungle_sapling.png"}, + inventory_image = "default_emergent_jungle_sapling.png", + wield_image = "default_emergent_jungle_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:emergent_jungle_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -3, y = -5, z = -3}, + {x = 3, y = 31, z = 3}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:pine_tree", { + description = S("Pine Tree"), + tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", + "default_pine_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:pine_wood", { + description = S("Pine Wood Planks"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_pine_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:pine_needles",{ + description = S("Pine Needles"), + drawtype = "allfaces_optional", + tiles = {"default_pine_needles.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:pine_sapling"}, rarity = 20}, + {items = {"default:pine_needles"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:pine_sapling", { + description = S("Pine Tree Sapling"), + drawtype = "plantlike", + tiles = {"default_pine_sapling.png"}, + inventory_image = "default_pine_sapling.png", + wield_image = "default_pine_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:pine_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 14, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:acacia_tree", { + description = S("Acacia Tree"), + tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", + "default_acacia_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:acacia_wood", { + description = S("Acacia Wood Planks"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_acacia_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:acacia_leaves", { + description = S("Acacia Tree Leaves"), + drawtype = "allfaces_optional", + tiles = {"default_acacia_leaves.png"}, + special_tiles = {"default_acacia_leaves_simple.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_sapling"}, rarity = 20}, + {items = {"default:acacia_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:acacia_sapling", { + description = S("Acacia Tree Sapling"), + drawtype = "plantlike", + tiles = {"default_acacia_sapling.png"}, + inventory_image = "default_acacia_sapling.png", + wield_image = "default_acacia_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -4, y = 1, z = -4}, + {x = 4, y = 7, z = 4}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:aspen_tree", { + description = S("Aspen Tree"), + tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", + "default_aspen_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:aspen_wood", { + description = S("Aspen Wood Planks"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_aspen_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:aspen_leaves", { + description = S("Aspen Tree Leaves"), + drawtype = "allfaces_optional", + tiles = {"default_aspen_leaves.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:aspen_sapling"}, rarity = 20}, + {items = {"default:aspen_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:aspen_sapling", { + description = S("Aspen Tree Sapling"), + drawtype = "plantlike", + tiles = {"default_aspen_sapling.png"}, + inventory_image = "default_aspen_sapling.png", + wield_image = "default_aspen_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:aspen_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +-- +-- Ores +-- + +minetest.register_node("default:stone_with_coal", { + description = S("Coal Ore"), + tiles = {"default_stone.png^default_mineral_coal.png"}, + groups = {cracky = 3}, + drop = "default:coal_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coalblock", { + description = S("Coal Block"), + tiles = {"default_coal_block.png"}, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:stone_with_iron", { + description = S("Iron Ore"), + tiles = {"default_stone.png^default_mineral_iron.png"}, + groups = {cracky = 2}, + drop = "default:iron_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:steelblock", { + description = S("Steel Block"), + tiles = {"default_steel_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_copper", { + description = S("Copper Ore"), + tiles = {"default_stone.png^default_mineral_copper.png"}, + groups = {cracky = 2}, + drop = "default:copper_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:copperblock", { + description = S("Copper Block"), + tiles = {"default_copper_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_tin", { + description = S("Tin Ore"), + tiles = {"default_stone.png^default_mineral_tin.png"}, + groups = {cracky = 2}, + drop = "default:tin_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:tinblock", { + description = S("Tin Block"), + tiles = {"default_tin_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:bronzeblock", { + description = S("Bronze Block"), + tiles = {"default_bronze_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_mese", { + description = S("Mese Ore"), + tiles = {"default_stone.png^default_mineral_mese.png"}, + groups = {cracky = 1}, + drop = "default:mese_crystal", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mese", { + description = S("Mese Block"), + tiles = {"default_mese_block.png"}, + paramtype = "light", + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_stone_defaults(), + light_source = 3, +}) + + +minetest.register_node("default:stone_with_gold", { + description = S("Gold Ore"), + tiles = {"default_stone.png^default_mineral_gold.png"}, + groups = {cracky = 2}, + drop = "default:gold_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:goldblock", { + description = S("Gold Block"), + tiles = {"default_gold_block.png"}, + is_ground_content = false, + groups = {cracky = 1}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_diamond", { + description = S("Diamond Ore"), + tiles = {"default_stone.png^default_mineral_diamond.png"}, + groups = {cracky = 1}, + drop = "default:diamond", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:diamondblock", { + description = S("Diamond Block"), + tiles = {"default_diamond_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +-- +-- Plantlife (non-cubic) +-- + +minetest.register_node("default:cactus", { + description = S("Cactus"), + tiles = {"default_cactus_top.png", "default_cactus_top.png", + "default_cactus_side.png"}, + paramtype2 = "facedir", + groups = {choppy = 3}, + sounds = default.node_sound_wood_defaults(), + on_place = minetest.rotate_node, +}) + +minetest.register_node("default:large_cactus_seedling", { + description = S("Large Cactus Seedling"), + drawtype = "plantlike", + tiles = {"default_large_cactus_seedling.png"}, + inventory_image = "default_large_cactus_seedling.png", + wield_image = "default_large_cactus_seedling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { + -5 / 16, -0.5, -5 / 16, + 5 / 16, 0.5, 5 / 16 + } + }, + groups = {choppy = 3, dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_wood_defaults(), + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:large_cactus_seedling", + {x = -2, y = -1, z = -2}, + {x = 2, y = 5, z = 2}, + 4) + + return itemstack + end, + + on_construct = function(pos) + -- Normal cactus farming adds 1 cactus node by ABM, + -- interval 12s, chance 83. + -- Consider starting with 5 cactus nodes. We make sure that growing a + -- large cactus is not a faster way to produce new cactus nodes. + -- Confirmed by experiment, when farming 5 cacti, on average 1 new + -- cactus node is added on average every + -- 83 / 5 = 16.6 intervals = 16.6 * 12 = 199.2s. + -- Large cactus contains on average 14 cactus nodes. + -- 14 * 199.2 = 2788.8s. + -- Set random range to average to 2789s. + minetest.get_node_timer(pos):start(math.random(1859, 3719)) + end, + + on_timer = function(pos) + local node_under = minetest.get_node_or_nil( + {x = pos.x, y = pos.y - 1, z = pos.z}) + if not node_under then + -- Node under not yet loaded, try later + minetest.get_node_timer(pos):start(300) + return + end + + if minetest.get_item_group(node_under.name, "sand") == 0 then + -- Seedling dies + minetest.remove_node(pos) + return + end + + local light_level = minetest.get_node_light(pos) + if not light_level or light_level < 13 then + -- Too dark for growth, try later in case it's night + minetest.get_node_timer(pos):start(300) + return + end + + minetest.log("action", "A large cactus seedling grows into a large" .. + "cactus at ".. minetest.pos_to_string(pos)) + default.grow_large_cactus(pos) + end, +}) + +minetest.register_node("default:papyrus", { + description = S("Papyrus"), + drawtype = "plantlike", + tiles = {"default_papyrus.png"}, + inventory_image = "default_papyrus.png", + wield_image = "default_papyrus.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16}, + }, + groups = {snappy = 3, flammable = 2}, + sounds = default.node_sound_leaves_defaults(), + + after_dig_node = function(pos, node, metadata, digger) + default.dig_up(pos, node, digger) + end, +}) + +minetest.register_node("default:dry_shrub", { + description = S("Dry Shrub"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_shrub.png"}, + inventory_image = "default_dry_shrub.png", + wield_image = "default_dry_shrub.png", + paramtype = "light", + paramtype2 = "meshoptions", + place_param2 = 4, + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 4 / 16, 6 / 16}, + }, +}) + +minetest.register_node("default:junglegrass", { + description = S("Jungle Grass"), + drawtype = "plantlike", + waving = 1, + visual_scale = 1.69, + tiles = {"default_junglegrass.png"}, + inventory_image = "default_junglegrass.png", + wield_image = "default_junglegrass.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16}, + }, +}) + + +minetest.register_node("default:grass_1", { + description = S("Grass"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_1.png"}, + -- Use texture of a taller grass stage in inventory + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random grass node + local stack = ItemStack("default:grass_" .. math.random(1,5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 5 do + minetest.register_node("default:grass_" .. i, { + description = S("Grass"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_" .. i .. ".png"}, + inventory_image = "default_grass_" .. i .. ".png", + wield_image = "default_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_1", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:dry_grass_1", { + description = S("Savanna Grass"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_1.png"}, + inventory_image = "default_dry_grass_3.png", + wield_image = "default_dry_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, + attached_node = 1, dry_grass = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random dry grass node + local stack = ItemStack("default:dry_grass_" .. math.random(1, 5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:dry_grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 5 do + minetest.register_node("default:dry_grass_" .. i, { + description = S("Savanna Grass"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_" .. i .. ".png"}, + inventory_image = "default_dry_grass_" .. i .. ".png", + wield_image = "default_dry_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, + not_in_creative_inventory=1, dry_grass = 1}, + drop = "default:dry_grass_1", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -1 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:fern_1", { + description = S("Fern"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_fern_1.png"}, + inventory_image = "default_fern_1.png", + wield_image = "default_fern_1.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -0.25, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random fern node + local stack = ItemStack("default:fern_" .. math.random(1, 3)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:fern_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 3 do + minetest.register_node("default:fern_" .. i, { + description = S("Fern"), + drawtype = "plantlike", + waving = 1, + visual_scale = 2, + tiles = {"default_fern_" .. i .. ".png"}, + inventory_image = "default_fern_" .. i .. ".png", + wield_image = "default_fern_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, + not_in_creative_inventory=1}, + drop = "default:fern_1", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -0.25, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:marram_grass_1", { + description = S("Marram Grass"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_marram_grass_1.png"}, + inventory_image = "default_marram_grass_1.png", + wield_image = "default_marram_grass_1.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -0.25, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random marram grass node + local stack = ItemStack("default:marram_grass_" .. math.random(1, 3)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:marram_grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 3 do + minetest.register_node("default:marram_grass_" .. i, { + description = S("Marram Grass"), + drawtype = "plantlike", + waving = 1, + tiles = {"default_marram_grass_" .. i .. ".png"}, + inventory_image = "default_marram_grass_" .. i .. ".png", + wield_image = "default_marram_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1, + not_in_creative_inventory=1}, + drop = "default:marram_grass_1", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -0.25, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:bush_stem", { + description = S("Bush Stem"), + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_bush_stem.png"}, + inventory_image = "default_bush_stem.png", + wield_image = "default_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:bush_leaves", { + description = S("Bush Leaves"), + drawtype = "allfaces_optional", + tiles = {"default_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:bush_sapling"}, rarity = 5}, + {items = {"default:bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:bush_sapling", { + description = S("Bush Sapling"), + drawtype = "plantlike", + tiles = {"default_bush_sapling.png"}, + inventory_image = "default_bush_sapling.png", + wield_image = "default_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + +minetest.register_node("default:blueberry_bush_leaves_with_berries", { + description = S("Blueberry Bush Leaves with Berries"), + drawtype = "allfaces_optional", + tiles = {"default_blueberry_bush_leaves.png^default_blueberry_overlay.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1, dig_immediate = 3}, + drop = "default:blueberries", + sounds = default.node_sound_leaves_defaults(), + node_dig_prediction = "default:blueberry_bush_leaves", + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + minetest.set_node(pos, {name = "default:blueberry_bush_leaves"}) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, +}) + +minetest.register_node("default:blueberry_bush_leaves", { + description = S("Blueberry Bush Leaves"), + drawtype = "allfaces_optional", + tiles = {"default_blueberry_bush_leaves.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:blueberry_bush_sapling"}, rarity = 5}, + {items = {"default:blueberry_bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + on_timer = function(pos, elapsed) + if minetest.get_node_light(pos) < 11 then + minetest.get_node_timer(pos):start(200) + else + minetest.set_node(pos, {name = "default:blueberry_bush_leaves_with_berries"}) + end + end, + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:blueberry_bush_sapling", { + description = S("Blueberry Bush Sapling"), + drawtype = "plantlike", + tiles = {"default_blueberry_bush_sapling.png"}, + inventory_image = "default_blueberry_bush_sapling.png", + wield_image = "default_blueberry_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:blueberry_bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + +minetest.register_node("default:acacia_bush_stem", { + description = S("Acacia Bush Stem"), + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_acacia_bush_stem.png"}, + inventory_image = "default_acacia_bush_stem.png", + wield_image = "default_acacia_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:acacia_bush_leaves", { + description = S("Acacia Bush Leaves"), + drawtype = "allfaces_optional", + tiles = {"default_acacia_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_bush_sapling"}, rarity = 5}, + {items = {"default:acacia_bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:acacia_bush_sapling", { + description = S("Acacia Bush Sapling"), + drawtype = "plantlike", + tiles = {"default_acacia_bush_sapling.png"}, + inventory_image = "default_acacia_bush_sapling.png", + wield_image = "default_acacia_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 2 / 16, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + +minetest.register_node("default:pine_bush_stem", { + description = S("Pine Bush Stem"), + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_pine_bush_stem.png"}, + inventory_image = "default_pine_bush_stem.png", + wield_image = "default_pine_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:pine_bush_needles", { + description = S("Pine Bush Needles"), + drawtype = "allfaces_optional", + tiles = {"default_pine_needles.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:pine_bush_sapling"}, rarity = 5}, + {items = {"default:pine_bush_needles"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = after_place_leaves, +}) + +minetest.register_node("default:pine_bush_sapling", { + description = S("Pine Bush Sapling"), + drawtype = "plantlike", + tiles = {"default_pine_bush_sapling.png"}, + inventory_image = "default_pine_bush_sapling.png", + wield_image = "default_pine_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:pine_bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + + +minetest.register_node("default:sand_with_kelp", { + description = S("Kelp"), + drawtype = "plantlike_rooted", + waving = 1, + tiles = {"default_sand.png"}, + special_tiles = {{name = "default_kelp.png", tileable_vertical = true}}, + inventory_image = "default_kelp.png", + paramtype = "light", + paramtype2 = "leveled", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-2/16, 0.5, -2/16, 2/16, 3.5, 2/16}, + }, + }, + node_dig_prediction = "default:sand", + node_placement_prediction = "", + sounds = default.node_sound_sand_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + -- Call on_rightclick if the pointed node defines it + if pointed_thing.type == "node" and placer and + not placer:get_player_control().sneak then + local node_ptu = minetest.get_node(pointed_thing.under) + local def_ptu = minetest.registered_nodes[node_ptu.name] + if def_ptu and def_ptu.on_rightclick then + return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer, + itemstack, pointed_thing) + end + end + + local pos = pointed_thing.under + if minetest.get_node(pos).name ~= "default:sand" then + return itemstack + end + + local height = math.random(4, 6) + local pos_top = {x = pos.x, y = pos.y + height, z = pos.z} + local node_top = minetest.get_node(pos_top) + local def_top = minetest.registered_nodes[node_top.name] + local player_name = placer:get_player_name() + + if def_top and def_top.liquidtype == "source" and + minetest.get_item_group(node_top.name, "water") > 0 then + if not minetest.is_protected(pos, player_name) and + not minetest.is_protected(pos_top, player_name) then + minetest.set_node(pos, {name = "default:sand_with_kelp", + param2 = height * 16}) + if not minetest.is_creative_enabled(player_name) then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:sand"}) + end +}) + + +-- +-- Corals +-- + +local function coral_on_place(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + local node_under = minetest.get_node(pos_under) + local def_under = minetest.registered_nodes[node_under.name] + + if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then + return def_under.on_rightclick(pos_under, node_under, + placer, itemstack, pointed_thing) or itemstack + end + + if node_under.name ~= "default:coral_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.log("action", player_name + .. " tried to place " .. itemstack:get_name() + .. " at protected position " + .. minetest.pos_to_string(pos_under)) + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + node_under.name = itemstack:get_name() + minetest.set_node(pos_under, node_under) + if not minetest.is_creative_enabled(player_name) then + itemstack:take_item() + end + + return itemstack +end + +minetest.register_node("default:coral_green", { + description = S("Green Coral"), + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"default_coral_skeleton.png"}, + special_tiles = {{name = "default_coral_green.png", tileable_vertical = true}}, + inventory_image = "default_coral_green.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "default:coral_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = coral_on_place, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:coral_skeleton"}) + end, +}) + +minetest.register_node("default:coral_pink", { + description = S("Pink Coral"), + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"default_coral_skeleton.png"}, + special_tiles = {{name = "default_coral_pink.png", tileable_vertical = true}}, + inventory_image = "default_coral_pink.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "default:coral_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = coral_on_place, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:coral_skeleton"}) + end, +}) + +minetest.register_node("default:coral_cyan", { + description = S("Cyan Coral"), + drawtype = "plantlike_rooted", + waving = 1, + paramtype = "light", + tiles = {"default_coral_skeleton.png"}, + special_tiles = {{name = "default_coral_cyan.png", tileable_vertical = true}}, + inventory_image = "default_coral_cyan.png", + groups = {snappy = 3}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + {-4/16, 0.5, -4/16, 4/16, 1.5, 4/16}, + }, + }, + node_dig_prediction = "default:coral_skeleton", + node_placement_prediction = "", + sounds = default.node_sound_stone_defaults({ + dig = {name = "default_dig_snappy", gain = 0.2}, + dug = {name = "default_grass_footstep", gain = 0.25}, + }), + + on_place = coral_on_place, + + after_destruct = function(pos, oldnode) + minetest.set_node(pos, {name = "default:coral_skeleton"}) + end, +}) + +minetest.register_node("default:coral_brown", { + description = S("Brown Coral"), + tiles = {"default_coral_brown.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_orange", { + description = S("Orange Coral"), + tiles = {"default_coral_orange.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_skeleton", { + description = S("Coral Skeleton"), + tiles = {"default_coral_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +-- +-- Liquids +-- + +minetest.register_node("default:water_source", { + description = S("Water Source"), + drawtype = "liquid", + waving = 3, + tiles = { + { + name = "default_water_source_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + { + name = "default_water_source_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + use_texture_alpha = "blend", + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + groups = {water = 3, liquid = 3, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("default:water_flowing", { + description = S("Flowing Water"), + drawtype = "flowingliquid", + waving = 3, + tiles = {"default_water.png"}, + special_tiles = { + { + name = "default_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.5, + }, + }, + { + name = "default_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.5, + }, + }, + }, + use_texture_alpha = "blend", + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + groups = {water = 3, liquid = 3, not_in_creative_inventory = 1, + cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("default:river_water_source", { + description = S("River Water Source"), + drawtype = "liquid", + tiles = { + { + name = "default_river_water_source_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + { + name = "default_river_water_source_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + use_texture_alpha = "blend", + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + -- Not renewable to avoid horizontal spread of water sources in sloping + -- rivers that can cause water to overflow riverbanks and cause floods. + -- River water source is instead made renewable by the 'force renew' + -- option used in the 'bucket' mod by the river water bucket. + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("default:river_water_flowing", { + description = S("Flowing River Water"), + drawtype = "flowingliquid", + tiles = {"default_river_water.png"}, + special_tiles = { + { + name = "default_river_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.5, + }, + }, + { + name = "default_river_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.5, + }, + }, + }, + use_texture_alpha = "blend", + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, not_in_creative_inventory = 1, + cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("default:lava_source", { + description = S("Lava Source"), + drawtype = "liquid", + tiles = { + { + name = "default_lava_source_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0, + }, + }, + { + name = "default_lava_source_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0, + }, + }, + }, + paramtype = "light", + light_source = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_renewable = false, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, igniter = 1}, +}) + +minetest.register_node("default:lava_flowing", { + description = S("Flowing Lava"), + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + special_tiles = { + { + name = "default_lava_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + { + name = "default_lava_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + }, + paramtype = "light", + paramtype2 = "flowingliquid", + light_source = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_renewable = false, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, igniter = 1, + not_in_creative_inventory = 1}, +}) + +-- +-- Tools / "Advanced" crafting / Non-"natural" +-- + +local bookshelf_formspec = + "size[8,7;]" .. + "list[context;books;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;books]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,2.85) + +local function update_bookshelf(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local invlist = inv:get_list("books") + + local formspec = bookshelf_formspec + -- Inventory slots overlay + local bx, by = 0, 0.3 + local n_written, n_empty = 0, 0 + for i = 1, 16 do + if i == 9 then + bx = 0 + by = by + 1 + end + local stack = invlist[i] + if stack:is_empty() then + formspec = formspec .. + "image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]" + else + local metatable = stack:get_meta():to_table() or {} + if metatable.fields and metatable.fields.text then + n_written = n_written + stack:get_count() + else + n_empty = n_empty + stack:get_count() + end + end + bx = bx + 1 + end + meta:set_string("formspec", formspec) + if n_written + n_empty == 0 then + meta:set_string("infotext", S("Empty Bookshelf")) + else + meta:set_string("infotext", S("Bookshelf (@1 written, @2 empty books)", n_written, n_empty)) + end +end + +minetest.register_node("default:bookshelf", { + description = S("Bookshelf"), + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size("books", 8 * 2) + update_bookshelf(pos) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("books") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack) + if minetest.get_item_group(stack:get_name(), "book") ~= 0 then + return stack:get_count() + end + return 0 + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in bookshelf at " .. minetest.pos_to_string(pos)) + update_bookshelf(pos) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " puts stuff to bookshelf at " .. minetest.pos_to_string(pos)) + update_bookshelf(pos) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes stuff from bookshelf at " .. minetest.pos_to_string(pos)) + update_bookshelf(pos) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "books", drops) + drops[#drops+1] = "default:bookshelf" + minetest.remove_node(pos) + return drops + end, +}) + +local function register_sign(material, desc, def) + minetest.register_node("default:sign_wall_" .. material, { + description = desc, + drawtype = "nodebox", + tiles = {"default_sign_wall_" .. material .. ".png"}, + inventory_image = "default_sign_" .. material .. ".png", + wield_image = "default_sign_" .. material .. ".png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + use_texture_alpha = "opaque", + node_box = { + type = "wallmounted", + wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125}, + wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125}, + wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}, + }, + groups = def.groups, + legacy_wallmounted = true, + sounds = def.sounds, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "field[text;;${text}]") + end, + on_receive_fields = function(pos, formname, fields, sender) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return + end + local text = fields.text + if not text then + return + end + if string.len(text) > 512 then + minetest.chat_send_player(player_name, S("Text too long")) + return + end + minetest.log("action", player_name .. " wrote \"" .. text .. + "\" to the sign at " .. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("text", text) + + if #text > 0 then + meta:set_string("infotext", S('"@1"', text)) + else + meta:set_string("infotext", '') + end + end, + }) +end + +register_sign("wood", S("Wooden Sign"), { + sounds = default.node_sound_wood_defaults(), + groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3} +}) + +register_sign("steel", S("Steel Sign"), { + sounds = default.node_sound_metal_defaults(), + groups = {cracky = 2, attached_node = 1} +}) + +minetest.register_node("default:ladder_wood", { + description = S("Wooden Ladder"), + drawtype = "signlike", + tiles = {"default_ladder_wood.png"}, + inventory_image = "default_ladder_wood.png", + wield_image = "default_ladder_wood.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:ladder_steel", { + description = S("Steel Ladder"), + drawtype = "signlike", + tiles = {"default_ladder_steel.png"}, + inventory_image = "default_ladder_steel.png", + wield_image = "default_ladder_steel.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {cracky = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +default.register_fence("default:fence_wood", { + description = S("Apple Wood Fence"), + texture = "default_fence_wood.png", + inventory_image = "default_fence_overlay.png^default_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_acacia_wood", { + description = S("Acacia Wood Fence"), + texture = "default_fence_acacia_wood.png", + inventory_image = "default_fence_overlay.png^default_acacia_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_acacia_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_junglewood", { + description = S("Jungle Wood Fence"), + texture = "default_fence_junglewood.png", + inventory_image = "default_fence_overlay.png^default_junglewood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_junglewood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_pine_wood", { + description = S("Pine Wood Fence"), + texture = "default_fence_pine_wood.png", + inventory_image = "default_fence_overlay.png^default_pine_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_pine_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_aspen_wood", { + description = S("Aspen Wood Fence"), + texture = "default_fence_aspen_wood.png", + inventory_image = "default_fence_overlay.png^default_aspen_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_aspen_wood.png^" .. + "default_fence_overlay.png^[makealpha:255,126,126", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence_rail("default:fence_rail_wood", { + description = S("Apple Wood Fence Rail"), + texture = "default_fence_rail_wood.png", + inventory_image = "default_fence_rail_overlay.png^default_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_rail_overlay.png^default_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence_rail("default:fence_rail_acacia_wood", { + description = S("Acacia Wood Fence Rail"), + texture = "default_fence_rail_acacia_wood.png", + inventory_image = "default_fence_rail_overlay.png^default_acacia_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_rail_overlay.png^default_acacia_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence_rail("default:fence_rail_junglewood", { + description = S("Jungle Wood Fence Rail"), + texture = "default_fence_rail_junglewood.png", + inventory_image = "default_fence_rail_overlay.png^default_junglewood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_rail_overlay.png^default_junglewood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence_rail("default:fence_rail_pine_wood", { + description = S("Pine Wood Fence Rail"), + texture = "default_fence_rail_pine_wood.png", + inventory_image = "default_fence_rail_overlay.png^default_pine_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_rail_overlay.png^default_pine_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence_rail("default:fence_rail_aspen_wood", { + description = S("Aspen Wood Fence Rail"), + texture = "default_fence_rail_aspen_wood.png", + inventory_image = "default_fence_rail_overlay.png^default_aspen_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_rail_overlay.png^default_aspen_wood.png^" .. + "default_fence_rail_overlay.png^[makealpha:255,126,126", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("default:glass", { + description = S("Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"default_glass.png", "default_glass_detail.png"}, + use_texture_alpha = "clip", -- only needed for stairs API + paramtype = "light", + paramtype2 = "glasslikeliquidlevel", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("default:obsidian_glass", { + description = S("Obsidian Glass"), + drawtype = "glasslike_framed_optional", + tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"}, + use_texture_alpha = "clip", -- only needed for stairs API + paramtype = "light", + paramtype2 = "glasslikeliquidlevel", + is_ground_content = false, + sunlight_propagates = true, + sounds = default.node_sound_glass_defaults(), + groups = {cracky = 3}, +}) + + +minetest.register_node("default:brick", { + description = S("Brick Block"), + paramtype2 = "facedir", + place_param2 = 0, + tiles = { + "default_brick.png^[transformFX", + "default_brick.png", + }, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:meselamp", { + description = S("Mese Lamp"), + drawtype = "glasslike", + tiles = {"default_meselamp.png"}, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), + light_source = default.LIGHT_MAX, +}) + +default.register_mesepost("default:mese_post_light", { + description = S("Apple Wood Mese Post Light"), + texture = "default_fence_wood.png", + material = "default:wood", +}) + +default.register_mesepost("default:mese_post_light_acacia_wood", { + description = S("Acacia Wood Mese Post Light"), + texture = "default_fence_acacia_wood.png", + material = "default:acacia_wood", +}) + +default.register_mesepost("default:mese_post_light_junglewood", { + description = S("Jungle Wood Mese Post Light"), + texture = "default_fence_junglewood.png", + material = "default:junglewood", +}) + +default.register_mesepost("default:mese_post_light_pine_wood", { + description = S("Pine Wood Mese Post Light"), + texture = "default_fence_pine_wood.png", + material = "default:pine_wood", +}) + +default.register_mesepost("default:mese_post_light_aspen_wood", { + description = S("Aspen Wood Mese Post Light"), + texture = "default_fence_aspen_wood.png", + material = "default:aspen_wood", +}) + +-- +-- Misc +-- + +minetest.register_node("default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + is_ground_content = false, + sounds = default.node_sound_defaults(), + groups = {not_in_creative_inventory = 1}, +}) + +-- +-- register trees for leafdecay +-- + +if minetest.get_mapgen_setting("mg_name") == "v6" then + default.register_leafdecay({ + trunks = {"default:tree"}, + leaves = {"default:apple", "default:leaves"}, + radius = 2, + }) + + default.register_leafdecay({ + trunks = {"default:jungletree"}, + leaves = {"default:jungleleaves"}, + radius = 3, + }) +else + default.register_leafdecay({ + trunks = {"default:tree"}, + leaves = {"default:apple", "default:leaves"}, + radius = 3, + }) + + default.register_leafdecay({ + trunks = {"default:jungletree"}, + leaves = {"default:jungleleaves"}, + radius = 2, + }) +end + +default.register_leafdecay({ + trunks = {"default:pine_tree"}, + leaves = {"default:pine_needles"}, + radius = 3, +}) + +default.register_leafdecay({ + trunks = {"default:acacia_tree"}, + leaves = {"default:acacia_leaves"}, + radius = 2, +}) + +default.register_leafdecay({ + trunks = {"default:aspen_tree"}, + leaves = {"default:aspen_leaves"}, + radius = 3, +}) + +default.register_leafdecay({ + trunks = {"default:bush_stem"}, + leaves = {"default:bush_leaves"}, + radius = 1, +}) + +default.register_leafdecay({ + trunks = {"default:acacia_bush_stem"}, + leaves = {"default:acacia_bush_leaves"}, + radius = 1, +}) + +default.register_leafdecay({ + trunks = {"default:pine_bush_stem"}, + leaves = {"default:pine_bush_needles"}, + radius = 1, +}) diff --git a/mods/default/schematics/acacia_bush.mts b/mods/default/schematics/acacia_bush.mts new file mode 100644 index 00000000..3322e3b3 Binary files /dev/null and b/mods/default/schematics/acacia_bush.mts differ diff --git a/mods/default/schematics/acacia_log.mts b/mods/default/schematics/acacia_log.mts new file mode 100644 index 00000000..aff3bd6a Binary files /dev/null and b/mods/default/schematics/acacia_log.mts differ diff --git a/mods/default/schematics/acacia_tree.mts b/mods/default/schematics/acacia_tree.mts new file mode 100644 index 00000000..9b234981 Binary files /dev/null and b/mods/default/schematics/acacia_tree.mts differ diff --git a/mods/default/schematics/acacia_tree_from_sapling.mts b/mods/default/schematics/acacia_tree_from_sapling.mts new file mode 100644 index 00000000..c32a995c Binary files /dev/null and b/mods/default/schematics/acacia_tree_from_sapling.mts differ diff --git a/mods/default/schematics/apple_log.mts b/mods/default/schematics/apple_log.mts new file mode 100644 index 00000000..92fb900a Binary files /dev/null and b/mods/default/schematics/apple_log.mts differ diff --git a/mods/default/schematics/apple_tree.mts b/mods/default/schematics/apple_tree.mts new file mode 100644 index 00000000..d56cd54b Binary files /dev/null and b/mods/default/schematics/apple_tree.mts differ diff --git a/mods/default/schematics/apple_tree_from_sapling.mts b/mods/default/schematics/apple_tree_from_sapling.mts new file mode 100644 index 00000000..23251003 Binary files /dev/null and b/mods/default/schematics/apple_tree_from_sapling.mts differ diff --git a/mods/default/schematics/aspen_log.mts b/mods/default/schematics/aspen_log.mts new file mode 100644 index 00000000..d0c723d7 Binary files /dev/null and b/mods/default/schematics/aspen_log.mts differ diff --git a/mods/default/schematics/aspen_tree.mts b/mods/default/schematics/aspen_tree.mts new file mode 100644 index 00000000..429a831c Binary files /dev/null and b/mods/default/schematics/aspen_tree.mts differ diff --git a/mods/default/schematics/aspen_tree_from_sapling.mts b/mods/default/schematics/aspen_tree_from_sapling.mts new file mode 100644 index 00000000..b7ab3ee6 Binary files /dev/null and b/mods/default/schematics/aspen_tree_from_sapling.mts differ diff --git a/mods/default/schematics/blueberry_bush.mts b/mods/default/schematics/blueberry_bush.mts new file mode 100644 index 00000000..cf4d8ef8 Binary files /dev/null and b/mods/default/schematics/blueberry_bush.mts differ diff --git a/mods/default/schematics/bush.mts b/mods/default/schematics/bush.mts new file mode 100644 index 00000000..d08cf5f5 Binary files /dev/null and b/mods/default/schematics/bush.mts differ diff --git a/mods/default/schematics/emergent_jungle_tree.mts b/mods/default/schematics/emergent_jungle_tree.mts new file mode 100644 index 00000000..b5264309 Binary files /dev/null and b/mods/default/schematics/emergent_jungle_tree.mts differ diff --git a/mods/default/schematics/emergent_jungle_tree_from_sapling.mts b/mods/default/schematics/emergent_jungle_tree_from_sapling.mts new file mode 100644 index 00000000..cb4e4e9e Binary files /dev/null and b/mods/default/schematics/emergent_jungle_tree_from_sapling.mts differ diff --git a/mods/default/schematics/jungle_log.mts b/mods/default/schematics/jungle_log.mts new file mode 100644 index 00000000..34dca436 Binary files /dev/null and b/mods/default/schematics/jungle_log.mts differ diff --git a/mods/default/schematics/jungle_tree.mts b/mods/default/schematics/jungle_tree.mts new file mode 100644 index 00000000..fe93c8c1 Binary files /dev/null and b/mods/default/schematics/jungle_tree.mts differ diff --git a/mods/default/schematics/jungle_tree_from_sapling.mts b/mods/default/schematics/jungle_tree_from_sapling.mts new file mode 100644 index 00000000..f32d312b Binary files /dev/null and b/mods/default/schematics/jungle_tree_from_sapling.mts differ diff --git a/mods/default/schematics/large_cactus.mts b/mods/default/schematics/large_cactus.mts new file mode 100644 index 00000000..cadcdccb Binary files /dev/null and b/mods/default/schematics/large_cactus.mts differ diff --git a/mods/default/schematics/papyrus_on_dirt.mts b/mods/default/schematics/papyrus_on_dirt.mts new file mode 100644 index 00000000..1333a7c4 Binary files /dev/null and b/mods/default/schematics/papyrus_on_dirt.mts differ diff --git a/mods/default/schematics/papyrus_on_dry_dirt.mts b/mods/default/schematics/papyrus_on_dry_dirt.mts new file mode 100644 index 00000000..36265802 Binary files /dev/null and b/mods/default/schematics/papyrus_on_dry_dirt.mts differ diff --git a/mods/default/schematics/pine_bush.mts b/mods/default/schematics/pine_bush.mts new file mode 100644 index 00000000..ca572a7d Binary files /dev/null and b/mods/default/schematics/pine_bush.mts differ diff --git a/mods/default/schematics/pine_log.mts b/mods/default/schematics/pine_log.mts new file mode 100644 index 00000000..d51a489f Binary files /dev/null and b/mods/default/schematics/pine_log.mts differ diff --git a/mods/default/schematics/pine_tree.mts b/mods/default/schematics/pine_tree.mts new file mode 100644 index 00000000..c80532ae Binary files /dev/null and b/mods/default/schematics/pine_tree.mts differ diff --git a/mods/default/schematics/pine_tree_from_sapling.mts b/mods/default/schematics/pine_tree_from_sapling.mts new file mode 100644 index 00000000..0800387c Binary files /dev/null and b/mods/default/schematics/pine_tree_from_sapling.mts differ diff --git a/mods/default/schematics/small_pine_tree.mts b/mods/default/schematics/small_pine_tree.mts new file mode 100644 index 00000000..b2832266 Binary files /dev/null and b/mods/default/schematics/small_pine_tree.mts differ diff --git a/mods/default/schematics/small_pine_tree_from_sapling.mts b/mods/default/schematics/small_pine_tree_from_sapling.mts new file mode 100644 index 00000000..a1b11703 Binary files /dev/null and b/mods/default/schematics/small_pine_tree_from_sapling.mts differ diff --git a/mods/default/schematics/snowy_pine_tree_from_sapling.mts b/mods/default/schematics/snowy_pine_tree_from_sapling.mts new file mode 100644 index 00000000..3d502a3e Binary files /dev/null and b/mods/default/schematics/snowy_pine_tree_from_sapling.mts differ diff --git a/mods/default/schematics/snowy_small_pine_tree_from_sapling.mts b/mods/default/schematics/snowy_small_pine_tree_from_sapling.mts new file mode 100644 index 00000000..d017c9e0 Binary files /dev/null and b/mods/default/schematics/snowy_small_pine_tree_from_sapling.mts differ diff --git a/mods/default/sounds/default_break_glass.1.ogg b/mods/default/sounds/default_break_glass.1.ogg new file mode 100644 index 00000000..b1ccc5fa Binary files /dev/null and b/mods/default/sounds/default_break_glass.1.ogg differ diff --git a/mods/default/sounds/default_break_glass.2.ogg b/mods/default/sounds/default_break_glass.2.ogg new file mode 100644 index 00000000..b6cc9e85 Binary files /dev/null and b/mods/default/sounds/default_break_glass.2.ogg differ diff --git a/mods/default/sounds/default_break_glass.3.ogg b/mods/default/sounds/default_break_glass.3.ogg new file mode 100644 index 00000000..ae6a6bfc Binary files /dev/null and b/mods/default/sounds/default_break_glass.3.ogg differ diff --git a/mods/default/sounds/default_chest_close.ogg b/mods/default/sounds/default_chest_close.ogg new file mode 100644 index 00000000..068d9002 Binary files /dev/null and b/mods/default/sounds/default_chest_close.ogg differ diff --git a/mods/default/sounds/default_chest_open.ogg b/mods/default/sounds/default_chest_open.ogg new file mode 100644 index 00000000..40b0b934 Binary files /dev/null and b/mods/default/sounds/default_chest_open.ogg differ diff --git a/mods/default/sounds/default_cool_lava.1.ogg b/mods/default/sounds/default_cool_lava.1.ogg new file mode 100644 index 00000000..42506ddf Binary files /dev/null and b/mods/default/sounds/default_cool_lava.1.ogg differ diff --git a/mods/default/sounds/default_cool_lava.2.ogg b/mods/default/sounds/default_cool_lava.2.ogg new file mode 100644 index 00000000..2747ab81 Binary files /dev/null and b/mods/default/sounds/default_cool_lava.2.ogg differ diff --git a/mods/default/sounds/default_cool_lava.3.ogg b/mods/default/sounds/default_cool_lava.3.ogg new file mode 100644 index 00000000..8baeac32 Binary files /dev/null and b/mods/default/sounds/default_cool_lava.3.ogg differ diff --git a/mods/default/sounds/default_dig_choppy.1.ogg b/mods/default/sounds/default_dig_choppy.1.ogg new file mode 100644 index 00000000..95fa6d4e Binary files /dev/null and b/mods/default/sounds/default_dig_choppy.1.ogg differ diff --git a/mods/default/sounds/default_dig_choppy.2.ogg b/mods/default/sounds/default_dig_choppy.2.ogg new file mode 100644 index 00000000..5d3a0444 Binary files /dev/null and b/mods/default/sounds/default_dig_choppy.2.ogg differ diff --git a/mods/default/sounds/default_dig_choppy.3.ogg b/mods/default/sounds/default_dig_choppy.3.ogg new file mode 100644 index 00000000..2bb0aceb Binary files /dev/null and b/mods/default/sounds/default_dig_choppy.3.ogg differ diff --git a/mods/default/sounds/default_dig_cracky.1.ogg b/mods/default/sounds/default_dig_cracky.1.ogg new file mode 100644 index 00000000..ffced27a Binary files /dev/null and b/mods/default/sounds/default_dig_cracky.1.ogg differ diff --git a/mods/default/sounds/default_dig_cracky.2.ogg b/mods/default/sounds/default_dig_cracky.2.ogg new file mode 100644 index 00000000..d9e80103 Binary files /dev/null and b/mods/default/sounds/default_dig_cracky.2.ogg differ diff --git a/mods/default/sounds/default_dig_cracky.3.ogg b/mods/default/sounds/default_dig_cracky.3.ogg new file mode 100644 index 00000000..7d19d408 Binary files /dev/null and b/mods/default/sounds/default_dig_cracky.3.ogg differ diff --git a/mods/default/sounds/default_dig_crumbly.ogg b/mods/default/sounds/default_dig_crumbly.ogg new file mode 100644 index 00000000..a0b2a1f9 Binary files /dev/null and b/mods/default/sounds/default_dig_crumbly.ogg differ diff --git a/mods/default/sounds/default_dig_dig_immediate.ogg b/mods/default/sounds/default_dig_dig_immediate.ogg new file mode 100644 index 00000000..e65d766e Binary files /dev/null and b/mods/default/sounds/default_dig_dig_immediate.ogg differ diff --git a/mods/default/sounds/default_dig_metal.ogg b/mods/default/sounds/default_dig_metal.ogg new file mode 100644 index 00000000..0b585097 Binary files /dev/null and b/mods/default/sounds/default_dig_metal.ogg differ diff --git a/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg b/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg new file mode 100644 index 00000000..ef4d7b15 Binary files /dev/null and b/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg differ diff --git a/mods/default/sounds/default_dig_snappy.ogg b/mods/default/sounds/default_dig_snappy.ogg new file mode 100644 index 00000000..3686fcdd Binary files /dev/null and b/mods/default/sounds/default_dig_snappy.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.1.ogg b/mods/default/sounds/default_dirt_footstep.1.ogg new file mode 100644 index 00000000..201aa3b2 Binary files /dev/null and b/mods/default/sounds/default_dirt_footstep.1.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.2.ogg b/mods/default/sounds/default_dirt_footstep.2.ogg new file mode 100644 index 00000000..2667dbc2 Binary files /dev/null and b/mods/default/sounds/default_dirt_footstep.2.ogg differ diff --git a/mods/default/sounds/default_dug_metal.1.ogg b/mods/default/sounds/default_dug_metal.1.ogg new file mode 100644 index 00000000..5d6cb5b1 Binary files /dev/null and b/mods/default/sounds/default_dug_metal.1.ogg differ diff --git a/mods/default/sounds/default_dug_metal.2.ogg b/mods/default/sounds/default_dug_metal.2.ogg new file mode 100644 index 00000000..63567fc0 Binary files /dev/null and b/mods/default/sounds/default_dug_metal.2.ogg differ diff --git a/mods/default/sounds/default_dug_node.1.ogg b/mods/default/sounds/default_dug_node.1.ogg new file mode 100644 index 00000000..c04975d4 Binary files /dev/null and b/mods/default/sounds/default_dug_node.1.ogg differ diff --git a/mods/default/sounds/default_dug_node.2.ogg b/mods/default/sounds/default_dug_node.2.ogg new file mode 100644 index 00000000..9f209268 Binary files /dev/null and b/mods/default/sounds/default_dug_node.2.ogg differ diff --git a/mods/default/sounds/default_furnace_active.ogg b/mods/default/sounds/default_furnace_active.ogg new file mode 100644 index 00000000..536edc24 Binary files /dev/null and b/mods/default/sounds/default_furnace_active.ogg differ diff --git a/mods/default/sounds/default_glass_footstep.ogg b/mods/default/sounds/default_glass_footstep.ogg new file mode 100644 index 00000000..191287a3 Binary files /dev/null and b/mods/default/sounds/default_glass_footstep.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.1.ogg b/mods/default/sounds/default_grass_footstep.1.ogg new file mode 100644 index 00000000..a04cdb47 Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.1.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.2.ogg b/mods/default/sounds/default_grass_footstep.2.ogg new file mode 100644 index 00000000..d193068d Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.2.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.3.ogg b/mods/default/sounds/default_grass_footstep.3.ogg new file mode 100644 index 00000000..e1897ea3 Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.3.ogg differ diff --git a/mods/default/sounds/default_gravel_dig.1.ogg b/mods/default/sounds/default_gravel_dig.1.ogg new file mode 100644 index 00000000..baf8fca7 Binary files /dev/null and b/mods/default/sounds/default_gravel_dig.1.ogg differ diff --git a/mods/default/sounds/default_gravel_dig.2.ogg b/mods/default/sounds/default_gravel_dig.2.ogg new file mode 100644 index 00000000..e0c0c50f Binary files /dev/null and b/mods/default/sounds/default_gravel_dig.2.ogg differ diff --git a/mods/default/sounds/default_gravel_dug.1.ogg b/mods/default/sounds/default_gravel_dug.1.ogg new file mode 100644 index 00000000..13034335 Binary files /dev/null and b/mods/default/sounds/default_gravel_dug.1.ogg differ diff --git a/mods/default/sounds/default_gravel_dug.2.ogg b/mods/default/sounds/default_gravel_dug.2.ogg new file mode 100644 index 00000000..ee5ed330 Binary files /dev/null and b/mods/default/sounds/default_gravel_dug.2.ogg differ diff --git a/mods/default/sounds/default_gravel_dug.3.ogg b/mods/default/sounds/default_gravel_dug.3.ogg new file mode 100644 index 00000000..add4c54b Binary files /dev/null and b/mods/default/sounds/default_gravel_dug.3.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.1.ogg b/mods/default/sounds/default_gravel_footstep.1.ogg new file mode 100644 index 00000000..8d260ce0 Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.1.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.2.ogg b/mods/default/sounds/default_gravel_footstep.2.ogg new file mode 100644 index 00000000..2aba2c65 Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.2.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.3.ogg b/mods/default/sounds/default_gravel_footstep.3.ogg new file mode 100644 index 00000000..1bcd8a11 Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.3.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.4.ogg b/mods/default/sounds/default_gravel_footstep.4.ogg new file mode 100644 index 00000000..696c9ffd Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.4.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.1.ogg b/mods/default/sounds/default_hard_footstep.1.ogg new file mode 100644 index 00000000..0a08efa8 Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.1.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.2.ogg b/mods/default/sounds/default_hard_footstep.2.ogg new file mode 100644 index 00000000..be52a870 Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.2.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.3.ogg b/mods/default/sounds/default_hard_footstep.3.ogg new file mode 100644 index 00000000..a342787d Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.3.ogg differ diff --git a/mods/default/sounds/default_ice_dig.1.ogg b/mods/default/sounds/default_ice_dig.1.ogg new file mode 100644 index 00000000..97399c83 Binary files /dev/null and b/mods/default/sounds/default_ice_dig.1.ogg differ diff --git a/mods/default/sounds/default_ice_dig.2.ogg b/mods/default/sounds/default_ice_dig.2.ogg new file mode 100644 index 00000000..8a5da119 Binary files /dev/null and b/mods/default/sounds/default_ice_dig.2.ogg differ diff --git a/mods/default/sounds/default_ice_dig.3.ogg b/mods/default/sounds/default_ice_dig.3.ogg new file mode 100644 index 00000000..765fb9be Binary files /dev/null and b/mods/default/sounds/default_ice_dig.3.ogg differ diff --git a/mods/default/sounds/default_ice_dug.ogg b/mods/default/sounds/default_ice_dug.ogg new file mode 100644 index 00000000..ae37673e Binary files /dev/null and b/mods/default/sounds/default_ice_dug.ogg differ diff --git a/mods/default/sounds/default_ice_footstep.1.ogg b/mods/default/sounds/default_ice_footstep.1.ogg new file mode 100644 index 00000000..c235f1ef Binary files /dev/null and b/mods/default/sounds/default_ice_footstep.1.ogg differ diff --git a/mods/default/sounds/default_ice_footstep.2.ogg b/mods/default/sounds/default_ice_footstep.2.ogg new file mode 100644 index 00000000..61d2c990 Binary files /dev/null and b/mods/default/sounds/default_ice_footstep.2.ogg differ diff --git a/mods/default/sounds/default_ice_footstep.3.ogg b/mods/default/sounds/default_ice_footstep.3.ogg new file mode 100644 index 00000000..2ecbb431 Binary files /dev/null and b/mods/default/sounds/default_ice_footstep.3.ogg differ diff --git a/mods/default/sounds/default_item_smoke.ogg b/mods/default/sounds/default_item_smoke.ogg new file mode 100644 index 00000000..038a46e4 Binary files /dev/null and b/mods/default/sounds/default_item_smoke.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.1.ogg b/mods/default/sounds/default_metal_footstep.1.ogg new file mode 100644 index 00000000..49fe89ba Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.1.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.2.ogg b/mods/default/sounds/default_metal_footstep.2.ogg new file mode 100644 index 00000000..878711d5 Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.2.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.3.ogg b/mods/default/sounds/default_metal_footstep.3.ogg new file mode 100644 index 00000000..2a566a83 Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.3.ogg differ diff --git a/mods/default/sounds/default_place_node.1.ogg b/mods/default/sounds/default_place_node.1.ogg new file mode 100644 index 00000000..46b9756d Binary files /dev/null and b/mods/default/sounds/default_place_node.1.ogg differ diff --git a/mods/default/sounds/default_place_node.2.ogg b/mods/default/sounds/default_place_node.2.ogg new file mode 100644 index 00000000..d34c01a4 Binary files /dev/null and b/mods/default/sounds/default_place_node.2.ogg differ diff --git a/mods/default/sounds/default_place_node.3.ogg b/mods/default/sounds/default_place_node.3.ogg new file mode 100644 index 00000000..fc293650 Binary files /dev/null and b/mods/default/sounds/default_place_node.3.ogg differ diff --git a/mods/default/sounds/default_place_node_hard.1.ogg b/mods/default/sounds/default_place_node_hard.1.ogg new file mode 100644 index 00000000..9f97faca Binary files /dev/null and b/mods/default/sounds/default_place_node_hard.1.ogg differ diff --git a/mods/default/sounds/default_place_node_hard.2.ogg b/mods/default/sounds/default_place_node_hard.2.ogg new file mode 100644 index 00000000..1d3b3de2 Binary files /dev/null and b/mods/default/sounds/default_place_node_hard.2.ogg differ diff --git a/mods/default/sounds/default_place_node_metal.1.ogg b/mods/default/sounds/default_place_node_metal.1.ogg new file mode 100644 index 00000000..5da085ea Binary files /dev/null and b/mods/default/sounds/default_place_node_metal.1.ogg differ diff --git a/mods/default/sounds/default_place_node_metal.2.ogg b/mods/default/sounds/default_place_node_metal.2.ogg new file mode 100644 index 00000000..5ee67fcf Binary files /dev/null and b/mods/default/sounds/default_place_node_metal.2.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.1.ogg b/mods/default/sounds/default_sand_footstep.1.ogg new file mode 100644 index 00000000..b92feabb Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.1.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.2.ogg b/mods/default/sounds/default_sand_footstep.2.ogg new file mode 100644 index 00000000..6bc5da3e Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.2.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.3.ogg b/mods/default/sounds/default_sand_footstep.3.ogg new file mode 100644 index 00000000..880306fd Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.3.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.1.ogg b/mods/default/sounds/default_snow_footstep.1.ogg new file mode 100644 index 00000000..97cc8252 Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.1.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.2.ogg b/mods/default/sounds/default_snow_footstep.2.ogg new file mode 100644 index 00000000..97a6baa4 Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.2.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.3.ogg b/mods/default/sounds/default_snow_footstep.3.ogg new file mode 100644 index 00000000..bde1f21d Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.3.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.4.ogg b/mods/default/sounds/default_snow_footstep.4.ogg new file mode 100644 index 00000000..8ca6a590 Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.4.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.5.ogg b/mods/default/sounds/default_snow_footstep.5.ogg new file mode 100644 index 00000000..220d60c9 Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.5.ogg differ diff --git a/mods/default/sounds/default_tool_breaks.1.ogg b/mods/default/sounds/default_tool_breaks.1.ogg new file mode 100644 index 00000000..2a571ae2 Binary files /dev/null and b/mods/default/sounds/default_tool_breaks.1.ogg differ diff --git a/mods/default/sounds/default_tool_breaks.2.ogg b/mods/default/sounds/default_tool_breaks.2.ogg new file mode 100644 index 00000000..17893520 Binary files /dev/null and b/mods/default/sounds/default_tool_breaks.2.ogg differ diff --git a/mods/default/sounds/default_tool_breaks.3.ogg b/mods/default/sounds/default_tool_breaks.3.ogg new file mode 100644 index 00000000..a99c4b7e Binary files /dev/null and b/mods/default/sounds/default_tool_breaks.3.ogg differ diff --git a/mods/default/sounds/default_water_footstep.1.ogg b/mods/default/sounds/default_water_footstep.1.ogg new file mode 100644 index 00000000..63b9744c Binary files /dev/null and b/mods/default/sounds/default_water_footstep.1.ogg differ diff --git a/mods/default/sounds/default_water_footstep.2.ogg b/mods/default/sounds/default_water_footstep.2.ogg new file mode 100644 index 00000000..8d79c1f4 Binary files /dev/null and b/mods/default/sounds/default_water_footstep.2.ogg differ diff --git a/mods/default/sounds/default_water_footstep.3.ogg b/mods/default/sounds/default_water_footstep.3.ogg new file mode 100644 index 00000000..f8891506 Binary files /dev/null and b/mods/default/sounds/default_water_footstep.3.ogg differ diff --git a/mods/default/sounds/default_water_footstep.4.ogg b/mods/default/sounds/default_water_footstep.4.ogg new file mode 100644 index 00000000..6f1eab82 Binary files /dev/null and b/mods/default/sounds/default_water_footstep.4.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.1.ogg b/mods/default/sounds/default_wood_footstep.1.ogg new file mode 100644 index 00000000..34f63a17 Binary files /dev/null and b/mods/default/sounds/default_wood_footstep.1.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.2.ogg b/mods/default/sounds/default_wood_footstep.2.ogg new file mode 100644 index 00000000..124fc297 Binary files /dev/null and b/mods/default/sounds/default_wood_footstep.2.ogg differ diff --git a/mods/default/sounds/player_damage.ogg b/mods/default/sounds/player_damage.ogg new file mode 100644 index 00000000..78880871 Binary files /dev/null and b/mods/default/sounds/player_damage.ogg differ diff --git a/mods/default/textures/bubble.png b/mods/default/textures/bubble.png new file mode 100644 index 00000000..30170d29 Binary files /dev/null and b/mods/default/textures/bubble.png differ diff --git a/mods/default/textures/crack_anylength.png b/mods/default/textures/crack_anylength.png new file mode 100644 index 00000000..297eced4 Binary files /dev/null and b/mods/default/textures/crack_anylength.png differ diff --git a/mods/default/textures/default_acacia_bush_sapling.png b/mods/default/textures/default_acacia_bush_sapling.png new file mode 100644 index 00000000..940b3aac Binary files /dev/null and b/mods/default/textures/default_acacia_bush_sapling.png differ diff --git a/mods/default/textures/default_acacia_bush_stem.png b/mods/default/textures/default_acacia_bush_stem.png new file mode 100644 index 00000000..f2ee9fa1 Binary files /dev/null and b/mods/default/textures/default_acacia_bush_stem.png differ diff --git a/mods/default/textures/default_acacia_leaves.png b/mods/default/textures/default_acacia_leaves.png new file mode 100644 index 00000000..da58c095 Binary files /dev/null and b/mods/default/textures/default_acacia_leaves.png differ diff --git a/mods/default/textures/default_acacia_leaves_simple.png b/mods/default/textures/default_acacia_leaves_simple.png new file mode 100644 index 00000000..e0348e08 Binary files /dev/null and b/mods/default/textures/default_acacia_leaves_simple.png differ diff --git a/mods/default/textures/default_acacia_sapling.png b/mods/default/textures/default_acacia_sapling.png new file mode 100644 index 00000000..e34aec51 Binary files /dev/null and b/mods/default/textures/default_acacia_sapling.png differ diff --git a/mods/default/textures/default_acacia_tree.png b/mods/default/textures/default_acacia_tree.png new file mode 100644 index 00000000..86ab6b15 Binary files /dev/null and b/mods/default/textures/default_acacia_tree.png differ diff --git a/mods/default/textures/default_acacia_tree_top.png b/mods/default/textures/default_acacia_tree_top.png new file mode 100644 index 00000000..5dbe97be Binary files /dev/null and b/mods/default/textures/default_acacia_tree_top.png differ diff --git a/mods/default/textures/default_acacia_wood.png b/mods/default/textures/default_acacia_wood.png new file mode 100644 index 00000000..f2f8337e Binary files /dev/null and b/mods/default/textures/default_acacia_wood.png differ diff --git a/mods/default/textures/default_apple.png b/mods/default/textures/default_apple.png new file mode 100644 index 00000000..7549bfd2 Binary files /dev/null and b/mods/default/textures/default_apple.png differ diff --git a/mods/default/textures/default_aspen_leaves.png b/mods/default/textures/default_aspen_leaves.png new file mode 100644 index 00000000..68ef1884 Binary files /dev/null and b/mods/default/textures/default_aspen_leaves.png differ diff --git a/mods/default/textures/default_aspen_sapling.png b/mods/default/textures/default_aspen_sapling.png new file mode 100644 index 00000000..f4c772c0 Binary files /dev/null and b/mods/default/textures/default_aspen_sapling.png differ diff --git a/mods/default/textures/default_aspen_tree.png b/mods/default/textures/default_aspen_tree.png new file mode 100644 index 00000000..db2285e7 Binary files /dev/null and b/mods/default/textures/default_aspen_tree.png differ diff --git a/mods/default/textures/default_aspen_tree_top.png b/mods/default/textures/default_aspen_tree_top.png new file mode 100644 index 00000000..61ac0096 Binary files /dev/null and b/mods/default/textures/default_aspen_tree_top.png differ diff --git a/mods/default/textures/default_aspen_wood.png b/mods/default/textures/default_aspen_wood.png new file mode 100644 index 00000000..f31ac30f Binary files /dev/null and b/mods/default/textures/default_aspen_wood.png differ diff --git a/mods/default/textures/default_blueberries.png b/mods/default/textures/default_blueberries.png new file mode 100644 index 00000000..1dbb0d64 Binary files /dev/null and b/mods/default/textures/default_blueberries.png differ diff --git a/mods/default/textures/default_blueberry_bush_leaves.png b/mods/default/textures/default_blueberry_bush_leaves.png new file mode 100644 index 00000000..355f0ee4 Binary files /dev/null and b/mods/default/textures/default_blueberry_bush_leaves.png differ diff --git a/mods/default/textures/default_blueberry_bush_sapling.png b/mods/default/textures/default_blueberry_bush_sapling.png new file mode 100644 index 00000000..c22a374f Binary files /dev/null and b/mods/default/textures/default_blueberry_bush_sapling.png differ diff --git a/mods/default/textures/default_blueberry_overlay.png b/mods/default/textures/default_blueberry_overlay.png new file mode 100644 index 00000000..f61efe08 Binary files /dev/null and b/mods/default/textures/default_blueberry_overlay.png differ diff --git a/mods/default/textures/default_book.png b/mods/default/textures/default_book.png new file mode 100644 index 00000000..bcf1e6a0 Binary files /dev/null and b/mods/default/textures/default_book.png differ diff --git a/mods/default/textures/default_book_written.png b/mods/default/textures/default_book_written.png new file mode 100644 index 00000000..f23d1225 Binary files /dev/null and b/mods/default/textures/default_book_written.png differ diff --git a/mods/default/textures/default_bookshelf.png b/mods/default/textures/default_bookshelf.png new file mode 100644 index 00000000..3407f758 Binary files /dev/null and b/mods/default/textures/default_bookshelf.png differ diff --git a/mods/default/textures/default_bookshelf_slot.png b/mods/default/textures/default_bookshelf_slot.png new file mode 100644 index 00000000..ea4fdba1 Binary files /dev/null and b/mods/default/textures/default_bookshelf_slot.png differ diff --git a/mods/default/textures/default_brick.png b/mods/default/textures/default_brick.png new file mode 100644 index 00000000..de98961e Binary files /dev/null and b/mods/default/textures/default_brick.png differ diff --git a/mods/default/textures/default_bronze_block.png b/mods/default/textures/default_bronze_block.png new file mode 100644 index 00000000..491fc78a Binary files /dev/null and b/mods/default/textures/default_bronze_block.png differ diff --git a/mods/default/textures/default_bronze_ingot.png b/mods/default/textures/default_bronze_ingot.png new file mode 100644 index 00000000..6cccdf6e Binary files /dev/null and b/mods/default/textures/default_bronze_ingot.png differ diff --git a/mods/default/textures/default_bush_sapling.png b/mods/default/textures/default_bush_sapling.png new file mode 100644 index 00000000..905ba4b8 Binary files /dev/null and b/mods/default/textures/default_bush_sapling.png differ diff --git a/mods/default/textures/default_bush_stem.png b/mods/default/textures/default_bush_stem.png new file mode 100644 index 00000000..6ad88885 Binary files /dev/null and b/mods/default/textures/default_bush_stem.png differ diff --git a/mods/default/textures/default_cactus_side.png b/mods/default/textures/default_cactus_side.png new file mode 100644 index 00000000..e5c10c33 Binary files /dev/null and b/mods/default/textures/default_cactus_side.png differ diff --git a/mods/default/textures/default_cactus_top.png b/mods/default/textures/default_cactus_top.png new file mode 100644 index 00000000..cf46aa2d Binary files /dev/null and b/mods/default/textures/default_cactus_top.png differ diff --git a/mods/default/textures/default_chest_front.png b/mods/default/textures/default_chest_front.png new file mode 100644 index 00000000..f4132794 Binary files /dev/null and b/mods/default/textures/default_chest_front.png differ diff --git a/mods/default/textures/default_chest_inside.png b/mods/default/textures/default_chest_inside.png new file mode 100644 index 00000000..9d2e883d Binary files /dev/null and b/mods/default/textures/default_chest_inside.png differ diff --git a/mods/default/textures/default_chest_lock.png b/mods/default/textures/default_chest_lock.png new file mode 100644 index 00000000..b1885ea5 Binary files /dev/null and b/mods/default/textures/default_chest_lock.png differ diff --git a/mods/default/textures/default_chest_side.png b/mods/default/textures/default_chest_side.png new file mode 100644 index 00000000..44a65a43 Binary files /dev/null and b/mods/default/textures/default_chest_side.png differ diff --git a/mods/default/textures/default_chest_top.png b/mods/default/textures/default_chest_top.png new file mode 100644 index 00000000..1fbdbb94 Binary files /dev/null and b/mods/default/textures/default_chest_top.png differ diff --git a/mods/default/textures/default_clay.png b/mods/default/textures/default_clay.png new file mode 100644 index 00000000..76e5a40a Binary files /dev/null and b/mods/default/textures/default_clay.png differ diff --git a/mods/default/textures/default_clay_brick.png b/mods/default/textures/default_clay_brick.png new file mode 100644 index 00000000..b288ef0b Binary files /dev/null and b/mods/default/textures/default_clay_brick.png differ diff --git a/mods/default/textures/default_clay_lump.png b/mods/default/textures/default_clay_lump.png new file mode 100644 index 00000000..c1d0220d Binary files /dev/null and b/mods/default/textures/default_clay_lump.png differ diff --git a/pipeworks/textures/pipeworks_white.png b/mods/default/textures/default_cloud.png similarity index 100% rename from pipeworks/textures/pipeworks_white.png rename to mods/default/textures/default_cloud.png diff --git a/mods/default/textures/default_coal_block.png b/mods/default/textures/default_coal_block.png new file mode 100644 index 00000000..e92c5322 Binary files /dev/null and b/mods/default/textures/default_coal_block.png differ diff --git a/mods/default/textures/default_coal_lump.png b/mods/default/textures/default_coal_lump.png new file mode 100644 index 00000000..792961dc Binary files /dev/null and b/mods/default/textures/default_coal_lump.png differ diff --git a/mods/default/textures/default_cobble.png b/mods/default/textures/default_cobble.png new file mode 100644 index 00000000..d3798404 Binary files /dev/null and b/mods/default/textures/default_cobble.png differ diff --git a/mods/default/textures/default_coniferous_litter.png b/mods/default/textures/default_coniferous_litter.png new file mode 100644 index 00000000..9d9651ae Binary files /dev/null and b/mods/default/textures/default_coniferous_litter.png differ diff --git a/mods/default/textures/default_coniferous_litter_side.png b/mods/default/textures/default_coniferous_litter_side.png new file mode 100644 index 00000000..9a390584 Binary files /dev/null and b/mods/default/textures/default_coniferous_litter_side.png differ diff --git a/mods/default/textures/default_copper_block.png b/mods/default/textures/default_copper_block.png new file mode 100644 index 00000000..e1b60f0a Binary files /dev/null and b/mods/default/textures/default_copper_block.png differ diff --git a/mods/default/textures/default_copper_ingot.png b/mods/default/textures/default_copper_ingot.png new file mode 100644 index 00000000..bcad9c05 Binary files /dev/null and b/mods/default/textures/default_copper_ingot.png differ diff --git a/mods/default/textures/default_copper_lump.png b/mods/default/textures/default_copper_lump.png new file mode 100644 index 00000000..998c592e Binary files /dev/null and b/mods/default/textures/default_copper_lump.png differ diff --git a/mods/default/textures/default_coral_brown.png b/mods/default/textures/default_coral_brown.png new file mode 100644 index 00000000..7a18bd70 Binary files /dev/null and b/mods/default/textures/default_coral_brown.png differ diff --git a/mods/default/textures/default_coral_cyan.png b/mods/default/textures/default_coral_cyan.png new file mode 100644 index 00000000..890347f7 Binary files /dev/null and b/mods/default/textures/default_coral_cyan.png differ diff --git a/mods/default/textures/default_coral_green.png b/mods/default/textures/default_coral_green.png new file mode 100644 index 00000000..78f3f33f Binary files /dev/null and b/mods/default/textures/default_coral_green.png differ diff --git a/mods/default/textures/default_coral_orange.png b/mods/default/textures/default_coral_orange.png new file mode 100644 index 00000000..d7432abd Binary files /dev/null and b/mods/default/textures/default_coral_orange.png differ diff --git a/mods/default/textures/default_coral_pink.png b/mods/default/textures/default_coral_pink.png new file mode 100644 index 00000000..3708ba5f Binary files /dev/null and b/mods/default/textures/default_coral_pink.png differ diff --git a/mods/default/textures/default_coral_skeleton.png b/mods/default/textures/default_coral_skeleton.png new file mode 100644 index 00000000..d00c6fed Binary files /dev/null and b/mods/default/textures/default_coral_skeleton.png differ diff --git a/mods/default/textures/default_desert_cobble.png b/mods/default/textures/default_desert_cobble.png new file mode 100644 index 00000000..fa1af5d3 Binary files /dev/null and b/mods/default/textures/default_desert_cobble.png differ diff --git a/mods/default/textures/default_desert_sand.png b/mods/default/textures/default_desert_sand.png new file mode 100644 index 00000000..75ade0b7 Binary files /dev/null and b/mods/default/textures/default_desert_sand.png differ diff --git a/mods/default/textures/default_desert_sandstone.png b/mods/default/textures/default_desert_sandstone.png new file mode 100644 index 00000000..e0b22d0d Binary files /dev/null and b/mods/default/textures/default_desert_sandstone.png differ diff --git a/mods/default/textures/default_desert_sandstone_block.png b/mods/default/textures/default_desert_sandstone_block.png new file mode 100644 index 00000000..6f6c8ff5 Binary files /dev/null and b/mods/default/textures/default_desert_sandstone_block.png differ diff --git a/mods/default/textures/default_desert_sandstone_brick.png b/mods/default/textures/default_desert_sandstone_brick.png new file mode 100644 index 00000000..d2b70dd2 Binary files /dev/null and b/mods/default/textures/default_desert_sandstone_brick.png differ diff --git a/mods/default/textures/default_desert_stone.png b/mods/default/textures/default_desert_stone.png new file mode 100644 index 00000000..5d3aded2 Binary files /dev/null and b/mods/default/textures/default_desert_stone.png differ diff --git a/mods/default/textures/default_desert_stone_block.png b/mods/default/textures/default_desert_stone_block.png new file mode 100644 index 00000000..e8e842bc Binary files /dev/null and b/mods/default/textures/default_desert_stone_block.png differ diff --git a/mods/default/textures/default_desert_stone_brick.png b/mods/default/textures/default_desert_stone_brick.png new file mode 100644 index 00000000..8e7208dc Binary files /dev/null and b/mods/default/textures/default_desert_stone_brick.png differ diff --git a/mods/default/textures/default_diamond.png b/mods/default/textures/default_diamond.png new file mode 100644 index 00000000..a8dac747 Binary files /dev/null and b/mods/default/textures/default_diamond.png differ diff --git a/mods/default/textures/default_diamond_block.png b/mods/default/textures/default_diamond_block.png new file mode 100644 index 00000000..20c33edb Binary files /dev/null and b/mods/default/textures/default_diamond_block.png differ diff --git a/mods/default/textures/default_dirt.png b/mods/default/textures/default_dirt.png new file mode 100644 index 00000000..4ed965a9 Binary files /dev/null and b/mods/default/textures/default_dirt.png differ diff --git a/mods/default/textures/default_dry_dirt.png b/mods/default/textures/default_dry_dirt.png new file mode 100644 index 00000000..8ee53984 Binary files /dev/null and b/mods/default/textures/default_dry_dirt.png differ diff --git a/mods/default/textures/default_dry_grass.png b/mods/default/textures/default_dry_grass.png new file mode 100644 index 00000000..11def9c6 Binary files /dev/null and b/mods/default/textures/default_dry_grass.png differ diff --git a/mods/default/textures/default_dry_grass_1.png b/mods/default/textures/default_dry_grass_1.png new file mode 100644 index 00000000..d91174cc Binary files /dev/null and b/mods/default/textures/default_dry_grass_1.png differ diff --git a/mods/default/textures/default_dry_grass_2.png b/mods/default/textures/default_dry_grass_2.png new file mode 100644 index 00000000..b12bf547 Binary files /dev/null and b/mods/default/textures/default_dry_grass_2.png differ diff --git a/mods/default/textures/default_dry_grass_3.png b/mods/default/textures/default_dry_grass_3.png new file mode 100644 index 00000000..c37a8eb9 Binary files /dev/null and b/mods/default/textures/default_dry_grass_3.png differ diff --git a/mods/default/textures/default_dry_grass_4.png b/mods/default/textures/default_dry_grass_4.png new file mode 100644 index 00000000..c00c7027 Binary files /dev/null and b/mods/default/textures/default_dry_grass_4.png differ diff --git a/mods/default/textures/default_dry_grass_5.png b/mods/default/textures/default_dry_grass_5.png new file mode 100644 index 00000000..10a09316 Binary files /dev/null and b/mods/default/textures/default_dry_grass_5.png differ diff --git a/mods/default/textures/default_dry_grass_side.png b/mods/default/textures/default_dry_grass_side.png new file mode 100644 index 00000000..3ccbe418 Binary files /dev/null and b/mods/default/textures/default_dry_grass_side.png differ diff --git a/mods/default/textures/default_dry_shrub.png b/mods/default/textures/default_dry_shrub.png new file mode 100644 index 00000000..82c9cc58 Binary files /dev/null and b/mods/default/textures/default_dry_shrub.png differ diff --git a/mods/default/textures/default_emergent_jungle_sapling.png b/mods/default/textures/default_emergent_jungle_sapling.png new file mode 100644 index 00000000..b363b3cc Binary files /dev/null and b/mods/default/textures/default_emergent_jungle_sapling.png differ diff --git a/mods/default/textures/default_fence_acacia_wood.png b/mods/default/textures/default_fence_acacia_wood.png new file mode 100644 index 00000000..0fb97cc9 Binary files /dev/null and b/mods/default/textures/default_fence_acacia_wood.png differ diff --git a/mods/default/textures/default_fence_aspen_wood.png b/mods/default/textures/default_fence_aspen_wood.png new file mode 100644 index 00000000..fec97550 Binary files /dev/null and b/mods/default/textures/default_fence_aspen_wood.png differ diff --git a/mods/default/textures/default_fence_junglewood.png b/mods/default/textures/default_fence_junglewood.png new file mode 100644 index 00000000..b3b8549c Binary files /dev/null and b/mods/default/textures/default_fence_junglewood.png differ diff --git a/mods/default/textures/default_fence_overlay.png b/mods/default/textures/default_fence_overlay.png new file mode 100644 index 00000000..718184cc Binary files /dev/null and b/mods/default/textures/default_fence_overlay.png differ diff --git a/mods/default/textures/default_fence_pine_wood.png b/mods/default/textures/default_fence_pine_wood.png new file mode 100644 index 00000000..5045d19a Binary files /dev/null and b/mods/default/textures/default_fence_pine_wood.png differ diff --git a/mods/default/textures/default_fence_rail_acacia_wood.png b/mods/default/textures/default_fence_rail_acacia_wood.png new file mode 100644 index 00000000..7081cdb0 Binary files /dev/null and b/mods/default/textures/default_fence_rail_acacia_wood.png differ diff --git a/mods/default/textures/default_fence_rail_aspen_wood.png b/mods/default/textures/default_fence_rail_aspen_wood.png new file mode 100644 index 00000000..0d35302f Binary files /dev/null and b/mods/default/textures/default_fence_rail_aspen_wood.png differ diff --git a/mods/default/textures/default_fence_rail_junglewood.png b/mods/default/textures/default_fence_rail_junglewood.png new file mode 100644 index 00000000..6616059b Binary files /dev/null and b/mods/default/textures/default_fence_rail_junglewood.png differ diff --git a/mods/default/textures/default_fence_rail_overlay.png b/mods/default/textures/default_fence_rail_overlay.png new file mode 100644 index 00000000..4da47aec Binary files /dev/null and b/mods/default/textures/default_fence_rail_overlay.png differ diff --git a/mods/default/textures/default_fence_rail_pine_wood.png b/mods/default/textures/default_fence_rail_pine_wood.png new file mode 100644 index 00000000..b2f74a37 Binary files /dev/null and b/mods/default/textures/default_fence_rail_pine_wood.png differ diff --git a/mods/default/textures/default_fence_rail_wood.png b/mods/default/textures/default_fence_rail_wood.png new file mode 100644 index 00000000..e41143cb Binary files /dev/null and b/mods/default/textures/default_fence_rail_wood.png differ diff --git a/mods/default/textures/default_fence_wood.png b/mods/default/textures/default_fence_wood.png new file mode 100644 index 00000000..7d161dce Binary files /dev/null and b/mods/default/textures/default_fence_wood.png differ diff --git a/mods/default/textures/default_fern_1.png b/mods/default/textures/default_fern_1.png new file mode 100644 index 00000000..b307986d Binary files /dev/null and b/mods/default/textures/default_fern_1.png differ diff --git a/mods/default/textures/default_fern_2.png b/mods/default/textures/default_fern_2.png new file mode 100644 index 00000000..6c5f7d54 Binary files /dev/null and b/mods/default/textures/default_fern_2.png differ diff --git a/mods/default/textures/default_fern_3.png b/mods/default/textures/default_fern_3.png new file mode 100644 index 00000000..2c1f605e Binary files /dev/null and b/mods/default/textures/default_fern_3.png differ diff --git a/mods/default/textures/default_flint.png b/mods/default/textures/default_flint.png new file mode 100644 index 00000000..9763f4b1 Binary files /dev/null and b/mods/default/textures/default_flint.png differ diff --git a/mods/default/textures/default_footprint.png b/mods/default/textures/default_footprint.png new file mode 100644 index 00000000..24d3e944 Binary files /dev/null and b/mods/default/textures/default_footprint.png differ diff --git a/mods/default/textures/default_furnace_bottom.png b/mods/default/textures/default_furnace_bottom.png new file mode 100644 index 00000000..92279ba3 Binary files /dev/null and b/mods/default/textures/default_furnace_bottom.png differ diff --git a/mods/default/textures/default_furnace_fire_bg.png b/mods/default/textures/default_furnace_fire_bg.png new file mode 100644 index 00000000..126204a3 Binary files /dev/null and b/mods/default/textures/default_furnace_fire_bg.png differ diff --git a/mods/default/textures/default_furnace_fire_fg.png b/mods/default/textures/default_furnace_fire_fg.png new file mode 100644 index 00000000..576f113b Binary files /dev/null and b/mods/default/textures/default_furnace_fire_fg.png differ diff --git a/mods/default/textures/default_furnace_front.png b/mods/default/textures/default_furnace_front.png new file mode 100644 index 00000000..f445d83d Binary files /dev/null and b/mods/default/textures/default_furnace_front.png differ diff --git a/mods/default/textures/default_furnace_front_active.png b/mods/default/textures/default_furnace_front_active.png new file mode 100644 index 00000000..68c03f57 Binary files /dev/null and b/mods/default/textures/default_furnace_front_active.png differ diff --git a/mods/default/textures/default_furnace_side.png b/mods/default/textures/default_furnace_side.png new file mode 100644 index 00000000..33408cfe Binary files /dev/null and b/mods/default/textures/default_furnace_side.png differ diff --git a/mods/default/textures/default_furnace_top.png b/mods/default/textures/default_furnace_top.png new file mode 100644 index 00000000..92279ba3 Binary files /dev/null and b/mods/default/textures/default_furnace_top.png differ diff --git a/mods/default/textures/default_glass.png b/mods/default/textures/default_glass.png new file mode 100644 index 00000000..74d6a025 Binary files /dev/null and b/mods/default/textures/default_glass.png differ diff --git a/mods/default/textures/default_glass_detail.png b/mods/default/textures/default_glass_detail.png new file mode 100644 index 00000000..7eab49e0 Binary files /dev/null and b/mods/default/textures/default_glass_detail.png differ diff --git a/mods/default/textures/default_gold_block.png b/mods/default/textures/default_gold_block.png new file mode 100644 index 00000000..170d50be Binary files /dev/null and b/mods/default/textures/default_gold_block.png differ diff --git a/mods/default/textures/default_gold_ingot.png b/mods/default/textures/default_gold_ingot.png new file mode 100644 index 00000000..ba66471e Binary files /dev/null and b/mods/default/textures/default_gold_ingot.png differ diff --git a/mods/default/textures/default_gold_lump.png b/mods/default/textures/default_gold_lump.png new file mode 100644 index 00000000..d5a1be79 Binary files /dev/null and b/mods/default/textures/default_gold_lump.png differ diff --git a/mods/default/textures/default_grass.png b/mods/default/textures/default_grass.png new file mode 100644 index 00000000..5778caa1 Binary files /dev/null and b/mods/default/textures/default_grass.png differ diff --git a/mods/default/textures/default_grass_1.png b/mods/default/textures/default_grass_1.png new file mode 100644 index 00000000..d16b307e Binary files /dev/null and b/mods/default/textures/default_grass_1.png differ diff --git a/mods/default/textures/default_grass_2.png b/mods/default/textures/default_grass_2.png new file mode 100644 index 00000000..6a1dac2c Binary files /dev/null and b/mods/default/textures/default_grass_2.png differ diff --git a/mods/default/textures/default_grass_3.png b/mods/default/textures/default_grass_3.png new file mode 100644 index 00000000..e67727a4 Binary files /dev/null and b/mods/default/textures/default_grass_3.png differ diff --git a/mods/default/textures/default_grass_4.png b/mods/default/textures/default_grass_4.png new file mode 100644 index 00000000..80269d7e Binary files /dev/null and b/mods/default/textures/default_grass_4.png differ diff --git a/mods/default/textures/default_grass_5.png b/mods/default/textures/default_grass_5.png new file mode 100644 index 00000000..df457605 Binary files /dev/null and b/mods/default/textures/default_grass_5.png differ diff --git a/mods/default/textures/default_grass_side.png b/mods/default/textures/default_grass_side.png new file mode 100644 index 00000000..77aa6557 Binary files /dev/null and b/mods/default/textures/default_grass_side.png differ diff --git a/mods/default/textures/default_gravel.png b/mods/default/textures/default_gravel.png new file mode 100644 index 00000000..37bf286d Binary files /dev/null and b/mods/default/textures/default_gravel.png differ diff --git a/mods/default/textures/default_ice.png b/mods/default/textures/default_ice.png new file mode 100644 index 00000000..09b53f28 Binary files /dev/null and b/mods/default/textures/default_ice.png differ diff --git a/mods/default/textures/default_invisible_node_overlay.png b/mods/default/textures/default_invisible_node_overlay.png new file mode 100644 index 00000000..7fc88061 Binary files /dev/null and b/mods/default/textures/default_invisible_node_overlay.png differ diff --git a/mods/default/textures/default_iron_lump.png b/mods/default/textures/default_iron_lump.png new file mode 100644 index 00000000..db61a94c Binary files /dev/null and b/mods/default/textures/default_iron_lump.png differ diff --git a/mods/default/textures/default_item_smoke.png b/mods/default/textures/default_item_smoke.png new file mode 100644 index 00000000..ae95c160 Binary files /dev/null and b/mods/default/textures/default_item_smoke.png differ diff --git a/mods/default/textures/default_junglegrass.png b/mods/default/textures/default_junglegrass.png new file mode 100644 index 00000000..25abb714 Binary files /dev/null and b/mods/default/textures/default_junglegrass.png differ diff --git a/mods/default/textures/default_jungleleaves.png b/mods/default/textures/default_jungleleaves.png new file mode 100644 index 00000000..252eee0a Binary files /dev/null and b/mods/default/textures/default_jungleleaves.png differ diff --git a/mods/default/textures/default_jungleleaves_simple.png b/mods/default/textures/default_jungleleaves_simple.png new file mode 100644 index 00000000..8e97f800 Binary files /dev/null and b/mods/default/textures/default_jungleleaves_simple.png differ diff --git a/mods/default/textures/default_junglesapling.png b/mods/default/textures/default_junglesapling.png new file mode 100644 index 00000000..05e1e505 Binary files /dev/null and b/mods/default/textures/default_junglesapling.png differ diff --git a/mods/default/textures/default_jungletree.png b/mods/default/textures/default_jungletree.png new file mode 100644 index 00000000..671b24dc Binary files /dev/null and b/mods/default/textures/default_jungletree.png differ diff --git a/mods/default/textures/default_jungletree_top.png b/mods/default/textures/default_jungletree_top.png new file mode 100644 index 00000000..4027d9e0 Binary files /dev/null and b/mods/default/textures/default_jungletree_top.png differ diff --git a/mods/default/textures/default_junglewood.png b/mods/default/textures/default_junglewood.png new file mode 100644 index 00000000..68d9e48a Binary files /dev/null and b/mods/default/textures/default_junglewood.png differ diff --git a/mods/default/textures/default_kelp.png b/mods/default/textures/default_kelp.png new file mode 100644 index 00000000..4b95b84c Binary files /dev/null and b/mods/default/textures/default_kelp.png differ diff --git a/mods/default/textures/default_key.png b/mods/default/textures/default_key.png new file mode 100644 index 00000000..d39d9afa Binary files /dev/null and b/mods/default/textures/default_key.png differ diff --git a/mods/default/textures/default_key_skeleton.png b/mods/default/textures/default_key_skeleton.png new file mode 100644 index 00000000..f60cacee Binary files /dev/null and b/mods/default/textures/default_key_skeleton.png differ diff --git a/mods/default/textures/default_ladder_steel.png b/mods/default/textures/default_ladder_steel.png new file mode 100644 index 00000000..87041262 Binary files /dev/null and b/mods/default/textures/default_ladder_steel.png differ diff --git a/mods/default/textures/default_ladder_wood.png b/mods/default/textures/default_ladder_wood.png new file mode 100644 index 00000000..6e18e547 Binary files /dev/null and b/mods/default/textures/default_ladder_wood.png differ diff --git a/mods/default/textures/default_large_cactus_seedling.png b/mods/default/textures/default_large_cactus_seedling.png new file mode 100644 index 00000000..c8ebf3ce Binary files /dev/null and b/mods/default/textures/default_large_cactus_seedling.png differ diff --git a/mods/default/textures/default_lava.png b/mods/default/textures/default_lava.png new file mode 100644 index 00000000..1d7039ff Binary files /dev/null and b/mods/default/textures/default_lava.png differ diff --git a/mods/default/textures/default_lava_flowing_animated.png b/mods/default/textures/default_lava_flowing_animated.png new file mode 100644 index 00000000..ebb0ec17 Binary files /dev/null and b/mods/default/textures/default_lava_flowing_animated.png differ diff --git a/mods/default/textures/default_lava_source_animated.png b/mods/default/textures/default_lava_source_animated.png new file mode 100644 index 00000000..326af645 Binary files /dev/null and b/mods/default/textures/default_lava_source_animated.png differ diff --git a/mods/default/textures/default_leaves.png b/mods/default/textures/default_leaves.png new file mode 100644 index 00000000..13a076cb Binary files /dev/null and b/mods/default/textures/default_leaves.png differ diff --git a/mods/default/textures/default_leaves_simple.png b/mods/default/textures/default_leaves_simple.png new file mode 100644 index 00000000..02679ec6 Binary files /dev/null and b/mods/default/textures/default_leaves_simple.png differ diff --git a/mods/default/textures/default_marram_grass_1.png b/mods/default/textures/default_marram_grass_1.png new file mode 100644 index 00000000..107a2590 Binary files /dev/null and b/mods/default/textures/default_marram_grass_1.png differ diff --git a/mods/default/textures/default_marram_grass_2.png b/mods/default/textures/default_marram_grass_2.png new file mode 100644 index 00000000..a6d05c51 Binary files /dev/null and b/mods/default/textures/default_marram_grass_2.png differ diff --git a/mods/default/textures/default_marram_grass_3.png b/mods/default/textures/default_marram_grass_3.png new file mode 100644 index 00000000..2a9668c7 Binary files /dev/null and b/mods/default/textures/default_marram_grass_3.png differ diff --git a/mods/default/textures/default_mese_block.png b/mods/default/textures/default_mese_block.png new file mode 100644 index 00000000..77524faa Binary files /dev/null and b/mods/default/textures/default_mese_block.png differ diff --git a/mods/default/textures/default_mese_crystal.png b/mods/default/textures/default_mese_crystal.png new file mode 100644 index 00000000..f1d71f16 Binary files /dev/null and b/mods/default/textures/default_mese_crystal.png differ diff --git a/mods/default/textures/default_mese_crystal_fragment.png b/mods/default/textures/default_mese_crystal_fragment.png new file mode 100644 index 00000000..d5416ab0 Binary files /dev/null and b/mods/default/textures/default_mese_crystal_fragment.png differ diff --git a/mods/default/textures/default_mese_post_light_side.png b/mods/default/textures/default_mese_post_light_side.png new file mode 100644 index 00000000..80a0999c Binary files /dev/null and b/mods/default/textures/default_mese_post_light_side.png differ diff --git a/mods/default/textures/default_mese_post_light_side_dark.png b/mods/default/textures/default_mese_post_light_side_dark.png new file mode 100644 index 00000000..4243e486 Binary files /dev/null and b/mods/default/textures/default_mese_post_light_side_dark.png differ diff --git a/mods/default/textures/default_meselamp.png b/mods/default/textures/default_meselamp.png new file mode 100644 index 00000000..d15c8b9b Binary files /dev/null and b/mods/default/textures/default_meselamp.png differ diff --git a/mods/default/textures/default_mineral_coal.png b/mods/default/textures/default_mineral_coal.png new file mode 100644 index 00000000..6d1386b9 Binary files /dev/null and b/mods/default/textures/default_mineral_coal.png differ diff --git a/mods/default/textures/default_mineral_copper.png b/mods/default/textures/default_mineral_copper.png new file mode 100644 index 00000000..c4c518eb Binary files /dev/null and b/mods/default/textures/default_mineral_copper.png differ diff --git a/mods/default/textures/default_mineral_diamond.png b/mods/default/textures/default_mineral_diamond.png new file mode 100644 index 00000000..b817bd11 Binary files /dev/null and b/mods/default/textures/default_mineral_diamond.png differ diff --git a/mods/default/textures/default_mineral_gold.png b/mods/default/textures/default_mineral_gold.png new file mode 100644 index 00000000..2220addd Binary files /dev/null and b/mods/default/textures/default_mineral_gold.png differ diff --git a/mods/default/textures/default_mineral_iron.png b/mods/default/textures/default_mineral_iron.png new file mode 100644 index 00000000..5d630628 Binary files /dev/null and b/mods/default/textures/default_mineral_iron.png differ diff --git a/mods/default/textures/default_mineral_mese.png b/mods/default/textures/default_mineral_mese.png new file mode 100644 index 00000000..56a447d0 Binary files /dev/null and b/mods/default/textures/default_mineral_mese.png differ diff --git a/mods/default/textures/default_mineral_tin.png b/mods/default/textures/default_mineral_tin.png new file mode 100644 index 00000000..232d4b53 Binary files /dev/null and b/mods/default/textures/default_mineral_tin.png differ diff --git a/mods/default/textures/default_moss.png b/mods/default/textures/default_moss.png new file mode 100644 index 00000000..bb98d7fe Binary files /dev/null and b/mods/default/textures/default_moss.png differ diff --git a/mods/default/textures/default_moss_side.png b/mods/default/textures/default_moss_side.png new file mode 100644 index 00000000..f18322c6 Binary files /dev/null and b/mods/default/textures/default_moss_side.png differ diff --git a/mods/default/textures/default_mossycobble.png b/mods/default/textures/default_mossycobble.png new file mode 100644 index 00000000..1071cb46 Binary files /dev/null and b/mods/default/textures/default_mossycobble.png differ diff --git a/mods/default/textures/default_obsidian.png b/mods/default/textures/default_obsidian.png new file mode 100644 index 00000000..30e063fd Binary files /dev/null and b/mods/default/textures/default_obsidian.png differ diff --git a/mods/default/textures/default_obsidian_block.png b/mods/default/textures/default_obsidian_block.png new file mode 100644 index 00000000..dd93f8d1 Binary files /dev/null and b/mods/default/textures/default_obsidian_block.png differ diff --git a/mods/default/textures/default_obsidian_brick.png b/mods/default/textures/default_obsidian_brick.png new file mode 100644 index 00000000..e4c8fe7f Binary files /dev/null and b/mods/default/textures/default_obsidian_brick.png differ diff --git a/mods/default/textures/default_obsidian_glass.png b/mods/default/textures/default_obsidian_glass.png new file mode 100644 index 00000000..d5ac83d0 Binary files /dev/null and b/mods/default/textures/default_obsidian_glass.png differ diff --git a/mods/default/textures/default_obsidian_glass_detail.png b/mods/default/textures/default_obsidian_glass_detail.png new file mode 100644 index 00000000..1397ecc4 Binary files /dev/null and b/mods/default/textures/default_obsidian_glass_detail.png differ diff --git a/mods/default/textures/default_obsidian_shard.png b/mods/default/textures/default_obsidian_shard.png new file mode 100644 index 00000000..a988d8ce Binary files /dev/null and b/mods/default/textures/default_obsidian_shard.png differ diff --git a/mods/default/textures/default_paper.png b/mods/default/textures/default_paper.png new file mode 100644 index 00000000..8f23924e Binary files /dev/null and b/mods/default/textures/default_paper.png differ diff --git a/mods/default/textures/default_papyrus.png b/mods/default/textures/default_papyrus.png new file mode 100644 index 00000000..982d589c Binary files /dev/null and b/mods/default/textures/default_papyrus.png differ diff --git a/mods/default/textures/default_permafrost.png b/mods/default/textures/default_permafrost.png new file mode 100644 index 00000000..6f2567e7 Binary files /dev/null and b/mods/default/textures/default_permafrost.png differ diff --git a/mods/default/textures/default_pine_bush_sapling.png b/mods/default/textures/default_pine_bush_sapling.png new file mode 100644 index 00000000..fadeff87 Binary files /dev/null and b/mods/default/textures/default_pine_bush_sapling.png differ diff --git a/mods/default/textures/default_pine_bush_stem.png b/mods/default/textures/default_pine_bush_stem.png new file mode 100644 index 00000000..7dc00f7b Binary files /dev/null and b/mods/default/textures/default_pine_bush_stem.png differ diff --git a/mods/default/textures/default_pine_needles.png b/mods/default/textures/default_pine_needles.png new file mode 100644 index 00000000..d1bcab6e Binary files /dev/null and b/mods/default/textures/default_pine_needles.png differ diff --git a/mods/default/textures/default_pine_sapling.png b/mods/default/textures/default_pine_sapling.png new file mode 100644 index 00000000..c30131d8 Binary files /dev/null and b/mods/default/textures/default_pine_sapling.png differ diff --git a/mods/default/textures/default_pine_tree.png b/mods/default/textures/default_pine_tree.png new file mode 100644 index 00000000..4a5328ff Binary files /dev/null and b/mods/default/textures/default_pine_tree.png differ diff --git a/mods/default/textures/default_pine_tree_top.png b/mods/default/textures/default_pine_tree_top.png new file mode 100644 index 00000000..e26a835d Binary files /dev/null and b/mods/default/textures/default_pine_tree_top.png differ diff --git a/mods/default/textures/default_pine_wood.png b/mods/default/textures/default_pine_wood.png new file mode 100644 index 00000000..29f9d6d2 Binary files /dev/null and b/mods/default/textures/default_pine_wood.png differ diff --git a/mods/default/textures/default_rainforest_litter.png b/mods/default/textures/default_rainforest_litter.png new file mode 100644 index 00000000..d762deb4 Binary files /dev/null and b/mods/default/textures/default_rainforest_litter.png differ diff --git a/mods/default/textures/default_rainforest_litter_side.png b/mods/default/textures/default_rainforest_litter_side.png new file mode 100644 index 00000000..1bd0bb60 Binary files /dev/null and b/mods/default/textures/default_rainforest_litter_side.png differ diff --git a/mods/default/textures/default_river_water.png b/mods/default/textures/default_river_water.png new file mode 100644 index 00000000..be57575b Binary files /dev/null and b/mods/default/textures/default_river_water.png differ diff --git a/mods/default/textures/default_river_water_flowing_animated.png b/mods/default/textures/default_river_water_flowing_animated.png new file mode 100644 index 00000000..52e6e8ec Binary files /dev/null and b/mods/default/textures/default_river_water_flowing_animated.png differ diff --git a/mods/default/textures/default_river_water_source_animated.png b/mods/default/textures/default_river_water_source_animated.png new file mode 100644 index 00000000..560078ee Binary files /dev/null and b/mods/default/textures/default_river_water_source_animated.png differ diff --git a/mods/default/textures/default_sand.png b/mods/default/textures/default_sand.png new file mode 100644 index 00000000..645a3004 Binary files /dev/null and b/mods/default/textures/default_sand.png differ diff --git a/mods/default/textures/default_sandstone.png b/mods/default/textures/default_sandstone.png new file mode 100644 index 00000000..16e3d13b Binary files /dev/null and b/mods/default/textures/default_sandstone.png differ diff --git a/mods/default/textures/default_sandstone_block.png b/mods/default/textures/default_sandstone_block.png new file mode 100644 index 00000000..c3adfd97 Binary files /dev/null and b/mods/default/textures/default_sandstone_block.png differ diff --git a/mods/default/textures/default_sandstone_brick.png b/mods/default/textures/default_sandstone_brick.png new file mode 100644 index 00000000..6326391b Binary files /dev/null and b/mods/default/textures/default_sandstone_brick.png differ diff --git a/mods/default/textures/default_sapling.png b/mods/default/textures/default_sapling.png new file mode 100644 index 00000000..3fd64f02 Binary files /dev/null and b/mods/default/textures/default_sapling.png differ diff --git a/mods/default/textures/default_sign_steel.png b/mods/default/textures/default_sign_steel.png new file mode 100644 index 00000000..1ea3ec97 Binary files /dev/null and b/mods/default/textures/default_sign_steel.png differ diff --git a/mods/default/textures/default_sign_wall_steel.png b/mods/default/textures/default_sign_wall_steel.png new file mode 100644 index 00000000..9a9273db Binary files /dev/null and b/mods/default/textures/default_sign_wall_steel.png differ diff --git a/mods/default/textures/default_sign_wall_wood.png b/mods/default/textures/default_sign_wall_wood.png new file mode 100644 index 00000000..eb91cf6d Binary files /dev/null and b/mods/default/textures/default_sign_wall_wood.png differ diff --git a/mods/default/textures/default_sign_wood.png b/mods/default/textures/default_sign_wood.png new file mode 100644 index 00000000..07eb9846 Binary files /dev/null and b/mods/default/textures/default_sign_wood.png differ diff --git a/mods/default/textures/default_silver_sand.png b/mods/default/textures/default_silver_sand.png new file mode 100644 index 00000000..90a7044b Binary files /dev/null and b/mods/default/textures/default_silver_sand.png differ diff --git a/mods/default/textures/default_silver_sandstone.png b/mods/default/textures/default_silver_sandstone.png new file mode 100644 index 00000000..1ccecbf3 Binary files /dev/null and b/mods/default/textures/default_silver_sandstone.png differ diff --git a/mods/default/textures/default_silver_sandstone_block.png b/mods/default/textures/default_silver_sandstone_block.png new file mode 100644 index 00000000..c8c14e41 Binary files /dev/null and b/mods/default/textures/default_silver_sandstone_block.png differ diff --git a/mods/default/textures/default_silver_sandstone_brick.png b/mods/default/textures/default_silver_sandstone_brick.png new file mode 100644 index 00000000..cb7be40d Binary files /dev/null and b/mods/default/textures/default_silver_sandstone_brick.png differ diff --git a/mods/default/textures/default_snow.png b/mods/default/textures/default_snow.png new file mode 100644 index 00000000..6a12161d Binary files /dev/null and b/mods/default/textures/default_snow.png differ diff --git a/mods/default/textures/default_snow_side.png b/mods/default/textures/default_snow_side.png new file mode 100644 index 00000000..8465d80d Binary files /dev/null and b/mods/default/textures/default_snow_side.png differ diff --git a/mods/default/textures/default_snowball.png b/mods/default/textures/default_snowball.png new file mode 100644 index 00000000..13eb27af Binary files /dev/null and b/mods/default/textures/default_snowball.png differ diff --git a/mods/default/textures/default_steel_block.png b/mods/default/textures/default_steel_block.png new file mode 100644 index 00000000..5e421f02 Binary files /dev/null and b/mods/default/textures/default_steel_block.png differ diff --git a/mods/default/textures/default_steel_ingot.png b/mods/default/textures/default_steel_ingot.png new file mode 100644 index 00000000..8100b013 Binary files /dev/null and b/mods/default/textures/default_steel_ingot.png differ diff --git a/mods/default/textures/default_stick.png b/mods/default/textures/default_stick.png new file mode 100644 index 00000000..0378d078 Binary files /dev/null and b/mods/default/textures/default_stick.png differ diff --git a/mods/default/textures/default_stone.png b/mods/default/textures/default_stone.png new file mode 100644 index 00000000..d3f0ef80 Binary files /dev/null and b/mods/default/textures/default_stone.png differ diff --git a/mods/default/textures/default_stone_block.png b/mods/default/textures/default_stone_block.png new file mode 100644 index 00000000..2d098783 Binary files /dev/null and b/mods/default/textures/default_stone_block.png differ diff --git a/mods/default/textures/default_stone_brick.png b/mods/default/textures/default_stone_brick.png new file mode 100644 index 00000000..3ae9602a Binary files /dev/null and b/mods/default/textures/default_stone_brick.png differ diff --git a/mods/default/textures/default_stones.png b/mods/default/textures/default_stones.png new file mode 100644 index 00000000..d09e3299 Binary files /dev/null and b/mods/default/textures/default_stones.png differ diff --git a/mods/default/textures/default_stones_side.png b/mods/default/textures/default_stones_side.png new file mode 100644 index 00000000..7ae823a7 Binary files /dev/null and b/mods/default/textures/default_stones_side.png differ diff --git a/mods/default/textures/default_tin_block.png b/mods/default/textures/default_tin_block.png new file mode 100644 index 00000000..a834d272 Binary files /dev/null and b/mods/default/textures/default_tin_block.png differ diff --git a/mods/default/textures/default_tin_ingot.png b/mods/default/textures/default_tin_ingot.png new file mode 100644 index 00000000..eed53610 Binary files /dev/null and b/mods/default/textures/default_tin_ingot.png differ diff --git a/moreores/textures/moreores_tin_lump.png b/mods/default/textures/default_tin_lump.png similarity index 100% rename from moreores/textures/moreores_tin_lump.png rename to mods/default/textures/default_tin_lump.png diff --git a/mods/default/textures/default_tool_bronzeaxe.png b/mods/default/textures/default_tool_bronzeaxe.png new file mode 100644 index 00000000..8ae43b5a Binary files /dev/null and b/mods/default/textures/default_tool_bronzeaxe.png differ diff --git a/mods/default/textures/default_tool_bronzepick.png b/mods/default/textures/default_tool_bronzepick.png new file mode 100644 index 00000000..c88a5f09 Binary files /dev/null and b/mods/default/textures/default_tool_bronzepick.png differ diff --git a/mods/default/textures/default_tool_bronzeshovel.png b/mods/default/textures/default_tool_bronzeshovel.png new file mode 100644 index 00000000..d7d800e4 Binary files /dev/null and b/mods/default/textures/default_tool_bronzeshovel.png differ diff --git a/mods/default/textures/default_tool_bronzesword.png b/mods/default/textures/default_tool_bronzesword.png new file mode 100644 index 00000000..cdab8985 Binary files /dev/null and b/mods/default/textures/default_tool_bronzesword.png differ diff --git a/mods/default/textures/default_tool_diamondaxe.png b/mods/default/textures/default_tool_diamondaxe.png new file mode 100644 index 00000000..e32a0bf2 Binary files /dev/null and b/mods/default/textures/default_tool_diamondaxe.png differ diff --git a/mods/default/textures/default_tool_diamondpick.png b/mods/default/textures/default_tool_diamondpick.png new file mode 100644 index 00000000..5dcc9983 Binary files /dev/null and b/mods/default/textures/default_tool_diamondpick.png differ diff --git a/mods/default/textures/default_tool_diamondshovel.png b/mods/default/textures/default_tool_diamondshovel.png new file mode 100644 index 00000000..d0fe24de Binary files /dev/null and b/mods/default/textures/default_tool_diamondshovel.png differ diff --git a/mods/default/textures/default_tool_diamondsword.png b/mods/default/textures/default_tool_diamondsword.png new file mode 100644 index 00000000..dbccd0e3 Binary files /dev/null and b/mods/default/textures/default_tool_diamondsword.png differ diff --git a/mods/default/textures/default_tool_meseaxe.png b/mods/default/textures/default_tool_meseaxe.png new file mode 100644 index 00000000..c01fb4f3 Binary files /dev/null and b/mods/default/textures/default_tool_meseaxe.png differ diff --git a/mods/default/textures/default_tool_mesepick.png b/mods/default/textures/default_tool_mesepick.png new file mode 100644 index 00000000..1b2e25be Binary files /dev/null and b/mods/default/textures/default_tool_mesepick.png differ diff --git a/mods/default/textures/default_tool_meseshovel.png b/mods/default/textures/default_tool_meseshovel.png new file mode 100644 index 00000000..00813a23 Binary files /dev/null and b/mods/default/textures/default_tool_meseshovel.png differ diff --git a/mods/default/textures/default_tool_mesesword.png b/mods/default/textures/default_tool_mesesword.png new file mode 100644 index 00000000..d395d3a1 Binary files /dev/null and b/mods/default/textures/default_tool_mesesword.png differ diff --git a/mods/default/textures/default_tool_steelaxe.png b/mods/default/textures/default_tool_steelaxe.png new file mode 100644 index 00000000..1528cad4 Binary files /dev/null and b/mods/default/textures/default_tool_steelaxe.png differ diff --git a/mods/default/textures/default_tool_steelpick.png b/mods/default/textures/default_tool_steelpick.png new file mode 100644 index 00000000..a7543a1f Binary files /dev/null and b/mods/default/textures/default_tool_steelpick.png differ diff --git a/mods/default/textures/default_tool_steelshovel.png b/mods/default/textures/default_tool_steelshovel.png new file mode 100644 index 00000000..65e40450 Binary files /dev/null and b/mods/default/textures/default_tool_steelshovel.png differ diff --git a/mods/default/textures/default_tool_steelsword.png b/mods/default/textures/default_tool_steelsword.png new file mode 100644 index 00000000..630a3396 Binary files /dev/null and b/mods/default/textures/default_tool_steelsword.png differ diff --git a/mods/default/textures/default_tool_stoneaxe.png b/mods/default/textures/default_tool_stoneaxe.png new file mode 100644 index 00000000..cc360545 Binary files /dev/null and b/mods/default/textures/default_tool_stoneaxe.png differ diff --git a/mods/default/textures/default_tool_stonepick.png b/mods/default/textures/default_tool_stonepick.png new file mode 100644 index 00000000..237d739c Binary files /dev/null and b/mods/default/textures/default_tool_stonepick.png differ diff --git a/mods/default/textures/default_tool_stoneshovel.png b/mods/default/textures/default_tool_stoneshovel.png new file mode 100644 index 00000000..11711bd2 Binary files /dev/null and b/mods/default/textures/default_tool_stoneshovel.png differ diff --git a/mods/default/textures/default_tool_stonesword.png b/mods/default/textures/default_tool_stonesword.png new file mode 100644 index 00000000..1a493acb Binary files /dev/null and b/mods/default/textures/default_tool_stonesword.png differ diff --git a/mods/default/textures/default_tool_woodaxe.png b/mods/default/textures/default_tool_woodaxe.png new file mode 100644 index 00000000..68f1fd8c Binary files /dev/null and b/mods/default/textures/default_tool_woodaxe.png differ diff --git a/mods/default/textures/default_tool_woodpick.png b/mods/default/textures/default_tool_woodpick.png new file mode 100644 index 00000000..0aed5833 Binary files /dev/null and b/mods/default/textures/default_tool_woodpick.png differ diff --git a/mods/default/textures/default_tool_woodshovel.png b/mods/default/textures/default_tool_woodshovel.png new file mode 100644 index 00000000..dcef2b5b Binary files /dev/null and b/mods/default/textures/default_tool_woodshovel.png differ diff --git a/mods/default/textures/default_tool_woodsword.png b/mods/default/textures/default_tool_woodsword.png new file mode 100644 index 00000000..c78ba50b Binary files /dev/null and b/mods/default/textures/default_tool_woodsword.png differ diff --git a/mods/default/textures/default_torch_animated.png b/mods/default/textures/default_torch_animated.png new file mode 100644 index 00000000..cdf33ef3 Binary files /dev/null and b/mods/default/textures/default_torch_animated.png differ diff --git a/mods/default/textures/default_torch_on_ceiling_animated.png b/mods/default/textures/default_torch_on_ceiling_animated.png new file mode 100644 index 00000000..5465217f Binary files /dev/null and b/mods/default/textures/default_torch_on_ceiling_animated.png differ diff --git a/mods/default/textures/default_torch_on_floor.png b/mods/default/textures/default_torch_on_floor.png new file mode 100644 index 00000000..bc4bdd6b Binary files /dev/null and b/mods/default/textures/default_torch_on_floor.png differ diff --git a/mods/default/textures/default_torch_on_floor_animated.png b/mods/default/textures/default_torch_on_floor_animated.png new file mode 100644 index 00000000..ad51c03a Binary files /dev/null and b/mods/default/textures/default_torch_on_floor_animated.png differ diff --git a/mods/default/textures/default_tree.png b/mods/default/textures/default_tree.png new file mode 100644 index 00000000..fe89963c Binary files /dev/null and b/mods/default/textures/default_tree.png differ diff --git a/mods/default/textures/default_tree_top.png b/mods/default/textures/default_tree_top.png new file mode 100644 index 00000000..9205ed98 Binary files /dev/null and b/mods/default/textures/default_tree_top.png differ diff --git a/mods/default/textures/default_water.png b/mods/default/textures/default_water.png new file mode 100644 index 00000000..47253db5 Binary files /dev/null and b/mods/default/textures/default_water.png differ diff --git a/mods/default/textures/default_water_flowing_animated.png b/mods/default/textures/default_water_flowing_animated.png new file mode 100644 index 00000000..0dc0ef9f Binary files /dev/null and b/mods/default/textures/default_water_flowing_animated.png differ diff --git a/mods/default/textures/default_water_source_animated.png b/mods/default/textures/default_water_source_animated.png new file mode 100644 index 00000000..8041b036 Binary files /dev/null and b/mods/default/textures/default_water_source_animated.png differ diff --git a/mods/default/textures/default_wood.png b/mods/default/textures/default_wood.png new file mode 100644 index 00000000..af56d6cd Binary files /dev/null and b/mods/default/textures/default_wood.png differ diff --git a/mods/default/textures/gui_formbg.png b/mods/default/textures/gui_formbg.png new file mode 100644 index 00000000..e259fec2 Binary files /dev/null and b/mods/default/textures/gui_formbg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_bg.png b/mods/default/textures/gui_furnace_arrow_bg.png new file mode 100644 index 00000000..046d8cda Binary files /dev/null and b/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_fg.png b/mods/default/textures/gui_furnace_arrow_fg.png new file mode 100644 index 00000000..8d3c396e Binary files /dev/null and b/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/mods/default/textures/gui_hb_bg.png b/mods/default/textures/gui_hb_bg.png new file mode 100644 index 00000000..99248e17 Binary files /dev/null and b/mods/default/textures/gui_hb_bg.png differ diff --git a/mods/default/textures/gui_hotbar.png b/mods/default/textures/gui_hotbar.png new file mode 100644 index 00000000..7bc78875 Binary files /dev/null and b/mods/default/textures/gui_hotbar.png differ diff --git a/mods/default/textures/gui_hotbar_selected.png b/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 00000000..7203e9a7 Binary files /dev/null and b/mods/default/textures/gui_hotbar_selected.png differ diff --git a/mods/default/textures/heart.png b/mods/default/textures/heart.png new file mode 100644 index 00000000..4412cab5 Binary files /dev/null and b/mods/default/textures/heart.png differ diff --git a/mods/default/textures/wieldhand.png b/mods/default/textures/wieldhand.png new file mode 100644 index 00000000..69f4b7bf Binary files /dev/null and b/mods/default/textures/wieldhand.png differ diff --git a/mods/default/tools.lua b/mods/default/tools.lua new file mode 100644 index 00000000..44468c56 --- /dev/null +++ b/mods/default/tools.lua @@ -0,0 +1,517 @@ +-- mods/default/tools.lua + +-- support for MT game translation. +local S = default.get_translator + +-- The hand +-- Override the hand item registered in the engine in builtin/game/register.lua +minetest.override_item("", { + wield_scale = {x=1,y=1,z=2.5}, + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0} + }, + damage_groups = {fleshy=1}, + } +}) + +-- +-- Picks +-- + +minetest.register_tool("default:pick_wood", { + description = S("Wooden Pickaxe"), + inventory_image = "default_tool_woodpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1, flammable = 2} +}) + +minetest.register_tool("default:pick_stone", { + description = S("Stone Pickaxe"), + inventory_image = "default_tool_stonepick.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + cracky = {times={[2]=2.0, [3]=1.00}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} +}) + +minetest.register_tool("default:pick_bronze", { + description = S("Bronze Pickaxe"), + inventory_image = "default_tool_bronzepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.50, [2]=1.80, [3]=0.90}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} +}) + +minetest.register_tool("default:pick_steel", { + description = S("Steel Pickaxe"), + inventory_image = "default_tool_steelpick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} +}) + +minetest.register_tool("default:pick_mese", { + description = S("Mese Pickaxe"), + inventory_image = "default_tool_mesepick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} +}) + +minetest.register_tool("default:pick_diamond", { + description = S("Diamond Pickaxe"), + inventory_image = "default_tool_diamondpick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} +}) + +-- +-- Shovels +-- + +minetest.register_tool("default:shovel_wood", { + description = S("Wooden Shovel"), + inventory_image = "default_tool_woodshovel.png", + wield_image = "default_tool_woodshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1, flammable = 2} +}) + +minetest.register_tool("default:shovel_stone", { + description = S("Stone Shovel"), + inventory_image = "default_tool_stoneshovel.png", + wield_image = "default_tool_stoneshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} +}) + +minetest.register_tool("default:shovel_bronze", { + description = S("Bronze Shovel"), + inventory_image = "default_tool_bronzeshovel.png", + wield_image = "default_tool_bronzeshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.65, [2]=1.05, [3]=0.45}, uses=25, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} +}) + +minetest.register_tool("default:shovel_steel", { + description = S("Steel Shovel"), + inventory_image = "default_tool_steelshovel.png", + wield_image = "default_tool_steelshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} +}) + +minetest.register_tool("default:shovel_mese", { + description = S("Mese Shovel"), + inventory_image = "default_tool_meseshovel.png", + wield_image = "default_tool_meseshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + crumbly = {times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} +}) + +minetest.register_tool("default:shovel_diamond", { + description = S("Diamond Shovel"), + inventory_image = "default_tool_diamondshovel.png", + wield_image = "default_tool_diamondshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} +}) + +-- +-- Axes +-- + +minetest.register_tool("default:axe_wood", { + description = S("Wooden Axe"), + inventory_image = "default_tool_woodaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + choppy = {times={[2]=3.00, [3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1, flammable = 2} +}) + +minetest.register_tool("default:axe_stone", { + description = S("Stone Axe"), + inventory_image = "default_tool_stoneaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + choppy={times={[1]=3.00, [2]=2.00, [3]=1.30}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} +}) + +minetest.register_tool("default:axe_bronze", { + description = S("Bronze Axe"), + inventory_image = "default_tool_bronzeaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.75, [2]=1.70, [3]=1.15}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} +}) + +minetest.register_tool("default:axe_steel", { + description = S("Steel Axe"), + inventory_image = "default_tool_steelaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} +}) + +minetest.register_tool("default:axe_mese", { + description = S("Mese Axe"), + inventory_image = "default_tool_meseaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.20, [2]=1.00, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} +}) + +minetest.register_tool("default:axe_diamond", { + description = S("Diamond Axe"), + inventory_image = "default_tool_diamondaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} +}) + +-- +-- Swords +-- + +minetest.register_tool("default:sword_wood", { + description = S("Wooden Sword"), + inventory_image = "default_tool_woodsword.png", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1, flammable = 2} +}) + +minetest.register_tool("default:sword_stone", { + description = S("Stone Sword"), + inventory_image = "default_tool_stonesword.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} +}) + +minetest.register_tool("default:sword_bronze", { + description = S("Bronze Sword"), + inventory_image = "default_tool_bronzesword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.75, [2]=1.30, [3]=0.375}, uses=25, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} +}) + +minetest.register_tool("default:sword_steel", { + description = S("Steel Sword"), + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} +}) + +minetest.register_tool("default:sword_mese", { + description = S("Mese Sword"), + inventory_image = "default_tool_mesesword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} +}) + +minetest.register_tool("default:sword_diamond", { + description = S("Diamond Sword"), + inventory_image = "default_tool_diamondsword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + }, + sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} +}) + +-- +-- Register Craft Recipies +-- + +local craft_ingreds = { + wood = "group:wood", + stone = "group:stone", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + mese = "default:mese_crystal", + diamond = "default:diamond" +} + +for name, mat in pairs(craft_ingreds) do + minetest.register_craft({ + output = "default:pick_".. name, + recipe = { + {mat, mat, mat}, + {"", "group:stick", ""}, + {"", "group:stick", ""} + } + }) + + minetest.register_craft({ + output = "default:shovel_".. name, + recipe = { + {mat}, + {"group:stick"}, + {"group:stick"} + } + }) + + minetest.register_craft({ + output = "default:axe_".. name, + recipe = { + {mat, mat}, + {mat, "group:stick"}, + {"", "group:stick"} + } + }) + + minetest.register_craft({ + output = "default:sword_".. name, + recipe = { + {mat}, + {mat}, + {"group:stick"} + } + }) +end + +minetest.register_tool("default:key", { + description = S("Key"), + inventory_image = "default_key.png", + groups = {key = 1, not_in_creative_inventory = 1}, + stack_max = 1, + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + if pointed_thing.type ~= "node" then + return itemstack + end + + local pos = pointed_thing.under + node = minetest.get_node(pos) + + if not node or node.name == "ignore" then + return itemstack + end + + local ndef = minetest.registered_nodes[node.name] + if not ndef then + return itemstack + end + + local on_key_use = ndef.on_key_use + if on_key_use then + on_key_use(pos, placer) + end + + return nil + end +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pick_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:shovel_wood", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:axe_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sword_wood", + burntime = 5, +}) diff --git a/mods/default/torch.lua b/mods/default/torch.lua new file mode 100644 index 00000000..a19f5314 --- /dev/null +++ b/mods/default/torch.lua @@ -0,0 +1,157 @@ +-- default/torch.lua + +-- support for MT game translation. +local S = default.get_translator + +local function on_flood(pos, oldnode, newnode) + minetest.add_item(pos, ItemStack("default:torch 1")) + -- Play flame-extinguish sound if liquid is not an 'igniter' + local nodedef = minetest.registered_items[newnode.name] + if not (nodedef and nodedef.groups and + nodedef.groups.igniter and nodedef.groups.igniter > 0) then + minetest.sound_play( + "default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.1}, + true + ) + end + -- Remove the torch node + return false +end + +minetest.register_node("default:torch", { + description = S("Torch"), + drawtype = "mesh", + mesh = "torch_floor.obj", + inventory_image = "default_torch_on_floor.png", + wield_image = "default_torch_on_floor.png", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + liquids_pointable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_bottom = {-1/8, -1/2, -1/8, 1/8, 2/16, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + local above = pointed_thing.above + local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) + local fakestack = itemstack + if wdir == 0 then + fakestack:set_name("default:torch_ceiling") + elseif wdir == 1 then + fakestack:set_name("default:torch") + else + fakestack:set_name("default:torch_wall") + end + + itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) + itemstack:set_name("default:torch") + + return itemstack + end, + floodable = true, + on_flood = on_flood, + on_rotate = false +}) + +minetest.register_node("default:torch_wall", { + drawtype = "mesh", + mesh = "torch_wall.obj", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_side = {-1/2, -1/2, -1/8, -1/8, 1/8, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), + floodable = true, + on_flood = on_flood, + on_rotate = false +}) + +minetest.register_node("default:torch_ceiling", { + drawtype = "mesh", + mesh = "torch_ceiling.obj", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + use_texture_alpha = "clip", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), + floodable = true, + on_flood = on_flood, + on_rotate = false +}) + +minetest.register_lbm({ + name = "default:3dtorch", + nodenames = {"default:torch", "torches:floor", "torches:wall"}, + action = function(pos, node) + if node.param2 == 0 then + minetest.set_node(pos, {name = "default:torch_ceiling", + param2 = node.param2}) + elseif node.param2 == 1 then + minetest.set_node(pos, {name = "default:torch", + param2 = node.param2}) + else + minetest.set_node(pos, {name = "default:torch_wall", + param2 = node.param2}) + end + end +}) + +minetest.register_craft({ + output = "default:torch 4", + recipe = { + {"default:coal_lump"}, + {"group:stick"}, + } +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:torch", + burntime = 4, +}) diff --git a/mods/default/trees.lua b/mods/default/trees.lua new file mode 100644 index 00000000..569beee8 --- /dev/null +++ b/mods/default/trees.lua @@ -0,0 +1,607 @@ +-- default/trees.lua + +-- support for MT game translation. +local S = default.get_translator + +local random = math.random + +-- +-- Grow trees from saplings +-- + +-- 'can grow' function + +function default.can_grow(pos) + local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not node_under then + return false + end + if minetest.get_item_group(node_under.name, "soil") == 0 then + return false + end + local light_level = minetest.get_node_light(pos) + if not light_level or light_level < 13 then + return false + end + return true +end + + +-- 'is snow nearby' function + +local function is_snow_nearby(pos) + return minetest.find_node_near(pos, 1, {"group:snowy"}) +end + + +-- Grow sapling + +function default.grow_sapling(pos) + if not default.can_grow(pos) then + -- try again 5 min later + minetest.get_node_timer(pos):start(300) + return + end + + local mg_name = minetest.get_mapgen_setting("mg_name") + local node = minetest.get_node(pos) + if node.name == "default:sapling" then + minetest.log("action", "A sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_tree(pos, random(1, 4) == 1) + else + default.grow_new_apple_tree(pos) + end + elseif node.name == "default:junglesapling" then + minetest.log("action", "A jungle sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_jungle_tree(pos) + else + default.grow_new_jungle_tree(pos) + end + elseif node.name == "default:pine_sapling" then + minetest.log("action", "A pine sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + local snow = is_snow_nearby(pos) + if mg_name == "v6" then + default.grow_pine_tree(pos, snow) + elseif snow then + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + elseif node.name == "default:acacia_sapling" then + minetest.log("action", "An acacia sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_acacia_tree(pos) + elseif node.name == "default:aspen_sapling" then + minetest.log("action", "An aspen sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_aspen_tree(pos) + elseif node.name == "default:bush_sapling" then + minetest.log("action", "A bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_bush(pos) + elseif node.name == "default:blueberry_bush_sapling" then + minetest.log("action", "A blueberry bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_blueberry_bush(pos) + elseif node.name == "default:acacia_bush_sapling" then + minetest.log("action", "An acacia bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_acacia_bush(pos) + elseif node.name == "default:pine_bush_sapling" then + minetest.log("action", "A pine bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_pine_bush(pos) + elseif node.name == "default:emergent_jungle_sapling" then + minetest.log("action", "An emergent jungle sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_emergent_jungle_tree(pos) + end +end + +minetest.register_lbm({ + name = "default:convert_saplings_to_node_timer", + nodenames = {"default:sapling", "default:junglesapling", + "default:pine_sapling", "default:acacia_sapling", + "default:aspen_sapling"}, + action = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end +}) + +-- +-- Tree generation +-- + +-- Apple tree and jungle tree trunk and leaves function + +local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, + height, size, iters, is_apple_tree) + local x, y, z = pos.x, pos.y, pos.z + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_apple = minetest.get_content_id("default:apple") + + -- Trunk + data[a:index(x, y, z)] = tree_cid -- Force-place lowest trunk node to replace sapling + for yy = y + 1, y + height - 1 do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == leaves_cid then + data[vi] = tree_cid + end + end + + -- Force leaves near the trunk + for z_dist = -1, 1 do + for y_dist = -size, 1 do + local vi = a:index(x - 1, y + height + y_dist, z + z_dist) + for x_dist = -1, 1 do + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + vi = vi + 1 + end + end + end + + -- Randomly add leaves in 2x2x2 clusters. + for i = 1, iters do + local clust_x = x + random(-size, size - 1) + local clust_y = y + height + random(-size, 0) + local clust_z = z + random(-size, size - 1) + + for xi = 0, 1 do + for yi = 0, 1 do + for zi = 0, 1 do + local vi = a:index(clust_x + xi, clust_y + yi, clust_z + zi) + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + end + end + end + end +end + + +-- Apple tree + +function default.grow_tree(pos, is_apple_tree, bad) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(4, 5) + local c_tree = minetest.get_content_id("default:tree") + local c_leaves = minetest.get_content_id("default:leaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 2, y = y, z = z - 2}, + {x = x + 2, y = y + height + 1, z = z + 2} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree) + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Jungle tree + +function default.grow_jungle_tree(pos, bad) + --[[ + NOTE: Jungletree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_jungle_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(8, 12) + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_jungletree = minetest.get_content_id("default:jungletree") + local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y - 1, z = z - 3}, + {x = x + 3, y = y + height + 1, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves, + height, 3, 30, false) + + -- Roots + for z_dist = -1, 1 do + local vi_1 = a:index(x - 1, y - 1, z + z_dist) + local vi_2 = a:index(x - 1, y, z + z_dist) + for x_dist = -1, 1 do + if random(1, 3) >= 2 then + if data[vi_1] == c_air or data[vi_1] == c_ignore then + data[vi_1] = c_jungletree + elseif data[vi_2] == c_air or data[vi_2] == c_ignore then + data[vi_2] = c_jungletree + end + end + vi_1 = vi_1 + 1 + vi_2 = vi_2 + 1 + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat + +local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == c_snow then + data[vi] = c_pine_needles + end +end + +local function add_snow(data, vi, c_air, c_ignore, c_snow) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore then + data[vi] = c_snow + end +end + +function default.grow_pine_tree(pos, snow) + local x, y, z = pos.x, pos.y, pos.z + local maxy = y + random(9, 13) -- Trunk top + + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_pine_tree = minetest.get_content_id("default:pine_tree") + local c_pine_needles = minetest.get_content_id("default:pine_needles") + local c_snow = minetest.get_content_id("default:snow") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y, z = z - 3}, + {x = x + 3, y = maxy + 3, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + -- Upper branches layer + local dev = 3 + for yy = maxy - 1, maxy + 1 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Centre top nodes + add_pine_needles(data, a:index(x, maxy + 1, z), c_air, c_ignore, c_snow, + c_pine_needles) + add_pine_needles(data, a:index(x, maxy + 2, z), c_air, c_ignore, c_snow, + c_pine_needles) -- Paramat added a pointy top node + if snow then + add_snow(data, a:index(x, maxy + 3, z), c_air, c_ignore, c_snow) + end + + -- Lower branches layer + local my = 0 + for i = 1, 20 do -- Random 2x2 squares of needles + local xi = x + random(-3, 2) + local yy = maxy + random(-6, -5) + local zi = z + random(-3, 2) + if yy > my then + my = yy + end + for zz = zi, zi+1 do + local vi = a:index(xi, yy, zz) + local via = a:index(xi, yy + 1, zz) + for xx = xi, xi + 1 do + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + vi = vi + 1 + via = via + 1 + end + end + end + + dev = 2 + for yy = my + 1, my + 2 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Trunk + -- Force-place lowest trunk node to replace sapling + data[a:index(x, y, z)] = c_pine_tree + for yy = y + 1, maxy do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or + node_id == c_pine_needles or node_id == c_snow then + data[vi] = c_pine_tree + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- New apple tree + +function default.grow_new_apple_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/apple_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 3, y = pos.y - 1, z = pos.z - 3}, + path, "random", nil, false) +end + + +-- New jungle tree + +function default.grow_new_jungle_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/jungle_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New emergent jungle tree + +function default.grow_new_emergent_jungle_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/emergent_jungle_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 3, y = pos.y - 5, z = pos.z - 3}, + path, "random", nil, false) +end + + +-- New pine tree + +function default.grow_new_pine_tree(pos) + local path + if math.random() > 0.5 then + path = minetest.get_modpath("default") .. + "/schematics/pine_tree_from_sapling.mts" + else + path = minetest.get_modpath("default") .. + "/schematics/small_pine_tree_from_sapling.mts" + end + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- New snowy pine tree + +function default.grow_new_snowy_pine_tree(pos) + local path + if math.random() > 0.5 then + path = minetest.get_modpath("default") .. + "/schematics/snowy_pine_tree_from_sapling.mts" + else + path = minetest.get_modpath("default") .. + "/schematics/snowy_small_pine_tree_from_sapling.mts" + end + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New acacia tree + +function default.grow_new_acacia_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4}, + path, "random", nil, false) +end + + +-- New aspen tree + +function default.grow_new_aspen_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/aspen_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- Bushes do not need 'from sapling' schematic variants because +-- only the stem node is force-placed in the schematic. + +-- Bush + +function default.grow_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + +-- Blueberry bush + +function default.grow_blueberry_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/blueberry_bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- Acacia bush + +function default.grow_acacia_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- Pine bush + +function default.grow_pine_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/pine_bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- Large cactus + +function default.grow_large_cactus(pos) + local path = minetest.get_modpath("default") .. + "/schematics/large_cactus.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- +-- Sapling 'on place' function to check protection of node and resulting tree volume +-- + +function default.sapling_on_place(itemstack, placer, pointed_thing, + sapling_name, minp_relative, maxp_relative, interval) + -- Position of sapling + local pos = pointed_thing.under + local node = minetest.get_node_or_nil(pos) + local pdef = node and minetest.registered_nodes[node.name] + + if pdef and pdef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing) + end + + if not pdef or not pdef.buildable_to then + pos = pointed_thing.above + node = minetest.get_node_or_nil(pos) + pdef = node and minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local player_name = placer and placer:get_player_name() or "" + -- Check sapling position for protection + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return itemstack + end + -- Check tree volume for protection + if minetest.is_area_protected( + vector.add(pos, minp_relative), + vector.add(pos, maxp_relative), + player_name, + interval) then + minetest.record_protection_violation(pos, player_name) + -- Print extra information to explain +-- minetest.chat_send_player(player_name, +-- itemstack:get_definition().description .. " will intersect protection " .. +-- "on growth") + minetest.chat_send_player(player_name, + S("@1 will intersect protection on growth.", + itemstack:get_definition().description)) + return itemstack + end + + minetest.log("action", player_name .. " places node " + .. sapling_name .. " at " .. minetest.pos_to_string(pos)) + + local take_item = not minetest.is_creative_enabled(player_name) + local newnode = {name = sapling_name} + local ndef = minetest.registered_nodes[sapling_name] + minetest.set_node(pos, newnode) + + -- Run callback + if ndef and ndef.after_place_node then + -- Deepcopy place_to and pointed_thing because callback can modify it + if ndef.after_place_node(table.copy(pos), placer, + itemstack, table.copy(pointed_thing)) then + take_item = false + end + end + + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + if callback(table.copy(pos), table.copy(newnode), + placer, table.copy(node or {}), + itemstack, table.copy(pointed_thing)) then + take_item = false + end + end + + if take_item then + itemstack:take_item() + end + + return itemstack +end diff --git a/delineator/depends.txt b/mods/delineator/depends.txt similarity index 100% rename from delineator/depends.txt rename to mods/delineator/depends.txt diff --git a/delineator/init.lua b/mods/delineator/init.lua similarity index 100% rename from delineator/init.lua rename to mods/delineator/init.lua diff --git a/digidisplay/COPYING b/mods/digidisplay/COPYING similarity index 100% rename from digidisplay/COPYING rename to mods/digidisplay/COPYING diff --git a/digidisplay/depends.txt b/mods/digidisplay/depends.txt similarity index 100% rename from digidisplay/depends.txt rename to mods/digidisplay/depends.txt diff --git a/digidisplay/init.lua b/mods/digidisplay/init.lua similarity index 100% rename from digidisplay/init.lua rename to mods/digidisplay/init.lua diff --git a/digidisplay/textures/digidisplay_20.png b/mods/digidisplay/textures/digidisplay_20.png similarity index 100% rename from digidisplay/textures/digidisplay_20.png rename to mods/digidisplay/textures/digidisplay_20.png diff --git a/digidisplay/textures/digidisplay_21.png b/mods/digidisplay/textures/digidisplay_21.png similarity index 100% rename from digidisplay/textures/digidisplay_21.png rename to mods/digidisplay/textures/digidisplay_21.png diff --git a/digidisplay/textures/digidisplay_22.png b/mods/digidisplay/textures/digidisplay_22.png similarity index 100% rename from digidisplay/textures/digidisplay_22.png rename to mods/digidisplay/textures/digidisplay_22.png diff --git a/digidisplay/textures/digidisplay_23.png b/mods/digidisplay/textures/digidisplay_23.png similarity index 100% rename from digidisplay/textures/digidisplay_23.png rename to mods/digidisplay/textures/digidisplay_23.png diff --git a/digidisplay/textures/digidisplay_24.png b/mods/digidisplay/textures/digidisplay_24.png similarity index 100% rename from digidisplay/textures/digidisplay_24.png rename to mods/digidisplay/textures/digidisplay_24.png diff --git a/digidisplay/textures/digidisplay_25.png b/mods/digidisplay/textures/digidisplay_25.png similarity index 100% rename from digidisplay/textures/digidisplay_25.png rename to mods/digidisplay/textures/digidisplay_25.png diff --git a/digidisplay/textures/digidisplay_26.png b/mods/digidisplay/textures/digidisplay_26.png similarity index 100% rename from digidisplay/textures/digidisplay_26.png rename to mods/digidisplay/textures/digidisplay_26.png diff --git a/digidisplay/textures/digidisplay_27.png b/mods/digidisplay/textures/digidisplay_27.png similarity index 100% rename from digidisplay/textures/digidisplay_27.png rename to mods/digidisplay/textures/digidisplay_27.png diff --git a/digidisplay/textures/digidisplay_28.png b/mods/digidisplay/textures/digidisplay_28.png similarity index 100% rename from digidisplay/textures/digidisplay_28.png rename to mods/digidisplay/textures/digidisplay_28.png diff --git a/digidisplay/textures/digidisplay_29.png b/mods/digidisplay/textures/digidisplay_29.png similarity index 100% rename from digidisplay/textures/digidisplay_29.png rename to mods/digidisplay/textures/digidisplay_29.png diff --git a/digidisplay/textures/digidisplay_2a.png b/mods/digidisplay/textures/digidisplay_2a.png similarity index 100% rename from digidisplay/textures/digidisplay_2a.png rename to mods/digidisplay/textures/digidisplay_2a.png diff --git a/digidisplay/textures/digidisplay_2b.png b/mods/digidisplay/textures/digidisplay_2b.png similarity index 100% rename from digidisplay/textures/digidisplay_2b.png rename to mods/digidisplay/textures/digidisplay_2b.png diff --git a/digidisplay/textures/digidisplay_2c.png b/mods/digidisplay/textures/digidisplay_2c.png similarity index 100% rename from digidisplay/textures/digidisplay_2c.png rename to mods/digidisplay/textures/digidisplay_2c.png diff --git a/digidisplay/textures/digidisplay_2d.png b/mods/digidisplay/textures/digidisplay_2d.png similarity index 100% rename from digidisplay/textures/digidisplay_2d.png rename to mods/digidisplay/textures/digidisplay_2d.png diff --git a/digidisplay/textures/digidisplay_2e.png b/mods/digidisplay/textures/digidisplay_2e.png similarity index 100% rename from digidisplay/textures/digidisplay_2e.png rename to mods/digidisplay/textures/digidisplay_2e.png diff --git a/digidisplay/textures/digidisplay_2f.png b/mods/digidisplay/textures/digidisplay_2f.png similarity index 100% rename from digidisplay/textures/digidisplay_2f.png rename to mods/digidisplay/textures/digidisplay_2f.png diff --git a/digidisplay/textures/digidisplay_30.png b/mods/digidisplay/textures/digidisplay_30.png similarity index 100% rename from digidisplay/textures/digidisplay_30.png rename to mods/digidisplay/textures/digidisplay_30.png diff --git a/digidisplay/textures/digidisplay_31.png b/mods/digidisplay/textures/digidisplay_31.png similarity index 100% rename from digidisplay/textures/digidisplay_31.png rename to mods/digidisplay/textures/digidisplay_31.png diff --git a/digidisplay/textures/digidisplay_32.png b/mods/digidisplay/textures/digidisplay_32.png similarity index 100% rename from digidisplay/textures/digidisplay_32.png rename to mods/digidisplay/textures/digidisplay_32.png diff --git a/digidisplay/textures/digidisplay_33.png b/mods/digidisplay/textures/digidisplay_33.png similarity index 100% rename from digidisplay/textures/digidisplay_33.png rename to mods/digidisplay/textures/digidisplay_33.png diff --git a/digidisplay/textures/digidisplay_34.png b/mods/digidisplay/textures/digidisplay_34.png similarity index 100% rename from digidisplay/textures/digidisplay_34.png rename to mods/digidisplay/textures/digidisplay_34.png diff --git a/digidisplay/textures/digidisplay_35.png b/mods/digidisplay/textures/digidisplay_35.png similarity index 100% rename from digidisplay/textures/digidisplay_35.png rename to mods/digidisplay/textures/digidisplay_35.png diff --git a/digidisplay/textures/digidisplay_36.png b/mods/digidisplay/textures/digidisplay_36.png similarity index 100% rename from digidisplay/textures/digidisplay_36.png rename to mods/digidisplay/textures/digidisplay_36.png diff --git a/digidisplay/textures/digidisplay_37.png b/mods/digidisplay/textures/digidisplay_37.png similarity index 100% rename from digidisplay/textures/digidisplay_37.png rename to mods/digidisplay/textures/digidisplay_37.png diff --git a/digidisplay/textures/digidisplay_38.png b/mods/digidisplay/textures/digidisplay_38.png similarity index 100% rename from digidisplay/textures/digidisplay_38.png rename to mods/digidisplay/textures/digidisplay_38.png diff --git a/digidisplay/textures/digidisplay_39.png b/mods/digidisplay/textures/digidisplay_39.png similarity index 100% rename from digidisplay/textures/digidisplay_39.png rename to mods/digidisplay/textures/digidisplay_39.png diff --git a/digidisplay/textures/digidisplay_3a.png b/mods/digidisplay/textures/digidisplay_3a.png similarity index 100% rename from digidisplay/textures/digidisplay_3a.png rename to mods/digidisplay/textures/digidisplay_3a.png diff --git a/digidisplay/textures/digidisplay_3b.png b/mods/digidisplay/textures/digidisplay_3b.png similarity index 100% rename from digidisplay/textures/digidisplay_3b.png rename to mods/digidisplay/textures/digidisplay_3b.png diff --git a/digidisplay/textures/digidisplay_3c.png b/mods/digidisplay/textures/digidisplay_3c.png similarity index 100% rename from digidisplay/textures/digidisplay_3c.png rename to mods/digidisplay/textures/digidisplay_3c.png diff --git a/digidisplay/textures/digidisplay_3d.png b/mods/digidisplay/textures/digidisplay_3d.png similarity index 100% rename from digidisplay/textures/digidisplay_3d.png rename to mods/digidisplay/textures/digidisplay_3d.png diff --git a/digidisplay/textures/digidisplay_3e.png b/mods/digidisplay/textures/digidisplay_3e.png similarity index 100% rename from digidisplay/textures/digidisplay_3e.png rename to mods/digidisplay/textures/digidisplay_3e.png diff --git a/digidisplay/textures/digidisplay_3f.png b/mods/digidisplay/textures/digidisplay_3f.png similarity index 100% rename from digidisplay/textures/digidisplay_3f.png rename to mods/digidisplay/textures/digidisplay_3f.png diff --git a/digidisplay/textures/digidisplay_40.png b/mods/digidisplay/textures/digidisplay_40.png similarity index 100% rename from digidisplay/textures/digidisplay_40.png rename to mods/digidisplay/textures/digidisplay_40.png diff --git a/digidisplay/textures/digidisplay_41.png b/mods/digidisplay/textures/digidisplay_41.png similarity index 100% rename from digidisplay/textures/digidisplay_41.png rename to mods/digidisplay/textures/digidisplay_41.png diff --git a/digidisplay/textures/digidisplay_42.png b/mods/digidisplay/textures/digidisplay_42.png similarity index 100% rename from digidisplay/textures/digidisplay_42.png rename to mods/digidisplay/textures/digidisplay_42.png diff --git a/digidisplay/textures/digidisplay_43.png b/mods/digidisplay/textures/digidisplay_43.png similarity index 100% rename from digidisplay/textures/digidisplay_43.png rename to mods/digidisplay/textures/digidisplay_43.png diff --git a/digidisplay/textures/digidisplay_44.png b/mods/digidisplay/textures/digidisplay_44.png similarity index 100% rename from digidisplay/textures/digidisplay_44.png rename to mods/digidisplay/textures/digidisplay_44.png diff --git a/digidisplay/textures/digidisplay_45.png b/mods/digidisplay/textures/digidisplay_45.png similarity index 100% rename from digidisplay/textures/digidisplay_45.png rename to mods/digidisplay/textures/digidisplay_45.png diff --git a/digidisplay/textures/digidisplay_46.png b/mods/digidisplay/textures/digidisplay_46.png similarity index 100% rename from digidisplay/textures/digidisplay_46.png rename to mods/digidisplay/textures/digidisplay_46.png diff --git a/digidisplay/textures/digidisplay_47.png b/mods/digidisplay/textures/digidisplay_47.png similarity index 100% rename from digidisplay/textures/digidisplay_47.png rename to mods/digidisplay/textures/digidisplay_47.png diff --git a/digidisplay/textures/digidisplay_48.png b/mods/digidisplay/textures/digidisplay_48.png similarity index 100% rename from digidisplay/textures/digidisplay_48.png rename to mods/digidisplay/textures/digidisplay_48.png diff --git a/digidisplay/textures/digidisplay_49.png b/mods/digidisplay/textures/digidisplay_49.png similarity index 100% rename from digidisplay/textures/digidisplay_49.png rename to mods/digidisplay/textures/digidisplay_49.png diff --git a/digidisplay/textures/digidisplay_4a.png b/mods/digidisplay/textures/digidisplay_4a.png similarity index 100% rename from digidisplay/textures/digidisplay_4a.png rename to mods/digidisplay/textures/digidisplay_4a.png diff --git a/digidisplay/textures/digidisplay_4b.png b/mods/digidisplay/textures/digidisplay_4b.png similarity index 100% rename from digidisplay/textures/digidisplay_4b.png rename to mods/digidisplay/textures/digidisplay_4b.png diff --git a/digidisplay/textures/digidisplay_4c.png b/mods/digidisplay/textures/digidisplay_4c.png similarity index 100% rename from digidisplay/textures/digidisplay_4c.png rename to mods/digidisplay/textures/digidisplay_4c.png diff --git a/digidisplay/textures/digidisplay_4d.png b/mods/digidisplay/textures/digidisplay_4d.png similarity index 100% rename from digidisplay/textures/digidisplay_4d.png rename to mods/digidisplay/textures/digidisplay_4d.png diff --git a/digidisplay/textures/digidisplay_4e.png b/mods/digidisplay/textures/digidisplay_4e.png similarity index 100% rename from digidisplay/textures/digidisplay_4e.png rename to mods/digidisplay/textures/digidisplay_4e.png diff --git a/digidisplay/textures/digidisplay_4f.png b/mods/digidisplay/textures/digidisplay_4f.png similarity index 100% rename from digidisplay/textures/digidisplay_4f.png rename to mods/digidisplay/textures/digidisplay_4f.png diff --git a/digidisplay/textures/digidisplay_50.png b/mods/digidisplay/textures/digidisplay_50.png similarity index 100% rename from digidisplay/textures/digidisplay_50.png rename to mods/digidisplay/textures/digidisplay_50.png diff --git a/digidisplay/textures/digidisplay_51.png b/mods/digidisplay/textures/digidisplay_51.png similarity index 100% rename from digidisplay/textures/digidisplay_51.png rename to mods/digidisplay/textures/digidisplay_51.png diff --git a/digidisplay/textures/digidisplay_52.png b/mods/digidisplay/textures/digidisplay_52.png similarity index 100% rename from digidisplay/textures/digidisplay_52.png rename to mods/digidisplay/textures/digidisplay_52.png diff --git a/digidisplay/textures/digidisplay_53.png b/mods/digidisplay/textures/digidisplay_53.png similarity index 100% rename from digidisplay/textures/digidisplay_53.png rename to mods/digidisplay/textures/digidisplay_53.png diff --git a/digidisplay/textures/digidisplay_54.png b/mods/digidisplay/textures/digidisplay_54.png similarity index 100% rename from digidisplay/textures/digidisplay_54.png rename to mods/digidisplay/textures/digidisplay_54.png diff --git a/digidisplay/textures/digidisplay_55.png b/mods/digidisplay/textures/digidisplay_55.png similarity index 100% rename from digidisplay/textures/digidisplay_55.png rename to mods/digidisplay/textures/digidisplay_55.png diff --git a/digidisplay/textures/digidisplay_56.png b/mods/digidisplay/textures/digidisplay_56.png similarity index 100% rename from digidisplay/textures/digidisplay_56.png rename to mods/digidisplay/textures/digidisplay_56.png diff --git a/digidisplay/textures/digidisplay_57.png b/mods/digidisplay/textures/digidisplay_57.png similarity index 100% rename from digidisplay/textures/digidisplay_57.png rename to mods/digidisplay/textures/digidisplay_57.png diff --git a/digidisplay/textures/digidisplay_58.png b/mods/digidisplay/textures/digidisplay_58.png similarity index 100% rename from digidisplay/textures/digidisplay_58.png rename to mods/digidisplay/textures/digidisplay_58.png diff --git a/digidisplay/textures/digidisplay_59.png b/mods/digidisplay/textures/digidisplay_59.png similarity index 100% rename from digidisplay/textures/digidisplay_59.png rename to mods/digidisplay/textures/digidisplay_59.png diff --git a/digidisplay/textures/digidisplay_5a.png b/mods/digidisplay/textures/digidisplay_5a.png similarity index 100% rename from digidisplay/textures/digidisplay_5a.png rename to mods/digidisplay/textures/digidisplay_5a.png diff --git a/digidisplay/textures/digidisplay_5b.png b/mods/digidisplay/textures/digidisplay_5b.png similarity index 100% rename from digidisplay/textures/digidisplay_5b.png rename to mods/digidisplay/textures/digidisplay_5b.png diff --git a/digidisplay/textures/digidisplay_5c.png b/mods/digidisplay/textures/digidisplay_5c.png similarity index 100% rename from digidisplay/textures/digidisplay_5c.png rename to mods/digidisplay/textures/digidisplay_5c.png diff --git a/digidisplay/textures/digidisplay_5d.png b/mods/digidisplay/textures/digidisplay_5d.png similarity index 100% rename from digidisplay/textures/digidisplay_5d.png rename to mods/digidisplay/textures/digidisplay_5d.png diff --git a/digidisplay/textures/digidisplay_5e.png b/mods/digidisplay/textures/digidisplay_5e.png similarity index 100% rename from digidisplay/textures/digidisplay_5e.png rename to mods/digidisplay/textures/digidisplay_5e.png diff --git a/digidisplay/textures/digidisplay_5f.png b/mods/digidisplay/textures/digidisplay_5f.png similarity index 100% rename from digidisplay/textures/digidisplay_5f.png rename to mods/digidisplay/textures/digidisplay_5f.png diff --git a/digidisplay/textures/digidisplay_60.png b/mods/digidisplay/textures/digidisplay_60.png similarity index 100% rename from digidisplay/textures/digidisplay_60.png rename to mods/digidisplay/textures/digidisplay_60.png diff --git a/digidisplay/textures/digidisplay_61.png b/mods/digidisplay/textures/digidisplay_61.png similarity index 100% rename from digidisplay/textures/digidisplay_61.png rename to mods/digidisplay/textures/digidisplay_61.png diff --git a/digidisplay/textures/digidisplay_62.png b/mods/digidisplay/textures/digidisplay_62.png similarity index 100% rename from digidisplay/textures/digidisplay_62.png rename to mods/digidisplay/textures/digidisplay_62.png diff --git a/digidisplay/textures/digidisplay_63.png b/mods/digidisplay/textures/digidisplay_63.png similarity index 100% rename from digidisplay/textures/digidisplay_63.png rename to mods/digidisplay/textures/digidisplay_63.png diff --git a/digidisplay/textures/digidisplay_64.png b/mods/digidisplay/textures/digidisplay_64.png similarity index 100% rename from digidisplay/textures/digidisplay_64.png rename to mods/digidisplay/textures/digidisplay_64.png diff --git a/digidisplay/textures/digidisplay_65.png b/mods/digidisplay/textures/digidisplay_65.png similarity index 100% rename from digidisplay/textures/digidisplay_65.png rename to mods/digidisplay/textures/digidisplay_65.png diff --git a/digidisplay/textures/digidisplay_66.png b/mods/digidisplay/textures/digidisplay_66.png similarity index 100% rename from digidisplay/textures/digidisplay_66.png rename to mods/digidisplay/textures/digidisplay_66.png diff --git a/digidisplay/textures/digidisplay_67.png b/mods/digidisplay/textures/digidisplay_67.png similarity index 100% rename from digidisplay/textures/digidisplay_67.png rename to mods/digidisplay/textures/digidisplay_67.png diff --git a/digidisplay/textures/digidisplay_68.png b/mods/digidisplay/textures/digidisplay_68.png similarity index 100% rename from digidisplay/textures/digidisplay_68.png rename to mods/digidisplay/textures/digidisplay_68.png diff --git a/digidisplay/textures/digidisplay_69.png b/mods/digidisplay/textures/digidisplay_69.png similarity index 100% rename from digidisplay/textures/digidisplay_69.png rename to mods/digidisplay/textures/digidisplay_69.png diff --git a/digidisplay/textures/digidisplay_6a.png b/mods/digidisplay/textures/digidisplay_6a.png similarity index 100% rename from digidisplay/textures/digidisplay_6a.png rename to mods/digidisplay/textures/digidisplay_6a.png diff --git a/digidisplay/textures/digidisplay_6b.png b/mods/digidisplay/textures/digidisplay_6b.png similarity index 100% rename from digidisplay/textures/digidisplay_6b.png rename to mods/digidisplay/textures/digidisplay_6b.png diff --git a/digidisplay/textures/digidisplay_6c.png b/mods/digidisplay/textures/digidisplay_6c.png similarity index 100% rename from digidisplay/textures/digidisplay_6c.png rename to mods/digidisplay/textures/digidisplay_6c.png diff --git a/digidisplay/textures/digidisplay_6d.png b/mods/digidisplay/textures/digidisplay_6d.png similarity index 100% rename from digidisplay/textures/digidisplay_6d.png rename to mods/digidisplay/textures/digidisplay_6d.png diff --git a/digidisplay/textures/digidisplay_6e.png b/mods/digidisplay/textures/digidisplay_6e.png similarity index 100% rename from digidisplay/textures/digidisplay_6e.png rename to mods/digidisplay/textures/digidisplay_6e.png diff --git a/digidisplay/textures/digidisplay_6f.png b/mods/digidisplay/textures/digidisplay_6f.png similarity index 100% rename from digidisplay/textures/digidisplay_6f.png rename to mods/digidisplay/textures/digidisplay_6f.png diff --git a/digidisplay/textures/digidisplay_70.png b/mods/digidisplay/textures/digidisplay_70.png similarity index 100% rename from digidisplay/textures/digidisplay_70.png rename to mods/digidisplay/textures/digidisplay_70.png diff --git a/digidisplay/textures/digidisplay_71.png b/mods/digidisplay/textures/digidisplay_71.png similarity index 100% rename from digidisplay/textures/digidisplay_71.png rename to mods/digidisplay/textures/digidisplay_71.png diff --git a/digidisplay/textures/digidisplay_72.png b/mods/digidisplay/textures/digidisplay_72.png similarity index 100% rename from digidisplay/textures/digidisplay_72.png rename to mods/digidisplay/textures/digidisplay_72.png diff --git a/digidisplay/textures/digidisplay_73.png b/mods/digidisplay/textures/digidisplay_73.png similarity index 100% rename from digidisplay/textures/digidisplay_73.png rename to mods/digidisplay/textures/digidisplay_73.png diff --git a/digidisplay/textures/digidisplay_74.png b/mods/digidisplay/textures/digidisplay_74.png similarity index 100% rename from digidisplay/textures/digidisplay_74.png rename to mods/digidisplay/textures/digidisplay_74.png diff --git a/digidisplay/textures/digidisplay_75.png b/mods/digidisplay/textures/digidisplay_75.png similarity index 100% rename from digidisplay/textures/digidisplay_75.png rename to mods/digidisplay/textures/digidisplay_75.png diff --git a/digidisplay/textures/digidisplay_76.png b/mods/digidisplay/textures/digidisplay_76.png similarity index 100% rename from digidisplay/textures/digidisplay_76.png rename to mods/digidisplay/textures/digidisplay_76.png diff --git a/digidisplay/textures/digidisplay_77.png b/mods/digidisplay/textures/digidisplay_77.png similarity index 100% rename from digidisplay/textures/digidisplay_77.png rename to mods/digidisplay/textures/digidisplay_77.png diff --git a/digidisplay/textures/digidisplay_78.png b/mods/digidisplay/textures/digidisplay_78.png similarity index 100% rename from digidisplay/textures/digidisplay_78.png rename to mods/digidisplay/textures/digidisplay_78.png diff --git a/digidisplay/textures/digidisplay_79.png b/mods/digidisplay/textures/digidisplay_79.png similarity index 100% rename from digidisplay/textures/digidisplay_79.png rename to mods/digidisplay/textures/digidisplay_79.png diff --git a/digidisplay/textures/digidisplay_7a.png b/mods/digidisplay/textures/digidisplay_7a.png similarity index 100% rename from digidisplay/textures/digidisplay_7a.png rename to mods/digidisplay/textures/digidisplay_7a.png diff --git a/digidisplay/textures/digidisplay_7b.png b/mods/digidisplay/textures/digidisplay_7b.png similarity index 100% rename from digidisplay/textures/digidisplay_7b.png rename to mods/digidisplay/textures/digidisplay_7b.png diff --git a/digidisplay/textures/digidisplay_7c.png b/mods/digidisplay/textures/digidisplay_7c.png similarity index 100% rename from digidisplay/textures/digidisplay_7c.png rename to mods/digidisplay/textures/digidisplay_7c.png diff --git a/digidisplay/textures/digidisplay_7d.png b/mods/digidisplay/textures/digidisplay_7d.png similarity index 100% rename from digidisplay/textures/digidisplay_7d.png rename to mods/digidisplay/textures/digidisplay_7d.png diff --git a/digidisplay/textures/digidisplay_7e.png b/mods/digidisplay/textures/digidisplay_7e.png similarity index 100% rename from digidisplay/textures/digidisplay_7e.png rename to mods/digidisplay/textures/digidisplay_7e.png diff --git a/digidisplay/textures/digidisplay_bg.png b/mods/digidisplay/textures/digidisplay_bg.png similarity index 100% rename from digidisplay/textures/digidisplay_bg.png rename to mods/digidisplay/textures/digidisplay_bg.png diff --git a/digidisplay/textures/digidisplay_inventory_huge.png b/mods/digidisplay/textures/digidisplay_inventory_huge.png similarity index 100% rename from digidisplay/textures/digidisplay_inventory_huge.png rename to mods/digidisplay/textures/digidisplay_inventory_huge.png diff --git a/digidisplay/textures/digidisplay_inventory_large.png b/mods/digidisplay/textures/digidisplay_inventory_large.png similarity index 100% rename from digidisplay/textures/digidisplay_inventory_large.png rename to mods/digidisplay/textures/digidisplay_inventory_large.png diff --git a/digidisplay/textures/digidisplay_inventory_medium.png b/mods/digidisplay/textures/digidisplay_inventory_medium.png similarity index 100% rename from digidisplay/textures/digidisplay_inventory_medium.png rename to mods/digidisplay/textures/digidisplay_inventory_medium.png diff --git a/digidisplay/textures/digidisplay_inventory_small.png b/mods/digidisplay/textures/digidisplay_inventory_small.png similarity index 100% rename from digidisplay/textures/digidisplay_inventory_small.png rename to mods/digidisplay/textures/digidisplay_inventory_small.png diff --git a/digidisplay/textures/digidisplay_inventory_tiny.png b/mods/digidisplay/textures/digidisplay_inventory_tiny.png similarity index 100% rename from digidisplay/textures/digidisplay_inventory_tiny.png rename to mods/digidisplay/textures/digidisplay_inventory_tiny.png diff --git a/digilines/.luacheckrc b/mods/digilines/.luacheckrc similarity index 100% rename from digilines/.luacheckrc rename to mods/digilines/.luacheckrc diff --git a/digilines/LICENSE.txt b/mods/digilines/LICENSE.txt similarity index 100% rename from digilines/LICENSE.txt rename to mods/digilines/LICENSE.txt diff --git a/digilines/README.inventory b/mods/digilines/README.inventory similarity index 100% rename from digilines/README.inventory rename to mods/digilines/README.inventory diff --git a/digilines/README.md b/mods/digilines/README.md similarity index 100% rename from digilines/README.md rename to mods/digilines/README.md diff --git a/digilines/characters b/mods/digilines/characters similarity index 100% rename from digilines/characters rename to mods/digilines/characters diff --git a/digilines/init.lua b/mods/digilines/init.lua similarity index 100% rename from digilines/init.lua rename to mods/digilines/init.lua diff --git a/digilines/internal.lua b/mods/digilines/internal.lua similarity index 100% rename from digilines/internal.lua rename to mods/digilines/internal.lua diff --git a/digilines/inventory.lua b/mods/digilines/inventory.lua similarity index 100% rename from digilines/inventory.lua rename to mods/digilines/inventory.lua diff --git a/digilines/lcd.lua b/mods/digilines/lcd.lua similarity index 100% rename from digilines/lcd.lua rename to mods/digilines/lcd.lua diff --git a/digilines/lightsensor.lua b/mods/digilines/lightsensor.lua similarity index 100% rename from digilines/lightsensor.lua rename to mods/digilines/lightsensor.lua diff --git a/digilines/mod.conf b/mods/digilines/mod.conf similarity index 100% rename from digilines/mod.conf rename to mods/digilines/mod.conf diff --git a/digilines/presetrules.lua b/mods/digilines/presetrules.lua similarity index 100% rename from digilines/presetrules.lua rename to mods/digilines/presetrules.lua diff --git a/digilines/rtc.lua b/mods/digilines/rtc.lua similarity index 100% rename from digilines/rtc.lua rename to mods/digilines/rtc.lua diff --git a/digilines/screenshot.png b/mods/digilines/screenshot.png similarity index 100% rename from digilines/screenshot.png rename to mods/digilines/screenshot.png diff --git a/digilines/settingtypes.txt b/mods/digilines/settingtypes.txt similarity index 100% rename from digilines/settingtypes.txt rename to mods/digilines/settingtypes.txt diff --git a/digilines/textures/_0.png b/mods/digilines/textures/_0.png similarity index 100% rename from digilines/textures/_0.png rename to mods/digilines/textures/_0.png diff --git a/digilines/textures/_1.png b/mods/digilines/textures/_1.png similarity index 100% rename from digilines/textures/_1.png rename to mods/digilines/textures/_1.png diff --git a/digilines/textures/_2.png b/mods/digilines/textures/_2.png similarity index 100% rename from digilines/textures/_2.png rename to mods/digilines/textures/_2.png diff --git a/digilines/textures/_3.png b/mods/digilines/textures/_3.png similarity index 100% rename from digilines/textures/_3.png rename to mods/digilines/textures/_3.png diff --git a/digilines/textures/_4.png b/mods/digilines/textures/_4.png similarity index 100% rename from digilines/textures/_4.png rename to mods/digilines/textures/_4.png diff --git a/digilines/textures/_5.png b/mods/digilines/textures/_5.png similarity index 100% rename from digilines/textures/_5.png rename to mods/digilines/textures/_5.png diff --git a/digilines/textures/_6.png b/mods/digilines/textures/_6.png similarity index 100% rename from digilines/textures/_6.png rename to mods/digilines/textures/_6.png diff --git a/digilines/textures/_7.png b/mods/digilines/textures/_7.png similarity index 100% rename from digilines/textures/_7.png rename to mods/digilines/textures/_7.png diff --git a/digilines/textures/_8.png b/mods/digilines/textures/_8.png similarity index 100% rename from digilines/textures/_8.png rename to mods/digilines/textures/_8.png diff --git a/digilines/textures/_9.png b/mods/digilines/textures/_9.png similarity index 100% rename from digilines/textures/_9.png rename to mods/digilines/textures/_9.png diff --git a/digilines/textures/_a.png b/mods/digilines/textures/_a.png similarity index 100% rename from digilines/textures/_a.png rename to mods/digilines/textures/_a.png diff --git a/digilines/textures/_a_.png b/mods/digilines/textures/_a_.png similarity index 100% rename from digilines/textures/_a_.png rename to mods/digilines/textures/_a_.png diff --git a/digilines/textures/_am.png b/mods/digilines/textures/_am.png similarity index 100% rename from digilines/textures/_am.png rename to mods/digilines/textures/_am.png diff --git a/digilines/textures/_ap.png b/mods/digilines/textures/_ap.png similarity index 100% rename from digilines/textures/_ap.png rename to mods/digilines/textures/_ap.png diff --git a/digilines/textures/_as.png b/mods/digilines/textures/_as.png similarity index 100% rename from digilines/textures/_as.png rename to mods/digilines/textures/_as.png diff --git a/digilines/textures/_at.png b/mods/digilines/textures/_at.png similarity index 100% rename from digilines/textures/_at.png rename to mods/digilines/textures/_at.png diff --git a/digilines/textures/_b.png b/mods/digilines/textures/_b.png similarity index 100% rename from digilines/textures/_b.png rename to mods/digilines/textures/_b.png diff --git a/digilines/textures/_b_.png b/mods/digilines/textures/_b_.png similarity index 100% rename from digilines/textures/_b_.png rename to mods/digilines/textures/_b_.png diff --git a/digilines/textures/_bl.png b/mods/digilines/textures/_bl.png similarity index 100% rename from digilines/textures/_bl.png rename to mods/digilines/textures/_bl.png diff --git a/digilines/textures/_br.png b/mods/digilines/textures/_br.png similarity index 100% rename from digilines/textures/_br.png rename to mods/digilines/textures/_br.png diff --git a/digilines/textures/_c.png b/mods/digilines/textures/_c.png similarity index 100% rename from digilines/textures/_c.png rename to mods/digilines/textures/_c.png diff --git a/digilines/textures/_c_.png b/mods/digilines/textures/_c_.png similarity index 100% rename from digilines/textures/_c_.png rename to mods/digilines/textures/_c_.png diff --git a/digilines/textures/_ca.png b/mods/digilines/textures/_ca.png similarity index 100% rename from digilines/textures/_ca.png rename to mods/digilines/textures/_ca.png diff --git a/digilines/textures/_cl.png b/mods/digilines/textures/_cl.png similarity index 100% rename from digilines/textures/_cl.png rename to mods/digilines/textures/_cl.png diff --git a/digilines/textures/_cm.png b/mods/digilines/textures/_cm.png similarity index 100% rename from digilines/textures/_cm.png rename to mods/digilines/textures/_cm.png diff --git a/digilines/textures/_co.png b/mods/digilines/textures/_co.png similarity index 100% rename from digilines/textures/_co.png rename to mods/digilines/textures/_co.png diff --git a/digilines/textures/_cr.png b/mods/digilines/textures/_cr.png similarity index 100% rename from digilines/textures/_cr.png rename to mods/digilines/textures/_cr.png diff --git a/digilines/textures/_d.png b/mods/digilines/textures/_d.png similarity index 100% rename from digilines/textures/_d.png rename to mods/digilines/textures/_d.png diff --git a/digilines/textures/_d_.png b/mods/digilines/textures/_d_.png similarity index 100% rename from digilines/textures/_d_.png rename to mods/digilines/textures/_d_.png diff --git a/digilines/textures/_dl.png b/mods/digilines/textures/_dl.png similarity index 100% rename from digilines/textures/_dl.png rename to mods/digilines/textures/_dl.png diff --git a/digilines/textures/_dt.png b/mods/digilines/textures/_dt.png similarity index 100% rename from digilines/textures/_dt.png rename to mods/digilines/textures/_dt.png diff --git a/digilines/textures/_dv.png b/mods/digilines/textures/_dv.png similarity index 100% rename from digilines/textures/_dv.png rename to mods/digilines/textures/_dv.png diff --git a/digilines/textures/_e.png b/mods/digilines/textures/_e.png similarity index 100% rename from digilines/textures/_e.png rename to mods/digilines/textures/_e.png diff --git a/digilines/textures/_e_.png b/mods/digilines/textures/_e_.png similarity index 100% rename from digilines/textures/_e_.png rename to mods/digilines/textures/_e_.png diff --git a/digilines/textures/_eq.png b/mods/digilines/textures/_eq.png similarity index 100% rename from digilines/textures/_eq.png rename to mods/digilines/textures/_eq.png diff --git a/digilines/textures/_ex.png b/mods/digilines/textures/_ex.png similarity index 100% rename from digilines/textures/_ex.png rename to mods/digilines/textures/_ex.png diff --git a/digilines/textures/_f.png b/mods/digilines/textures/_f.png similarity index 100% rename from digilines/textures/_f.png rename to mods/digilines/textures/_f.png diff --git a/digilines/textures/_f_.png b/mods/digilines/textures/_f_.png similarity index 100% rename from digilines/textures/_f_.png rename to mods/digilines/textures/_f_.png diff --git a/digilines/textures/_g.png b/mods/digilines/textures/_g.png similarity index 100% rename from digilines/textures/_g.png rename to mods/digilines/textures/_g.png diff --git a/digilines/textures/_g_.png b/mods/digilines/textures/_g_.png similarity index 100% rename from digilines/textures/_g_.png rename to mods/digilines/textures/_g_.png diff --git a/digilines/textures/_gt.png b/mods/digilines/textures/_gt.png similarity index 100% rename from digilines/textures/_gt.png rename to mods/digilines/textures/_gt.png diff --git a/digilines/textures/_h.png b/mods/digilines/textures/_h.png similarity index 100% rename from digilines/textures/_h.png rename to mods/digilines/textures/_h.png diff --git a/digilines/textures/_h_.png b/mods/digilines/textures/_h_.png similarity index 100% rename from digilines/textures/_h_.png rename to mods/digilines/textures/_h_.png diff --git a/digilines/textures/_ha.png b/mods/digilines/textures/_ha.png similarity index 100% rename from digilines/textures/_ha.png rename to mods/digilines/textures/_ha.png diff --git a/digilines/textures/_hs.png b/mods/digilines/textures/_hs.png similarity index 100% rename from digilines/textures/_hs.png rename to mods/digilines/textures/_hs.png diff --git a/digilines/textures/_i.png b/mods/digilines/textures/_i.png similarity index 100% rename from digilines/textures/_i.png rename to mods/digilines/textures/_i.png diff --git a/digilines/textures/_i_.png b/mods/digilines/textures/_i_.png similarity index 100% rename from digilines/textures/_i_.png rename to mods/digilines/textures/_i_.png diff --git a/digilines/textures/_j.png b/mods/digilines/textures/_j.png similarity index 100% rename from digilines/textures/_j.png rename to mods/digilines/textures/_j.png diff --git a/digilines/textures/_j_.png b/mods/digilines/textures/_j_.png similarity index 100% rename from digilines/textures/_j_.png rename to mods/digilines/textures/_j_.png diff --git a/digilines/textures/_k.png b/mods/digilines/textures/_k.png similarity index 100% rename from digilines/textures/_k.png rename to mods/digilines/textures/_k.png diff --git a/digilines/textures/_k_.png b/mods/digilines/textures/_k_.png similarity index 100% rename from digilines/textures/_k_.png rename to mods/digilines/textures/_k_.png diff --git a/digilines/textures/_l.png b/mods/digilines/textures/_l.png similarity index 100% rename from digilines/textures/_l.png rename to mods/digilines/textures/_l.png diff --git a/digilines/textures/_l_.png b/mods/digilines/textures/_l_.png similarity index 100% rename from digilines/textures/_l_.png rename to mods/digilines/textures/_l_.png diff --git a/digilines/textures/_lt.png b/mods/digilines/textures/_lt.png similarity index 100% rename from digilines/textures/_lt.png rename to mods/digilines/textures/_lt.png diff --git a/digilines/textures/_m.png b/mods/digilines/textures/_m.png similarity index 100% rename from digilines/textures/_m.png rename to mods/digilines/textures/_m.png diff --git a/digilines/textures/_m_.png b/mods/digilines/textures/_m_.png similarity index 100% rename from digilines/textures/_m_.png rename to mods/digilines/textures/_m_.png diff --git a/digilines/textures/_mn.png b/mods/digilines/textures/_mn.png similarity index 100% rename from digilines/textures/_mn.png rename to mods/digilines/textures/_mn.png diff --git a/digilines/textures/_n.png b/mods/digilines/textures/_n.png similarity index 100% rename from digilines/textures/_n.png rename to mods/digilines/textures/_n.png diff --git a/digilines/textures/_n_.png b/mods/digilines/textures/_n_.png similarity index 100% rename from digilines/textures/_n_.png rename to mods/digilines/textures/_n_.png diff --git a/digilines/textures/_o.png b/mods/digilines/textures/_o.png similarity index 100% rename from digilines/textures/_o.png rename to mods/digilines/textures/_o.png diff --git a/digilines/textures/_o_.png b/mods/digilines/textures/_o_.png similarity index 100% rename from digilines/textures/_o_.png rename to mods/digilines/textures/_o_.png diff --git a/digilines/textures/_p.png b/mods/digilines/textures/_p.png similarity index 100% rename from digilines/textures/_p.png rename to mods/digilines/textures/_p.png diff --git a/digilines/textures/_p_.png b/mods/digilines/textures/_p_.png similarity index 100% rename from digilines/textures/_p_.png rename to mods/digilines/textures/_p_.png diff --git a/digilines/textures/_pr.png b/mods/digilines/textures/_pr.png similarity index 100% rename from digilines/textures/_pr.png rename to mods/digilines/textures/_pr.png diff --git a/digilines/textures/_ps.png b/mods/digilines/textures/_ps.png similarity index 100% rename from digilines/textures/_ps.png rename to mods/digilines/textures/_ps.png diff --git a/digilines/textures/_q.png b/mods/digilines/textures/_q.png similarity index 100% rename from digilines/textures/_q.png rename to mods/digilines/textures/_q.png diff --git a/digilines/textures/_q_.png b/mods/digilines/textures/_q_.png similarity index 100% rename from digilines/textures/_q_.png rename to mods/digilines/textures/_q_.png diff --git a/digilines/textures/_qo.png b/mods/digilines/textures/_qo.png similarity index 100% rename from digilines/textures/_qo.png rename to mods/digilines/textures/_qo.png diff --git a/digilines/textures/_qu.png b/mods/digilines/textures/_qu.png similarity index 100% rename from digilines/textures/_qu.png rename to mods/digilines/textures/_qu.png diff --git a/digilines/textures/_r.png b/mods/digilines/textures/_r.png similarity index 100% rename from digilines/textures/_r.png rename to mods/digilines/textures/_r.png diff --git a/digilines/textures/_r_.png b/mods/digilines/textures/_r_.png similarity index 100% rename from digilines/textures/_r_.png rename to mods/digilines/textures/_r_.png diff --git a/digilines/textures/_re.png b/mods/digilines/textures/_re.png similarity index 100% rename from digilines/textures/_re.png rename to mods/digilines/textures/_re.png diff --git a/digilines/textures/_s.png b/mods/digilines/textures/_s.png similarity index 100% rename from digilines/textures/_s.png rename to mods/digilines/textures/_s.png diff --git a/digilines/textures/_s_.png b/mods/digilines/textures/_s_.png similarity index 100% rename from digilines/textures/_s_.png rename to mods/digilines/textures/_s_.png diff --git a/digilines/textures/_sl.png b/mods/digilines/textures/_sl.png similarity index 100% rename from digilines/textures/_sl.png rename to mods/digilines/textures/_sl.png diff --git a/digilines/textures/_sm.png b/mods/digilines/textures/_sm.png similarity index 100% rename from digilines/textures/_sm.png rename to mods/digilines/textures/_sm.png diff --git a/digilines/textures/_sp.png b/mods/digilines/textures/_sp.png similarity index 100% rename from digilines/textures/_sp.png rename to mods/digilines/textures/_sp.png diff --git a/digilines/textures/_sr.png b/mods/digilines/textures/_sr.png similarity index 100% rename from digilines/textures/_sr.png rename to mods/digilines/textures/_sr.png diff --git a/digilines/textures/_t.png b/mods/digilines/textures/_t.png similarity index 100% rename from digilines/textures/_t.png rename to mods/digilines/textures/_t.png diff --git a/digilines/textures/_t_.png b/mods/digilines/textures/_t_.png similarity index 100% rename from digilines/textures/_t_.png rename to mods/digilines/textures/_t_.png diff --git a/digilines/textures/_tl.png b/mods/digilines/textures/_tl.png similarity index 100% rename from digilines/textures/_tl.png rename to mods/digilines/textures/_tl.png diff --git a/digilines/textures/_u.png b/mods/digilines/textures/_u.png similarity index 100% rename from digilines/textures/_u.png rename to mods/digilines/textures/_u.png diff --git a/digilines/textures/_u_.png b/mods/digilines/textures/_u_.png similarity index 100% rename from digilines/textures/_u_.png rename to mods/digilines/textures/_u_.png diff --git a/digilines/textures/_un.png b/mods/digilines/textures/_un.png similarity index 100% rename from digilines/textures/_un.png rename to mods/digilines/textures/_un.png diff --git a/digilines/textures/_v.png b/mods/digilines/textures/_v.png similarity index 100% rename from digilines/textures/_v.png rename to mods/digilines/textures/_v.png diff --git a/digilines/textures/_v_.png b/mods/digilines/textures/_v_.png similarity index 100% rename from digilines/textures/_v_.png rename to mods/digilines/textures/_v_.png diff --git a/digilines/textures/_vb.png b/mods/digilines/textures/_vb.png similarity index 100% rename from digilines/textures/_vb.png rename to mods/digilines/textures/_vb.png diff --git a/digilines/textures/_w.png b/mods/digilines/textures/_w.png similarity index 100% rename from digilines/textures/_w.png rename to mods/digilines/textures/_w.png diff --git a/digilines/textures/_w_.png b/mods/digilines/textures/_w_.png similarity index 100% rename from digilines/textures/_w_.png rename to mods/digilines/textures/_w_.png diff --git a/digilines/textures/_x.png b/mods/digilines/textures/_x.png similarity index 100% rename from digilines/textures/_x.png rename to mods/digilines/textures/_x.png diff --git a/digilines/textures/_x_.png b/mods/digilines/textures/_x_.png similarity index 100% rename from digilines/textures/_x_.png rename to mods/digilines/textures/_x_.png diff --git a/digilines/textures/_y.png b/mods/digilines/textures/_y.png similarity index 100% rename from digilines/textures/_y.png rename to mods/digilines/textures/_y.png diff --git a/digilines/textures/_y_.png b/mods/digilines/textures/_y_.png similarity index 100% rename from digilines/textures/_y_.png rename to mods/digilines/textures/_y_.png diff --git a/digilines/textures/_z.png b/mods/digilines/textures/_z.png similarity index 100% rename from digilines/textures/_z.png rename to mods/digilines/textures/_z.png diff --git a/digilines/textures/_z_.png b/mods/digilines/textures/_z_.png similarity index 100% rename from digilines/textures/_z_.png rename to mods/digilines/textures/_z_.png diff --git a/digilines/textures/digiline_std.png b/mods/digilines/textures/digiline_std.png similarity index 100% rename from digilines/textures/digiline_std.png rename to mods/digilines/textures/digiline_std.png diff --git a/digilines/textures/digiline_std_bump.png b/mods/digilines/textures/digiline_std_bump.png similarity index 100% rename from digilines/textures/digiline_std_bump.png rename to mods/digilines/textures/digiline_std_bump.png diff --git a/digilines/textures/digiline_std_inv.png b/mods/digilines/textures/digiline_std_inv.png similarity index 100% rename from digilines/textures/digiline_std_inv.png rename to mods/digilines/textures/digiline_std_inv.png diff --git a/digilines/textures/digiline_std_vertical.png b/mods/digilines/textures/digiline_std_vertical.png similarity index 100% rename from digilines/textures/digiline_std_vertical.png rename to mods/digilines/textures/digiline_std_vertical.png diff --git a/digilines/textures/digilines_lightsensor.png b/mods/digilines/textures/digilines_lightsensor.png similarity index 100% rename from digilines/textures/digilines_lightsensor.png rename to mods/digilines/textures/digilines_lightsensor.png diff --git a/digilines/textures/digilines_rtc.png b/mods/digilines/textures/digilines_rtc.png similarity index 100% rename from digilines/textures/digilines_rtc.png rename to mods/digilines/textures/digilines_rtc.png diff --git a/digilines/textures/lcd_anyside.png b/mods/digilines/textures/lcd_anyside.png similarity index 100% rename from digilines/textures/lcd_anyside.png rename to mods/digilines/textures/lcd_anyside.png diff --git a/digilines/textures/lcd_lcd.png b/mods/digilines/textures/lcd_lcd.png similarity index 100% rename from digilines/textures/lcd_lcd.png rename to mods/digilines/textures/lcd_lcd.png diff --git a/digilines/util.lua b/mods/digilines/util.lua similarity index 100% rename from digilines/util.lua rename to mods/digilines/util.lua diff --git a/digilines/wire_std.lua b/mods/digilines/wire_std.lua similarity index 100% rename from digilines/wire_std.lua rename to mods/digilines/wire_std.lua diff --git a/digilines/wires_common.lua b/mods/digilines/wires_common.lua similarity index 100% rename from digilines/wires_common.lua rename to mods/digilines/wires_common.lua diff --git a/mods/digistuff/README b/mods/digistuff/README new file mode 100644 index 00000000..2b8a069b --- /dev/null +++ b/mods/digistuff/README @@ -0,0 +1,16 @@ +Digilines Stuff +=============== + + +License: +Code - LGPL v3 or later (contains some code from mesecons and digilines) +Textures WITHOUT "adwaita" in the file name - CC BY-SA 3.0 Generic (contains modified versions of textures from mesecons and digilines) +Textures WITH "adwaita" in the file name - These are icons by the GNOME Project, licensed under GNU LGPL v3 or CC BY-SA 3.0. + + +Depends: +Required: digilines (base only) and mesecons (base only) +Optional: mesecons_noteblock (for digilines noteblock), mesecons_mvps (for digilines piston and movestone), mesecons_luacontroller (for I/O expander) +Only needed for craft recipes: default, basic_materials + +Please see the 'docs' directory for information on using each individual component. diff --git a/digistuff/camera.lua b/mods/digistuff/camera.lua similarity index 100% rename from digistuff/camera.lua rename to mods/digistuff/camera.lua diff --git a/digistuff/cardreader.lua b/mods/digistuff/cardreader.lua similarity index 100% rename from digistuff/cardreader.lua rename to mods/digistuff/cardreader.lua diff --git a/digistuff/channelcopier.lua b/mods/digistuff/channelcopier.lua similarity index 100% rename from digistuff/channelcopier.lua rename to mods/digistuff/channelcopier.lua diff --git a/digistuff/conductors.lua b/mods/digistuff/conductors.lua similarity index 100% rename from digistuff/conductors.lua rename to mods/digistuff/conductors.lua diff --git a/mods/digistuff/controller.lua b/mods/digistuff/controller.lua new file mode 100644 index 00000000..f0fbceda --- /dev/null +++ b/mods/digistuff/controller.lua @@ -0,0 +1,253 @@ +local digiline_rules = { + {x = 1,y = 0,z = 0}, + {x = -1,y = 0,z = 0}, + {x = 0,y = 0,z = 1}, + {x = 0,y = 0,z = -1}, + {x = 0,y = -1,z = 0}, + {x = 1,y = -1,z = 0}, + {x = -1,y = -1,z = 0}, + {x = 0,y = -1,z = 1}, + {x = 0,y = -1,z = -1}, +} + +local players_on_controller = {} + +local last_seen_inputs = {} + +local function removeEntity(pos) + local entitiesNearby = minetest.get_objects_inside_radius(pos,0.5) + for _,i in pairs(entitiesNearby) do + if i:get_luaentity() and i:get_luaentity().name == "digistuff:controller_entity" then + i:remove() + end + end +end + +local function process_inputs(pos) + local meta = minetest.get_meta(pos) + local hash = minetest.hash_node_position(pos) + if minetest.get_node(pos).name ~= "digistuff:controller_programmed" then + local player = minetest.get_player_by_name(players_on_controller[hash]) + if player then + player:set_physics_override({speed = 1,jump = 1,}) + player:set_pos(vector.add(pos,vector.new(0.25,0,0.25))) + minetest.chat_send_player(players_on_controller[hash],"You are now free to move.") + end + last_seen_inputs[players_on_controller[hash]] = nil + players_on_controller[hash] = nil + return + end + local name = players_on_controller[hash] + local player = minetest.get_player_by_name(name) + if not player then + digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") + minetest.get_meta(pos):set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") + players_on_controller[hash] = nil + return + end + local inputs = player:get_player_control() + inputs.pitch = player:get_look_vertical() + inputs.yaw = player:get_look_horizontal() + local send_needed = false + if not last_seen_inputs[name] then + send_needed = true + else + for k,v in pairs(inputs) do + if v ~= last_seen_inputs[name][k] then + send_needed = true + break + end + end + end + last_seen_inputs[name] = inputs + if send_needed then + local channel = meta:get_string("channel") + local inputs = table.copy(inputs) + inputs.look_vector = player:get_look_dir() + inputs.name = name + digiline:receptor_send(pos,digiline_rules,channel,inputs) + end +end + +local function release_player(pos) + local hash = minetest.hash_node_position(pos) + local player = minetest.get_player_by_name(players_on_controller[hash]) + if player and player:get_properties()._is_gamecontroller then + local parent = player:get_attach() + print(dump(parent:get_properties())) + if parent then + player:set_detach() + end + minetest.chat_send_player(players_on_controller[hash],"You are now free to move.") + end + removeEntity(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") + last_seen_inputs[players_on_controller[hash]] = nil + players_on_controller[hash] = nil + digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") +end + +local function trap_player(pos,player) + local hash = minetest.hash_node_position(pos) + local oldname = players_on_controller[hash] + local newname = player:get_player_name() + if oldname and minetest.get_player_by_name(oldname) then + minetest.chat_send_player(player:get_player_name(),"Controller is already occupied by "..oldname) + return + else + players_on_controller[hash] = newname + local entity = minetest.add_entity(pos,"digistuff:controller_entity") + player:set_attach(entity,"",vector.new(0,0,0),vector.new(0,0,0)) + minetest.chat_send_player(newname,"You are now using a digilines game controller. Right-click the controller again to be released.") + local meta = minetest.get_meta(pos) + meta:set_string("infotext","Digilines Game Controller\nIn use by: "..newname) + process_inputs(pos) + end +end + +local function toggle_trap_player(pos,player) + if players_on_controller[minetest.hash_node_position(pos)] then + release_player(pos) + else + trap_player(pos,player) + end +end + +minetest.register_node("digistuff:controller", { + description = "Digilines Game Controller", + tiles = { + "digistuff_controller_top.png", + "digistuff_controller_sides.png", + }, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.5,-0.45,0.5}, + } + }, + _digistuff_channelcopier_fieldname = "channel", + _digistuff_channelcopier_onset = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec","") + meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") + minetest.swap_node(pos,{name = "digistuff:controller_programmed",}) + end, + groups = {cracky = 1,}, + is_ground_content = false, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec","field[channel;Channel;${channel}") + end, + on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + if fields.channel then + meta:set_string("channel",fields.channel) + meta:set_string("formspec","") + meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") + minetest.swap_node(pos,{name = "digistuff:controller_programmed",}) + end + end, + digiline = { + receptor = {}, + wire = { + rules = digiline_rules, + }, + }, +}) + +minetest.register_node("digistuff:controller_programmed", { + description = "Digilines Game Controller (programmed state - you hacker you!)", + drop = "digistuff:controller", + tiles = { + "digistuff_controller_top.png", + "digistuff_controller_sides.png", + }, + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5,-0.5,-0.5,0.5,-0.45,0.5}, + } + }, + _digistuff_channelcopier_fieldname = "channel", + groups = {cracky = 1,not_in_creative_inventory = 1,}, + is_ground_content = false, + on_rightclick = function(pos,_,clicker) + if clicker and clicker:get_player_name() then + toggle_trap_player(pos,clicker) + end + end, + _digistuff_channelcopier_fieldname = "channel", + digiline = { + receptor = {}, + wire = { + rules = digiline_rules, + }, + effector = { + action = function(pos,node,channel,msg) + local setchannel = minetest.get_meta(pos):get_string("channel") + if channel ~= setchannel then return end + if msg == "release" then + local hash = minetest.hash_node_position(pos) + if players_on_controller[hash] then + release_player(pos) + end + end + end, + }, + }, +}) + +minetest.register_entity("digistuff:controller_entity",{ + initial_properties = { + visual = "sprite", + physical = false, + collisionbox = {0,0,0,0,0,0,}, + textures = {"digistuff_transparent.png",}, + _is_gamecontroller = true, + }, +}) + +local acc_dtime = 0 + +minetest.register_globalstep(function(dtime) + acc_dtime = acc_dtime + dtime + if acc_dtime < 0.2 then return end + acc_dtime = 0 + for hash in pairs(players_on_controller) do + local pos = minetest.get_position_from_hash(hash) + process_inputs(pos) + end +end) + +minetest.register_lbm({ + name = "digistuff:reset_controllers", + label = "Reset game controllers to idle", + nodenames = {"digistuff:controller_programmed"}, + run_at_every_load = true, + action = function(pos) + if not players_on_controller[minetest.hash_node_position(pos)] then + local meta = minetest.get_meta(pos) + digiline:receptor_send(pos,digiline_rules,meta:get_string("channel"),"player_left") + meta:set_string("infotext","Digilines Game Controller Ready\n(right-click to use)") + end + end, +}) + +minetest.register_craft({ + output = "digistuff:controller", + recipe = { + {"","digistuff:button","",}, + {"digistuff:button","group:wool","digistuff:button",}, + {"","digistuff:button","",}, + }, +}) diff --git a/digistuff/detector.lua b/mods/digistuff/detector.lua similarity index 100% rename from digistuff/detector.lua rename to mods/digistuff/detector.lua diff --git a/mods/digistuff/docs/button.txt b/mods/digistuff/docs/button.txt new file mode 100644 index 00000000..38cc340d --- /dev/null +++ b/mods/digistuff/docs/button.txt @@ -0,0 +1,6 @@ +How to use digilines buttons: +Connect to a digiline (or digimese), right-click, and set a channel and message. +When the button is pressed (right-click), it will send that message on that channel, over digilines. +If the "Protected" checkbox is checked, only players allowed to interact in the area can push the button. +If the "Manual Light Control" checkbox is checked, the light will not illuminate automatically when the button is pushed - use the "light_on" and "light_off" commands to control it. +Note that the settings cannot be changed after setting - you must dig and re-place the button to do so. diff --git a/mods/digistuff/docs/camera.txt b/mods/digistuff/docs/camera.txt new file mode 100644 index 00000000..7619c24e --- /dev/null +++ b/mods/digistuff/docs/camera.txt @@ -0,0 +1,3 @@ +How to use the camera: +Set the channel, distance, and radius. The camera will search for a node "distance" meters away and up to 10m down. +Every second while a player is within "radius" meters of that point, a table listing the players in range will be sent via digilines on the chosen channel. diff --git a/mods/digistuff/docs/cardreader.txt b/mods/digistuff/docs/cardreader.txt new file mode 100644 index 00000000..34508566 --- /dev/null +++ b/mods/digistuff/docs/cardreader.txt @@ -0,0 +1,8 @@ +How to use the card reader: +After setting a channel, swiping a card (punch the reader with the card to swipe) will send a message in the following format: + {event = "read",data = "The data that was on the card"} +To write a card, send a command in the following format: + {command = "write",data = "The data to put on the card",description = "A description of what the card is for"} +After sending the write command, swipe the card to be written and the reader will send back the following message: + {event = "write"} +Both blank and previously written cards can be written to. If the card was not blank, it will be overwritten. diff --git a/mods/digistuff/docs/conductors.txt b/mods/digistuff/docs/conductors.txt new file mode 100644 index 00000000..f086622e --- /dev/null +++ b/mods/digistuff/docs/conductors.txt @@ -0,0 +1,12 @@ +How to use digimese: +It conducts digilines signals (like digilines) in all directions (like mese). That's about it, really. + + +How to use vertical/insulated digilines: +These work exactly like the mesecons equivalents, that is: +Vertical digilines will automatically connect to other vertical digilines directly above or below them, and form "plates" on each end of the stack. Signals can only be conducted into or out of the stack at these "plates". +Insulated digilines conduct like regular digilines, but only into/out of the ends of the "wire" or at locations where an intermediate connection has been placed. + +How to use the junction box: +These are just plain digilines conductors (like digimese) but can skip over one node to another junction box or certain other nodes. +As in, [digiline][junction box][dirt][junction box][digiline] will work to transmit signals "through" the dirt. diff --git a/mods/digistuff/docs/controlpanel.txt b/mods/digistuff/docs/controlpanel.txt new file mode 100644 index 00000000..9966f7bc --- /dev/null +++ b/mods/digistuff/docs/controlpanel.txt @@ -0,0 +1,2 @@ +How to use the digilines control panel: +Once a channel is set, any messages sent on that channel will be shown on the "LCD". The buttons, when pressed, send the messages "up", "down", "left", "right", "back", and "enter" on the same channel. If the panel is placed in a protected area (all standard protection mods are supported), only the owner of the area (and players with the protection_bypass privilege) can set the channel. There is also a "lock" function in the bottom-right of the "LCD" area. Click the padlock icon to lock/unlock it. If locked, only the owner of the area is allowed to use the buttons. If unlocked, anyone can use the buttons, although channel setting and (for reasons that shuld be obvious) locking/unlocking is still limited to the area owner and players with protection_bypass. diff --git a/mods/digistuff/docs/detector.txt b/mods/digistuff/docs/detector.txt new file mode 100644 index 00000000..7941093e --- /dev/null +++ b/mods/digistuff/docs/detector.txt @@ -0,0 +1,3 @@ +How to use the digilines player detector: +Set a channel and radius (radius must be a number >0 and <10 - anything invalid will be ignored and "6" used instead). +Every second while a player is within the radius, a table listing the players in range will be sent via digilines on the chosen channel. diff --git a/mods/digistuff/docs/dimmable-light.txt b/mods/digistuff/docs/dimmable-light.txt new file mode 100644 index 00000000..f721a48f --- /dev/null +++ b/mods/digistuff/docs/dimmable-light.txt @@ -0,0 +1,2 @@ +How to use the dimmable lights: +After setting the channel, send a number from 0 to 14 to set the light level. diff --git a/mods/digistuff/docs/expander.txt b/mods/digistuff/docs/expander.txt new file mode 100644 index 00000000..826fac15 --- /dev/null +++ b/mods/digistuff/docs/expander.txt @@ -0,0 +1,3 @@ +How to use the I/O expander: +After setting a channel, send a table (same format as a Luacontroller's "port" table) to set the output states. +A table in this same format will be sent back whenever an input changes or you manually poll it by sending a "GET" message. diff --git a/mods/digistuff/docs/game-controller.txt b/mods/digistuff/docs/game-controller.txt new file mode 100644 index 00000000..7e2e3788 --- /dev/null +++ b/mods/digistuff/docs/game-controller.txt @@ -0,0 +1,8 @@ +How to use the game controller: +After setting a channel, right-click the controller to start/stop using it. +While using a controller, it will send a table with the control inputs, pitch, yaw, look vector, and name of the player using the controller each time one of these values changes, up to 5 times per second. +When a player leaves a controller, the string "player_left" is sent. +In addition to right-clicking the controller in use to stop using it, the following will also cause a player to stop using the controller: +* The controller is moved or removed +* The player leaves the game +* The controller receives the string "release" on its digilines channel diff --git a/mods/digistuff/docs/gpu.txt b/mods/digistuff/docs/gpu.txt new file mode 100644 index 00000000..80427ada --- /dev/null +++ b/mods/digistuff/docs/gpu.txt @@ -0,0 +1,135 @@ +Digilines 2D Graphics Processor +=============================== + +Commands for this part are in the form of a table, consisting of a field called "command" with the command to be executed, and other fields supplying parameters to the command. +Example: + {command="send",buffer=0,channel="example"} + +Up to 32 commands may be sent at once by placing all of the tables into one. +Example: + { + {command="createbuffer",buffer=0,xsize=16,ysize=16,color="aaaaaa"}, + {command="send",buffer=0,channel="example"} + } + +Invalid commands or commands with missing/invalid parameters will be ignored. + +Command: createbuffer +--------------------- + +Creates a new buffer. Up to 8 buffers may exist at one time, and each can be up to 64x64 pixels in size. + +Parameters: +buffer [integer 0-7]: The slot number to create the new buffer in. If the slot is already occupied, the existing contents will be erased. +xsize [integer 1-64]: The width of the new buffer in pixels. +ysize [integer 1-64]: The height of the new buffer in pixels. +color [hex color, default "000000"]: A color to fill the new buffer with. + +Command: send +------------- + +Sends the contents of a buffer to a digiscreen, rgblightstone panel, or other digilines device. + +Parameters: +buffer [integer 0-7]: The buffer to send the contents of. +channel [string]: The digilines channel to send the message on. + +Command: sendregion +------------------- + +Sends part of the contents of a buffer to a digiscreen, rgblightstone panel, or other digilines device. + +Parameters: +buffer [integer 0-7]: The buffer to send part of the contents of. +channel [string]: The digilines channel to send the message on. +x1 [integer 1-64]: The X position of the left side of the region to send. +x2 [integer 1-64]: The X position of the right side of the region to send. +y1 [integer 1-64]: The Y position of the top side of the region to send. +y2 [integer 1-64]: The Y position of the bottom side of the region to send. + +Command: drawrect +----------------- + +Draws a rectangle with optional border on a buffer. + +Parameters: +buffer [integer 0-7]: The buffer to draw the rectangle on. +x1 [integer 1-64]: The X position of the left side of the rectangle. +x2 [integer 1-64]: The X position of the right side of the rectangle. +y1 [integer 1-64]: The Y position of the top side of the rectangle. +y2 [integer 1-64]: The Y position of the bottom side of the rectangle. +fill [hex color, default "000000"]: The color of the rectangle. +edge [hex color, default same as fill]: The color of the outside edge of the rectangle. + +Command: drawpoint +------------------ + +Draws a point on a buffer. +This command is intended for use when writing a single pixel at a time. +For writing large blocks at one time, it is recommended to use the "load" command instead. + +Parameters: +buffer [integer 0-7]: The buffer to draw the point on. +x [integer 1-64]: The X position of the point. +y [integer 1-64]: The Y position of the point. +color [hex color, default "000000"]: The color of the point. + +Command: copy +------------- + +Perform a BitBLT operation (such as copying one buffer to another). + +Parameters: +src [integer 0-7]: The buffer to copy from. +dst [integer 0-7]: The buffer to copy to. May be the same or different from "src". +srcx [integer 1-64]: The X position of the left side of the region to copy from. +srcy [integer 1-64]: The Y position of the top side of the region to copy from. +dstx [integer 1-64]: The X position of the left side of the region to copy to. +dsty [integer 1-64]: The Y position of the top side of the region to copy to. +xsize [integer 1-64]: The width of the region to copy. +ysize [integer 1-64]: The height of the region to copy. +mode [string from list below, default "normal"]: The blend mode to use for the copy operation. +transparent [hex color, default "000000"]: The color to treat as transparency when using the "overlay" blend mode. No effect in other modes. + +Blend modes: +normal: Copy the source to the destination, overwriting the destination. +nop: Do nothing. +overlay: Same as normal, but skip pixels in the source matching the "transparent" color. +add: For each subpixel (red, green, blue) add the source values to the destination and write the sum to the destination. +sub: For each subpixel (red, green, blue) subtract the source values from the destination and write the difference to the destination. +isub: For each subpixel (red, green, blue) subtract the destination values from the source and write the difference to the destination. +average: For each subpixel (red, green, blue) calculate the average of the source and destination and write the average to the destination. +and: Perform a bitwise AND of the source and destination and write the result to the destination. +or: Perform a bitwise OR of the source and destination and write the result to the destination. +nand: Perform a bitwise NAND of the source and destination and write the result to the destination. +nor: Perform a bitwise NOR of the source and destination and write the result to the destination. +xor: Perform a bitwise XOR of the source and destination and write the result to the destination. +xnor: Perform a bitwise XNOR of the source and destination and write the result to the destination. +not: Perform a bitwise NOT of the source and write the result to the destination. +rgbtohsv: Convert the source from the RGB color system to the HSV color system and write the result to the destination, storing hue as "red", saturation as "green", and value as "blue". +hsvtorgb: Convert the source from the HSV color system to the RGB color system, reading hue from the red channel, saturation from the green channel, and value from the blue channel, and write the result to the destination. + +Command: load +------------- + +Transfer a bitmap image into a buffer. +The width and height of the image will be automatically determined from the data given. + +Parameters: +buffer [integer 0-7]: The buffer to write the image into. +x [integer 1-64]: The X position of the left side of the image. +y [integer 1-64]: The Y position of the top side of the image. +data [2D array of hex color values, default for each is transparency]: The bitmap image to write. + +Command: text +------------- + +Draw one or more text characters on a buffer. +The font being used is 5*12 pixels in size, with one pixel spacing between characters. + +Parameters: +buffer [integer 0-7]: The buffer to draw the text on. +x [integer 1-64]: The X position of the left side of the text. +y [integer 1-64]: The Y position of the right side of the text. +color [hex color, default "ff6600"]: The color of the text. +text: The text string to draw. diff --git a/mods/digistuff/docs/memory.txt b/mods/digistuff/docs/memory.txt new file mode 100644 index 00000000..8463c201 --- /dev/null +++ b/mods/digistuff/docs/memory.txt @@ -0,0 +1,7 @@ +How to use the RAM and EEPROM chips: +First, set a channel. +Messages should consist of a table, with "command" set to either "read" or "write". "address" should be set to the number (0-31) of the 512-character block to read or write, and if writing then "data" should contain the data to write. +Example (to write - reading is similar, but with no data): + {command = "write",address = 7,data = "9a91a9e451b94dc262972557ab0d406f"} + +The RAM and EEPROM chips behave identically, except that the RAM chip loses its contents when dug whereas the EEPROM does not. diff --git a/mods/digistuff/docs/movestone.txt b/mods/digistuff/docs/movestone.txt new file mode 100644 index 00000000..977e9ed4 --- /dev/null +++ b/mods/digistuff/docs/movestone.txt @@ -0,0 +1,16 @@ +How to use the digilines movestone: +Commands for this node are in the form of a table, with the field "command" set to the desired action, and other fields providing parameters. +The commands are as follows: +* "getstate": Returns a table containing the following elements: "targetpos" (table representing the target position), "pos" (table representing the current position), and "moveaxis" (the current axis being moved along, nil if not moving) +* "absmove": Moves to the absolute position specified by "x" "y" and "z". No axis can move more than 50m as a result of one command. If movements along more than one axis are needed, they are processed in alphabetical order (X,Y,Z). +* "relmove": Same as absmove, but relative to the current position (for example, y=1 moves up 1m, not *to* Y=1) +The available parameters for absmove and relmove are: +* x: Target X position (for absmove) or target change in X position (for relmove) +* y: Same, but for Y +* z: Same, but for Z +* sticky: Whether to pull nodes along behind the movestone +* allsticky: Whether to pull a full stack of nodes like normal movestone (true) or just one like a sticky piston (false) +* maxstack: The maximum number of nodes to push/pull, with the movestone itself counting as 1. Cannot be set higher than 50. +* sound: "mesecons" to have the mesecons movestone sound play or "none" for no sound at all +If any of x/y/z are omitted, then they default to the current position (for absmove) or 0 (for relmove). +If any of maxstack/sticky/allsticky/sound are omitted, they default to the values last used. diff --git a/mods/digistuff/docs/nic.txt b/mods/digistuff/docs/nic.txt new file mode 100644 index 00000000..1bb9f7eb --- /dev/null +++ b/mods/digistuff/docs/nic.txt @@ -0,0 +1,2 @@ +How to use the NIC: +Send a digilines signal with the URL you want to download. The HTTPRequestResult table will be sent back on the same channel. diff --git a/mods/digistuff/docs/piston.txt b/mods/digistuff/docs/piston.txt new file mode 100644 index 00000000..0ac9e222 --- /dev/null +++ b/mods/digistuff/docs/piston.txt @@ -0,0 +1,7 @@ +How to use the digilines pistons: +The following commands are accepted as strings: "extend" (extend the piston), "retract" (retract the piston), and "retract_sticky" (retract the piston, pulling one node like a sticky piston) +You can also send a command as a table. If so, the fields that can be used in the table are as follows: +* action: "extend" or "retract" +* max: The maximum number of nodes to push/pull, cannot be set higher than 16. Set to 0 (or omit) when retracting to perform a non-sticky retraction. +* allsticky: Pull a whole stack of nodes (like movestone), not just one. +* sound: The sound to make. "mesecons" for the mesecons piston sounds, "digilines" for the digilines piston sounds (default), or "none" for no sounds at all. diff --git a/mods/digistuff/docs/timer.txt b/mods/digistuff/docs/timer.txt new file mode 100644 index 00000000..70a380b0 --- /dev/null +++ b/mods/digistuff/docs/timer.txt @@ -0,0 +1,2 @@ +How to use the timer: +Send a number representing a time in seconds, from 0.5 to 3600. When the time expires, the timer will send "done" back on the same channel. If the loop feature is enabled (use the commands "loop_on" and "loop_off" to set this) the timer will automatically be set for the same time again each time it expires. diff --git a/mods/digistuff/docs/wallknob.txt b/mods/digistuff/docs/wallknob.txt new file mode 100644 index 00000000..0e64bb62 --- /dev/null +++ b/mods/digistuff/docs/wallknob.txt @@ -0,0 +1,5 @@ +How to use the wall knob: +Connect to a digiline, right-click, and set the channel and the minimum and maximum values. +Left-click to decrease the current setting or right-click to increase it. If the "protected" checkbox was checked, then only players allowed to interact in the area can do this. +Each time the setting is changed, the new setting is sent on the selected channel. +Note that the settings cannot be changed after setting - you must dig and re-place the knob to do so. diff --git a/digistuff/gpu-font.lua b/mods/digistuff/gpu-font.lua similarity index 100% rename from digistuff/gpu-font.lua rename to mods/digistuff/gpu-font.lua diff --git a/mods/digistuff/gpu.lua b/mods/digistuff/gpu.lua new file mode 100644 index 00000000..9529002a --- /dev/null +++ b/mods/digistuff/gpu.lua @@ -0,0 +1,458 @@ +local font = dofile(minetest.get_modpath("digistuff")..DIR_DELIM.."gpu-font.lua") + +local function explodebits(input) + local output = {} + for i=0,7,1 do + output[i] = input%(2^(i+1)) >= 2^i + end + return output +end + +local function implodebits(input) + local output = 0 + for i=0,7,1 do + output = output + (input[i] and 2^i or 0) + end + return output +end + +local function rgbtohsv(r,g,b) + r = r/255 + g = g/255 + b = b/255 + max = math.max(r,g,b) + min = math.min(r,g,b) + delta = max-min + local hue = 0 + if delta > 0 then + if max == r then + hue = (g-b)/delta + hue = (hue%6)*60 + elseif max == g then + hue = (b-r)/delta + hue = 60*(hue+2) + elseif max == b then + hue = (r-g)/delta + hue = 60*(hue+4) + end + hue = hue/360 + end + local sat = 0 + if max > 0 then + sat = delta/max + end + return math.floor(hue*255),math.floor(sat*255),math.floor(max*255) +end + +local function hsvtorgb(h,s,v) + h = h/255*360 + s = s/255 + v = v/255 + local c = s*v + local x = (h/60)%2 + x = 1-math.abs(x-1) + x = x*c + local m = v-c + local r = 0 + local g = 0 + local b = 0 + if h < 60 then + r = c + g = x + elseif h < 120 then + r = x + g = c + elseif h < 180 then + g = c + b = x + elseif h < 240 then + g = x + b = c + elseif h < 300 then + r = x + b = c + else + r = c + b = x + end + r = r+m + g = g+m + b = b+m + return math.floor(r*255),math.floor(g*255),math.floor(b*255) +end + +local function bitwiseblend(srcr,dstr,srcg,dstg,srcb,dstb,mode) + local srbits = explodebits(srcr) + local sgbits = explodebits(srcg) + local sbbits = explodebits(srcb) + local drbits = explodebits(dstr) + local dgbits = explodebits(dstg) + local dbbits = explodebits(dstb) + for i=0,7,1 do + if mode == "and" then + drbits[i] = srbits[i] and drbits[i] + dgbits[i] = sgbits[i] and dgbits[i] + dbbits[i] = sbbits[i] and dbbits[i] + elseif mode == "or" then + drbits[i] = srbits[i] or drbits[i] + dgbits[i] = sgbits[i] or dgbits[i] + dbbits[i] = sbbits[i] or dbbits[i] + elseif mode == "xor" then + drbits[i] = srbits[i] ~= drbits[i] + dgbits[i] = sgbits[i] ~= dgbits[i] + dbbits[i] = sbbits[i] ~= dbbits[i] + elseif mode == "xnor" then + drbits[i] = srbits[i] == drbits[i] + dgbits[i] = sgbits[i] == dgbits[i] + dbbits[i] = sbbits[i] == dbbits[i] + elseif mode == "not" then + drbits[i] = not srbits[i] + dgbits[i] = not sgbits[i] + dbbits[i] = not sbbits[i] + elseif mode == "nand" then + drbits[i] = not (srbits[i] and drbits[i]) + dgbits[i] = not (sgbits[i] and dgbits[i]) + dbbits[i] = not (sbbits[i] and dbbits[i]) + elseif mode == "nor" then + drbits[i] = not (srbits[i] or drbits[i]) + dgbits[i] = not (sgbits[i] or dgbits[i]) + dbbits[i] = not (sbbits[i] or dbbits[i]) + end + end + return string.format("%02X%02X%02X",implodebits(drbits),implodebits(dgbits),implodebits(dbbits)) +end + +local function blend(src,dst,mode,transparent) + local srcr = tonumber(string.sub(src,1,2),16) + local srcg = tonumber(string.sub(src,3,4),16) + local srcb = tonumber(string.sub(src,5,6),16) + local dstr = tonumber(string.sub(dst,1,2),16) + local dstg = tonumber(string.sub(dst,3,4),16) + local dstb = tonumber(string.sub(dst,5,6),16) + local op = "normal" + if type(mode) == "string" then op = string.lower(mode) end + if op == "normal" then + return src + elseif op == "nop" then + return dst + elseif op == "overlay" then + return (string.upper(src) == string.upper(transparent)) and dst or src + elseif op == "add" then + local r = math.min(255,srcr+dstr) + local g = math.min(255,srcg+dstg) + local b = math.min(255,srcb+dstb) + return string.format("%02X%02X%02X",r,g,b) + elseif op == "sub" then + local r = math.max(0,dstr-srcr) + local g = math.max(0,dstg-srcg) + local b = math.max(0,dstb-srcb) + return string.format("%02X%02X%02X",r,g,b) + elseif op == "isub" then + local r = math.max(0,srcr-dstr) + local g = math.max(0,srcg-dstg) + local b = math.max(0,srcb-dstb) + return string.format("%02X%02X%02X",r,g,b) + elseif op == "average" then + local r = math.min(255,(srcr+dstr)/2) + local g = math.min(255,(srcg+dstg)/2) + local b = math.min(255,(srcb+dstb)/2) + return string.format("%02X%02X%02X",r,g,b) + elseif op == "and" or op == "or" or op == "xor" or op == "xnor" or op == "not" or op == "nand" or op == "nor" then + return bitwiseblend(srcr,dstr,srcg,dstg,srcb,dstb,op) + elseif op == "tohsv" or op == "rgbtohsv" then + return string.format("%02X%02X%02X",rgbtohsv(srcr,srcg,srcb)) + elseif op == "torgb" or op == "hsvtorgb" then + return string.format("%02X%02X%02X",hsvtorgb(srcr,srcg,srcb)) + else + return src + end +end + +local function runcommand(pos,meta,command) + if type(command) ~= "table" then return end + if command.command == "createbuffer" then + if type(command.buffer) ~= "number" or type(command.xsize) ~= "number" or type(command.ysize) ~= "number" then return end + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local xsize = math.min(64,math.floor(command.xsize)) + local ysize = math.min(64,math.floor(command.ysize)) + if xsize < 1 or ysize < 1 then return end + local fillcolor = command.fill + if type(fillcolor) ~= "string" or string.len(fillcolor) > 7 or string.len(fillcolor) < 6 then fillcolor = "000000" end + if string.sub(fillcolor,1,1) == "#" then fillcolor = string.sub(fillcolor,2,7) end + if not tonumber(fillcolor,16) then fillcolor = "000000" end + local buffer = {} + buffer.xsize = xsize + buffer.ysize = ysize + for y=1,ysize,1 do + buffer[y] = {} + for x=1,xsize,1 do + buffer[y][x] = fillcolor + end + end + meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) + elseif command.command == "send" then + if type(command.buffer) ~= "number" or type(command.channel) ~= "string" then return end + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local buffer = meta:get_string("buffer"..bufnum) + if string.len(buffer) == 0 then return end + buffer = minetest.deserialize(buffer) + if type(buffer) == "table" then + digiline:receptor_send(pos,digiline.rules.default,command.channel,buffer) + end + elseif command.command == "sendregion" then + if type(command.buffer) ~= "number" or type(command.channel) ~= "string" then return end + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local buffer = meta:get_string("buffer"..bufnum) + if string.len(buffer) == 0 then return end + buffer = minetest.deserialize(buffer) + if type(buffer) ~= "table" then return end + if type(command.x1) ~= "number" or type(command.x2) ~= "number" or type(command.y1) ~= "number" or type(command.x2) ~= "number" then return end + local x1 = math.min(64,math.floor(command.x1)) + local y1 = math.min(64,math.floor(command.y1)) + local x2 = math.min(64,math.floor(command.x2)) + local y2 = math.min(64,math.floor(command.y2)) + if x1 < 1 or y1 < 1 or x2 < 1 or y2 < 1 then return end + x2 = math.min(x2,buffer.xsize) + y2 = math.min(y2,buffer.ysize) + if x1 > x2 or y1 > y2 then return end + local tempbuf = {} + for y=y1,y2,1 do + local dsty = y-y1+1 + tempbuf[dsty] = {} + for x=x1,x2,1 do + local dstx = x-x1+1 + tempbuf[dsty][dstx] = buffer[y][x] + end + end + digiline:receptor_send(pos,digiline.rules.default,command.channel,tempbuf) + elseif command.command == "drawrect" then + if type(command.buffer) ~= "number" or type(command.x1) ~= "number" or type(command.y1) ~= "number" or type(command.x2) ~= "number" or type(command.y2) ~= "number" then return end + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local x1 = math.min(64,math.floor(command.x1)) + local y1 = math.min(64,math.floor(command.y1)) + local x2 = math.min(64,math.floor(command.x2)) + local y2 = math.min(64,math.floor(command.y2)) + if x1 < 1 or y1 < 1 or x2 < 1 or y2 < 1 then return end + local buffer = meta:get_string("buffer"..bufnum) + if string.len(buffer) == 0 then return end + buffer = minetest.deserialize(buffer) + if type(buffer) ~= "table" then return end + x2 = math.min(x2,buffer.xsize) + y2 = math.min(y2,buffer.ysize) + if x1 > x2 or y1 > y2 then return end + local fillcolor = command.fill + if type(fillcolor) ~= "string" or string.len(fillcolor) > 7 or string.len(fillcolor) < 6 then fillcolor = "000000" end + if string.sub(fillcolor,1,1) == "#" then fillcolor = string.sub(fillcolor,2,7) end + if not tonumber(fillcolor,16) then fillcolor = "000000" end + local edgecolor = command.edge + if type(edgecolor) ~= "string" or string.len(edgecolor) > 7 or string.len(edgecolor) < 6 then edgecolor = fillcolor end + if string.sub(edgecolor,1,1) == "#" then edgecolor = string.sub(edgecolor,2,7) end + if not tonumber(edgecolor,16) then edgecolor = fillcolor end + for y=y1,y2,1 do + for x=x1,x2,1 do + buffer[y][x] = fillcolor + end + end + if fillcolor ~= edgecolor then + for x=x1,x2,1 do + buffer[y1][x] = edgecolor + buffer[y2][x] = edgecolor + end + for y=y1,y2,1 do + buffer[y][x1] = edgecolor + buffer[y][x2] = edgecolor + end + end + meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) + elseif command.command == "drawpoint" then + if type(command.buffer) ~= "number" or type(command.x) ~= "number" or type(command.y) ~= "number" then return end + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local x = math.floor(command.x) + local y = math.floor(command.y) + if x < 1 or y < 1 then return end + local buffer = meta:get_string("buffer"..bufnum) + if string.len(buffer) == 0 then return end + buffer = minetest.deserialize(buffer) + if type(buffer) ~= "table" then return end + if x > buffer.xsize or y > buffer.ysize then return end + local color = command.color + if type(color) ~= "string" or string.len(color) > 7 or string.len(color) < 6 then color = "000000" end + if string.sub(color,1,1) == "#" then color = string.sub(color,2,7) end + if not tonumber(color,16) then color = "000000" end + buffer[y][x] = color + meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) + elseif command.command == "copy" then + if type(command.src) ~= "number" or type(command.dst) ~= "number" or type(command.srcx) ~= "number" or type(command.srcy) ~= "number" or type(command.dstx) ~= "number" or type(command.dsty) ~= "number" or type(command.xsize) ~= "number" or type(command.ysize) ~= "number" then return end + local src = math.floor(command.src) + if src < 0 or src > 7 then return end + local dst = math.floor(command.dst) + if dst < 0 or dst > 7 then return end + local srcx = math.floor(command.srcx) + local srcy = math.floor(command.srcy) + local dstx = math.floor(command.dstx) + local dsty = math.floor(command.dsty) + local xsize = math.floor(command.xsize) + local ysize = math.floor(command.ysize) + if srcx < 1 or srcy < 1 or dstx < 1 or dsty < 1 or xsize < 1 or ysize < 1 then return end + local sourcebuffer = meta:get_string("buffer"..src) + local destbuffer = meta:get_string("buffer"..dst) + if string.len(sourcebuffer) == 0 then return end + sourcebuffer = minetest.deserialize(sourcebuffer) + if type(sourcebuffer) ~= "table" then return end + if string.len(destbuffer) == 0 then return end + destbuffer = minetest.deserialize(destbuffer) + if type(destbuffer) ~= "table" then return end + if srcx + xsize-1 > sourcebuffer.xsize or srcy + ysize-1 > sourcebuffer.ysize then return end + if dstx + xsize-1 > destbuffer.xsize or dsty + ysize-1 > destbuffer.ysize then return end + local transparent = command.transparent + if type(transparent) ~= "string" or string.len(transparent) > 7 or string.len(transparent) < 6 then transparent = "000000" end + if string.sub(transparent,1,1) == "#" then transparent = string.sub(transparent,2,7) end + if not tonumber(transparent,16) then transparent = "000000" end + for y=0,ysize-1,1 do + for x=0,xsize-1,1 do + local srcpx = sourcebuffer[srcy+y][srcx+x] + local destpx = destbuffer[dsty+y][dstx+x] + destbuffer[dsty+y][dstx+x] = blend(srcpx,destpx,command.mode,transparent) + end + end + meta:set_string("buffer"..dst,minetest.serialize(destbuffer)) + elseif command.command == "load" then + if type(command.buffer) ~= "number" or type(command.x) ~= "number" or type(command.y) ~= "number" or type(command.data) ~= "table" then return end + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local xstart = math.floor(command.x) + local ystart = math.floor(command.y) + if xstart < 1 or ystart < 1 then return end + local buffer = meta:get_string("buffer"..bufnum) + if string.len(buffer) == 0 then return end + buffer = minetest.deserialize(buffer) + if type(buffer) ~= "table" then return end + if type(command.data[1]) ~= "table" then return end + if #command.data[1] < 1 then return end + local ysize = #command.data + local xsize = #command.data[1] + if xstart+xsize-1 > buffer.xsize or ystart+ysize-1 > buffer.ysize then return end + for y=1,ysize,1 do + if type(command.data[y]) == "table" then + for x=1,xsize,1 do + local color = command.data[y][x] + if type(color) == "string" then + if string.len(color) == 7 then color = string.sub(color,2,7) end + if tonumber(color,16) then + buffer[ystart+y-1][xstart+x-1] = color + end + end + end + end + end + meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) + elseif command.command == "text" then + if type(command.buffer) ~= "number" or type(command.x) ~= "number" or type(command.y) ~= "number" or type(command.text) ~= "string" or string.len(command.text) < 1 then return end + command.text = string.sub(command.text,1,16) + local bufnum = math.floor(command.buffer) + if bufnum < 0 or bufnum > 7 then return end + local x = math.floor(command.x) + local y = math.floor(command.y) + if x < 1 or y < 1 then return end + local buffer = meta:get_string("buffer"..bufnum) + if string.len(buffer) == 0 then return end + buffer = minetest.deserialize(buffer) + if type(buffer) ~= "table" then return end + if x > buffer.xsize or y > buffer.ysize then return end + local color = command.color + if type(color) ~= "string" or string.len(color) > 7 or string.len(color) < 6 then color = "ff6600" end + if string.sub(color,1,1) == "#" then color = string.sub(color,2,7) end + if not tonumber(color,16) then color = "ff6600" end + for i=1,string.len(command.text),1 do + local char = font[string.byte(string.sub(command.text,i,i))] + for chary=1,12,1 do + for charx=1,5,1 do + local startx = x + (i*6-6) + if char[chary][charx] and y+chary-1 <= buffer.ysize and startx+charx-1 <= buffer.xsize then + local dstpx = buffer[y+chary-1][startx+charx-1] + buffer[y+chary-1][startx+charx-1] = blend(color,dstpx,command.mode,"") + end + end + end + end + meta:set_string("buffer"..bufnum,minetest.serialize(buffer)) + end +end + +minetest.register_node("digistuff:gpu", { + description = "Digilines 2D Graphics Processor", + groups = {cracky=3}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec","field[channel;Channel;${channel}") + end, + tiles = { + "digistuff_gpu_top.png", + "jeija_microcontroller_bottom.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png" + }, + inventory_image = "digistuff_gpu_top.png", + drawtype = "nodebox", + selection_box = { + --From luacontroller + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, + }, + _digistuff_channelcopier_fieldname = "channel", + node_box = { + --From Luacontroller + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab + {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board + {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC + } + }, + paramtype = "light", + sunlight_propagates = true, + on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + if fields.channel then meta:set_string("channel",fields.channel) end + end, + digiline = + { + receptor = {}, + effector = { + action = function(pos,node,channel,msg) + local meta = minetest.get_meta(pos) + if meta:get_string("channel") ~= channel or type(msg) ~= "table" then return end + if type(msg[1]) == "table" then + for i=1,32,1 do + if type(msg[i]) == "table" then + runcommand(pos,meta,msg[i]) + end + end + else + runcommand(pos,meta,msg) + end + end + }, + }, +}) + +minetest.register_craft({ + output = "digistuff:gpu", + recipe = { + {"","default:steel_ingot",""}, + {"digilines:wire_std_00000000","mesecons_luacontroller:luacontroller0000","digilines:wire_std_00000000"}, + {"dye:red","dye:green","dye:blue"}, + } +}) diff --git a/digistuff/init.lua b/mods/digistuff/init.lua similarity index 100% rename from digistuff/init.lua rename to mods/digistuff/init.lua diff --git a/digistuff/internal.lua b/mods/digistuff/internal.lua similarity index 100% rename from digistuff/internal.lua rename to mods/digistuff/internal.lua diff --git a/digistuff/ioexpander.lua b/mods/digistuff/ioexpander.lua similarity index 100% rename from digistuff/ioexpander.lua rename to mods/digistuff/ioexpander.lua diff --git a/digistuff/light.lua b/mods/digistuff/light.lua similarity index 100% rename from digistuff/light.lua rename to mods/digistuff/light.lua diff --git a/mods/digistuff/memory.lua b/mods/digistuff/memory.lua new file mode 100644 index 00000000..51d9d7e0 --- /dev/null +++ b/mods/digistuff/memory.lua @@ -0,0 +1,176 @@ +minetest.register_node("digistuff:ram", { + description = "Digilines 128Kbit SRAM", + groups = {cracky=3}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec","field[channel;Channel;${channel}") + for i=0,31,1 do + meta:set_string(string.format("data%02d",i),"") + end + end, + tiles = { + "digistuff_ram_top.png", + "jeija_microcontroller_bottom.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png" + }, + inventory_image = "digistuff_ram_top.png", + drawtype = "nodebox", + selection_box = { + --From luacontroller + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, + }, + _digistuff_channelcopier_fieldname = "channel", + node_box = { + --From Luacontroller + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab + {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board + {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC + } + }, + paramtype = "light", + sunlight_propagates = true, + on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + if fields.channel then meta:set_string("channel",fields.channel) end + end, + digiline = + { + receptor = {}, + effector = { + action = function(pos,node,channel,msg) + local meta = minetest.get_meta(pos) + if meta:get_string("channel") ~= channel or type(msg) ~= "table" then return end + if msg.command == "read" then + if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 then + digiline:receptor_send(pos,digiline.rules.default,channel,meta:get_string(string.format("data%02i",math.floor(msg.address)))) + end + elseif msg.command == "write" then + if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 and type(msg.data) == "string" then + meta:set_string(string.format("data%02i",math.floor(msg.address)),string.sub(msg.data,1,512)) + end + end + end + }, + }, +}) + +minetest.register_node("digistuff:eeprom", { + description = "Digilines 128Kbit EEPROM", + groups = {cracky=3}, + after_place_node = function(pos,_,istack) + local meta = minetest.get_meta(pos) + local smeta = istack:get_meta() + for i=0,31,1 do + meta:set_string(string.format("data%02d",i),smeta:get_string(string.format("data%02d",i))) + end + meta:set_string("channel",smeta:get_string("channel")) + meta:set_string("formspec","field[channel;Channel;${channel}") + end, + on_dig = function(pos,node,player) + local name = player:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + local istack = ItemStack("digistuff:eeprom") + local smeta = istack:get_meta() + for i=0,31,1 do + smeta:set_string(string.format("data%02d",i),meta:get_string(string.format("data%02d",i))) + end + smeta:set_string("channel",meta:get_string("channel")) + minetest.remove_node(pos) + smeta:set_string("description","Digilines 128KBit EEPROM (with data)") + local inv = minetest.get_inventory({type = "player",name = name,}) + if player.is_fake_player or not inv:room_for_item("main",istack) then + minetest.handle_node_drops(pos,{istack},player) + else + inv:add_item("main",istack) + end + digilines.update_autoconnect(pos) + end, + tiles = { + "digistuff_eeprom_top.png", + "jeija_microcontroller_bottom.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png", + "jeija_microcontroller_sides.png" + }, + inventory_image = "digistuff_eeprom_top.png", + drawtype = "nodebox", + selection_box = { + --From luacontroller + type = "fixed", + fixed = { -8/16, -8/16, -8/16, 8/16, -5/16, 8/16 }, + }, + _digistuff_channelcopier_fieldname = "channel", + node_box = { + --From Luacontroller + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -7/16, 8/16}, -- Bottom slab + {-5/16, -7/16, -5/16, 5/16, -6/16, 5/16}, -- Circuit board + {-3/16, -6/16, -3/16, 3/16, -5/16, 3/16}, -- IC + } + }, + paramtype = "light", + sunlight_propagates = true, + on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + if fields.channel then meta:set_string("channel",fields.channel) end + end, + digiline = + { + receptor = {}, + effector = { + action = function(pos,node,channel,msg) + local meta = minetest.get_meta(pos) + if meta:get_string("channel") ~= channel or type(msg) ~= "table" then return end + if msg.command == "read" then + if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 then + digiline:receptor_send(pos,digiline.rules.default,channel,meta:get_string(string.format("data%02i",math.floor(msg.address)))) + end + elseif msg.command == "write" then + if type(msg.address) == "number" and msg.address >= 0 and msg.address <= 31 and type(msg.data) == "string" then + meta:set_string(string.format("data%02i",math.floor(msg.address)),string.sub(msg.data,1,512)) + end + end + end + }, + }, +}) + +minetest.register_craft({ + output = "digistuff:ram", + recipe = { + {"basic_materials:plastic_sheet","basic_materials:plastic_sheet","basic_materials:plastic_sheet"}, + {"mesecons_gates:nand_off","basic_materials:plastic_sheet","mesecons_gates:nand_off"}, + {"mesecons:wire_00000000_off","basic_materials:silicon","mesecons:wire_00000000_off"}, + } +}) + +minetest.register_craft({ + output = "digistuff:eeprom", + recipe = { + {"basic_materials:plastic_sheet","mesecons:wire_00000000_off","basic_materials:plastic_sheet"}, + {"digilines:wire_std_00000000","basic_materials:plastic_sheet","digilines:wire_std_00000000"}, + {"mesecons:wire_00000000_off","basic_materials:silicon","mesecons:wire_00000000_off"}, + } +}) diff --git a/mods/digistuff/mod.conf b/mods/digistuff/mod.conf new file mode 100644 index 00000000..15edfcf1 --- /dev/null +++ b/mods/digistuff/mod.conf @@ -0,0 +1,5 @@ +name = digistuff +title = digistuff +description = Random digilines devices for Minetest +depends = digilines +optional_depends = default,mesecons,mesecons_mvps,screwdriver,pipeworks diff --git a/digistuff/models/digistuff_wall_knob.obj b/mods/digistuff/models/digistuff_wall_knob.obj similarity index 100% rename from digistuff/models/digistuff_wall_knob.obj rename to mods/digistuff/models/digistuff_wall_knob.obj diff --git a/mods/digistuff/movestone.lua b/mods/digistuff/movestone.lua new file mode 100644 index 00000000..4f9967e0 --- /dev/null +++ b/mods/digistuff/movestone.lua @@ -0,0 +1,283 @@ +if not minetest.get_modpath("mesecons_mvps") then + minetest.log("warning","mesecons_mvps is not installed - digilines movestone will not be available") + return +end + +local function abortmovement(pos) + local meta = minetest.get_meta(pos) + local state = meta:get_string("state") + if state ~= "" then state = minetest.deserialize(state) else state = {} end + state.targetx = pos.x + state.targety = pos.y + state.targetz = pos.z + state.moveaxis = nil + meta:set_string("state",minetest.serialize(state)) +end + +local function checkprotection(pos,player) + if not player then player = "" end + if type(player) ~= "string" then player = player:get_player_name() end + if minetest.is_protected(pos,player) and not minetest.check_player_privs(player,{protection_bypass=true}) then + minetest.record_protection_violation(pos,player) + return false + end + return true +end + +local function move(pos,dir,state) + local newpos = vector.add(pos,dir) + local stack = mesecon.mvps_get_stack(pos,dir,state.maxstack,state.sticky and state.allsticky) + if not stack then + abortmovement(pos) + return false + end + for _,i in pairs(stack) do + if not checkprotection(i.pos,state.player) then + abortmovement(pos) + return false + end + end + local success,stack,oldstack = mesecon.mvps_push(pos,dir,state.maxstack) + if not success then + abortmovement(pos) + return false + end + mesecon.mvps_process_stack(stack) + mesecon.mvps_move_objects(pos,dir,oldstack) + if state.sound == "mesecons" then + minetest.sound_play("movestone",{pos = pos,max_hear_distance = 20,gain = 0.5,},true) + end + if not state.sticky then return true end + local ppos = vector.add(pos,vector.multiply(dir,-1)) + local success,stack,oldstack + if state.allsticky then + success,stack,oldstack = mesecon.mvps_pull_all(ppos,dir,state.maxstack) + else + success,stack,oldstack = mesecon.mvps_pull_single(ppos,dir,state.maxstack) + end + if success then + mesecon.mvps_move_objects(ppos,dir,oldstack,-1) + else + abortmovement(pos) + return false + end + return true +end + +local rules = { + {x = 1, y = 0, z = 0}, + {x =-1, y = 0, z = 0}, + {x = 0, y = 1, z = 0}, + {x = 0, y =-1, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 0, y = 0, z =-1}, +} + +minetest.register_node("digistuff:movestone", { + description = "Digilines Movestone", + groups = {cracky = 3,}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec","field[channel;Channel;${channel}") + local initialstate = { + targetx = pos.x, + targety = pos.y, + targetz = pos.z, + sound = "mesecons", + maxstack = 0, + allsticky = false, + } + meta:set_int("active",0) + meta:set_string("state",minetest.serialize(initialstate)) + end, + after_place_node = function(pos,player) + if not player then return end + local meta = minetest.get_meta(pos) + meta:set_string("owner",player:get_player_name()) + end, + tiles = { + "jeija_movestone_side.png", + "jeija_movestone_side.png", + "digistuff_movestone.png", + "digistuff_movestone.png", + "digistuff_movestone.png", + "digistuff_movestone.png", + }, + on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + if fields.channel then meta:set_string("channel",fields.channel) end + end, + on_timer = function(pos) + local meta = minetest.get_meta(pos) + if meta:get_int("active") < 1 then return end + local state = meta:get_string("state") + local newpos = pos + if state ~= "" then state = minetest.deserialize(state) else return end + if not state.player then state.player = meta:get_string("owner") end + if state.moveaxis == "x" then + local dir = vector.new(state.targetx > pos.x and 1 or -1,0,0) + move(pos,dir,state) + newpos = vector.add(pos,dir) + if newpos.x == state.targetx then + if newpos.y ~= state.targety then + state.moveaxis = "y" + elseif newpos.z ~= state.targetz then + state.moveaxis = "z" + else + state.moveaxis = nil + end + end + elseif state.moveaxis == "y" then + local dir = vector.new(0,state.targety > pos.y and 1 or -1,0) + move(pos,dir,state) + newpos = vector.add(pos,dir) + if newpos.y == state.targety then + if newpos.z ~= state.targetz then + state.moveaxis = "z" + else + state.moveaxis = nil + end + end + elseif state.moveaxis == "z" then + local dir = vector.new(0,0,state.targetz > pos.z and 1 or -1) + move(pos,dir,state) + newpos = vector.add(pos,dir) + if newpos.z == state.targetz then + state.moveaxis = nil + end + end + local newmeta = minetest.get_meta(newpos) + newmeta:set_int("active",state.moveaxis and 1 or 0) + newmeta:set_string("state",minetest.serialize(state)) + if state.moveaxis then + local timer = minetest.get_node_timer(newpos) + timer:start(0.33) + end + end, + _digistuff_channelcopier_fieldname = "channel", + digiline = { + wire = { + rules = rules, + }, + receptor = {}, + effector = { + action = function(pos,node,channel,msg) + local meta = minetest.get_meta(pos) + local setchan = meta:get_string("channel") + if channel ~= setchan then return end + if type(msg) ~= "table" or not msg.command then return end + if msg.command == "getstate" then + local ret = {} + local meta = minetest.get_meta(pos) + local state = meta:get_string("state") + if state ~= "" then state = minetest.deserialize(state) else state = {} end + if not state then + minetest.log("error",string.format("Invalid state information for digilines movestone at %d,%d,%d: %s",pos.x,pos.y,pos.z,meta:get_string("state"))) + return + end + ret.pos = pos + ret.targetpos = vector.new(state.targetx,state.targety,state.targetz) + ret.moveaxis = state.moveaxis + digiline:receptor_send(pos,rules,channel,ret) + elseif msg.command == "absmove" then + local ret = {} + local meta = minetest.get_meta(pos) + local state = meta:get_string("state") + if state ~= "" then state = minetest.deserialize(state) else state = {} end + if not state then + minetest.log("error",string.format("Invalid state information for digilines movestone at %d,%d,%d: %s",pos.x,pos.y,pos.z,meta:get_string("state"))) + return + end + if type(msg.sound) == "string" then state.sound = msg.sound end + if type(msg.x) ~= "number" then msg.x = pos.x end + if type(msg.y) ~= "number" then msg.y = pos.y end + if type(msg.z) ~= "number" then msg.z = pos.z end + msg.x = math.max(pos.x-50,math.min(pos.x+50,math.floor(msg.x))) + msg.y = math.max(pos.y-50,math.min(pos.y+50,math.floor(msg.y))) + msg.z = math.max(pos.z-50,math.min(pos.z+50,math.floor(msg.z))) + local firstaxis + if msg.x ~= pos.x then firstaxis = "x" + elseif msg.y ~= pos.y then firstaxis = "y" + elseif msg.z ~= pos.z then firstaxis = "z" end + if firstaxis then + state.targetx = msg.x + state.targety = msg.y + state.targetz = msg.z + state.moveaxis = firstaxis + if msg.sticky then + state.sticky = true + elseif msg.sticky == false then + state.sticky = false + end + if msg.allsticky then + state.allsticky = true + elseif msg.allsticky == false then + state.allsticky = false + end + if type(msg.maxstack) == "number" and msg.maxstack >= 0 and msg.maxstack <= 50 then + state.maxstack = math.floor(msg.maxstack) + end + meta:set_string("state",minetest.serialize(state)) + meta:set_int("active",1) + minetest.get_node_timer(pos):start(0.1) + end + elseif msg.command == "relmove" then + local ret = {} + local meta = minetest.get_meta(pos) + local state = meta:get_string("state") + if state ~= "" then state = minetest.deserialize(state) else state = {} end + if not state then + minetest.log("error",string.format("Invalid state information for digilines movestone at %d,%d,%d: %s",pos.x,pos.y,pos.z,meta:get_string("state"))) + return + end + if type(msg.sound) == "string" then state.sound = msg.sound end + if type(msg.x) ~= "number" then msg.x = 0 end + if type(msg.y) ~= "number" then msg.y = 0 end + if type(msg.z) ~= "number" then msg.z = 0 end + msg.x = pos.x+math.max(0,math.min(50,math.floor(msg.x))) + msg.y = pos.y+math.max(0,math.min(50,math.floor(msg.y))) + msg.z = pos.z+math.max(0,math.min(50,math.floor(msg.z))) + local firstaxis + if msg.x ~= pos.x then firstaxis = "x" + elseif msg.y ~= pos.y then firstaxis = "y" + elseif msg.z ~= pos.z then firstaxis = "z" end + if firstaxis then + state.targetx = msg.x + state.targety = msg.y + state.targetz = msg.z + state.moveaxis = firstaxis + if msg.sticky then + state.sticky = true + elseif msg.sticky == false then + state.sticky = false + end + if msg.allsticky then + state.allsticky = true + elseif msg.allsticky == false then + state.allsticky = false + end + if type(msg.maxstack) == "number" and msg.maxstack >= 0 and msg.maxstack <= 50 then + state.maxstack = math.floor(msg.maxstack) + end + meta:set_string("state",minetest.serialize(state)) + meta:set_int("active",1) + minetest.get_node_timer(pos):start(0.1) + end + end + end + }, + }, +}) + +minetest.register_craft({ + output = "digistuff:movestone", + recipe = { + {"mesecons_movestones:movestone","digilines:wire_std_00000000"}, + {"mesecons_movestones:movestone_vertical","mesecons_luacontroller:luacontroller0000"}, + }, +}) diff --git a/digistuff/nbsounds.lua b/mods/digistuff/nbsounds.lua similarity index 100% rename from digistuff/nbsounds.lua rename to mods/digistuff/nbsounds.lua diff --git a/digistuff/nic.lua b/mods/digistuff/nic.lua similarity index 100% rename from digistuff/nic.lua rename to mods/digistuff/nic.lua diff --git a/digistuff/noteblock.lua b/mods/digistuff/noteblock.lua similarity index 100% rename from digistuff/noteblock.lua rename to mods/digistuff/noteblock.lua diff --git a/mods/digistuff/panel.lua b/mods/digistuff/panel.lua new file mode 100644 index 00000000..70f5042d --- /dev/null +++ b/mods/digistuff/panel.lua @@ -0,0 +1,156 @@ +digistuff.update_panel_formspec = function (pos,dispstr) + local meta = minetest.get_meta(pos) + local locked = meta:get_int("locked") == 1 + local fs = "size[10,8]".. + "background[0,0;0,0;digistuff_panel_bg.png;true]".. + "label[0,0;%s]".. + (locked and "image_button[9,3;1,1;digistuff_panel_locked.png;unlock;]" or "image_button[9,3;1,1;digistuff_panel_unlocked.png;lock;]").. + "image_button[2,4.5;1,1;digistuff_adwaita_go-up.png;up;]".. + "image_button[1,5;1,1;digistuff_adwaita_go-previous.png;left;]".. + "image_button[3,5;1,1;digistuff_adwaita_go-next.png;right;]".. + "image_button[2,5.5;1,1;digistuff_adwaita_go-down.png;down;]".. + "image_button[1,6.5;1,1;digistuff_adwaita_edit-undo.png;back;]".. + "image_button[3,6.5;1,1;digistuff_adwaita_emblem-default.png;enter;]".. + "field[6,5.75;2,1;channel;Channel;${channel}]".. + "button[8,5.5;1,1;savechan;Set]" + fs = fs:format(minetest.colorize("#000000",minetest.formspec_escape(dispstr):gsub("|","\n"))) + meta:set_string("formspec",fs) + meta:set_string("text",dispstr) +end + +digistuff.panel_on_digiline_receive = function (pos, node, channel, msg) + local meta = minetest.get_meta(pos) + local setchan = meta:get_string("channel") + if channel ~= setchan then return end + if type(msg) ~= "string" then return end + digistuff.update_panel_formspec(pos,msg) +end + +digistuff.panel_on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local setchan = meta:get_string("channel") + local playername = sender:get_player_name() + local locked = meta:get_int("locked") == 1 + local can_bypass = minetest.check_player_privs(playername,{protection_bypass=true}) + local is_protected = minetest.is_protected(pos,playername) + if fields.savechan then + if can_bypass or not is_protected then + meta:set_string("channel",fields.channel) + local helpmsg = "Channel has been set. Waiting for data..." + digistuff.update_panel_formspec(pos,helpmsg) + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to change the channel of this panel.") + end + elseif fields.up then + if can_bypass or not is_protected or not locked then + digiline:receptor_send(pos, digiline.rules.default, setchan, "up") + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this panel.") + end + elseif fields.down then + if can_bypass or not is_protected or not locked then + digiline:receptor_send(pos, digiline.rules.default, setchan, "down") + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this panel.") + end + elseif fields.left then + if can_bypass or not is_protected or not locked then + digiline:receptor_send(pos, digiline.rules.default, setchan, "left") + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this panel.") + end + elseif fields.right then + if can_bypass or not is_protected or not locked then + digiline:receptor_send(pos, digiline.rules.default, setchan, "right") + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this panel.") + end + elseif fields.back then + if can_bypass or not is_protected or not locked then + digiline:receptor_send(pos, digiline.rules.default, setchan, "back") + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this panel.") + end + elseif fields.enter then + if can_bypass or not is_protected or not locked then + digiline:receptor_send(pos, digiline.rules.default, setchan, "enter") + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this panel.") + end + elseif fields.lock then + if can_bypass or not is_protected then + meta:set_int("locked",1) + minetest.chat_send_player(playername,"This panel has been locked. Access will now be controlled according to area protection.") + digistuff.update_panel_formspec(pos,meta:get_string("text")) + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to lock this panel.") + end + elseif fields.unlock then + if can_bypass or not is_protected then + meta:set_int("locked",0) + minetest.chat_send_player(playername,"This panel has been unlocked. It can now be used (but not locked or have the channel changed) by anyone.") + digistuff.update_panel_formspec(pos,meta:get_string("text")) + else + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to unlock this panel.") + end + end +end + + +minetest.register_node("digistuff:panel", { + description = "Digilines Control Panel", + groups = {cracky=3}, + on_construct = function(pos) + local helpmsg = "Please set a channel." + digistuff.update_panel_formspec(pos,helpmsg) + minetest.get_meta(pos):set_int("locked",0) + end, + drawtype = "nodebox", + tiles = { + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_front.png" + }, + _digistuff_channelcopier_fieldname = "channel", + _digistuff_channelcopier_onset = function(pos) + local helpmsg = "Channel has been set. Waiting for data..." + digistuff.update_panel_formspec(pos,helpmsg) + end, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + } + }, + on_receive_fields = digistuff.panel_on_receive_fields, + digiline = + { + receptor = {}, + effector = { + action = digistuff.panel_on_digiline_receive + }, + }, +}) + +minetest.register_craft({ + output = "digistuff:panel", + recipe = { + {"","digistuff:button",""}, + {"digistuff:button","digilines:lcd","digistuff:button"}, + {"","digistuff:button",""} + } +}) diff --git a/mods/digistuff/piezo.lua b/mods/digistuff/piezo.lua new file mode 100644 index 00000000..ed7debcc --- /dev/null +++ b/mods/digistuff/piezo.lua @@ -0,0 +1,95 @@ +digistuff.sounds_playing = {} + +minetest.register_node("digistuff:piezo", { + description = "Digilines Piezoelectric Beeper", + groups = {cracky=3}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec","field[channel;Channel;${channel}") + end, + on_destruct = function(pos) + local pos_hash = minetest.hash_node_position(pos) + if digistuff.sounds_playing[pos_hash] then + minetest.sound_stop(digistuff.sounds_playing[pos_hash]) + digistuff.sounds_playing[pos_hash] = nil + end + end, + _digistuff_channelcopier_fieldname = "channel", + tiles = { + "digistuff_piezo_top.png", + "digistuff_piezo_sides.png", + "digistuff_piezo_sides.png", + "digistuff_piezo_sides.png", + "digistuff_piezo_sides.png", + "digistuff_piezo_sides.png" + }, + on_receive_fields = function(pos, formname, fields, sender) + local name = sender:get_player_name() + if minetest.is_protected(pos,name) and not minetest.check_player_privs(name,{protection_bypass=true}) then + minetest.record_protection_violation(pos,name) + return + end + local meta = minetest.get_meta(pos) + if fields.channel then meta:set_string("channel",fields.channel) end + end, + digiline = + { + receptor = {}, + effector = { + action = function(pos,node,channel,msg) + local meta = minetest.get_meta(pos) + local setchan = meta:get_string("channel") + if channel ~= setchan then return end + if msg == "shortbeep" then + local pos_hash = minetest.hash_node_position(pos) + if digistuff.sounds_playing[pos_hash] then + minetest.sound_stop(digistuff.sounds_playing[pos_hash]) + digistuff.sounds_playing[pos_hash] = nil + end + minetest.sound_play({name = "digistuff_piezo_short_single",gain = 0.2},{pos = pos,max_hear_distance = 16}) + elseif msg == "longbeep" then + local pos_hash = minetest.hash_node_position(pos) + if digistuff.sounds_playing[pos_hash] then + minetest.sound_stop(digistuff.sounds_playing[pos_hash]) + digistuff.sounds_playing[pos_hash] = nil + end + minetest.sound_play({name = "digistuff_piezo_long_single",gain = 0.2},{pos = pos,max_hear_distance = 16}) + elseif msg == "fastrepeat" then + local pos_hash = minetest.hash_node_position(pos) + if digistuff.sounds_playing[pos_hash] then + minetest.sound_stop(digistuff.sounds_playing[pos_hash]) + digistuff.sounds_playing[pos_hash] = nil + end + digistuff.sounds_playing[pos_hash] = minetest.sound_play({name = "digistuff_piezo_fast_repeat",gain = 0.2},{pos = pos,max_hear_distance = 16,loop = true}) + elseif msg == "slowrepeat" then + local pos_hash = minetest.hash_node_position(pos) + if digistuff.sounds_playing[pos_hash] then + minetest.sound_stop(digistuff.sounds_playing[pos_hash]) + digistuff.sounds_playing[pos_hash] = nil + end + digistuff.sounds_playing[pos_hash] = minetest.sound_play({name = "digistuff_piezo_slow_repeat",gain = 0.2},{pos = pos,max_hear_distance = 16,loop = true}) + elseif msg == "stop" then + local pos_hash = minetest.hash_node_position(pos) + if digistuff.sounds_playing[pos_hash] then + minetest.sound_stop(digistuff.sounds_playing[pos_hash]) + digistuff.sounds_playing[pos_hash] = nil + end + end + end + }, + }, +}) + +local crystal = "quartz:quartz_crystal_piece" + +if not minetest.get_modpath("quartz") then + crystal = "default:mese_crystal_fragment" +end + +minetest.register_craft({ + output = "digistuff:piezo", + recipe = { + {crystal,"basic_materials:steel_strip"}, + {"digilines:wire_std_00000000","mesecons_luacontroller:luacontroller0000"}, + }, +}) diff --git a/digistuff/piston.lua b/mods/digistuff/piston.lua similarity index 100% rename from digistuff/piston.lua rename to mods/digistuff/piston.lua diff --git a/digistuff/sillystuff.lua b/mods/digistuff/sillystuff.lua similarity index 100% rename from digistuff/sillystuff.lua rename to mods/digistuff/sillystuff.lua diff --git a/digistuff/sounds/digistuff_piezo_fast_repeat.ogg b/mods/digistuff/sounds/digistuff_piezo_fast_repeat.ogg similarity index 100% rename from digistuff/sounds/digistuff_piezo_fast_repeat.ogg rename to mods/digistuff/sounds/digistuff_piezo_fast_repeat.ogg diff --git a/digistuff/sounds/digistuff_piezo_long_single.ogg b/mods/digistuff/sounds/digistuff_piezo_long_single.ogg similarity index 100% rename from digistuff/sounds/digistuff_piezo_long_single.ogg rename to mods/digistuff/sounds/digistuff_piezo_long_single.ogg diff --git a/digistuff/sounds/digistuff_piezo_short_single.ogg b/mods/digistuff/sounds/digistuff_piezo_short_single.ogg similarity index 100% rename from digistuff/sounds/digistuff_piezo_short_single.ogg rename to mods/digistuff/sounds/digistuff_piezo_short_single.ogg diff --git a/digistuff/sounds/digistuff_piezo_slow_repeat.ogg b/mods/digistuff/sounds/digistuff_piezo_slow_repeat.ogg similarity index 100% rename from digistuff/sounds/digistuff_piezo_slow_repeat.ogg rename to mods/digistuff/sounds/digistuff_piezo_slow_repeat.ogg diff --git a/digistuff/sounds/digistuff_piston_extend.ogg b/mods/digistuff/sounds/digistuff_piston_extend.ogg similarity index 100% rename from digistuff/sounds/digistuff_piston_extend.ogg rename to mods/digistuff/sounds/digistuff_piston_extend.ogg diff --git a/digistuff/sounds/digistuff_piston_retract.ogg b/mods/digistuff/sounds/digistuff_piston_retract.ogg similarity index 100% rename from digistuff/sounds/digistuff_piston_retract.ogg rename to mods/digistuff/sounds/digistuff_piston_retract.ogg diff --git a/digistuff/switches.lua b/mods/digistuff/switches.lua similarity index 100% rename from digistuff/switches.lua rename to mods/digistuff/switches.lua diff --git a/mods/digistuff/textures/digistuff_advts_front.png b/mods/digistuff/textures/digistuff_advts_front.png new file mode 100644 index 00000000..89dc343d Binary files /dev/null and b/mods/digistuff/textures/digistuff_advts_front.png differ diff --git a/digistuff/textures/digistuff_adwaita_edit-undo.png b/mods/digistuff/textures/digistuff_adwaita_edit-undo.png similarity index 100% rename from digistuff/textures/digistuff_adwaita_edit-undo.png rename to mods/digistuff/textures/digistuff_adwaita_edit-undo.png diff --git a/digistuff/textures/digistuff_adwaita_emblem-default.png b/mods/digistuff/textures/digistuff_adwaita_emblem-default.png similarity index 100% rename from digistuff/textures/digistuff_adwaita_emblem-default.png rename to mods/digistuff/textures/digistuff_adwaita_emblem-default.png diff --git a/digistuff/textures/digistuff_adwaita_go-down.png b/mods/digistuff/textures/digistuff_adwaita_go-down.png similarity index 100% rename from digistuff/textures/digistuff_adwaita_go-down.png rename to mods/digistuff/textures/digistuff_adwaita_go-down.png diff --git a/digistuff/textures/digistuff_adwaita_go-next.png b/mods/digistuff/textures/digistuff_adwaita_go-next.png similarity index 100% rename from digistuff/textures/digistuff_adwaita_go-next.png rename to mods/digistuff/textures/digistuff_adwaita_go-next.png diff --git a/digistuff/textures/digistuff_adwaita_go-previous.png b/mods/digistuff/textures/digistuff_adwaita_go-previous.png similarity index 100% rename from digistuff/textures/digistuff_adwaita_go-previous.png rename to mods/digistuff/textures/digistuff_adwaita_go-previous.png diff --git a/digistuff/textures/digistuff_adwaita_go-up.png b/mods/digistuff/textures/digistuff_adwaita_go-up.png similarity index 100% rename from digistuff/textures/digistuff_adwaita_go-up.png rename to mods/digistuff/textures/digistuff_adwaita_go-up.png diff --git a/digistuff/textures/digistuff_camera_back.png b/mods/digistuff/textures/digistuff_camera_back.png similarity index 100% rename from digistuff/textures/digistuff_camera_back.png rename to mods/digistuff/textures/digistuff_camera_back.png diff --git a/digistuff/textures/digistuff_camera_bottom.png b/mods/digistuff/textures/digistuff_camera_bottom.png similarity index 100% rename from digistuff/textures/digistuff_camera_bottom.png rename to mods/digistuff/textures/digistuff_camera_bottom.png diff --git a/digistuff/textures/digistuff_camera_front.png b/mods/digistuff/textures/digistuff_camera_front.png similarity index 100% rename from digistuff/textures/digistuff_camera_front.png rename to mods/digistuff/textures/digistuff_camera_front.png diff --git a/digistuff/textures/digistuff_camera_left.png b/mods/digistuff/textures/digistuff_camera_left.png similarity index 100% rename from digistuff/textures/digistuff_camera_left.png rename to mods/digistuff/textures/digistuff_camera_left.png diff --git a/digistuff/textures/digistuff_camera_pole.png b/mods/digistuff/textures/digistuff_camera_pole.png similarity index 100% rename from digistuff/textures/digistuff_camera_pole.png rename to mods/digistuff/textures/digistuff_camera_pole.png diff --git a/digistuff/textures/digistuff_camera_right.png b/mods/digistuff/textures/digistuff_camera_right.png similarity index 100% rename from digistuff/textures/digistuff_camera_right.png rename to mods/digistuff/textures/digistuff_camera_right.png diff --git a/digistuff/textures/digistuff_camera_top.png b/mods/digistuff/textures/digistuff_camera_top.png similarity index 100% rename from digistuff/textures/digistuff_camera_top.png rename to mods/digistuff/textures/digistuff_camera_top.png diff --git a/digistuff/textures/digistuff_cardreader_sides.png b/mods/digistuff/textures/digistuff_cardreader_sides.png similarity index 100% rename from digistuff/textures/digistuff_cardreader_sides.png rename to mods/digistuff/textures/digistuff_cardreader_sides.png diff --git a/digistuff/textures/digistuff_cardreader_top.png b/mods/digistuff/textures/digistuff_cardreader_top.png similarity index 100% rename from digistuff/textures/digistuff_cardreader_top.png rename to mods/digistuff/textures/digistuff_cardreader_top.png diff --git a/digistuff/textures/digistuff_channelcopier.png b/mods/digistuff/textures/digistuff_channelcopier.png similarity index 100% rename from digistuff/textures/digistuff_channelcopier.png rename to mods/digistuff/textures/digistuff_channelcopier.png diff --git a/digistuff/textures/digistuff_controller_sides.png b/mods/digistuff/textures/digistuff_controller_sides.png similarity index 100% rename from digistuff/textures/digistuff_controller_sides.png rename to mods/digistuff/textures/digistuff_controller_sides.png diff --git a/digistuff/textures/digistuff_controller_top.png b/mods/digistuff/textures/digistuff_controller_top.png similarity index 100% rename from digistuff/textures/digistuff_controller_top.png rename to mods/digistuff/textures/digistuff_controller_top.png diff --git a/digistuff/textures/digistuff_digibutton_off.png b/mods/digistuff/textures/digistuff_digibutton_off.png similarity index 100% rename from digistuff/textures/digistuff_digibutton_off.png rename to mods/digistuff/textures/digistuff_digibutton_off.png diff --git a/digistuff/textures/digistuff_digibutton_on.png b/mods/digistuff/textures/digistuff_digibutton_on.png similarity index 100% rename from digistuff/textures/digistuff_digibutton_on.png rename to mods/digistuff/textures/digistuff_digibutton_on.png diff --git a/digistuff/textures/digistuff_digibutton_sides.png b/mods/digistuff/textures/digistuff_digibutton_sides.png similarity index 100% rename from digistuff/textures/digistuff_digibutton_sides.png rename to mods/digistuff/textures/digistuff_digibutton_sides.png diff --git a/digistuff/textures/digistuff_digidetector.png b/mods/digistuff/textures/digistuff_digidetector.png similarity index 100% rename from digistuff/textures/digistuff_digidetector.png rename to mods/digistuff/textures/digistuff_digidetector.png diff --git a/digistuff/textures/digistuff_digiline_full.png b/mods/digistuff/textures/digistuff_digiline_full.png similarity index 100% rename from digistuff/textures/digistuff_digiline_full.png rename to mods/digistuff/textures/digistuff_digiline_full.png diff --git a/digistuff/textures/digistuff_digimese.png b/mods/digistuff/textures/digistuff_digimese.png similarity index 100% rename from digistuff/textures/digistuff_digimese.png rename to mods/digistuff/textures/digistuff_digimese.png diff --git a/digistuff/textures/digistuff_eeprom_top.png b/mods/digistuff/textures/digistuff_eeprom_top.png similarity index 100% rename from digistuff/textures/digistuff_eeprom_top.png rename to mods/digistuff/textures/digistuff_eeprom_top.png diff --git a/digistuff/textures/digistuff_gpu_top.png b/mods/digistuff/textures/digistuff_gpu_top.png similarity index 100% rename from digistuff/textures/digistuff_gpu_top.png rename to mods/digistuff/textures/digistuff_gpu_top.png diff --git a/digistuff/textures/digistuff_insulated_edge.png b/mods/digistuff/textures/digistuff_insulated_edge.png similarity index 100% rename from digistuff/textures/digistuff_insulated_edge.png rename to mods/digistuff/textures/digistuff_insulated_edge.png diff --git a/digistuff/textures/digistuff_insulated_full.png b/mods/digistuff/textures/digistuff_insulated_full.png similarity index 100% rename from digistuff/textures/digistuff_insulated_full.png rename to mods/digistuff/textures/digistuff_insulated_full.png diff --git a/digistuff/textures/digistuff_ioexp_top.png b/mods/digistuff/textures/digistuff_ioexp_top.png similarity index 100% rename from digistuff/textures/digistuff_ioexp_top.png rename to mods/digistuff/textures/digistuff_ioexp_top.png diff --git a/digistuff/textures/digistuff_junctionbox.png b/mods/digistuff/textures/digistuff_junctionbox.png similarity index 100% rename from digistuff/textures/digistuff_junctionbox.png rename to mods/digistuff/textures/digistuff_junctionbox.png diff --git a/digistuff/textures/digistuff_light.png b/mods/digistuff/textures/digistuff_light.png similarity index 100% rename from digistuff/textures/digistuff_light.png rename to mods/digistuff/textures/digistuff_light.png diff --git a/digistuff/textures/digistuff_magnetic_card.png b/mods/digistuff/textures/digistuff_magnetic_card.png similarity index 100% rename from digistuff/textures/digistuff_magnetic_card.png rename to mods/digistuff/textures/digistuff_magnetic_card.png diff --git a/mods/digistuff/textures/digistuff_movestone.png b/mods/digistuff/textures/digistuff_movestone.png new file mode 100644 index 00000000..4d083fc7 Binary files /dev/null and b/mods/digistuff/textures/digistuff_movestone.png differ diff --git a/digistuff/textures/digistuff_nic_top.png b/mods/digistuff/textures/digistuff_nic_top.png similarity index 100% rename from digistuff/textures/digistuff_nic_top.png rename to mods/digistuff/textures/digistuff_nic_top.png diff --git a/digistuff/textures/digistuff_panel_back.png b/mods/digistuff/textures/digistuff_panel_back.png similarity index 100% rename from digistuff/textures/digistuff_panel_back.png rename to mods/digistuff/textures/digistuff_panel_back.png diff --git a/digistuff/textures/digistuff_panel_bg.png b/mods/digistuff/textures/digistuff_panel_bg.png similarity index 100% rename from digistuff/textures/digistuff_panel_bg.png rename to mods/digistuff/textures/digistuff_panel_bg.png diff --git a/digistuff/textures/digistuff_panel_front.png b/mods/digistuff/textures/digistuff_panel_front.png similarity index 100% rename from digistuff/textures/digistuff_panel_front.png rename to mods/digistuff/textures/digistuff_panel_front.png diff --git a/digistuff/textures/digistuff_panel_locked.png b/mods/digistuff/textures/digistuff_panel_locked.png similarity index 100% rename from digistuff/textures/digistuff_panel_locked.png rename to mods/digistuff/textures/digistuff_panel_locked.png diff --git a/digistuff/textures/digistuff_panel_unlocked.png b/mods/digistuff/textures/digistuff_panel_unlocked.png similarity index 100% rename from digistuff/textures/digistuff_panel_unlocked.png rename to mods/digistuff/textures/digistuff_panel_unlocked.png diff --git a/digistuff/textures/digistuff_piezo_sides.png b/mods/digistuff/textures/digistuff_piezo_sides.png similarity index 100% rename from digistuff/textures/digistuff_piezo_sides.png rename to mods/digistuff/textures/digistuff_piezo_sides.png diff --git a/digistuff/textures/digistuff_piezo_top.png b/mods/digistuff/textures/digistuff_piezo_top.png similarity index 100% rename from digistuff/textures/digistuff_piezo_top.png rename to mods/digistuff/textures/digistuff_piezo_top.png diff --git a/digistuff/textures/digistuff_piston_sides.png b/mods/digistuff/textures/digistuff_piston_sides.png similarity index 100% rename from digistuff/textures/digistuff_piston_sides.png rename to mods/digistuff/textures/digistuff_piston_sides.png diff --git a/digistuff/textures/digistuff_ram_top.png b/mods/digistuff/textures/digistuff_ram_top.png similarity index 100% rename from digistuff/textures/digistuff_ram_top.png rename to mods/digistuff/textures/digistuff_ram_top.png diff --git a/digistuff/textures/digistuff_timer_top.png b/mods/digistuff/textures/digistuff_timer_top.png similarity index 100% rename from digistuff/textures/digistuff_timer_top.png rename to mods/digistuff/textures/digistuff_timer_top.png diff --git a/mods/digistuff/textures/digistuff_transparent.png b/mods/digistuff/textures/digistuff_transparent.png new file mode 100644 index 00000000..aa4056be Binary files /dev/null and b/mods/digistuff/textures/digistuff_transparent.png differ diff --git a/digistuff/textures/digistuff_ts_bg.png b/mods/digistuff/textures/digistuff_ts_bg.png similarity index 100% rename from digistuff/textures/digistuff_ts_bg.png rename to mods/digistuff/textures/digistuff_ts_bg.png diff --git a/digistuff/textures/digistuff_ts_front.png b/mods/digistuff/textures/digistuff_ts_front.png similarity index 100% rename from digistuff/textures/digistuff_ts_front.png rename to mods/digistuff/textures/digistuff_ts_front.png diff --git a/digistuff/timer.lua b/mods/digistuff/timer.lua similarity index 100% rename from digistuff/timer.lua rename to mods/digistuff/timer.lua diff --git a/mods/digistuff/touchscreen.lua b/mods/digistuff/touchscreen.lua new file mode 100644 index 00000000..d2889965 --- /dev/null +++ b/mods/digistuff/touchscreen.lua @@ -0,0 +1,359 @@ +digistuff.update_ts_formspec = function (pos) + local meta = minetest.get_meta(pos) + local fs = "size[10,8]".. + "background[0,0;0,0;digistuff_ts_bg.png;true]" + if meta:get_int("realcoordinates") > 0 then + fs = fs.."real_coordinates[true]" + end + if meta:get_int("init") == 0 then + fs = fs.."field[3.75,3;3,1;channel;Channel;]".. + "button_exit[4,3.75;2,1;save;Save]" + elseif minetest.get_node(pos).name == "digistuff:advtouchscreen" then + fs = fs.."label[0,0;No data received yet]" + else + local data = minetest.deserialize(meta:get_string("data")) or {} + for _,field in pairs(data) do + if field.type == "image" then + fs = fs..string.format("image[%s,%s;%s,%s;%s]",field.X,field.Y,field.W,field.H,field.texture_name) + elseif field.type == "field" then + fs = fs..string.format("field[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label,field.default) + elseif field.type == "pwdfield" then + fs = fs..string.format("pwdfield[%s,%s;%s,%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label) + elseif field.type == "textarea" then + fs = fs..string.format("textarea[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label,field.default) + elseif field.type == "label" then + fs = fs..string.format("label[%s,%s;%s]",field.X,field.Y,field.label) + elseif field.type == "vertlabel" then + fs = fs..string.format("vertlabel[%s,%s;%s]",field.X,field.Y,field.label) + elseif field.type == "button" then + fs = fs..string.format("button[%s,%s;%s,%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label) + elseif field.type == "button_exit" then + fs = fs..string.format("button_exit[%s,%s;%s,%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,field.label) + elseif field.type == "image_button" then + fs = fs..string.format("image_button[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.image,field.name,field.label) + elseif field.type == "image_button_exit" then + fs = fs..string.format("image_button_exit[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.image,field.name,field.label) + elseif field.type == "dropdown" then + local choices = "" + for _,i in ipairs(field.choices) do + if type(i) == "string" then + choices = choices..minetest.formspec_escape(i).."," + end + end + choices = string.sub(choices,1,-2) + fs = fs..string.format("dropdown[%s,%s;%s,%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,choices,field.selected_id) + elseif field.type == "textlist" then + local listelements = "" + for _,i in ipairs(field.listelements) do + if type(i) == "string" then + listelements = listelements..minetest.formspec_escape(i).."," + end + end + listelements = string.sub(listelements,1,-2) + fs = fs..string.format("textlist[%s,%s;%s,%s;%s;%s;%s;%s]",field.X,field.Y,field.W,field.H,field.name,listelements,field.selected_id,field.transparent) + end + end + end + meta:set_string("formspec",fs) +end + +digistuff.ts_on_receive_fields = function (pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local setchan = meta:get_string("channel") + local playername = sender:get_player_name() + local locked = meta:get_int("locked") == 1 + local can_bypass = minetest.check_player_privs(playername,{protection_bypass=true}) + local is_protected = minetest.is_protected(pos,playername) + if (locked and is_protected) and not can_bypass then + minetest.record_protection_violation(pos,playername) + minetest.chat_send_player(playername,"You are not authorized to use this screen.") + return + end + local init = meta:get_int("init") == 1 + if not init then + if fields.save then + meta:set_string("channel",fields.channel) + meta:set_int("init",1) + digistuff.update_ts_formspec(pos) + end + else + fields.clicker = sender:get_player_name() + digiline:receptor_send(pos, digiline.rules.default, setchan, fields) + end +end + +digistuff.process_command = function (meta, data, msg) + if msg.command == "clear" then + data = {} + elseif msg.command == "realcoordinates" then + meta:set_int("realcoordinates",msg.enabled and 1 or 0) + elseif msg.command == "addimage" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + if not msg.texture_name or type(msg.texture_name) ~= "string" then + return + end + local field = {type="image",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,texture_name=minetest.formspec_escape(msg.texture_name)} + table.insert(data,field) + elseif msg.command == "addfield" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"name","label","default"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="field",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label),default=minetest.formspec_escape(msg.default)} + table.insert(data,field) + elseif msg.command == "addpwdfield" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"name","label"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="pwdfield",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "addtextarea" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"name","label","default"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="textarea",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label),default=minetest.formspec_escape(msg.default)} + table.insert(data,field) + elseif msg.command == "addlabel" then + for _,i in pairs({"X","Y"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + if not msg.label or type(msg.label) ~= "string" then + return + end + local field = {type="label",X=msg.X,Y=msg.Y,label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "addvertlabel" then + for _,i in pairs({"X","Y"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + if not msg.label or type(msg.label) ~= "string" then + return + end + local field = {type="vertlabel",X=msg.X,Y=msg.Y,label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "addbutton" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"name","label"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="button",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "addbutton_exit" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"name","label"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="button_exit",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "addimage_button" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"image","name","label"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="image_button",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,image=minetest.formspec_escape(msg.image),name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "addimage_button_exit" then + for _,i in pairs({"X","Y","W","H"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + for _,i in pairs({"image","name","label"}) do + if not msg[i] or type(msg[i]) ~= "string" then + return + end + end + local field = {type="image_button_exit",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,image=minetest.formspec_escape(msg.image),name=minetest.formspec_escape(msg.name),label=minetest.formspec_escape(msg.label)} + table.insert(data,field) + elseif msg.command == "adddropdown" then + for _,i in pairs({"X","Y","W","H","selected_id"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + if not msg.name or type(msg.name) ~= "string" then + return + end + if not msg.choices or type(msg.choices) ~= "table" or #msg.choices < 1 then + return + end + local field = {type="dropdown",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),selected_id=msg.selected_id,choices=msg.choices} + table.insert(data,field) + elseif msg.command == "addtextlist" then + for _,i in pairs({"X","Y","W","H","selected_id"}) do + if not msg[i] or type(msg[i]) ~= "number" then + return + end + end + if not msg.name or type(msg.name) ~= "string" then + return + end + if not msg.listelements or type(msg.listelements) ~= "table" or #msg.listelements < 1 then + return + end + if not msg.transparent or type(msg.transparent) ~= "boolean" then + msg.transparent = false + end + local field = {type="textlist",X=msg.X,Y=msg.Y,W=msg.W,H=msg.H,name=minetest.formspec_escape(msg.name),selected_id=msg.selected_id,listelements=msg.listelements,transparent=msg.transparent} + table.insert(data,field) + elseif msg.command == "lock" then + meta:set_int("locked",1) + elseif msg.command == "unlock" then + meta:set_int("locked",0) + end + return data +end + +digistuff.ts_on_digiline_receive = function (pos, node, channel, msg) + local meta = minetest.get_meta(pos) + local setchan = meta:get_string("channel") + if channel ~= setchan then return end + if node.name == "digistuff:advtouchscreen" then + if type(msg) == "string" then meta:set_string("formspec",msg) end + else + if type(msg) ~= "table" then return end + local data = minetest.deserialize(meta:get_string("data")) or {} + if msg.command then + data = digistuff.process_command(meta,data,msg) + else + for _,i in ipairs(msg) do + if type(i) == "table" and i.command then + data = digistuff.process_command(meta,data,i) or data + end + end + end + meta:set_string("data",minetest.serialize(data)) + digistuff.update_ts_formspec(pos) + end +end + +minetest.register_node("digistuff:touchscreen", { + description = "Digilines Touchscreen", + groups = {cracky=3}, + on_construct = function(pos) + digistuff.update_ts_formspec(pos,true) + end, + drawtype = "nodebox", + tiles = { + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_ts_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + } + }, + _digistuff_channelcopier_fieldname = "channel", + _digistuff_channelcopier_onset = function(pos) + minetest.get_meta(pos):set_int("init",1) + digistuff.update_ts_formspec(pos) + end, + on_receive_fields = digistuff.ts_on_receive_fields, + digiline = + { + receptor = {}, + effector = { + action = digistuff.ts_on_digiline_receive + }, + }, +}) + +minetest.register_node("digistuff:advtouchscreen", { + description = "Advanced Digilines Touchscreen", + groups = {cracky=3}, + on_construct = function(pos) + digistuff.update_ts_formspec(pos,true) + end, + drawtype = "nodebox", + tiles = { + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_panel_back.png", + "digistuff_advts_front.png" + }, + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + { -0.5, -0.5, 0.4, 0.5, 0.5, 0.5 } + } + }, + _digistuff_channelcopier_fieldname = "channel", + _digistuff_channelcopier_onset = function(pos) + minetest.get_meta(pos):set_int("init",1) + digistuff.update_ts_formspec(pos) + end, + on_receive_fields = digistuff.ts_on_receive_fields, + digiline = + { + receptor = {}, + effector = { + action = digistuff.ts_on_digiline_receive + }, + }, +}) + +minetest.register_craft({ + output = "digistuff:touchscreen", + recipe = { + {"mesecons_luacontroller:luacontroller0000","default:glass","default:glass"}, + {"default:glass","digilines:lcd","default:glass"}, + {"default:glass","default:glass","default:glass"} + } +}) diff --git a/display_blocks_redo/COPYING b/mods/display_blocks_redo/COPYING similarity index 100% rename from display_blocks_redo/COPYING rename to mods/display_blocks_redo/COPYING diff --git a/display_blocks_redo/init.lua b/mods/display_blocks_redo/init.lua similarity index 100% rename from display_blocks_redo/init.lua rename to mods/display_blocks_redo/init.lua diff --git a/display_blocks_redo/mod.conf b/mods/display_blocks_redo/mod.conf similarity index 100% rename from display_blocks_redo/mod.conf rename to mods/display_blocks_redo/mod.conf diff --git a/display_blocks_redo/textures/display_blocks_redo_air_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_air_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_air_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_air_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_air_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_air_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_air_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_air_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_compressed_earth.png b/mods/display_blocks_redo/textures/display_blocks_redo_compressed_earth.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_compressed_earth.png rename to mods/display_blocks_redo/textures/display_blocks_redo_compressed_earth.png diff --git a/display_blocks_redo/textures/display_blocks_redo_earth_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_earth_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_earth_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_earth_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_earth_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_earth_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_earth_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_earth_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_empty_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_empty_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_empty_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_empty_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_fire_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_fire_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_fire_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_fire_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_fire_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_fire_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_fire_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_fire_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_glass_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_glass_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_glass_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_glass_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_glass_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_glass_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_glass_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_glass_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_industria_cube.png b/mods/display_blocks_redo/textures/display_blocks_redo_industria_cube.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_industria_cube.png rename to mods/display_blocks_redo/textures/display_blocks_redo_industria_cube.png diff --git a/display_blocks_redo/textures/display_blocks_redo_mese_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_mese_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_mese_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_mese_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_mese_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_mese_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_mese_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_mese_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_metal_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_metal_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_metal_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_metal_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_metal_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_metal_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_metal_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_metal_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_natura_cube.png b/mods/display_blocks_redo/textures/display_blocks_redo_natura_cube.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_natura_cube.png rename to mods/display_blocks_redo/textures/display_blocks_redo_natura_cube.png diff --git a/display_blocks_redo/textures/display_blocks_redo_titanium_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_titanium_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_titanium_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_titanium_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_titanium_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_titanium_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_titanium_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_titanium_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_universia_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_universia_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_universia_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_universia_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_universia_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_universia_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_universia_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_universia_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_uranium_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_uranium_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_uranium_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_uranium_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_uranium_block.png b/mods/display_blocks_redo/textures/display_blocks_redo_uranium_block.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_uranium_block.png rename to mods/display_blocks_redo/textures/display_blocks_redo_uranium_block.png diff --git a/display_blocks_redo/textures/display_blocks_redo_uranium_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_uranium_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_uranium_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_uranium_crystal.png diff --git a/display_blocks_redo/textures/display_blocks_redo_uranium_dust.png b/mods/display_blocks_redo/textures/display_blocks_redo_uranium_dust.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_uranium_dust.png rename to mods/display_blocks_redo/textures/display_blocks_redo_uranium_dust.png diff --git a/display_blocks_redo/textures/display_blocks_redo_uranium_ore.png b/mods/display_blocks_redo/textures/display_blocks_redo_uranium_ore.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_uranium_ore.png rename to mods/display_blocks_redo/textures/display_blocks_redo_uranium_ore.png diff --git a/display_blocks_redo/textures/display_blocks_redo_water_base.png b/mods/display_blocks_redo/textures/display_blocks_redo_water_base.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_water_base.png rename to mods/display_blocks_redo/textures/display_blocks_redo_water_base.png diff --git a/display_blocks_redo/textures/display_blocks_redo_water_crystal.png b/mods/display_blocks_redo/textures/display_blocks_redo_water_crystal.png similarity index 100% rename from display_blocks_redo/textures/display_blocks_redo_water_crystal.png rename to mods/display_blocks_redo/textures/display_blocks_redo_water_crystal.png diff --git a/mods/doors/README.txt b/mods/doors/README.txt new file mode 100644 index 00000000..f9caaffc --- /dev/null +++ b/mods/doors/README.txt @@ -0,0 +1,87 @@ +Minetest Game mod: doors +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) + +Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. + +Modified by sofar (sofar@foo-projects.org) (MIT): +Added Steel trapdoor. +Re-implemented most of the door algorithms, added meshes, UV wrapped texture. +Added doors API to facilitate coding mods accessing and operating doors. +Added Fence Gate model, code, and sounds. + +Various Minetest developers and contributors (MIT) + + +Authors of media (textures) +--------------------------- +Following textures created by Fernando Zapata (CC BY-SA 3.0): + door_wood.png + door_wood_a.png + door_wood_a_r.png + door_wood_b.png + door_wood_b_r.png + +Following textures created by BlockMen (CC BY-SA 3.0): + door_trapdoor.png + door_obsidian_glass_side.png + +Following textures created by celeron55 (CC BY-SA 3.0): + door_glass_a.png + door_glass_b.png + +Following textures created by PenguinDad (CC BY-SA 4.0): + door_glass.png + door_obsidian_glass.png + +Following textures created by sofar (CC-BY-SA-3.0): + doors_trapdoor_steel.png + +Following textures created by paramat (CC-BY-SA-3.0): + door_trapdoor_side.png + doors_trapdoor_steel_side.png + +Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): + door_obsidian_glass.png + +Glass door textures by Krock and paramat based on textures by VanessaE (CC BY-SA 3.0): + doors_door_glass.png + doors_item_glass.png + +All other textures (created by PilzAdam) (CC BY-SA 3.0): + +Door textures were converted to the new texture map by sofar, paramat and +red-001, under the same license as the originals. + + +Authors of media (models) +------------------------- +Door 3d models by sofar (CC-BY-SA-3.0) + - door_a.obj + - door_b.obj +Fence gate models by sofar (CC-BY-SA-3.0) + - fencegate_open.obj + - fencegate_closed.obj + + +Authors of media (sounds) +------------------------- +Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen + door_open.ogg +Closing-Sound created by bennstir (CC BY 3.0) + door_close.ogg +fencegate_open.ogg: + http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) +fencegate_close.ogg: + http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) + http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) +Steel door sounds open & close (CC-BY-3.0) by HazMatt + - http://www.freesound.org/people/HazMattt/sounds/187283/ + doors_steel_door_open.ogg + doors_steel_door_close.ogg +doors_glass_door_open.ogg, doors_glass_door_close.ogg: + https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) diff --git a/mods/doors/init.lua b/mods/doors/init.lua new file mode 100644 index 00000000..0e1eaee6 --- /dev/null +++ b/mods/doors/init.lua @@ -0,0 +1,886 @@ +-- doors/init.lua + +-- our API object +doors = {} + +doors.registered_doors = {} +doors.registered_trapdoors = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("doors") + + +local function replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("doors_owner") + if owner and owner ~= "" then + meta:set_string("owner", owner) + meta:set_string("doors_owner", "") + end +end + +-- returns an object to a door object or nil +function doors.get(pos) + local node_name = minetest.get_node(pos).name + if doors.registered_doors[node_name] then + -- A normal upright door + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return doors.door_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return doors.door_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return doors.door_toggle(self.pos, nil, player) + end, + state = function(self) + local state = minetest.get_meta(self.pos):get_int("state") + return state %2 == 1 + end + } + elseif doors.registered_trapdoors[node_name] then + -- A trapdoor + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return doors.trapdoor_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return doors.trapdoor_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return doors.trapdoor_toggle(self.pos, nil, player) + end, + state = function(self) + return minetest.get_node(self.pos).name:sub(-5) == "_open" + end + } + else + return nil + end +end + +-- this hidden node is placed on top of the bottom, and prevents +-- nodes from being placed in the top half of the door. +minetest.register_node("doors:hidden", { + description = S("Hidden Door Segment"), + inventory_image = "doors_hidden_segment.png^default_invisible_node_overlay.png", + wield_image = "doors_hidden_segment.png^default_invisible_node_overlay.png", + drawtype = "airlike", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + -- has to be walkable for falling nodes to stop falling. + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + floodable = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_blast = function() end, + -- 1px block inside door hinge near node top + collision_box = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, +}) + +-- table used to aid door opening/closing +local transform = { + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, + { + {v = "_c", param2 = 1}, + {v = "_c", param2 = 2}, + {v = "_c", param2 = 3}, + {v = "_c", param2 = 0}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_d", param2 = 3}, + {v = "_d", param2 = 0}, + {v = "_d", param2 = 1}, + {v = "_d", param2 = 2}, + }, +} + +function doors.door_toggle(pos, node, clicker) + local meta = minetest.get_meta(pos) + node = node or minetest.get_node(pos) + local def = minetest.registered_nodes[node.name] + local name = def.door.name + + local state = meta:get_string("state") + if state == "" then + -- fix up lvm-placed right-hinged doors, default closed + if node.name:sub(-2) == "_b" then + state = 2 + else + state = 0 + end + else + state = tonumber(state) + end + + replace_old_owner_information(pos) + + if clicker and not default.can_interact_with_node(clicker, pos) then + return false + end + + -- until Lua-5.2 we have no bitwise operators :( + if state % 2 == 1 then + state = state - 1 + else + state = state + 1 + end + + local dir = node.param2 + + -- It's possible param2 is messed up, so, validate before using + -- the input data. This indicates something may have rotated + -- the door, even though that is not supported. + if not transform[state + 1] or not transform[state + 1][dir + 1] then + return false + end + + if state % 2 == 0 then + minetest.sound_play(def.door.sounds[1], + {pos = pos, gain = 0.3, max_hear_distance = 10}, true) + else + minetest.sound_play(def.door.sounds[2], + {pos = pos, gain = 0.3, max_hear_distance = 10}, true) + end + + minetest.swap_node(pos, { + name = name .. transform[state + 1][dir+1].v, + param2 = transform[state + 1][dir+1].param2 + }) + meta:set_int("state", state) + + return true +end + + +local function on_place_node(place_to, newnode, + placer, oldnode, itemstack, pointed_thing) + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + local place_to_copy = {x = place_to.x, y = place_to.y, z = place_to.z} + local newnode_copy = + {name = newnode.name, param1 = newnode.param1, param2 = newnode.param2} + local oldnode_copy = + {name = oldnode.name, param1 = oldnode.param1, param2 = oldnode.param2} + local pointed_thing_copy = { + type = pointed_thing.type, + above = vector.new(pointed_thing.above), + under = vector.new(pointed_thing.under), + ref = pointed_thing.ref, + } + callback(place_to_copy, newnode_copy, placer, + oldnode_copy, itemstack, pointed_thing_copy) + end +end + +local function can_dig_door(pos, digger) + replace_old_owner_information(pos) + return default.can_interact_with_node(digger, pos) +end + +function doors.register(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + -- replace old doors of this type automatically + minetest.register_lbm({ + name = ":doors:replace_" .. name:gsub(":", "_"), + nodenames = {name.."_b_1", name.."_b_2"}, + action = function(pos, node) + local l = tonumber(node.name:sub(-1)) + local meta = minetest.get_meta(pos) + local h = meta:get_int("right") + 1 + local p2 = node.param2 + local replace = { + {{type = "a", state = 0}, {type = "a", state = 3}}, + {{type = "b", state = 1}, {type = "b", state = 2}} + } + local new = replace[l][h] + -- retain infotext and doors_owner fields + minetest.swap_node(pos, {name = name .. "_" .. new.type, param2 = p2}) + meta:set_int("state", new.state) + -- properly place doors:hidden at the right spot + local p3 = p2 + if new.state >= 2 then + p3 = (p3 + 3) % 4 + end + if new.state % 2 == 1 then + if new.state >= 2 then + p3 = (p3 + 1) % 4 + else + p3 = (p3 + 3) % 4 + end + end + -- wipe meta on top node as it's unused + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, + {name = "doors:hidden", param2 = p3}) + end + }) + + minetest.register_craftitem(":" .. name, { + description = def.description, + inventory_image = def.inventory_image, + groups = table.copy(def.groups), + + on_place = function(itemstack, placer, pointed_thing) + local pos + + if not pointed_thing.type == "node" then + return itemstack + end + + local node = minetest.get_node(pointed_thing.under) + local pdef = minetest.registered_nodes[node.name] + if pdef and pdef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return pdef.on_rightclick(pointed_thing.under, + node, placer, itemstack, pointed_thing) + end + + if pdef and pdef.buildable_to then + pos = pointed_thing.under + else + pos = pointed_thing.above + node = minetest.get_node(pos) + pdef = minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local top_node = minetest.get_node_or_nil(above) + local topdef = top_node and minetest.registered_nodes[top_node.name] + + if not topdef or not topdef.buildable_to then + return itemstack + end + + local pn = placer and placer:get_player_name() or "" + if minetest.is_protected(pos, pn) or minetest.is_protected(above, pn) then + return itemstack + end + + local dir = placer and minetest.dir_to_facedir(placer:get_look_dir()) or 0 + + local ref = { + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}, + } + + local aside = { + x = pos.x + ref[dir + 1].x, + y = pos.y + ref[dir + 1].y, + z = pos.z + ref[dir + 1].z, + } + + local state = 0 + if minetest.get_item_group(minetest.get_node(aside).name, "door") == 1 then + state = state + 2 + minetest.set_node(pos, {name = name .. "_b", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = (dir + 3) % 4}) + else + minetest.set_node(pos, {name = name .. "_a", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = dir}) + end + + local meta = minetest.get_meta(pos) + meta:set_int("state", state) + + if def.protected then + meta:set_string("owner", pn) + meta:set_string("infotext", def.description .. "\n" .. S("Owned by @1", pn)) + end + + if not minetest.is_creative_enabled(pn) then + itemstack:take_item() + end + + minetest.sound_play(def.sounds.place, {pos = pos}, true) + + on_place_node(pos, minetest.get_node(pos), + placer, node, itemstack, pointed_thing) + + return itemstack + end + }) + def.inventory_image = nil + + if def.recipe then + minetest.register_craft({ + output = name, + recipe = def.recipe, + }) + end + def.recipe = nil + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + def.groups.not_in_creative_inventory = 1 + def.groups.door = 1 + def.drop = name + def.door = { + name = name, + sounds = { def.sound_close, def.sound_open }, + } + if not def.on_rightclick then + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + doors.door_toggle(pos, node, clicker) + return itemstack + end + end + def.after_dig_node = function(pos, node, meta, digger) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.check_for_falling({x = pos.x, y = pos.y + 1, z = pos.z}) + end + def.on_rotate = function(pos, node, user, mode, new_param2) + return false + end + + if def.protected then + def.can_dig = can_dig_door + def.on_blast = function() end + def.on_key_use = function(pos, player) + local door = doors.get(pos) + door:toggle(player) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + + -- verify placer is owner of lockable door + if owner ~= pname then + minetest.record_protection_violation(pos, pname) + minetest.chat_send_player(pname, S("You do not own this locked door.")) + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, S("a locked door"), owner + end + def.node_dig_prediction = "" + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + -- hidden node doesn't get blasted away. + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + return {name} + end + end + + def.on_destruct = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + end + + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.sunlight_propagates = true + def.walkable = true + def.is_ground_content = false + def.buildable_to = false + def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + def.use_texture_alpha = "clip" + + def.mesh = "door_a.obj" + minetest.register_node(":" .. name .. "_a", def) + + def.mesh = "door_b.obj" + minetest.register_node(":" .. name .. "_b", def) + + def.mesh = "door_a2.obj" + minetest.register_node(":" .. name .. "_c", def) + + def.mesh = "door_b2.obj" + minetest.register_node(":" .. name .. "_d", def) + + doors.registered_doors[name .. "_a"] = true + doors.registered_doors[name .. "_b"] = true + doors.registered_doors[name .. "_c"] = true + doors.registered_doors[name .. "_d"] = true +end + +doors.register("door_wood", { + tiles = {{ name = "doors_door_wood.png", backface_culling = true }}, + description = S("Wooden Door"), + inventory_image = "doors_item_wood.png", + groups = {node = 1, choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + } +}) + +doors.register("door_steel", { + tiles = {{name = "doors_door_steel.png", backface_culling = true}}, + description = S("Steel Door"), + inventory_image = "doors_item_steel.png", + protected = true, + groups = {node = 1, cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + } +}) + +doors.register("door_glass", { + tiles = {"doors_door_glass.png"}, + description = S("Glass Door"), + inventory_image = "doors_item_glass.png", + groups = {node = 1, cracky=3, oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_glass_door_open", + sound_close = "doors_glass_door_close", + recipe = { + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + } +}) + +doors.register("door_obsidian_glass", { + tiles = {"doors_door_obsidian_glass.png"}, + description = S("Obsidian Glass Door"), + inventory_image = "doors_item_obsidian_glass.png", + groups = {node = 1, cracky=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_glass_door_open", + sound_close = "doors_glass_door_close", + recipe = { + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + }, +}) + +-- Capture mods using the old API as best as possible. +function doors.register_door(name, def) + if def.only_placer_can_open then + def.protected = true + end + def.only_placer_can_open = nil + + local i = name:find(":") + local modname = name:sub(1, i - 1) + if not def.tiles then + if def.protected then + def.tiles = {{name = "doors_door_steel.png", backface_culling = true}} + else + def.tiles = {{name = "doors_door_wood.png", backface_culling = true}} + end + minetest.log("warning", modname .. " registered door \"" .. name .. "\" " .. + "using deprecated API method \"doors.register_door()\" but " .. + "did not provide the \"tiles\" parameter. A fallback tiledef " .. + "will be used instead.") + end + + doors.register(name, def) +end + +----trapdoor---- + +function doors.trapdoor_toggle(pos, node, clicker) + node = node or minetest.get_node(pos) + + replace_old_owner_information(pos) + + if clicker and not default.can_interact_with_node(clicker, pos) then + return false + end + + local def = minetest.registered_nodes[node.name] + + if string.sub(node.name, -5) == "_open" then + minetest.sound_play(def.sound_close, + {pos = pos, gain = 0.3, max_hear_distance = 10}, true) + minetest.swap_node(pos, {name = string.sub(node.name, 1, + string.len(node.name) - 5), param1 = node.param1, param2 = node.param2}) + else + minetest.sound_play(def.sound_open, + {pos = pos, gain = 0.3, max_hear_distance = 10}, true) + minetest.swap_node(pos, {name = node.name .. "_open", + param1 = node.param1, param2 = node.param2}) + end +end + +function doors.register_trapdoor(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + local name_closed = name + local name_opened = name.."_open" + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + doors.trapdoor_toggle(pos, node, clicker) + return itemstack + end + + -- Common trapdoor configuration + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.is_ground_content = false + def.use_texture_alpha = "clip" + + if def.protected then + def.can_dig = can_dig_door + def.after_place_node = function(pos, placer, itemstack, pointed_thing) + local pn = placer:get_player_name() + local meta = minetest.get_meta(pos) + meta:set_string("owner", pn) + meta:set_string("infotext", def.description .. "\n" .. S("Owned by @1", pn)) + + return minetest.is_creative_enabled(pn) + end + + def.on_blast = function() end + def.on_key_use = function(pos, player) + local door = doors.get(pos) + door:toggle(player) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + + -- verify placer is owner of lockable door + if owner ~= pname then + minetest.record_protection_violation(pos, pname) + minetest.chat_send_player(pname, S("You do not own this trapdoor.")) + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, S("a locked trapdoor"), owner + end + def.node_dig_prediction = "" + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + return {name} + end + end + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_closed.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.tiles = { + def.tile_front, + def.tile_front .. '^[transformFY', + def.tile_side, + def.tile_side, + def.tile_side, + def.tile_side + } + + def_opened.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.tiles = { + def.tile_side, + def.tile_side .. '^[transform2', + def.tile_side .. '^[transform3', + def.tile_side .. '^[transform1', + def.tile_front .. '^[transform46', + def.tile_front .. '^[transform6' + } + + def_opened.drop = name_closed + def_opened.groups.not_in_creative_inventory = 1 + + minetest.register_node(name_opened, def_opened) + minetest.register_node(name_closed, def_closed) + + doors.registered_trapdoors[name_opened] = true + doors.registered_trapdoors[name_closed] = true +end + +doors.register_trapdoor("doors:trapdoor", { + description = S("Wooden Trapdoor"), + inventory_image = "doors_trapdoor.png", + wield_image = "doors_trapdoor.png", + tile_front = "doors_trapdoor.png", + tile_side = "doors_trapdoor_side.png", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1}, +}) + +doors.register_trapdoor("doors:trapdoor_steel", { + description = S("Steel Trapdoor"), + inventory_image = "doors_trapdoor_steel.png", + wield_image = "doors_trapdoor_steel.png", + tile_front = "doors_trapdoor_steel.png", + tile_side = "doors_trapdoor_steel_side.png", + protected = true, + sounds = default.node_sound_metal_defaults(), + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + groups = {cracky = 1, level = 2, door = 1}, +}) + +minetest.register_craft({ + output = "doors:trapdoor 2", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + {"", "", ""}, + } +}) + +minetest.register_craft({ + output = "doors:trapdoor_steel", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + } +}) + + +----fence gate---- +local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0 + +function doors.register_fencegate(name, def) + local fence = { + description = def.description, + drawtype = "mesh", + tiles = {}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + drop = name .. "_closed", + connect_sides = {"left", "right"}, + groups = def.groups, + sounds = def.sounds, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local node_def = minetest.registered_nodes[node.name] + minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2}) + minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3, + max_hear_distance = 8}, true) + return itemstack + end, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4} + }, + } + + + if type(def.texture) == "string" then + fence.tiles[1] = {name = def.texture, backface_culling = true} + elseif def.texture.backface_culling == nil then + fence.tiles[1] = table.copy(def.texture) + fence.tiles[1].backface_culling = true + else + fence.tiles[1] = def.texture + end + + if not fence.sounds then + fence.sounds = default.node_sound_wood_defaults() + end + + fence.groups.fence = 1 + + local fence_closed = table.copy(fence) + fence_closed.mesh = "doors_fencegate_closed.obj" + fence_closed.gate = name .. "_open" + fence_closed.sound = "doors_fencegate_open" + fence_closed.collision_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/8, 1/2, 1/2 + fence_collision_extra, 1/8} + } + + local fence_open = table.copy(fence) + fence_open.mesh = "doors_fencegate_open.obj" + fence_open.gate = name .. "_closed" + fence_open.sound = "doors_fencegate_close" + fence_open.groups.not_in_creative_inventory = 1 + fence_open.collision_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/8, -3/8, 1/2 + fence_collision_extra, 1/8}, + {-1/2, -3/8, -1/2, -3/8, 3/8, 0 }} + } + + minetest.register_node(":" .. name .. "_closed", fence_closed) + minetest.register_node(":" .. name .. "_open", fence_open) + + minetest.register_craft({ + output = name .. "_closed", + recipe = { + {"group:stick", def.material, "group:stick"}, + {"group:stick", def.material, "group:stick"} + } + }) +end + +doors.register_fencegate("doors:gate_wood", { + description = S("Apple Wood Fence Gate"), + texture = "default_wood.png", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_acacia_wood", { + description = S("Acacia Wood Fence Gate"), + texture = "default_acacia_wood.png", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_junglewood", { + description = S("Jungle Wood Fence Gate"), + texture = "default_junglewood.png", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_pine_wood", { + description = S("Pine Wood Fence Gate"), + texture = "default_pine_wood.png", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} +}) + +doors.register_fencegate("doors:gate_aspen_wood", { + description = S("Aspen Wood Fence Gate"), + texture = "default_aspen_wood.png", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} +}) + + +----fuels---- + +minetest.register_craft({ + type = "fuel", + recipe = "doors:trapdoor", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:door_wood", + burntime = 14, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_wood_closed", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_acacia_wood_closed", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_junglewood_closed", + burntime = 9, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_pine_wood_closed", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_aspen_wood_closed", + burntime = 5, +}) diff --git a/mods/doors/license.txt b/mods/doors/license.txt new file mode 100644 index 00000000..8ce73c49 --- /dev/null +++ b/mods/doors/license.txt @@ -0,0 +1,164 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar (sofar@foo-projects.org) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2011-2016 Fernando Zapata +Copyright (C) 2014-2016 celeron55 +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar +Copyright (C) 2016 red-001 +Copyright (C) 2016 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 PenguinDad + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2014 CGEffex +Copyright (C) 2014 bennstir +Copyright (C) 2016 BarkersPinhead +Copyright (C) 2016 rivernile7 +Copyright (C) 2016 HazMatt + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +mhtaylor67 +SkeetMasterFunk69 + +No Copyright + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all +without asking permission. See Other Information below. + +Other Information + +In no way are the patent or trademark rights of any person affected by CC0, nor are the +rights that other persons may have in the work or in how the work is used, such as +publicity or privacy rights. +Unless expressly stated otherwise, the person who associated a work with this deed makes +no warranties about the work, and disclaims liability for all uses of the work, to the +fullest extent permitted by applicable law. +When using or citing the work, you should not imply endorsement by the author or the +affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/mods/doors/locale/doors.de.tr b/mods/doors/locale/doors.de.tr new file mode 100644 index 00000000..79707ce8 --- /dev/null +++ b/mods/doors/locale/doors.de.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Verborgenes Türsegment +Owned by @1=Eigentum von @1 +You do not own this locked door.=Diese abgeschlossene Tür gehört Ihnen nicht. +a locked door=eine abgeschlossene Tür +Wooden Door=Holztür +Steel Door=Stahltür +Glass Door=Glastür +Obsidian Glass Door=Obsidianglastür +You do not own this trapdoor.=Diese Falltür gehört Ihnen nicht. +a locked trapdoor=eine abgeschlossene Falltür +Wooden Trapdoor=Holzfalltür +Steel Trapdoor=Stahlfalltür +Apple Wood Fence Gate=Apfelholzzauntor +Acacia Wood Fence Gate=Akazienholzzauntor +Jungle Wood Fence Gate=Dschungelholzzauntor +Pine Wood Fence Gate=Kiefernholzzauntor +Aspen Wood Fence Gate=Espenholzzauntor diff --git a/mods/doors/locale/doors.es.tr b/mods/doors/locale/doors.es.tr new file mode 100644 index 00000000..677f2dfd --- /dev/null +++ b/mods/doors/locale/doors.es.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segmento de puerta oculta +Owned by @1=Propiedad de @1 +You do not own this locked door.=Esta puerta cerrada no te pertenece. +a locked door=una puerta cerrada +Wooden Door=Puerta de madera +Steel Door=Puerta de acero +Glass Door=Puerta de vidrio +Obsidian Glass Door=Puerta de vidrio de obsidiana +You do not own this trapdoor.=Esta trampilla no te pertenece. +a locked trapdoor=una trampilla cerrada +Wooden Trapdoor=Trampilla de madera +Steel Trapdoor=Trampilla de acero +Apple Wood Fence Gate=Puerta de cerca de manzano +Acacia Wood Fence Gate=Puerta de cerca de acacia +Jungle Wood Fence Gate=Puerta de cerca de madera tropical +Pine Wood Fence Gate=Puerta de cerca de pino +Aspen Wood Fence Gate=Puerta de cerca de álamo diff --git a/mods/doors/locale/doors.fr.tr b/mods/doors/locale/doors.fr.tr new file mode 100644 index 00000000..930f75cc --- /dev/null +++ b/mods/doors/locale/doors.fr.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segment de porte cachée +Owned by @1=Possédée par @1 +You do not own this locked door.=Cette porte vérouillée ne vous appartient pas. +a locked door=une porte verouillée +Wooden Door=Porte en bois +Steel Door=Porte en acier +Glass Door=Porte en verre +Obsidian Glass Door=Porte en verre d'obsidienne +You do not own this trapdoor.=Vous ne possédez pas cette trappe. +a locked trapdoor=une trappe verouillée +Wooden Trapdoor=Trappe en bois +Steel Trapdoor=Trappe en acier +Apple Wood Fence Gate=Porte de clôture en bois de pommier +Acacia Wood Fence Gate=Porte de clôture en bois d'acacia +Jungle Wood Fence Gate=Porte de clôture en bois de la jungle +Pine Wood Fence Gate=Porte de clôture en bois de pin +Aspen Wood Fence Gate=Porte de clôture en bois de tremble diff --git a/mods/doors/locale/doors.id.tr b/mods/doors/locale/doors.id.tr new file mode 100644 index 00000000..3b749049 --- /dev/null +++ b/mods/doors/locale/doors.id.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Bagian Pintu Tersembunyi +Owned by @1=Milik @1 +You do not own this locked door.=Anda bukan pemilik pintu terkunci ini. +a locked door=pintu terkunci +Wooden Door=Pintu Kayu +Steel Door=Pintu Baja +Glass Door=Pintu Kaca +Obsidian Glass Door=Pintu Kaca Obsidian +You do not own this trapdoor.=Anda bukan pemilik pintu kolong ini. +a locked trapdoor=pintu kolong terkunci +Wooden Trapdoor=Pintu Kolong Kayu +Steel Trapdoor=Pintu Kolong Baja +Apple Wood Fence Gate=Gerbang Kayu Pohon Apel +Acacia Wood Fence Gate=Gerbang Kayu Akasia +Jungle Wood Fence Gate=Gerbang Kayu Pohon Rimba +Pine Wood Fence Gate=Gerbang Kayu Pinus +Aspen Wood Fence Gate=Gerbang Kayu Aspen diff --git a/mods/doors/locale/doors.it.tr b/mods/doors/locale/doors.it.tr new file mode 100644 index 00000000..ccd00d36 --- /dev/null +++ b/mods/doors/locale/doors.it.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segmento di porta nascosto +Owned by @1=Di proprietà di @1 +You do not own this locked door.=Non sei il proprietario di questa porta chiusa a chiave. +a locked door=una porta chiusa a chiave +Wooden Door=Porta di legno +Steel Door=Porta d'acciaio +Glass Door=Porta di vetro +Obsidian Glass Door=Porta di vetro d'ossidiana +You do not own this trapdoor.=Non sei il proprietario di questa botola. +a locked trapdoor=una botola chiusa a chiave +Wooden Trapdoor=Botola di legno +Steel Trapdoor=Botola d'acciaio +Apple Wood Fence Gate=Cancello della recinzione di legno di melo +Acacia Wood Fence Gate=Cancello della recinzione di legno d'acacia +Jungle Wood Fence Gate=Cancello della recinzione di legno della giungla +Pine Wood Fence Gate=Cancello della recinzione di legno di pino +Aspen Wood Fence Gate=Cancello della recinzione di legno di pioppo diff --git a/mods/doors/locale/doors.jbo.tr b/mods/doors/locale/doors.jbo.tr new file mode 100644 index 00000000..48daa0a8 --- /dev/null +++ b/mods/doors/locale/doors.jbo.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=lo se mipri pagbu be lo vrogai +Owned by @1=.i ti ponse zoi zo'i.@1.zo'i +You do not own this locked door.=.i do na ponse lo ti selstela vrogai +a locked door=lo selstela vrogai +Wooden Door=lo mudri vrogai +Steel Door=lo gasta vrogai +Glass Door=lo blaci vrogai +Obsidian Glass Door=lo je'erma'ablaci blaci vrogai +You do not own this trapdoor.=.i do na ponse lo ti selstela lolvrogai +a locked trapdoor=lo selstela lolvrogai +Wooden Trapdoor=lo mudri lolvrogai +Steel Trapdoor=lo gasta lolvrogai +Apple Wood Fence Gate=lo plise mudri garbimvrogai +Acacia Wood Fence Gate=lo atkaci,ia mudri garbimvrogai +Jungle Wood Fence Gate=lo glatimdemricfoi mudri garbimvrogai +Pine Wood Fence Gate=lo ckunu mudri garbimvrogai +Aspen Wood Fence Gate=lo mudrpopulu garbimvrogai diff --git a/mods/doors/locale/doors.ms.tr b/mods/doors/locale/doors.ms.tr new file mode 100644 index 00000000..93d6df2e --- /dev/null +++ b/mods/doors/locale/doors.ms.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segmen Pintu Tersembunyi +Owned by @1=Milik @1 +You do not own this locked door.=Anda bukan pemilik pintu berkunci ini. +a locked door=pintu berkunci +Wooden Door=Pintu Kayu +Steel Door=Pintu Keluli +Glass Door=Pintu Kaca +Obsidian Glass Door=Pintu Kaca Obsidia +You do not own this trapdoor.=Anda bukan pemilik pintu kolong ini. +a locked trapdoor=pintu kolong berkunci +Wooden Trapdoor=Pintu Kolong Kayu +Steel Trapdoor=Pintu Kolong Keluli +Apple Wood Fence Gate=Pintu Pagar Kayu Epal +Acacia Wood Fence Gate=Pintu Pagar Kayu Akasia +Jungle Wood Fence Gate=Pintu Pagar Kayu Hutan +Pine Wood Fence Gate=Pintu Pagar Kayu Pain +Aspen Wood Fence Gate=Pintu Pagar Kayu Aspen diff --git a/mods/doors/locale/doors.pt_BR.tr b/mods/doors/locale/doors.pt_BR.tr new file mode 100644 index 00000000..82324424 --- /dev/null +++ b/mods/doors/locale/doors.pt_BR.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segmento de Porta Oculto +Owned by @1=Propriedade de @1 +You do not own this locked door.=Você não é dono desta porta trancada. +a locked door=uma porta trancada +Wooden Door=Porta de Madeira +Steel Door=Porta de Aço +Glass Door=Porta de Vidro +Obsidian Glass Door=Porta de Vidro de Obsidiana +You do not own this trapdoor.=Você não é dono deste alçapão. +a locked trapdoor=um alçapão trancado +Wooden Trapdoor=Alçapão de Madeira +Steel Trapdoor=Alçapão de Aço +Apple Wood Fence Gate=Portão de Cerca de Macieira +Acacia Wood Fence Gate=Portão de Cerca de Acácia +Jungle Wood Fence Gate=Portão de Cerca de Madeira da Selva +Pine Wood Fence Gate=Portão de Cerca de Pinheiro +Aspen Wood Fence Gate=Portão de Cerca de Álamo diff --git a/mods/doors/locale/doors.ru.tr b/mods/doors/locale/doors.ru.tr new file mode 100644 index 00000000..dc5c3c09 --- /dev/null +++ b/mods/doors/locale/doors.ru.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Спрятанная Часть Двери +Owned by @1=Владелец: @1 +You do not own this locked door.=Вы не владелец этой заблокированной двери. +a locked door=заблокированная дверь +Wooden Door=Деревянная Дверь +Steel Door=Стальная Дверь +Glass Door=Стеклянная Дверь +Obsidian Glass Door=Дверь Из Обсидианового Стекла +You do not own this trapdoor.=Вы не владелец этого люка. +a locked trapdoor=заблокированный люк +Wooden Trapdoor=Деревянный Люк +Steel Trapdoor=Стальной Люк +Apple Wood Fence Gate=Яблоневая Деревянная Калитка +Acacia Wood Fence Gate=Деревянная Калитка Из Акации +Jungle Wood Fence Gate=Деревянная Калитка Из Тропического Дерева +Pine Wood Fence Gate=Сосновая Деревянная Калитка +Aspen Wood Fence Gate=Осиновая Деревянная Калитка diff --git a/mods/doors/locale/doors.se.tr b/mods/doors/locale/doors.se.tr new file mode 100644 index 00000000..1f856ef1 --- /dev/null +++ b/mods/doors/locale/doors.se.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Dold dörrsegment +Owned by @1=Ägd av @1 +You do not own this locked door.=Du äger inte denna låsta dörr. +a locked door=en låst dörr +Wooden Door=Trä Dörr +Steel Door=Stål Dörr +Glass Door=Glas Dörr +Obsidian Glass Door=Obsidian Glas Dörr +You do not own this trapdoor.=Du äger inte denna fallucka +a locked trapdoor=en låst fallucka +Wooden Trapdoor=Trä Fallucka +Steel Trapdoor=Stål Fallucka +Apple Wood Fence Gate=Äpple Trä Fallucka +Acacia Wood Fence Gate=Akacia Trä Fallucka +Jungle Wood Fence Gate=Djungel Trä Fallucka +Pine Wood Fence Gate=Tall Trä Fallucka +Aspen Wood Fence Gate=Asp Trä Fallucka diff --git a/mods/doors/locale/doors.sk.tr b/mods/doors/locale/doors.sk.tr new file mode 100644 index 00000000..e6943ac3 --- /dev/null +++ b/mods/doors/locale/doors.sk.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Skrytá časť dverí +Owned by @1=Vlastník - @1 +You do not own this locked door.=Nevlastníš tieto uzamknuté dvere. +a locked door=uzamknuté dvere +Wooden Door=Drevené dvere +Steel Door=Oceľové dvere +Glass Door=Sklenené dvere +Obsidian Glass Door=Obsidiánové sklenené dvere +You do not own this trapdoor.=Nevlastníš tieto padacie dvere. +a locked trapdoor=uzamknuté padacie dvere +Wooden Trapdoor=Drevené padacie dvere +Steel Trapdoor=Oceľové padacie dvere +Apple Wood Fence Gate=Drevený plot z jablone +Acacia Wood Fence Gate=Drevený plot z akácie +Jungle Wood Fence Gate=Drevený plot z džungľového dreva +Pine Wood Fence Gate=Drevený plot z borovice +Aspen Wood Fence Gate=Drevený plot z osiky diff --git a/mods/doors/locale/doors.zh_CN.tr b/mods/doors/locale/doors.zh_CN.tr new file mode 100644 index 00000000..50f38c05 --- /dev/null +++ b/mods/doors/locale/doors.zh_CN.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=隐藏门段 +Owned by @1=由@1拥有 +You do not own this locked door.=这个门不属于你所有。 +a locked door=一扇已上锁的门 +Wooden Door=木门 +Steel Door=铁门 +Glass Door=玻璃门 +Obsidian Glass Door=黑曜石玻璃门 +You do not own this trapdoor.=这个活板门不属于你所有。 +a locked trapdoor=一扇已上锁的活板门 +Wooden Trapdoor=木活板门 +Steel Trapdoor=铁活板门 +Apple Wood Fence Gate=苹果木栅栏门 +Acacia Wood Fence Gate=相思木栅栏门 +Jungle Wood Fence Gate=丛林木栅栏门 +Pine Wood Fence Gate=松木栅栏门 +Aspen Wood Fence Gate=白杨木栅栏门 diff --git a/mods/doors/locale/doors.zh_TW.tr b/mods/doors/locale/doors.zh_TW.tr new file mode 100644 index 00000000..81e06fcc --- /dev/null +++ b/mods/doors/locale/doors.zh_TW.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=隱藏門段 +Owned by @1=由@1擁有 +You do not own this locked door.=這個門不屬於你所有。 +a locked door=一扇已上鎖的門 +Wooden Door=木門 +Steel Door=鐵門 +Glass Door=玻璃門 +Obsidian Glass Door=黑曜石玻璃門 +You do not own this trapdoor.=這個活板門不屬於你所有。 +a locked trapdoor=一扇已上鎖的活板門 +Wooden Trapdoor=木活板門 +Steel Trapdoor=鐵活板門 +Apple Wood Fence Gate=蘋果木柵欄門 +Acacia Wood Fence Gate=相思木柵欄門 +Jungle Wood Fence Gate=叢林木柵欄門 +Pine Wood Fence Gate=松木柵欄門 +Aspen Wood Fence Gate=白楊木柵欄門 diff --git a/mods/doors/locale/template.txt b/mods/doors/locale/template.txt new file mode 100644 index 00000000..8b5c349c --- /dev/null +++ b/mods/doors/locale/template.txt @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment= +Owned by @1= +You do not own this locked door.= +a locked door= +Wooden Door= +Steel Door= +Glass Door= +Obsidian Glass Door= +You do not own this trapdoor.= +a locked trapdoor= +Wooden Trapdoor= +Steel Trapdoor= +Apple Wood Fence Gate= +Acacia Wood Fence Gate= +Jungle Wood Fence Gate= +Pine Wood Fence Gate= +Aspen Wood Fence Gate= diff --git a/mods/doors/mod.conf b/mods/doors/mod.conf new file mode 100644 index 00000000..de053c27 --- /dev/null +++ b/mods/doors/mod.conf @@ -0,0 +1,4 @@ +name = doors +description = Minetest Game mod: doors +depends = default +optional_depends = screwdriver diff --git a/mods/doors/models/door_a.obj b/mods/doors/models/door_a.obj new file mode 100644 index 00000000..7948f2f3 --- /dev/null +++ b/mods/doors/models/door_a.obj @@ -0,0 +1,40 @@ +# Blender v2.76 (sub 0) OBJ File: 'door_a.blend' +# www.blender.org +mtllib door_a.mtl +o door_a +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +vt 0.842105 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.421053 1.000000 +vt 0.421053 0.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/5/2 8/1/2 7/4/2 3/6/2 +f 8/2/3 6/7/3 5/8/3 7/3/3 +f 6/9/4 2/5/4 1/6/4 5/10/4 +f 1/11/5 3/12/5 7/7/5 5/13/5 +f 6/14/6 8/8/6 4/12/6 2/11/6 diff --git a/mods/doors/models/door_a2.obj b/mods/doors/models/door_a2.obj new file mode 100644 index 00000000..3bedc202 --- /dev/null +++ b/mods/doors/models/door_a2.obj @@ -0,0 +1,50 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib door_a2.mtl +o door_a2 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.842105 1.000000 +vt 0.421052 1.000000 +vt 0.421052 0.000000 +vt 0.000001 0.000000 +vt 0.000001 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.947368 0.000000 +vt 0.947368 1.000000 +vt 0.842105 1.000000 +vt 0.842105 0.000000 +vt 0.421052 0.000000 +vt 0.421052 1.000000 +vt 0.947368 0.000000 +vt 0.947368 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 0.947368 1.000000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None.009 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 4/5/2 3/6/2 5/7/2 6/8/2 +f 6/9/3 5/10/3 7/11/3 8/12/3 +f 8/13/4 7/14/4 2/15/4 1/16/4 +f 2/17/5 7/18/5 5/19/5 3/20/5 +f 8/21/6 1/22/6 4/23/6 6/24/6 diff --git a/mods/doors/models/door_b.obj b/mods/doors/models/door_b.obj new file mode 100644 index 00000000..87f1729c --- /dev/null +++ b/mods/doors/models/door_b.obj @@ -0,0 +1,50 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib door_b.mtl +o door_b +v 0.499000 1.499000 -0.499000 +v 0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.499000 +vt 0.894736 1.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.894736 0.000000 +vt 0.842105 1.000000 +vt 0.421053 1.000000 +vt 0.421053 0.000000 +vt 0.842105 0.000000 +vt 0.842105 1.000000 +vt 0.894736 1.000000 +vt 0.894736 0.000000 +vt 0.842105 0.000000 +vt 0.421053 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.421053 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 0.947368 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.947368 0.000000 +vt 0.947368 0.500000 +vt 1.000000 0.500000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None.007 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 2/5/2 5/6/2 6/7/2 3/8/2 +f 5/9/3 7/10/3 8/11/3 6/12/3 +f 7/13/4 1/14/4 4/15/4 8/16/4 +f 4/17/5 3/18/5 6/19/5 8/20/5 +f 7/21/6 5/22/6 2/23/6 1/24/6 diff --git a/mods/doors/models/door_b2.obj b/mods/doors/models/door_b2.obj new file mode 100644 index 00000000..35632a5e --- /dev/null +++ b/mods/doors/models/door_b2.obj @@ -0,0 +1,50 @@ +# Blender v2.79 (sub 0) OBJ File: '' +# www.blender.org +mtllib door_b2.mtl +o door_b2 +v 0.499000 1.499000 -0.499000 +v 0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.499000 +vt 0.842105 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.421052 1.000000 +vt 0.000001 1.000000 +vt 0.000001 0.000000 +vt 0.421052 0.000000 +vt 0.894737 1.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.894737 0.000000 +vt 0.842105 1.000000 +vt 0.421052 1.000000 +vt 0.421052 0.000000 +vt 0.842105 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 0.947368 1.000000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vt 0.947368 0.000000 +vt 0.947368 0.500000 +vt 1.000000 0.500000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +usemtl None.010 +s 1 +f 1/1/1 2/2/1 3/3/1 4/4/1 +f 2/5/2 5/6/2 6/7/2 3/8/2 +f 5/9/3 7/10/3 8/11/3 6/12/3 +f 7/13/4 1/14/4 4/15/4 8/16/4 +f 4/17/5 3/18/5 6/19/5 8/20/5 +f 7/21/6 5/22/6 2/23/6 1/24/6 diff --git a/mods/doors/models/doors_fencegate_closed.obj b/mods/doors/models/doors_fencegate_closed.obj new file mode 100644 index 00000000..0050f70e --- /dev/null +++ b/mods/doors/models/doors_fencegate_closed.obj @@ -0,0 +1,106 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_closed.blend' +# www.blender.org +mtllib gate_closed.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v -0.375000 0.187500 0.062500 +v -0.375000 0.312500 0.062500 +v -0.375000 0.187500 -0.062500 +v -0.375000 0.312500 -0.062500 +v 0.375000 0.187500 0.062500 +v 0.375000 0.312500 0.062500 +v 0.375000 0.187500 -0.062500 +v 0.375000 0.312500 -0.062500 +v -0.374831 0.187348 0.062500 +v -0.156342 0.187363 0.062500 +v -0.374831 0.187348 -0.062500 +v -0.156342 0.187363 -0.062500 +v 0.374981 -0.343683 0.062500 +v 0.375065 -0.187304 0.062500 +v 0.374981 -0.343683 -0.062500 +v 0.375065 -0.187304 -0.062500 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.578000 -0.816100 0.000000 +vn 0.576200 0.817300 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/2 24/3/2 23/19/2 19/20/2 +f 22/1/4 18/4/4 17/21/4 21/22/4 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/2 32/28/2 31/29/2 27/30/2 +f 30/31/4 26/32/4 25/33/4 29/34/4 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 diff --git a/mods/doors/models/doors_fencegate_open.obj b/mods/doors/models/doors_fencegate_open.obj new file mode 100644 index 00000000..3fb727f4 --- /dev/null +++ b/mods/doors/models/doors_fencegate_open.obj @@ -0,0 +1,112 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_open.blend' +# www.blender.org +mtllib gate_open.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v 0.434859 0.187500 -0.872359 +v 0.434859 0.312500 -0.872359 +v 0.559859 0.187500 -0.872359 +v 0.559859 0.312500 -0.872359 +v 0.434859 0.187500 -0.122359 +v 0.434859 0.312500 -0.122359 +v 0.559859 0.187500 -0.122359 +v 0.559859 0.312500 -0.122359 +v 0.434859 0.187348 -0.872190 +v 0.434859 0.187363 -0.653701 +v 0.559859 0.187348 -0.872190 +v 0.559859 0.187363 -0.653701 +v 0.434859 -0.343683 -0.122379 +v 0.434859 -0.187304 -0.122294 +v 0.559859 -0.343683 -0.122379 +v 0.559859 -0.187304 -0.122294 +v 0.499560 -0.442900 0.005495 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vt 0.312500 0.625000 +vt 0.312500 0.500000 +vt 0.187500 0.500000 +vt 0.187500 0.625000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.816100 -0.578000 +vn 0.000000 0.817300 0.576200 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/3 24/3/3 23/19/3 19/20/3 +f 22/1/1 18/4/1 17/21/1 21/22/1 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/3 32/28/3 31/29/3 27/30/3 +f 30/31/1 26/32/1 25/33/1 29/34/1 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 +f 17/41/2 18/42/2 20/43/2 19/44/2 diff --git a/mods/doors/sounds/doors_door_close.ogg b/mods/doors/sounds/doors_door_close.ogg new file mode 100644 index 00000000..fede4af3 Binary files /dev/null and b/mods/doors/sounds/doors_door_close.ogg differ diff --git a/mods/doors/sounds/doors_door_open.ogg b/mods/doors/sounds/doors_door_open.ogg new file mode 100644 index 00000000..9a4c4f11 Binary files /dev/null and b/mods/doors/sounds/doors_door_open.ogg differ diff --git a/mods/doors/sounds/doors_fencegate_close.ogg b/mods/doors/sounds/doors_fencegate_close.ogg new file mode 100644 index 00000000..d42590ff Binary files /dev/null and b/mods/doors/sounds/doors_fencegate_close.ogg differ diff --git a/mods/doors/sounds/doors_fencegate_open.ogg b/mods/doors/sounds/doors_fencegate_open.ogg new file mode 100644 index 00000000..f6dfd1d9 Binary files /dev/null and b/mods/doors/sounds/doors_fencegate_open.ogg differ diff --git a/mods/doors/sounds/doors_glass_door_close.ogg b/mods/doors/sounds/doors_glass_door_close.ogg new file mode 100644 index 00000000..b3c13559 Binary files /dev/null and b/mods/doors/sounds/doors_glass_door_close.ogg differ diff --git a/mods/doors/sounds/doors_glass_door_open.ogg b/mods/doors/sounds/doors_glass_door_open.ogg new file mode 100644 index 00000000..66e6812d Binary files /dev/null and b/mods/doors/sounds/doors_glass_door_open.ogg differ diff --git a/mods/doors/sounds/doors_steel_door_close.ogg b/mods/doors/sounds/doors_steel_door_close.ogg new file mode 100644 index 00000000..aea7be67 Binary files /dev/null and b/mods/doors/sounds/doors_steel_door_close.ogg differ diff --git a/mods/doors/sounds/doors_steel_door_open.ogg b/mods/doors/sounds/doors_steel_door_open.ogg new file mode 100644 index 00000000..de874770 Binary files /dev/null and b/mods/doors/sounds/doors_steel_door_open.ogg differ diff --git a/mods/doors/textures/doors_door_glass.png b/mods/doors/textures/doors_door_glass.png new file mode 100644 index 00000000..ea6fdc1f Binary files /dev/null and b/mods/doors/textures/doors_door_glass.png differ diff --git a/mods/doors/textures/doors_door_obsidian_glass.png b/mods/doors/textures/doors_door_obsidian_glass.png new file mode 100644 index 00000000..fab25b34 Binary files /dev/null and b/mods/doors/textures/doors_door_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_door_steel.png b/mods/doors/textures/doors_door_steel.png new file mode 100644 index 00000000..9e33ff1a Binary files /dev/null and b/mods/doors/textures/doors_door_steel.png differ diff --git a/mods/doors/textures/doors_door_wood.png b/mods/doors/textures/doors_door_wood.png new file mode 100644 index 00000000..c073faf1 Binary files /dev/null and b/mods/doors/textures/doors_door_wood.png differ diff --git a/mods/doors/textures/doors_hidden_segment.png b/mods/doors/textures/doors_hidden_segment.png new file mode 100644 index 00000000..b3b6f34c Binary files /dev/null and b/mods/doors/textures/doors_hidden_segment.png differ diff --git a/mods/doors/textures/doors_item_glass.png b/mods/doors/textures/doors_item_glass.png new file mode 100644 index 00000000..fcdb153d Binary files /dev/null and b/mods/doors/textures/doors_item_glass.png differ diff --git a/mods/doors/textures/doors_item_obsidian_glass.png b/mods/doors/textures/doors_item_obsidian_glass.png new file mode 100644 index 00000000..5780ad8f Binary files /dev/null and b/mods/doors/textures/doors_item_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_item_steel.png b/mods/doors/textures/doors_item_steel.png new file mode 100644 index 00000000..dd99e136 Binary files /dev/null and b/mods/doors/textures/doors_item_steel.png differ diff --git a/mods/doors/textures/doors_item_wood.png b/mods/doors/textures/doors_item_wood.png new file mode 100644 index 00000000..d3a62ab1 Binary files /dev/null and b/mods/doors/textures/doors_item_wood.png differ diff --git a/mods/doors/textures/doors_trapdoor.png b/mods/doors/textures/doors_trapdoor.png new file mode 100644 index 00000000..e92c8b2e Binary files /dev/null and b/mods/doors/textures/doors_trapdoor.png differ diff --git a/mods/doors/textures/doors_trapdoor_side.png b/mods/doors/textures/doors_trapdoor_side.png new file mode 100644 index 00000000..55981ea3 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_side.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel.png b/mods/doors/textures/doors_trapdoor_steel.png new file mode 100644 index 00000000..4ba507d6 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_steel.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel_side.png b/mods/doors/textures/doors_trapdoor_steel_side.png new file mode 100644 index 00000000..e29c59e0 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_steel_side.png differ diff --git a/dreambuilder_mp_extras/LICENSE b/mods/dreambuilder_extras/LICENSE similarity index 100% rename from dreambuilder_mp_extras/LICENSE rename to mods/dreambuilder_extras/LICENSE diff --git a/mods/dreambuilder_extras/customize-dreambuilder-game.sh b/mods/dreambuilder_extras/customize-dreambuilder-game.sh new file mode 100755 index 00000000..ec760336 --- /dev/null +++ b/mods/dreambuilder_extras/customize-dreambuilder-game.sh @@ -0,0 +1,227 @@ +#!/bin/bash + +# This script manages all of the various individual changes +# for dreambuilder, e.g. updating mods, copying file components, +# making changes to the code, etc. + +upstream_mods_path="/home/vanessa/Minetest-related/mods" +minetest_game_path="/home/vanessa/Minetest-related/games/minetest_game/" +game_path=$upstream_mods_path"/my_mods/dreambuilder_game" + +if [ ! -d "$upstream_mods_path" ] ; then + if [ ! -z $2 ] ; then + upstream_mods_path=$1 + minetest_game_path=$2 + else + echo "Script does not appear to be running on Vanessa's PC, so you must supply mod and game paths." + echo -e "\nUsage: customize-dreambuilder-game.sh " + exit 1 + fi +fi + +workdir="/run/shm/dreambuilder_game" + +echo -e "\nSetting up..." + +rm -rf $game_path/* $workdir* +mkdir $workdir + +echo -e "\nAdding minetest_game as the base..." + +cp -a $minetest_game_path/* $workdir + +echo -e "\nConfiguring it..." + +rm -rf $workdir/mods/bones \ + $workdir/mods/tnt \ + $workdir/mods/mtg_craftguide \ + $workdir/mods/sethome \ + $workdir/mods/farming + +cp -a $upstream_mods_path"/my_mods/dreambuilder_extras" $workdir/mods + +rm $workdir"/README.md" \ + $workdir"/mods/default/README.txt" \ + $workdir"/game.conf" \ + $workdir"/minetest.conf" \ + $workdir"/minetest.conf.example" \ + $workdir"/settingtypes.txt" \ + $workdir"/screenshot.png" \ + $workdir"/menu/icon.png" \ + $workdir"/menu/header.png" + +mv $workdir"/mods/dreambuilder_extras/README.md" $workdir +mv $workdir"/mods/dreambuilder_extras/default_README.txt" $workdir"/mods/default/README.txt" +mv $workdir"/mods/dreambuilder_extras/game.conf" $workdir +mv $workdir"/mods/dreambuilder_extras/minetest.conf" $workdir +mv $workdir"/mods/dreambuilder_extras/minetest.conf.example" $workdir +mv $workdir"/mods/dreambuilder_extras/settingtypes.txt" $workdir +mv $workdir"/mods/dreambuilder_extras/dreambuilder_screenshot.png" $workdir"/screenshot.png" +mv $workdir"/mods/dreambuilder_extras/dreambuilder_menu_icon.png" $workdir"/menu/icon.png" +mv $workdir"/mods/dreambuilder_extras/dreambuilder_menu_overlay.png" $workdir"/menu/background.png" + +sed -i 's/Apple Wood Planks/Wood Planks/g' $workdir"/mods/default/nodes.lua" +sed -i 's/Apple Tree Leaves/Leaves/' $workdir"/mods/default/nodes.lua" +sed -i 's/Apple Tree Sapling/Sapling/' $workdir"/mods/default/nodes.lua" +sed -i 's/Apple Tree/Tree/' $workdir"/mods/default/nodes.lua" + +echo -e "\nBring all mods up-to-date from "$upstream_mods_path + +cd $upstream_mods_path + +# No trailing slashes on these items' paths! +LINK_MODS_LIST="my_mods/biome_lib \ +my_mods/coloredwood \ +my_mods/currency \ +my_mods/gloopblocks \ +my_mods/ilights \ +my_mods/moretrees \ +my_mods/misc_overrides \ +my_mods/nixie_tubes \ +my_mods/led_marquee \ +my_mods/pipeworks \ +my_mods/signs_lib \ +my_mods/basic_signs \ +my_mods/street_signs \ +my_mods/unifieddyes \ +my_mods/simple_streetlights \ +my_mods/basic_materials \ +my_mods/dreambuilder_hotbar \ +Calinous_mods/bedrock \ +Calinous_mods/maptools \ +Calinous_mods/moreores \ +Sokomines_mods/cottages \ +Sokomines_mods/locks \ +Sokomines_mods/travelnet \ +Sokomines_mods/windmill \ +RBAs_mods/datastorage \ +RBAs_mods/framedglass \ +RBAs_mods/unified_inventory \ +Mossmanikins_mods/memorandum \ +cheapies_mods/plasticbox \ +cheapies_mods/prefab_redo \ +cheapies_mods/invsaw \ +cheapies_mods/unifiedmesecons \ +cheapies_mods/digistuff \ +cheapies_mods/rgblightstone \ +cheapies_mods/solidcolor \ +cheapies_mods/arrowboards \ +cheapies_mods/digidisplay \ +cheapies_mods/display_blocks_redo \ +Jeijas_mods/digilines \ +Jeijas_mods/jumping \ +TenPlus1s_mods/farming \ +TenPlus1s_mods/bees \ +TenPlus1s_mods/bakedclay \ +TenPlus1s_mods/cblocks \ +TenPlus1s_mods/bonemeal \ +TenPlus1s_mods/ambience \ +tumeninodes-mods/facade \ +Zeg9s_mods/steel \ +DonBatmans_mods/mymillwork \ +HybridDogs_mods/titanium \ +HybridDogs_mods/function_delayer \ +quartz \ +stained_glass \ +gardening \ +caverealms_lite \ +deezls_mods/extra_stairsplus \ +blox \ +new_campfire \ +item_drop" + +COPY_MODS_LIST=" +nekogloops_mods/glooptest \ +Calinous_mods/moreblocks \ +CWzs_mods/replacer \ +CWzs_mods/player_textures \ +bobblocks \ +unifiedbricks" + +LINK_MODPACKS_LIST="$(ls -d my_mods/homedecor_modpack/*/) \ +$(ls -d my_mods/plantlife_modpack/*/) \ +$(ls -d Zeg9s_mods/ufos/*/) \ +$(ls -d Jeijas_mods/mesecons/*/) \ +$(ls -d cheapies_mods/roads/*/) \ +$(ls -d cool_trees/*/)" + +COPY_MODPACKS_LIST="$(ls -d RBAs_mods/technic/*/) \ +$(ls -d Philipbenrs_mods/castle-modpack/*/) \ +$(ls -d worldedit/*/)" + + +for i in $LINK_MODS_LIST; do + ln -s $upstream_mods_path"/"$i $workdir/mods +done + +for i in $(echo $LINK_MODPACKS_LIST |sed "s:/ : :g; s:/$::"); do + ln -s $upstream_mods_path"/"$i $workdir/mods +done + +for i in $COPY_MODS_LIST; do + rsync -a $upstream_mods_path"/"$i $workdir/mods --exclude .git* +done + +for i in $(echo $COPY_MODPACKS_LIST |sed "s:/ : :g; s:/$::"); do + rsync -a $upstream_mods_path"/"$i $workdir/mods --exclude .git* +done + +# above, all the stuff of the form $(ls -d foo/*/) are modpacks +# those special commands copy out just the folders from within. + +echo -e "\nConfiguring the rest of Dreambuilder..." + +# Disable some components + +rm -f $workdir/mods/dreambuilder_extras/models/character.b3d + +rm -rf $workdir/mods/orbs_of_time + +rm -f $workdir/mods/bobblocks/trap.lua +touch $workdir/mods/bobblocks/trap.lua + +rm -f $workdir/mods/replacer/inspect.lua +touch $workdir/mods/replacer/inspect.lua + +rm -rf $workdir/mods/wrench + +sed -i "s/bucket//" \ + $workdir/mods/unifiedbricks/depends.txt + +sed -i "s/mesecons =/foo =/" \ + $workdir/mods/bobblocks/blocks.lua + +sed -i "s/LOAD_OTHERGEN_MODULE = true/LOAD_OTHERGEN_MODULE = false/" \ + $workdir/mods/glooptest/module.cfg + +rm -rf $workdir/mods/worldedit_brush + +# Add in all of the regular player skins for the player_textures mod + +rm -f $workdir/mods/player_textures/textures/* + +LIST="player_Calinou.png +player_cheapie.png +player_kaeza.png +player_Sokomine.png +player_VanessaE.png" + +while read -r FILE; do +cp $upstream_mods_path"/../player_skins/"$FILE \ + $workdir/mods/player_textures/textures +done <<< "$LIST" + +rsync -aL \ + --exclude=".git*" \ + $workdir"/" \ + $workdir"_no_git" + +rsync -aL \ + $workdir"_no_git/" \ + $game_path + +rm -rf $workdir* + +echo -e "\nCustomization completed. Here's what will be included in the game:\n" + +ls -a $game_path $game_path/mods diff --git a/dreambuilder_mp_extras/customize-dreambuilder.sh b/mods/dreambuilder_extras/customize-dreambuilder.sh similarity index 100% rename from dreambuilder_mp_extras/customize-dreambuilder.sh rename to mods/dreambuilder_extras/customize-dreambuilder.sh diff --git a/dreambuilder_hotbar/depends.txt b/mods/dreambuilder_extras/depends.txt similarity index 100% rename from dreambuilder_hotbar/depends.txt rename to mods/dreambuilder_extras/depends.txt diff --git a/dreambuilder_mp_extras/init.lua b/mods/dreambuilder_extras/init.lua similarity index 100% rename from dreambuilder_mp_extras/init.lua rename to mods/dreambuilder_extras/init.lua diff --git a/dreambuilder_hotbar/mod.conf b/mods/dreambuilder_extras/mod.conf similarity index 100% rename from dreambuilder_hotbar/mod.conf rename to mods/dreambuilder_extras/mod.conf diff --git a/dreambuilder_mp_extras/models/default_apple.obj b/mods/dreambuilder_extras/models/default_apple.obj similarity index 100% rename from dreambuilder_mp_extras/models/default_apple.obj rename to mods/dreambuilder_extras/models/default_apple.obj diff --git a/dreambuilder_mp_extras/schematics/apple_tree.mts b/mods/dreambuilder_extras/schematics/apple_tree.mts similarity index 100% rename from dreambuilder_mp_extras/schematics/apple_tree.mts rename to mods/dreambuilder_extras/schematics/apple_tree.mts diff --git a/dreambuilder_mp_extras/schematics/apple_tree_from_sapling.mts b/mods/dreambuilder_extras/schematics/apple_tree_from_sapling.mts similarity index 100% rename from dreambuilder_mp_extras/schematics/apple_tree_from_sapling.mts rename to mods/dreambuilder_extras/schematics/apple_tree_from_sapling.mts diff --git a/dreambuilder_mp_extras/textures/default_apple_3d.png b/mods/dreambuilder_extras/textures/default_apple_3d.png similarity index 100% rename from dreambuilder_mp_extras/textures/default_apple_3d.png rename to mods/dreambuilder_extras/textures/default_apple_3d.png diff --git a/dreambuilder_mp_extras/textures/gui_hb_bg.png b/mods/dreambuilder_extras/textures/gui_hb_bg.png similarity index 100% rename from dreambuilder_mp_extras/textures/gui_hb_bg.png rename to mods/dreambuilder_extras/textures/gui_hb_bg.png diff --git a/dreambuilder_mp_extras/textures/gui_hb_bg_16.png b/mods/dreambuilder_extras/textures/gui_hb_bg_16.png similarity index 100% rename from dreambuilder_mp_extras/textures/gui_hb_bg_16.png rename to mods/dreambuilder_extras/textures/gui_hb_bg_16.png diff --git a/dreambuilder_mp_extras/textures/gui_hotbar.png b/mods/dreambuilder_extras/textures/gui_hotbar.png similarity index 100% rename from dreambuilder_mp_extras/textures/gui_hotbar.png rename to mods/dreambuilder_extras/textures/gui_hotbar.png diff --git a/dreambuilder_mp_extras/textures/gui_hotbar_selected.png b/mods/dreambuilder_extras/textures/gui_hotbar_selected.png similarity index 100% rename from dreambuilder_mp_extras/textures/gui_hotbar_selected.png rename to mods/dreambuilder_extras/textures/gui_hotbar_selected.png diff --git a/mods/dreambuilder_extras/update-dreambuilder-game-online-files.sh b/mods/dreambuilder_extras/update-dreambuilder-game-online-files.sh new file mode 100755 index 00000000..5183e6d5 --- /dev/null +++ b/mods/dreambuilder_extras/update-dreambuilder-game-online-files.sh @@ -0,0 +1,22 @@ +#!/bin/bash + +echo -e "\nBuilding Dreambuilder ..." +echo -e "=================================================================\n" + +/home/vanessa/Minetest-related/Scripts/customize-dreambuilder-game.sh + +timestamp=`date +%Y%m%d-%H%M` + +echo -e "\nUpdate git repos..." +echo -e "=================================================================\n" + +cd /home/vanessa/Minetest-related/mods/my_mods/dreambuilder_game +git add . +git commit -a +git push +git tag $timestamp +git push --tags +cd ~ + +echo -e "\nDone. Build timestamp: $timestamp \n" + diff --git a/dreambuilder_mp_extras/update-dreambuilder-online-files.sh b/mods/dreambuilder_extras/update-dreambuilder-online-files.sh similarity index 100% rename from dreambuilder_mp_extras/update-dreambuilder-online-files.sh rename to mods/dreambuilder_extras/update-dreambuilder-online-files.sh diff --git a/dreambuilder_hotbar/LICENSE b/mods/dreambuilder_hotbar/LICENSE similarity index 100% rename from dreambuilder_hotbar/LICENSE rename to mods/dreambuilder_hotbar/LICENSE diff --git a/dreambuilder_mp_extras/depends.txt b/mods/dreambuilder_hotbar/depends.txt similarity index 100% rename from dreambuilder_mp_extras/depends.txt rename to mods/dreambuilder_hotbar/depends.txt diff --git a/dreambuilder_hotbar/init.lua b/mods/dreambuilder_hotbar/init.lua similarity index 100% rename from dreambuilder_hotbar/init.lua rename to mods/dreambuilder_hotbar/init.lua diff --git a/dreambuilder_mp_extras/mod.conf b/mods/dreambuilder_hotbar/mod.conf similarity index 100% rename from dreambuilder_mp_extras/mod.conf rename to mods/dreambuilder_hotbar/mod.conf diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_1.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_1.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_1.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_1.png diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_10.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_10.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_10.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_10.png diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_16.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_16.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_16.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_16.png diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_23.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_23.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_23.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_23.png diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_24.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_24.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_24.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_24.png diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_32.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_32.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_32.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_32.png diff --git a/dreambuilder_hotbar/textures/gui_hb_bg_8.png b/mods/dreambuilder_hotbar/textures/gui_hb_bg_8.png similarity index 100% rename from dreambuilder_hotbar/textures/gui_hb_bg_8.png rename to mods/dreambuilder_hotbar/textures/gui_hb_bg_8.png diff --git a/dryplants/crafting.lua b/mods/dryplants/crafting.lua similarity index 100% rename from dryplants/crafting.lua rename to mods/dryplants/crafting.lua diff --git a/dryplants/init.lua b/mods/dryplants/init.lua similarity index 100% rename from dryplants/init.lua rename to mods/dryplants/init.lua diff --git a/dryplants/juncus.lua b/mods/dryplants/juncus.lua similarity index 100% rename from dryplants/juncus.lua rename to mods/dryplants/juncus.lua diff --git a/dryplants/locale/dryplants.fr.tr b/mods/dryplants/locale/dryplants.fr.tr similarity index 100% rename from dryplants/locale/dryplants.fr.tr rename to mods/dryplants/locale/dryplants.fr.tr diff --git a/dryplants/locale/template.txt b/mods/dryplants/locale/template.txt similarity index 100% rename from dryplants/locale/template.txt rename to mods/dryplants/locale/template.txt diff --git a/dryplants/meadowvariation.lua b/mods/dryplants/meadowvariation.lua similarity index 100% rename from dryplants/meadowvariation.lua rename to mods/dryplants/meadowvariation.lua diff --git a/dryplants/mod.conf b/mods/dryplants/mod.conf similarity index 100% rename from dryplants/mod.conf rename to mods/dryplants/mod.conf diff --git a/dryplants/models/plantlike.obj b/mods/dryplants/models/plantlike.obj similarity index 100% rename from dryplants/models/plantlike.obj rename to mods/dryplants/models/plantlike.obj diff --git a/dryplants/moregrass.lua b/mods/dryplants/moregrass.lua similarity index 100% rename from dryplants/moregrass.lua rename to mods/dryplants/moregrass.lua diff --git a/dryplants/reed.lua b/mods/dryplants/reed.lua similarity index 100% rename from dryplants/reed.lua rename to mods/dryplants/reed.lua diff --git a/dryplants/reedmace.lua b/mods/dryplants/reedmace.lua similarity index 100% rename from dryplants/reedmace.lua rename to mods/dryplants/reedmace.lua diff --git a/dryplants/settings.txt b/mods/dryplants/settings.txt similarity index 100% rename from dryplants/settings.txt rename to mods/dryplants/settings.txt diff --git a/dryplants/textures/default_grass_1.png b/mods/dryplants/textures/default_grass_1.png similarity index 100% rename from dryplants/textures/default_grass_1.png rename to mods/dryplants/textures/default_grass_1.png diff --git a/dryplants/textures/default_grass_2.png b/mods/dryplants/textures/default_grass_2.png similarity index 100% rename from dryplants/textures/default_grass_2.png rename to mods/dryplants/textures/default_grass_2.png diff --git a/dryplants/textures/default_grass_3.png b/mods/dryplants/textures/default_grass_3.png similarity index 100% rename from dryplants/textures/default_grass_3.png rename to mods/dryplants/textures/default_grass_3.png diff --git a/dryplants/textures/default_grass_4.png b/mods/dryplants/textures/default_grass_4.png similarity index 100% rename from dryplants/textures/default_grass_4.png rename to mods/dryplants/textures/default_grass_4.png diff --git a/dryplants/textures/default_grass_5.png b/mods/dryplants/textures/default_grass_5.png similarity index 100% rename from dryplants/textures/default_grass_5.png rename to mods/dryplants/textures/default_grass_5.png diff --git a/dryplants/textures/dryplants_grass.png b/mods/dryplants/textures/dryplants_grass.png similarity index 100% rename from dryplants/textures/dryplants_grass.png rename to mods/dryplants/textures/dryplants_grass.png diff --git a/dryplants/textures/dryplants_grass_short.png b/mods/dryplants/textures/dryplants_grass_short.png similarity index 100% rename from dryplants/textures/dryplants_grass_short.png rename to mods/dryplants/textures/dryplants_grass_short.png diff --git a/dryplants/textures/dryplants_grass_short_side.png b/mods/dryplants/textures/dryplants_grass_short_side.png similarity index 100% rename from dryplants/textures/dryplants_grass_short_side.png rename to mods/dryplants/textures/dryplants_grass_short_side.png diff --git a/dryplants/textures/dryplants_hay.png b/mods/dryplants/textures/dryplants_hay.png similarity index 100% rename from dryplants/textures/dryplants_hay.png rename to mods/dryplants/textures/dryplants_hay.png diff --git a/dryplants/textures/dryplants_juncus_02.png b/mods/dryplants/textures/dryplants_juncus_02.png similarity index 100% rename from dryplants/textures/dryplants_juncus_02.png rename to mods/dryplants/textures/dryplants_juncus_02.png diff --git a/dryplants/textures/dryplants_juncus_03.png b/mods/dryplants/textures/dryplants_juncus_03.png similarity index 100% rename from dryplants/textures/dryplants_juncus_03.png rename to mods/dryplants/textures/dryplants_juncus_03.png diff --git a/dryplants/textures/dryplants_juncus_inv.png b/mods/dryplants/textures/dryplants_juncus_inv.png similarity index 100% rename from dryplants/textures/dryplants_juncus_inv.png rename to mods/dryplants/textures/dryplants_juncus_inv.png diff --git a/dryplants/textures/dryplants_reed.png b/mods/dryplants/textures/dryplants_reed.png similarity index 100% rename from dryplants/textures/dryplants_reed.png rename to mods/dryplants/textures/dryplants_reed.png diff --git a/dryplants/textures/dryplants_reed_wet.png b/mods/dryplants/textures/dryplants_reed_wet.png similarity index 100% rename from dryplants/textures/dryplants_reed_wet.png rename to mods/dryplants/textures/dryplants_reed_wet.png diff --git a/dryplants/textures/dryplants_reedmace.png b/mods/dryplants/textures/dryplants_reedmace.png similarity index 100% rename from dryplants/textures/dryplants_reedmace.png rename to mods/dryplants/textures/dryplants_reedmace.png diff --git a/dryplants/textures/dryplants_reedmace_bottom.png b/mods/dryplants/textures/dryplants_reedmace_bottom.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_bottom.png rename to mods/dryplants/textures/dryplants_reedmace_bottom.png diff --git a/dryplants/textures/dryplants_reedmace_height_2.png b/mods/dryplants/textures/dryplants_reedmace_height_2.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_height_2.png rename to mods/dryplants/textures/dryplants_reedmace_height_2.png diff --git a/dryplants/textures/dryplants_reedmace_height_3.png b/mods/dryplants/textures/dryplants_reedmace_height_3.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_height_3.png rename to mods/dryplants/textures/dryplants_reedmace_height_3.png diff --git a/dryplants/textures/dryplants_reedmace_height_3_spikes.png b/mods/dryplants/textures/dryplants_reedmace_height_3_spikes.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_height_3_spikes.png rename to mods/dryplants/textures/dryplants_reedmace_height_3_spikes.png diff --git a/dryplants/textures/dryplants_reedmace_sapling.png b/mods/dryplants/textures/dryplants_reedmace_sapling.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_sapling.png rename to mods/dryplants/textures/dryplants_reedmace_sapling.png diff --git a/dryplants/textures/dryplants_reedmace_spikes.png b/mods/dryplants/textures/dryplants_reedmace_spikes.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_spikes.png rename to mods/dryplants/textures/dryplants_reedmace_spikes.png diff --git a/dryplants/textures/dryplants_reedmace_top.png b/mods/dryplants/textures/dryplants_reedmace_top.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_top.png rename to mods/dryplants/textures/dryplants_reedmace_top.png diff --git a/dryplants/textures/dryplants_reedmace_water.png b/mods/dryplants/textures/dryplants_reedmace_water.png similarity index 100% rename from dryplants/textures/dryplants_reedmace_water.png rename to mods/dryplants/textures/dryplants_reedmace_water.png diff --git a/dryplants/textures/dryplants_sickle.png b/mods/dryplants/textures/dryplants_sickle.png similarity index 100% rename from dryplants/textures/dryplants_sickle.png rename to mods/dryplants/textures/dryplants_sickle.png diff --git a/dryplants/textures/not_in_use/big_pic_8.png b/mods/dryplants/textures/not_in_use/big_pic_8.png similarity index 100% rename from dryplants/textures/not_in_use/big_pic_8.png rename to mods/dryplants/textures/not_in_use/big_pic_8.png diff --git a/dryplants/textures/not_in_use/big_pic_9.png b/mods/dryplants/textures/not_in_use/big_pic_9.png similarity index 100% rename from dryplants/textures/not_in_use/big_pic_9.png rename to mods/dryplants/textures/not_in_use/big_pic_9.png diff --git a/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png b/mods/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_cattailsG_m2.png rename to mods/dryplants/textures/not_in_use/dryplants_cattailsG_m2.png diff --git a/dryplants/textures/not_in_use/dryplants_juncus_02_left.png b/mods/dryplants/textures/not_in_use/dryplants_juncus_02_left.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_juncus_02_left.png rename to mods/dryplants/textures/not_in_use/dryplants_juncus_02_left.png diff --git a/dryplants/textures/not_in_use/dryplants_juncus_02_right.png b/mods/dryplants/textures/not_in_use/dryplants_juncus_02_right.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_juncus_02_right.png rename to mods/dryplants/textures/not_in_use/dryplants_juncus_02_right.png diff --git a/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png b/mods/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png rename to mods/dryplants/textures/not_in_use/dryplants_juncus_02_whole2.png diff --git a/dryplants/textures/not_in_use/dryplants_juncus_03_left.png b/mods/dryplants/textures/not_in_use/dryplants_juncus_03_left.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_juncus_03_left.png rename to mods/dryplants/textures/not_in_use/dryplants_juncus_03_left.png diff --git a/dryplants/textures/not_in_use/dryplants_juncus_03_right.png b/mods/dryplants/textures/not_in_use/dryplants_juncus_03_right.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_juncus_03_right.png rename to mods/dryplants/textures/not_in_use/dryplants_juncus_03_right.png diff --git a/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png b/mods/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png rename to mods/dryplants/textures/not_in_use/dryplants_juncus_03_whole2.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_01.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_01.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_01.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_01.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_02.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_02.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_02.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_02.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_03.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_03.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_03.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_03.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_04.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_04.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_04.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_04.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_bottom_left.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_bottom_right.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_left.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_left.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_left.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_left.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_right.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_right.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_right.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_right.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_top_left.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_top_left.png diff --git a/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png b/mods/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png similarity index 100% rename from dryplants/textures/not_in_use/dryplants_reedmace_top_right.png rename to mods/dryplants/textures/not_in_use/dryplants_reedmace_top_right.png diff --git a/dryplants/textures/not_in_use/reedmace2.png b/mods/dryplants/textures/not_in_use/reedmace2.png similarity index 100% rename from dryplants/textures/not_in_use/reedmace2.png rename to mods/dryplants/textures/not_in_use/reedmace2.png diff --git a/dryplants/textures/not_in_use/reedmace3.png b/mods/dryplants/textures/not_in_use/reedmace3.png similarity index 100% rename from dryplants/textures/not_in_use/reedmace3.png rename to mods/dryplants/textures/not_in_use/reedmace3.png diff --git a/dryplants/textures/not_in_use/reedmace4.png b/mods/dryplants/textures/not_in_use/reedmace4.png similarity index 100% rename from dryplants/textures/not_in_use/reedmace4.png rename to mods/dryplants/textures/not_in_use/reedmace4.png diff --git a/dryplants/textures/not_in_use/reedtest.png b/mods/dryplants/textures/not_in_use/reedtest.png similarity index 100% rename from dryplants/textures/not_in_use/reedtest.png rename to mods/dryplants/textures/not_in_use/reedtest.png diff --git a/dryplants/textures/not_in_use/texturing.png b/mods/dryplants/textures/not_in_use/texturing.png similarity index 100% rename from dryplants/textures/not_in_use/texturing.png rename to mods/dryplants/textures/not_in_use/texturing.png diff --git a/dryplants/textures/old/dryplants_grass_short_old3.png b/mods/dryplants/textures/old/dryplants_grass_short_old3.png similarity index 100% rename from dryplants/textures/old/dryplants_grass_short_old3.png rename to mods/dryplants/textures/old/dryplants_grass_short_old3.png diff --git a/dryplants/textures/old/dryplants_grass_short_old4.png b/mods/dryplants/textures/old/dryplants_grass_short_old4.png similarity index 100% rename from dryplants/textures/old/dryplants_grass_short_old4.png rename to mods/dryplants/textures/old/dryplants_grass_short_old4.png diff --git a/dryplants/textures/old/dryplants_juncus_02_left_old.png b/mods/dryplants/textures/old/dryplants_juncus_02_left_old.png similarity index 100% rename from dryplants/textures/old/dryplants_juncus_02_left_old.png rename to mods/dryplants/textures/old/dryplants_juncus_02_left_old.png diff --git a/dryplants/textures/old/dryplants_juncus_02_right_old.png b/mods/dryplants/textures/old/dryplants_juncus_02_right_old.png similarity index 100% rename from dryplants/textures/old/dryplants_juncus_02_right_old.png rename to mods/dryplants/textures/old/dryplants_juncus_02_right_old.png diff --git a/dryplants/textures/old/dryplants_juncus_03_left_old.png b/mods/dryplants/textures/old/dryplants_juncus_03_left_old.png similarity index 100% rename from dryplants/textures/old/dryplants_juncus_03_left_old.png rename to mods/dryplants/textures/old/dryplants_juncus_03_left_old.png diff --git a/dryplants/textures/old/dryplants_juncus_03_right_old.png b/mods/dryplants/textures/old/dryplants_juncus_03_right_old.png similarity index 100% rename from dryplants/textures/old/dryplants_juncus_03_right_old.png rename to mods/dryplants/textures/old/dryplants_juncus_03_right_old.png diff --git a/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_bottom_left_old2.png diff --git a/dryplants/textures/old/dryplants_reedmace_bottom_old4.png b/mods/dryplants/textures/old/dryplants_reedmace_bottom_old4.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_bottom_old4.png rename to mods/dryplants/textures/old/dryplants_reedmace_bottom_old4.png diff --git a/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_bottom_right_old2.png diff --git a/dryplants/textures/old/dryplants_reedmace_left_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_left_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_left_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_left_old2.png diff --git a/dryplants/textures/old/dryplants_reedmace_old8.png b/mods/dryplants/textures/old/dryplants_reedmace_old8.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_old8.png rename to mods/dryplants/textures/old/dryplants_reedmace_old8.png diff --git a/dryplants/textures/old/dryplants_reedmace_right_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_right_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_right_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_right_old2.png diff --git a/dryplants/textures/old/dryplants_reedmace_spikes_old3.png b/mods/dryplants/textures/old/dryplants_reedmace_spikes_old3.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_spikes_old3.png rename to mods/dryplants/textures/old/dryplants_reedmace_spikes_old3.png diff --git a/dryplants/textures/old/dryplants_reedmace_top_left_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_top_left_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_top_left_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_top_left_old2.png diff --git a/dryplants/textures/old/dryplants_reedmace_top_old3.png b/mods/dryplants/textures/old/dryplants_reedmace_top_old3.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_top_old3.png rename to mods/dryplants/textures/old/dryplants_reedmace_top_old3.png diff --git a/dryplants/textures/old/dryplants_reedmace_top_right_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_top_right_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_top_right_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_top_right_old2.png diff --git a/dryplants/textures/old/dryplants_reedmace_water_old2.png b/mods/dryplants/textures/old/dryplants_reedmace_water_old2.png similarity index 100% rename from dryplants/textures/old/dryplants_reedmace_water_old2.png rename to mods/dryplants/textures/old/dryplants_reedmace_water_old2.png diff --git a/mods/dungeon_loot/README.txt b/mods/dungeon_loot/README.txt new file mode 100644 index 00000000..c500d255 --- /dev/null +++ b/mods/dungeon_loot/README.txt @@ -0,0 +1,11 @@ +Minetest Game mod: dungeon_loot +=============================== +Adds randomly generated chests with some "loot" to generated dungeons, +an API to register additional loot is provided. +Only works if dungeons are actually enabled in mapgen flags. + +License information can be found in license.txt + +Authors of source code +---------------------- +Originally by sfan5 (MIT) diff --git a/mods/dungeon_loot/init.lua b/mods/dungeon_loot/init.lua new file mode 100644 index 00000000..9d8ac52f --- /dev/null +++ b/mods/dungeon_loot/init.lua @@ -0,0 +1,8 @@ +dungeon_loot = {} + +dungeon_loot.CHESTS_MIN = 0 -- not necessarily in a single dungeon +dungeon_loot.CHESTS_MAX = 2 +dungeon_loot.STACKS_PER_CHEST_MAX = 8 + +dofile(minetest.get_modpath("dungeon_loot") .. "/loot.lua") +dofile(minetest.get_modpath("dungeon_loot") .. "/mapgen.lua") diff --git a/mods/dungeon_loot/license.txt b/mods/dungeon_loot/license.txt new file mode 100644 index 00000000..0af30a0c --- /dev/null +++ b/mods/dungeon_loot/license.txt @@ -0,0 +1,24 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2017 sfan5 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/dungeon_loot/loot.lua b/mods/dungeon_loot/loot.lua new file mode 100644 index 00000000..a5a40973 --- /dev/null +++ b/mods/dungeon_loot/loot.lua @@ -0,0 +1,60 @@ +-- Loot from the `default` mod is registered here, +-- with the rest being registered in the respective mods + +dungeon_loot.registered_loot = { + -- various items + {name = "default:stick", chance = 0.6, count = {3, 6}}, + {name = "default:flint", chance = 0.4, count = {1, 3}}, + + -- farming / consumable + {name = "default:apple", chance = 0.4, count = {1, 4}}, + {name = "default:cactus", chance = 0.4, count = {1, 4}, + types = {"sandstone", "desert"}}, + + -- minerals + {name = "default:coal_lump", chance = 0.9, count = {1, 12}}, + {name = "default:gold_ingot", chance = 0.5}, + {name = "default:steel_ingot", chance = 0.4, count = {1, 6}}, + {name = "default:mese_crystal", chance = 0.1, count = {2, 3}}, + + -- tools + {name = "default:sword_wood", chance = 0.6}, + {name = "default:pick_stone", chance = 0.3}, + {name = "default:axe_diamond", chance = 0.05}, + + -- natural materials + {name = "default:sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, + types = {"normal"}}, + {name = "default:desert_sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, + types = {"sandstone"}}, + {name = "default:desert_cobble", chance = 0.8, count = {4, 32}, + types = {"desert"}}, + {name = "default:snow", chance = 0.8, count = {8, 64}, y = {-64, 32768}, + types = {"ice"}}, + {name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768}, + types = {"normal", "sandstone", "desert"}}, + {name = "default:obsidian", chance = 0.25, count = {1, 3}, y = {-32768, -512}}, + {name = "default:mese", chance = 0.15, y = {-32768, -512}}, +} + +function dungeon_loot.register(t) + if t.name ~= nil then + t = {t} -- single entry + end + for _, loot in ipairs(t) do + table.insert(dungeon_loot.registered_loot, loot) + end +end + +function dungeon_loot._internal_get_loot(pos_y, dungeontype) + -- filter by y pos and type + local ret = {} + for _, l in ipairs(dungeon_loot.registered_loot) do + if l.y == nil or (pos_y >= l.y[1] and pos_y <= l.y[2]) then + if l.types == nil or table.indexof(l.types, dungeontype) ~= -1 then + table.insert(ret, l) + end + end + end + return ret +end diff --git a/mods/dungeon_loot/mapgen.lua b/mods/dungeon_loot/mapgen.lua new file mode 100644 index 00000000..b2c80fa8 --- /dev/null +++ b/mods/dungeon_loot/mapgen.lua @@ -0,0 +1,171 @@ +minetest.set_gen_notify({dungeon = true, temple = true}) + +local function noise3d_integer(noise, pos) + return math.abs(math.floor(noise:get_3d(pos) * 0x7fffffff)) +end + +local function random_sample(rand, list, count) + local ret = {} + for n = 1, count do + local idx = rand:next(1, #list) + table.insert(ret, list[idx]) + table.remove(list, idx) + end + return ret +end + +local function find_walls(cpos) + local is_wall = function(node) + return node.name ~= "air" and node.name ~= "ignore" + end + + local dirs = {{x=1, z=0}, {x=-1, z=0}, {x=0, z=1}, {x=0, z=-1}} + local get_node = minetest.get_node + + local ret = {} + local mindist = {x=0, z=0} + local min = function(a, b) return a ~= 0 and math.min(a, b) or b end + for _, dir in ipairs(dirs) do + for i = 1, 9 do -- 9 = max room size / 2 + local pos = vector.add(cpos, {x=dir.x*i, y=0, z=dir.z*i}) + + -- continue in that direction until we find a wall-like node + local node = get_node(pos) + if is_wall(node) then + local front_below = vector.subtract(pos, {x=dir.x, y=1, z=dir.z}) + local above = vector.add(pos, {x=0, y=1, z=0}) + + -- check that it: + --- is at least 2 nodes high (not a staircase) + --- has a floor + if is_wall(get_node(front_below)) and is_wall(get_node(above)) then + table.insert(ret, {pos = pos, facing = {x=-dir.x, y=0, z=-dir.z}}) + if dir.z == 0 then + mindist.x = min(mindist.x, i-1) + else + mindist.z = min(mindist.z, i-1) + end + end + -- abort even if it wasn't a wall cause something is in the way + break + end + end + end + + local biome = minetest.get_biome_data(cpos) + biome = biome and minetest.get_biome_name(biome.biome) or "" + local type = "normal" + if biome:find("desert") == 1 then + type = "desert" + elseif biome:find("sandstone_desert") == 1 then + type = "sandstone" + elseif biome:find("icesheet") == 1 then + type = "ice" + end + + return { + walls = ret, + size = {x=mindist.x*2, z=mindist.z*2}, + type = type, + } +end + +local function populate_chest(pos, rand, dungeontype) + --minetest.chat_send_all("chest placed at " .. minetest.pos_to_string(pos) .. " [" .. dungeontype .. "]") + --minetest.add_node(vector.add(pos, {x=0, y=1, z=0}), {name="default:torch", param2=1}) + + local item_list = dungeon_loot._internal_get_loot(pos.y, dungeontype) + -- take random (partial) sample of all possible items + local sample_n = math.min(#item_list, dungeon_loot.STACKS_PER_CHEST_MAX) + item_list = random_sample(rand, item_list, sample_n) + + -- apply chances / randomized amounts and collect resulting items + local items = {} + for _, loot in ipairs(item_list) do + if rand:next(0, 1000) / 1000 <= loot.chance then + local itemdef = minetest.registered_items[loot.name] + local amount = 1 + if loot.count ~= nil then + amount = rand:next(loot.count[1], loot.count[2]) + end + + if not itemdef then + minetest.log("warning", "Registered loot item " .. loot.name .. " does not exist") + elseif itemdef.tool_capabilities then + for n = 1, amount do + local wear = rand:next(0.20 * 65535, 0.75 * 65535) -- 20% to 75% wear + table.insert(items, ItemStack({name = loot.name, wear = wear})) + end + elseif itemdef.stack_max == 1 then + -- not stackable, add separately + for n = 1, amount do + table.insert(items, loot.name) + end + else + table.insert(items, ItemStack({name = loot.name, count = amount})) + end + end + end + + -- place items at random places in chest + local inv = minetest.get_meta(pos):get_inventory() + local listsz = inv:get_size("main") + assert(listsz >= #items) + for _, item in ipairs(items) do + local index = rand:next(1, listsz) + if inv:get_stack("main", index):is_empty() then + inv:set_stack("main", index, item) + else + inv:add_item("main", item) -- space occupied, just put it anywhere + end + end +end + + +minetest.register_on_generated(function(minp, maxp, blockseed) + local gennotify = minetest.get_mapgen_object("gennotify") + local poslist = gennotify["dungeon"] or {} + for _, entry in ipairs(gennotify["temple"] or {}) do + table.insert(poslist, entry) + end + if #poslist == 0 then return end + + local noise = minetest.get_perlin(10115, 4, 0.5, 1) + local rand = PcgRandom(noise3d_integer(noise, poslist[1])) + + local candidates = {} + -- process at most 8 rooms to keep runtime of this predictable + local num_process = math.min(#poslist, 8) + for i = 1, num_process do + local room = find_walls(poslist[i]) + -- skip small rooms and everything that doesn't at least have 3 walls + if math.min(room.size.x, room.size.z) >= 4 and #room.walls >= 3 then + table.insert(candidates, room) + end + end + + local num_chests = rand:next(dungeon_loot.CHESTS_MIN, dungeon_loot.CHESTS_MAX) + num_chests = math.min(#candidates, num_chests) + local rooms = random_sample(rand, candidates, num_chests) + + for _, room in ipairs(rooms) do + -- choose place somewhere in front of any of the walls + local wall = room.walls[rand:next(1, #room.walls)] + local v, vi -- vector / axis that runs alongside the wall + if wall.facing.x ~= 0 then + v, vi = {x=0, y=0, z=1}, "z" + else + v, vi = {x=1, y=0, z=0}, "x" + end + local chestpos = vector.add(wall.pos, wall.facing) + local off = rand:next(-room.size[vi]/2 + 1, room.size[vi]/2 - 1) + chestpos = vector.add(chestpos, vector.multiply(v, off)) + + if minetest.get_node(chestpos).name == "air" then + -- make it face inwards to the room + local facedir = minetest.dir_to_facedir(vector.multiply(wall.facing, -1)) + minetest.add_node(chestpos, {name = "default:chest", param2 = facedir}) + populate_chest(chestpos, PcgRandom(noise3d_integer(noise, chestpos)), room.type) + end + end +end) diff --git a/mods/dungeon_loot/mod.conf b/mods/dungeon_loot/mod.conf new file mode 100644 index 00000000..79d80899 --- /dev/null +++ b/mods/dungeon_loot/mod.conf @@ -0,0 +1,3 @@ +name = dungeon_loot +description = Minetest Game mod: dungeon_loot +depends = default diff --git a/mods/dye/README.txt b/mods/dye/README.txt new file mode 100644 index 00000000..a2fbdd24 --- /dev/null +++ b/mods/dye/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: dye +====================== +See license.txt for license information. +See init.lua for documentation. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +Perttu Ahola (celeron55) (CC BY-SA 3.0) diff --git a/mods/dye/init.lua b/mods/dye/init.lua new file mode 100644 index 00000000..f0affe8b --- /dev/null +++ b/mods/dye/init.lua @@ -0,0 +1,127 @@ +-- dye/init.lua + +dye = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("dye") + +-- Make dye names and descriptions available globally + +dye.dyes = { + {"white", "White"}, + {"grey", "Grey"}, + {"dark_grey", "Dark Grey"}, + {"black", "Black"}, + {"violet", "Violet"}, + {"blue", "Blue"}, + {"cyan", "Cyan"}, + {"dark_green", "Dark Green"}, + {"green", "Green"}, + {"yellow", "Yellow"}, + {"brown", "Brown"}, + {"orange", "Orange"}, + {"red", "Red"}, + {"magenta", "Magenta"}, + {"pink", "Pink"}, +} + +-- Define items + +for _, row in ipairs(dye.dyes) do + local name = row[1] + local description = row[2] + local groups = {dye = 1} + groups["color_" .. name] = 1 + + minetest.register_craftitem("dye:" .. name, { + inventory_image = "dye_" .. name .. ".png", + description = S(description .. " Dye"), + groups = groups + }) + + minetest.register_craft({ + output = "dye:" .. name .. " 4", + recipe = { + {"group:flower,color_" .. name} + }, + }) +end + +-- Manually add coal -> black dye + +minetest.register_craft({ + output = "dye:black 4", + recipe = { + {"group:coal"} + }, +}) + +-- Manually add blueberries->violet dye + +minetest.register_craft({ + output = "dye:violet 2", + recipe = { + {"default:blueberries"} + }, +}) + +-- Mix recipes + +local dye_recipes = { + -- src1, src2, dst + -- RYB mixes + {"red", "blue", "violet"}, -- "purple" + {"yellow", "red", "orange"}, + {"yellow", "blue", "green"}, + -- RYB complementary mixes + {"yellow", "violet", "dark_grey"}, + {"blue", "orange", "dark_grey"}, + -- CMY mixes - approximation + {"cyan", "yellow", "green"}, + {"cyan", "magenta", "blue"}, + {"yellow", "magenta", "red"}, + -- other mixes that result in a color we have + {"red", "green", "brown"}, + {"magenta", "blue", "violet"}, + {"green", "blue", "cyan"}, + {"pink", "violet", "magenta"}, + -- mixes with black + {"white", "black", "grey"}, + {"grey", "black", "dark_grey"}, + {"green", "black", "dark_green"}, + {"orange", "black", "brown"}, + -- mixes with white + {"white", "red", "pink"}, + {"white", "dark_grey", "grey"}, + {"white", "dark_green", "green"}, +} + +for _, mix in pairs(dye_recipes) do + minetest.register_craft({ + type = "shapeless", + output = "dye:" .. mix[3] .. " 2", + recipe = {"dye:" .. mix[1], "dye:" .. mix[2]}, + }) +end + +-- Dummy calls to S() to allow translation scripts to detect the strings. +-- To update this run: +-- for _,e in ipairs(dye.dyes) do print(("S(%q)"):format(e[2].." Dye")) end + +--[[ +S("White Dye") +S("Grey Dye") +S("Dark Grey Dye") +S("Black Dye") +S("Violet Dye") +S("Blue Dye") +S("Cyan Dye") +S("Dark Green Dye") +S("Green Dye") +S("Yellow Dye") +S("Brown Dye") +S("Orange Dye") +S("Red Dye") +S("Magenta Dye") +S("Pink Dye") +--]] diff --git a/mods/dye/license.txt b/mods/dye/license.txt new file mode 100644 index 00000000..bf9d3501 --- /dev/null +++ b/mods/dye/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/dye/locale/dye.de.tr b/mods/dye/locale/dye.de.tr new file mode 100644 index 00000000..f73fb572 --- /dev/null +++ b/mods/dye/locale/dye.de.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Weißer Farbstoff +Grey Dye=Grauer Farbstoff +Dark Grey Dye=Dunkelgrauer Farbstoff +Black Dye=Schwarzer Farbstoff +Violet Dye=Violetter Farbstoff +Blue Dye=Blauer Farbstoff +Cyan Dye=Türkiser Farbstoff +Dark Green Dye=Dunkelgrüner Farbstoff +Green Dye=Grüner Farbstoff +Yellow Dye=Gelber Farbstoff +Brown Dye=Brauner Farbstoff +Orange Dye=Orange Farbstoff +Red Dye=Roter Farbstoff +Magenta Dye=Magenta Farbstoff +Pink Dye=Rosa Farbstoff diff --git a/mods/dye/locale/dye.es.tr b/mods/dye/locale/dye.es.tr new file mode 100644 index 00000000..bd04ef45 --- /dev/null +++ b/mods/dye/locale/dye.es.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Tinte blanco +Grey Dye=Tinte gris +Dark Grey Dye=Tinte gris oscuro +Black Dye=Tinte negro +Violet Dye=Tinte violeta +Blue Dye=Tinte azul +Cyan Dye=Tinte cián +Dark Green Dye=Tinte verde oscuro +Green Dye=Tinte verde +Yellow Dye=Tinte amarillo +Brown Dye=Tinte marrón +Orange Dye=Tinte naranja +Red Dye=Tinte rojo +Magenta Dye=Tinte magenta +Pink Dye=Tinte rosa diff --git a/mods/dye/locale/dye.fr.tr b/mods/dye/locale/dye.fr.tr new file mode 100644 index 00000000..390fa07c --- /dev/null +++ b/mods/dye/locale/dye.fr.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Colorant blanc +Grey Dye=Colorant gris +Dark Grey Dye=Colorant gris foncé +Black Dye=Colorant noir +Violet Dye=Colorant violet +Blue Dye=Colorant bleu +Cyan Dye=Colorant cyan +Dark Green Dye=Colorant vert foncé +Green Dye=Colorant vert +Yellow Dye=Colorant jaune +Brown Dye=Colorant marron +Orange Dye=Colorant orange +Red Dye=Colorant rouge +Magenta Dye=Colorant magenta +Pink Dye=Colorant rose diff --git a/mods/dye/locale/dye.id.tr b/mods/dye/locale/dye.id.tr new file mode 100644 index 00000000..4122875f --- /dev/null +++ b/mods/dye/locale/dye.id.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Pewarna Putih +Grey Dye=Pewarna Abu +Dark Grey Dye=Pewarna Abu Tua +Black Dye=Pewarna Hitam +Violet Dye=Pewarna Ungu +Blue Dye=Pewarna Biru +Cyan Dye=Pewarna Sian +Dark Green Dye=Pewarna Hijau Tua +Green Dye=Pewarna Hijau +Yellow Dye=Pewarna Kuning +Brown Dye=Pewarna Cokelat +Orange Dye=Pewarna Oranye +Red Dye=Pewarna Merah +Magenta Dye=Pewarna Magenta +Pink Dye=Pewarna Merah Jambu diff --git a/mods/dye/locale/dye.it.tr b/mods/dye/locale/dye.it.tr new file mode 100644 index 00000000..9deb385e --- /dev/null +++ b/mods/dye/locale/dye.it.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Tintura bianca +Grey Dye=Tintura grigia +Dark Grey Dye=Tintura grigia scura +Black Dye=Tintura nera +Violet Dye=Tintura viola +Blue Dye=Tintura blu +Cyan Dye=Tintura ciano +Dark Green Dye=Tintura verde scura +Green Dye=Tintura verde +Yellow Dye=Tintura gialla +Brown Dye=Tintura marrone +Orange Dye=Tintura arancione +Red Dye=Tintura rossa +Magenta Dye=Tintura magenta +Pink Dye=Tintura rosa diff --git a/mods/dye/locale/dye.jbo.tr b/mods/dye/locale/dye.jbo.tr new file mode 100644 index 00000000..39ec7ab2 --- /dev/null +++ b/mods/dye/locale/dye.jbo.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=lo blabi xinmo +Grey Dye=lo grusi xinmo +Dark Grey Dye=lo xekri grusi xinmo +Black Dye=lo xekri xinmo +Violet Dye=lo zirpu xinmo +Blue Dye=lo blanu xinmo +Cyan Dye=lo cicna xinmo +Dark Green Dye=lo xekri crino xinmo +Green Dye=lo crino xinmo +Yellow Dye=lo pelxu xinmo +Brown Dye=lo bunre xinmo +Orange Dye=lo narju xinmo +Red Dye=lo xunre xinmo +Magenta Dye=lo nukni xinmo +Pink Dye=lo xunblabi xinmo diff --git a/mods/dye/locale/dye.ms.tr b/mods/dye/locale/dye.ms.tr new file mode 100644 index 00000000..50c04730 --- /dev/null +++ b/mods/dye/locale/dye.ms.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Pewarna Putih +Grey Dye=Pewarna Kelabu +Dark Grey Dye=Pewarna Kelabu Gelap +Black Dye=Pewarna Hitam +Violet Dye=Pewarna Ungu +Blue Dye=Pewarna Biru +Cyan Dye=Pewarna Biru Kehijauan +Dark Green Dye=Pewarna Hijau Gelap +Green Dye=Pewarna Hijau +Yellow Dye=Pewarna Kuning +Brown Dye=Pewarna Perang +Orange Dye=Pewarna Jingga +Red Dye=Pewarna Merah +Magenta Dye=Pewarna Merah Lembayung +Pink Dye=Pewarna Merah Jambu diff --git a/mods/dye/locale/dye.pt_BR.tr b/mods/dye/locale/dye.pt_BR.tr new file mode 100644 index 00000000..29e98dac --- /dev/null +++ b/mods/dye/locale/dye.pt_BR.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Tinta Branca +Grey Dye=Tinta Cinza +Dark Grey Dye=Tinta Cinza-escuro +Black Dye=Tinta Preta +Violet Dye=Tinta Violeta +Blue Dye=Tinta Azul +Cyan Dye=Tinta Ciano +Dark Green Dye=Tinta Verde-escuro +Green Dye=Tinta Verde +Yellow Dye=Tinta Amarela +Brown Dye=Tinta Marrom +Orange Dye=Tinta Laranja +Red Dye=Tinta Vermelha +Magenta Dye=Tinta Magenta +Pink Dye=Tinta Rosa diff --git a/mods/dye/locale/dye.ru.tr b/mods/dye/locale/dye.ru.tr new file mode 100644 index 00000000..fa3c5c44 --- /dev/null +++ b/mods/dye/locale/dye.ru.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Белая Краска +Grey Dye=Серая Краска +Dark Grey Dye=Тёмно-Серая Краска +Black Dye=Черная Краска +Violet Dye=Фиолетовая Краска +Blue Dye=Синяя Краска +Cyan Dye=Голубая Краска +Dark Green Dye=Тёмно-Зелёная Краска +Green Dye=Зелёная Краска +Yellow Dye=Жёлтая Краска +Brown Dye=Бурая Краска +Orange Dye=Оранжевая Краска +Red Dye=Красная Краска +Magenta Dye=Пурпурная Краска +Pink Dye=Розовая Краска diff --git a/mods/dye/locale/dye.se.tr b/mods/dye/locale/dye.se.tr new file mode 100644 index 00000000..936f161e --- /dev/null +++ b/mods/dye/locale/dye.se.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Vit Färg +Grey Dye=Grå Färg +Dark Grey Dye=Mörk Grå Färg +Black Dye=Svart Färg +Violet Dye=Violett Färg +Blue Dye=Blå Färg +Cyan Dye=Cyan Färg +Dark Green Dye=Mörk Grön Färg +Green Dye=Grön Färg +Yellow Dye=Gul Färg +Brown Dye=Brun Färg +Orange Dye=Orange Färg +Red Dye=Röd Färg +Magenta Dye=Magenta Färg +Pink Dye=Rosa Färg diff --git a/mods/dye/locale/dye.sk.tr b/mods/dye/locale/dye.sk.tr new file mode 100644 index 00000000..625804c3 --- /dev/null +++ b/mods/dye/locale/dye.sk.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Biele farbivo +Grey Dye=Šedé farbivo +Dark Grey Dye=Tmavo šedé farbivo +Black Dye=Čierne farbivo +Violet Dye=Fialové farbivo +Blue Dye=Modré farbivo +Cyan Dye=Tyrkysové farbivo +Dark Green Dye=Tmavozelené farbivo +Green Dye=Zelené farbivo +Yellow Dye=Žlté farbivo +Brown Dye=Hnedé farbivo +Orange Dye=Oranžové farbivo +Red Dye=Červené farbivo +Magenta Dye=Purpurové farbivo +Pink Dye=Ružové farbivo diff --git a/mods/dye/locale/dye.zh_CN.tr b/mods/dye/locale/dye.zh_CN.tr new file mode 100644 index 00000000..11bf9cb2 --- /dev/null +++ b/mods/dye/locale/dye.zh_CN.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=白色染料 +Grey Dye=灰色染料 +Dark Grey Dye=暗灰染料 +Black Dye=黑色染料 +Violet Dye=紫色染料 +Blue Dye=蓝色染料 +Cyan Dye=青色染料 +Dark Green Dye=暗绿染料 +Green Dye=绿色染料 +Yellow Dye=黄色染料 +Brown Dye=棕色染料 +Orange Dye=橙色染料 +Red Dye=红色染料 +Magenta Dye=品红染料 +Pink Dye=粉红染料 diff --git a/mods/dye/locale/dye.zh_TW.tr b/mods/dye/locale/dye.zh_TW.tr new file mode 100644 index 00000000..b84d07e1 --- /dev/null +++ b/mods/dye/locale/dye.zh_TW.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=白色染料 +Grey Dye=灰色染料 +Dark Grey Dye=暗灰染料 +Black Dye=黑色染料 +Violet Dye=紫色染料 +Blue Dye=藍色染料 +Cyan Dye=青色染料 +Dark Green Dye=暗綠染料 +Green Dye=綠色染料 +Yellow Dye=黃色染料 +Brown Dye=棕色染料 +Orange Dye=橙色染料 +Red Dye=紅色染料 +Magenta Dye=品紅染料 +Pink Dye=粉紅染料 diff --git a/mods/dye/locale/template.txt b/mods/dye/locale/template.txt new file mode 100644 index 00000000..c20bab5f --- /dev/null +++ b/mods/dye/locale/template.txt @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye= +Grey Dye= +Dark Grey Dye= +Black Dye= +Violet Dye= +Blue Dye= +Cyan Dye= +Dark Green Dye= +Green Dye= +Yellow Dye= +Brown Dye= +Orange Dye= +Red Dye= +Magenta Dye= +Pink Dye= diff --git a/mods/dye/mod.conf b/mods/dye/mod.conf new file mode 100644 index 00000000..32bb816c --- /dev/null +++ b/mods/dye/mod.conf @@ -0,0 +1,2 @@ +name = dye +description = Minetest Game mod: dye diff --git a/mods/dye/textures/dye_black.png b/mods/dye/textures/dye_black.png new file mode 100644 index 00000000..1055b6c2 Binary files /dev/null and b/mods/dye/textures/dye_black.png differ diff --git a/mods/dye/textures/dye_blue.png b/mods/dye/textures/dye_blue.png new file mode 100644 index 00000000..d1377c6b Binary files /dev/null and b/mods/dye/textures/dye_blue.png differ diff --git a/mods/dye/textures/dye_brown.png b/mods/dye/textures/dye_brown.png new file mode 100644 index 00000000..77d475cd Binary files /dev/null and b/mods/dye/textures/dye_brown.png differ diff --git a/mods/dye/textures/dye_cyan.png b/mods/dye/textures/dye_cyan.png new file mode 100644 index 00000000..239d66ce Binary files /dev/null and b/mods/dye/textures/dye_cyan.png differ diff --git a/mods/dye/textures/dye_dark_green.png b/mods/dye/textures/dye_dark_green.png new file mode 100644 index 00000000..9606ccf4 Binary files /dev/null and b/mods/dye/textures/dye_dark_green.png differ diff --git a/mods/dye/textures/dye_dark_grey.png b/mods/dye/textures/dye_dark_grey.png new file mode 100644 index 00000000..060737ba Binary files /dev/null and b/mods/dye/textures/dye_dark_grey.png differ diff --git a/mods/dye/textures/dye_green.png b/mods/dye/textures/dye_green.png new file mode 100644 index 00000000..0d99ee1c Binary files /dev/null and b/mods/dye/textures/dye_green.png differ diff --git a/mods/dye/textures/dye_grey.png b/mods/dye/textures/dye_grey.png new file mode 100644 index 00000000..5efb0280 Binary files /dev/null and b/mods/dye/textures/dye_grey.png differ diff --git a/mods/dye/textures/dye_magenta.png b/mods/dye/textures/dye_magenta.png new file mode 100644 index 00000000..c84df62c Binary files /dev/null and b/mods/dye/textures/dye_magenta.png differ diff --git a/mods/dye/textures/dye_orange.png b/mods/dye/textures/dye_orange.png new file mode 100644 index 00000000..08449073 Binary files /dev/null and b/mods/dye/textures/dye_orange.png differ diff --git a/mods/dye/textures/dye_pink.png b/mods/dye/textures/dye_pink.png new file mode 100644 index 00000000..c3dec22a Binary files /dev/null and b/mods/dye/textures/dye_pink.png differ diff --git a/mods/dye/textures/dye_red.png b/mods/dye/textures/dye_red.png new file mode 100644 index 00000000..14eafbf4 Binary files /dev/null and b/mods/dye/textures/dye_red.png differ diff --git a/mods/dye/textures/dye_violet.png b/mods/dye/textures/dye_violet.png new file mode 100644 index 00000000..600cbb44 Binary files /dev/null and b/mods/dye/textures/dye_violet.png differ diff --git a/mods/dye/textures/dye_white.png b/mods/dye/textures/dye_white.png new file mode 100644 index 00000000..2a840a41 Binary files /dev/null and b/mods/dye/textures/dye_white.png differ diff --git a/mods/dye/textures/dye_yellow.png b/mods/dye/textures/dye_yellow.png new file mode 100644 index 00000000..fe75775e Binary files /dev/null and b/mods/dye/textures/dye_yellow.png differ diff --git a/ebony/init.lua b/mods/ebony/init.lua similarity index 100% rename from ebony/init.lua rename to mods/ebony/init.lua diff --git a/ebony/locale/ebony.es.tr b/mods/ebony/locale/ebony.es.tr similarity index 100% rename from ebony/locale/ebony.es.tr rename to mods/ebony/locale/ebony.es.tr diff --git a/ebony/mod.conf b/mods/ebony/mod.conf similarity index 100% rename from ebony/mod.conf rename to mods/ebony/mod.conf diff --git a/ebony/schematics/ebony.lua b/mods/ebony/schematics/ebony.lua similarity index 100% rename from ebony/schematics/ebony.lua rename to mods/ebony/schematics/ebony.lua diff --git a/ebony/schematics/ebony.mts b/mods/ebony/schematics/ebony.mts similarity index 100% rename from ebony/schematics/ebony.mts rename to mods/ebony/schematics/ebony.mts diff --git a/ebony/textures/ebony_creeper.png b/mods/ebony/textures/ebony_creeper.png similarity index 100% rename from ebony/textures/ebony_creeper.png rename to mods/ebony/textures/ebony_creeper.png diff --git a/ebony/textures/ebony_creeper_leaves.png b/mods/ebony/textures/ebony_creeper_leaves.png similarity index 100% rename from ebony/textures/ebony_creeper_leaves.png rename to mods/ebony/textures/ebony_creeper_leaves.png diff --git a/ebony/textures/ebony_leaves.png b/mods/ebony/textures/ebony_leaves.png similarity index 100% rename from ebony/textures/ebony_leaves.png rename to mods/ebony/textures/ebony_leaves.png diff --git a/ebony/textures/ebony_liana.png b/mods/ebony/textures/ebony_liana.png similarity index 100% rename from ebony/textures/ebony_liana.png rename to mods/ebony/textures/ebony_liana.png diff --git a/ebony/textures/ebony_persimmon.png b/mods/ebony/textures/ebony_persimmon.png similarity index 100% rename from ebony/textures/ebony_persimmon.png rename to mods/ebony/textures/ebony_persimmon.png diff --git a/ebony/textures/ebony_sapling.png b/mods/ebony/textures/ebony_sapling.png similarity index 100% rename from ebony/textures/ebony_sapling.png rename to mods/ebony/textures/ebony_sapling.png diff --git a/ebony/textures/ebony_trunk.png b/mods/ebony/textures/ebony_trunk.png similarity index 100% rename from ebony/textures/ebony_trunk.png rename to mods/ebony/textures/ebony_trunk.png diff --git a/ebony/textures/ebony_trunk_top.png b/mods/ebony/textures/ebony_trunk_top.png similarity index 100% rename from ebony/textures/ebony_trunk_top.png rename to mods/ebony/textures/ebony_trunk_top.png diff --git a/ebony/textures/ebony_wood.png b/mods/ebony/textures/ebony_wood.png similarity index 100% rename from ebony/textures/ebony_wood.png rename to mods/ebony/textures/ebony_wood.png diff --git a/emergencyphone/depends.txt b/mods/emergencyphone/depends.txt similarity index 100% rename from emergencyphone/depends.txt rename to mods/emergencyphone/depends.txt diff --git a/emergencyphone/init.lua b/mods/emergencyphone/init.lua similarity index 100% rename from emergencyphone/init.lua rename to mods/emergencyphone/init.lua diff --git a/mods/env_sounds/README.txt b/mods/env_sounds/README.txt new file mode 100644 index 00000000..3b3d2755 --- /dev/null +++ b/mods/env_sounds/README.txt @@ -0,0 +1,17 @@ +Minetest Game mod: env_sounds +============================= +See license.txt for license information. + +Authors of source code +---------------------- +paramat (MIT) + +Authors of media (sounds) +------------------------- +Yuval (CC0 1.0) +https://freesound.org/people/Yuval/sounds/197023/ + env_sounds_water.*.ogg + +Halion (CC0 1.0) +https://freesound.org/people/Halion/sounds/17785/ + env_sounds_lava.*.ogg diff --git a/mods/env_sounds/init.lua b/mods/env_sounds/init.lua new file mode 100644 index 00000000..31cc483e --- /dev/null +++ b/mods/env_sounds/init.lua @@ -0,0 +1,112 @@ +-- Parameters + +-- Node search radius around player +local radius = 8 + +local allsounds = { + ["env_sounds_water"] = { + trigger = {"default:water_flowing", "default:river_water_flowing"}, + base_volume = 0.04, + max_volume = 0.4, + per_node = 0.004, + }, + ["env_sounds_lava"] = { + trigger = {"default:lava_source", "default:lava_flowing"}, + base_volume = 0, + max_volume = 0.6, + per_node = { + ["default:lava_source"] = 0.008, + ["default:lava_flowing"] = 0.002, + }, + }, +} + +if minetest.settings:get_bool("river_source_sounds") then + table.insert(allsounds["env_sounds_water"].trigger, + "default:river_water_source") +end + + +-- Cache the union of all trigger nodes + +local cache_triggers = {} + +for sound, def in pairs(allsounds) do + for _, name in ipairs(def.trigger) do + table.insert(cache_triggers, name) + end +end + + +-- Update sound for player + +local function update_sound(player) + local player_name = player:get_player_name() + local ppos = player:get_pos() + ppos = vector.add(ppos, player:get_properties().eye_height) + local areamin = vector.subtract(ppos, radius) + local areamax = vector.add(ppos, radius) + + local pos = minetest.find_nodes_in_area(areamin, areamax, cache_triggers, true) + if next(pos) == nil then -- If table empty + return + end + for sound, def in pairs(allsounds) do + -- Find average position + local posav = {0, 0, 0} + local count = 0 + for _, name in ipairs(def.trigger) do + if pos[name] then + for _, p in ipairs(pos[name]) do + posav[1] = posav[1] + p.x + posav[2] = posav[2] + p.y + posav[3] = posav[3] + p.z + end + count = count + #pos[name] + end + end + + if count > 0 then + posav = vector.new(posav[1] / count, posav[2] / count, + posav[3] / count) + + -- Calculate gain + local gain = def.base_volume + if type(def.per_node) == 'table' then + for name, multiplier in pairs(def.per_node) do + if pos[name] then + gain = gain + #pos[name] * multiplier + end + end + else + gain = gain + count * def.per_node + end + gain = math.min(gain, def.max_volume) + + minetest.sound_play(sound, { + pos = posav, + to_player = player_name, + gain = gain, + }, true) + end + end +end + + +-- Update sound when player joins + +minetest.register_on_joinplayer(function(player) + update_sound(player) +end) + + +-- Cyclic sound update + +local function cyclic_update() + for _, player in pairs(minetest.get_connected_players()) do + update_sound(player) + end + minetest.after(3.5, cyclic_update) +end + +minetest.after(0, cyclic_update) diff --git a/mods/env_sounds/license.txt b/mods/env_sounds/license.txt new file mode 100644 index 00000000..ff8867dd --- /dev/null +++ b/mods/env_sounds/license.txt @@ -0,0 +1,57 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2019 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (sounds) +-------------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +Yuval + +No Copyright + +The person who associated a work with this deed has dedicated the work to the +public domain by waiving all of his or her rights to the work worldwide under +copyright law, including all related and neighboring rights, to the extent +allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial +purposes, all without asking permission. See Other Information below. + +Other Information: + +In no way are the patent or trademark rights of any person affected by CC0, nor +are the rights that other persons may have in the work or in how the work is +used, such as publicity or privacy rights. + +Unless expressly stated otherwise, the person who associated a work with this +deed makes no warranties about the work, and disclaims liability for all uses +of the work, to the fullest extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author +or the affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/mods/env_sounds/mod.conf b/mods/env_sounds/mod.conf new file mode 100644 index 00000000..ad6feb31 --- /dev/null +++ b/mods/env_sounds/mod.conf @@ -0,0 +1,3 @@ +name = env_sounds +description = Minetest Game mod: env_sounds +depends = default diff --git a/mods/env_sounds/sounds/env_sounds_lava.1.ogg b/mods/env_sounds/sounds/env_sounds_lava.1.ogg new file mode 100644 index 00000000..3eafce2d Binary files /dev/null and b/mods/env_sounds/sounds/env_sounds_lava.1.ogg differ diff --git a/mods/env_sounds/sounds/env_sounds_lava.2.ogg b/mods/env_sounds/sounds/env_sounds_lava.2.ogg new file mode 100644 index 00000000..8648f17f Binary files /dev/null and b/mods/env_sounds/sounds/env_sounds_lava.2.ogg differ diff --git a/mods/env_sounds/sounds/env_sounds_water.1.ogg b/mods/env_sounds/sounds/env_sounds_water.1.ogg new file mode 100644 index 00000000..aa808825 Binary files /dev/null and b/mods/env_sounds/sounds/env_sounds_water.1.ogg differ diff --git a/mods/env_sounds/sounds/env_sounds_water.2.ogg b/mods/env_sounds/sounds/env_sounds_water.2.ogg new file mode 100644 index 00000000..b3ff114f Binary files /dev/null and b/mods/env_sounds/sounds/env_sounds_water.2.ogg differ diff --git a/mods/env_sounds/sounds/env_sounds_water.3.ogg b/mods/env_sounds/sounds/env_sounds_water.3.ogg new file mode 100644 index 00000000..431a6ed3 Binary files /dev/null and b/mods/env_sounds/sounds/env_sounds_water.3.ogg differ diff --git a/mods/env_sounds/sounds/env_sounds_water.4.ogg b/mods/env_sounds/sounds/env_sounds_water.4.ogg new file mode 100644 index 00000000..56c2ee21 Binary files /dev/null and b/mods/env_sounds/sounds/env_sounds_water.4.ogg differ diff --git a/extra_stairsplus/depends.txt b/mods/extra_stairsplus/depends.txt similarity index 100% rename from extra_stairsplus/depends.txt rename to mods/extra_stairsplus/depends.txt diff --git a/extra_stairsplus/init.lua b/mods/extra_stairsplus/init.lua similarity index 100% rename from extra_stairsplus/init.lua rename to mods/extra_stairsplus/init.lua diff --git a/extranodes/depends.txt b/mods/extranodes/depends.txt similarity index 100% rename from extranodes/depends.txt rename to mods/extranodes/depends.txt diff --git a/extranodes/init.lua b/mods/extranodes/init.lua similarity index 100% rename from extranodes/init.lua rename to mods/extranodes/init.lua diff --git a/extranodes/locale/de.txt b/mods/extranodes/locale/de.txt similarity index 100% rename from extranodes/locale/de.txt rename to mods/extranodes/locale/de.txt diff --git a/extranodes/locale/es.txt b/mods/extranodes/locale/es.txt similarity index 100% rename from extranodes/locale/es.txt rename to mods/extranodes/locale/es.txt diff --git a/extranodes/locale/fr.txt b/mods/extranodes/locale/fr.txt similarity index 100% rename from extranodes/locale/fr.txt rename to mods/extranodes/locale/fr.txt diff --git a/extranodes/locale/pl.txt b/mods/extranodes/locale/pl.txt similarity index 100% rename from extranodes/locale/pl.txt rename to mods/extranodes/locale/pl.txt diff --git a/extranodes/locale/pt_BR.txt b/mods/extranodes/locale/pt_BR.txt similarity index 100% rename from extranodes/locale/pt_BR.txt rename to mods/extranodes/locale/pt_BR.txt diff --git a/extranodes/locale/template.txt b/mods/extranodes/locale/template.txt similarity index 100% rename from extranodes/locale/template.txt rename to mods/extranodes/locale/template.txt diff --git a/extranodes/locale/tr.txt b/mods/extranodes/locale/tr.txt similarity index 100% rename from extranodes/locale/tr.txt rename to mods/extranodes/locale/tr.txt diff --git a/extranodes/mod.conf b/mods/extranodes/mod.conf similarity index 100% rename from extranodes/mod.conf rename to mods/extranodes/mod.conf diff --git a/extranodes/models/technic_insulator_clip.obj b/mods/extranodes/models/technic_insulator_clip.obj similarity index 100% rename from extranodes/models/technic_insulator_clip.obj rename to mods/extranodes/models/technic_insulator_clip.obj diff --git a/extranodes/models/technic_steel_strut_with_insulator_clip.obj b/mods/extranodes/models/technic_steel_strut_with_insulator_clip.obj similarity index 100% rename from extranodes/models/technic_steel_strut_with_insulator_clip.obj rename to mods/extranodes/models/technic_steel_strut_with_insulator_clip.obj diff --git a/extranodes/textures/technic_insulator_clip.png b/mods/extranodes/textures/technic_insulator_clip.png similarity index 100% rename from extranodes/textures/technic_insulator_clip.png rename to mods/extranodes/textures/technic_insulator_clip.png diff --git a/extranodes/textures/technic_steel_strut_overlay.png b/mods/extranodes/textures/technic_steel_strut_overlay.png similarity index 100% rename from extranodes/textures/technic_steel_strut_overlay.png rename to mods/extranodes/textures/technic_steel_strut_overlay.png diff --git a/facade/.luacheckrc b/mods/facade/.luacheckrc similarity index 100% rename from facade/.luacheckrc rename to mods/facade/.luacheckrc diff --git a/facade/README.md b/mods/facade/README.md similarity index 100% rename from facade/README.md rename to mods/facade/README.md diff --git a/facade/contributors.txt b/mods/facade/contributors.txt similarity index 100% rename from facade/contributors.txt rename to mods/facade/contributors.txt diff --git a/facade/depends.txt b/mods/facade/depends.txt similarity index 100% rename from facade/depends.txt rename to mods/facade/depends.txt diff --git a/facade/description.txt b/mods/facade/description.txt similarity index 100% rename from facade/description.txt rename to mods/facade/description.txt diff --git a/facade/facade_shaper.xcf b/mods/facade/facade_shaper.xcf similarity index 100% rename from facade/facade_shaper.xcf rename to mods/facade/facade_shaper.xcf diff --git a/facade/init.lua b/mods/facade/init.lua similarity index 100% rename from facade/init.lua rename to mods/facade/init.lua diff --git a/facade/license.txt b/mods/facade/license.txt similarity index 100% rename from facade/license.txt rename to mods/facade/license.txt diff --git a/facade/materials.lua b/mods/facade/materials.lua similarity index 100% rename from facade/materials.lua rename to mods/facade/materials.lua diff --git a/facade/mod.conf b/mods/facade/mod.conf similarity index 100% rename from facade/mod.conf rename to mods/facade/mod.conf diff --git a/facade/models/bannerstone.obj b/mods/facade/models/bannerstone.obj similarity index 100% rename from facade/models/bannerstone.obj rename to mods/facade/models/bannerstone.obj diff --git a/facade/models/bannerstone_corner.obj b/mods/facade/models/bannerstone_corner.obj similarity index 100% rename from facade/models/bannerstone_corner.obj rename to mods/facade/models/bannerstone_corner.obj diff --git a/facade/models/carved_stone_a.obj b/mods/facade/models/carved_stone_a.obj similarity index 100% rename from facade/models/carved_stone_a.obj rename to mods/facade/models/carved_stone_a.obj diff --git a/facade/models/carved_stone_a_corner.obj b/mods/facade/models/carved_stone_a_corner.obj similarity index 100% rename from facade/models/carved_stone_a_corner.obj rename to mods/facade/models/carved_stone_a_corner.obj diff --git a/facade/models/column.obj b/mods/facade/models/column.obj similarity index 100% rename from facade/models/column.obj rename to mods/facade/models/column.obj diff --git a/facade/models/column_corner.obj b/mods/facade/models/column_corner.obj similarity index 100% rename from facade/models/column_corner.obj rename to mods/facade/models/column_corner.obj diff --git a/facade/models/corbel.obj b/mods/facade/models/corbel.obj similarity index 100% rename from facade/models/corbel.obj rename to mods/facade/models/corbel.obj diff --git a/facade/models/corbel_corner.obj b/mods/facade/models/corbel_corner.obj similarity index 100% rename from facade/models/corbel_corner.obj rename to mods/facade/models/corbel_corner.obj diff --git a/facade/models/corbel_inner_corner.obj b/mods/facade/models/corbel_inner_corner.obj similarity index 100% rename from facade/models/corbel_inner_corner.obj rename to mods/facade/models/corbel_inner_corner.obj diff --git a/facade/models/corner_bricks.obj b/mods/facade/models/corner_bricks.obj similarity index 100% rename from facade/models/corner_bricks.obj rename to mods/facade/models/corner_bricks.obj diff --git a/facade/models/license.txt b/mods/facade/models/license.txt similarity index 100% rename from facade/models/license.txt rename to mods/facade/models/license.txt diff --git a/facade/models/nbe files/bannerstone.nbe b/mods/facade/models/nbe files/bannerstone.nbe similarity index 100% rename from facade/models/nbe files/bannerstone.nbe rename to mods/facade/models/nbe files/bannerstone.nbe diff --git a/facade/models/nbe files/bannerstone_corner.nbe b/mods/facade/models/nbe files/bannerstone_corner.nbe similarity index 100% rename from facade/models/nbe files/bannerstone_corner.nbe rename to mods/facade/models/nbe files/bannerstone_corner.nbe diff --git a/facade/models/nbe files/carved_stone_a.nbe b/mods/facade/models/nbe files/carved_stone_a.nbe similarity index 100% rename from facade/models/nbe files/carved_stone_a.nbe rename to mods/facade/models/nbe files/carved_stone_a.nbe diff --git a/facade/models/nbe files/carved_stone_a_corner.nbe b/mods/facade/models/nbe files/carved_stone_a_corner.nbe similarity index 100% rename from facade/models/nbe files/carved_stone_a_corner.nbe rename to mods/facade/models/nbe files/carved_stone_a_corner.nbe diff --git a/facade/models/nbe files/column.nbe b/mods/facade/models/nbe files/column.nbe similarity index 100% rename from facade/models/nbe files/column.nbe rename to mods/facade/models/nbe files/column.nbe diff --git a/facade/models/nbe files/column_corner.nbe b/mods/facade/models/nbe files/column_corner.nbe similarity index 100% rename from facade/models/nbe files/column_corner.nbe rename to mods/facade/models/nbe files/column_corner.nbe diff --git a/facade/models/nbe files/corbel.nbe b/mods/facade/models/nbe files/corbel.nbe similarity index 100% rename from facade/models/nbe files/corbel.nbe rename to mods/facade/models/nbe files/corbel.nbe diff --git a/facade/models/nbe files/corbel_corner.nbe b/mods/facade/models/nbe files/corbel_corner.nbe similarity index 100% rename from facade/models/nbe files/corbel_corner.nbe rename to mods/facade/models/nbe files/corbel_corner.nbe diff --git a/facade/models/nbe files/corbel_inner_corner.nbe b/mods/facade/models/nbe files/corbel_inner_corner.nbe similarity index 100% rename from facade/models/nbe files/corbel_inner_corner.nbe rename to mods/facade/models/nbe files/corbel_inner_corner.nbe diff --git a/facade/models/nbe files/corner_bricks.nbe b/mods/facade/models/nbe files/corner_bricks.nbe similarity index 100% rename from facade/models/nbe files/corner_bricks.nbe rename to mods/facade/models/nbe files/corner_bricks.nbe diff --git a/facade/models/nbe files/nbe.txt b/mods/facade/models/nbe files/nbe.txt similarity index 100% rename from facade/models/nbe files/nbe.txt rename to mods/facade/models/nbe files/nbe.txt diff --git a/facade/models/nbe files/rgspro.nbe b/mods/facade/models/nbe files/rgspro.nbe similarity index 100% rename from facade/models/nbe files/rgspro.nbe rename to mods/facade/models/nbe files/rgspro.nbe diff --git a/facade/models/nbe files/rgspro_corner.nbe b/mods/facade/models/nbe files/rgspro_corner.nbe similarity index 100% rename from facade/models/nbe files/rgspro_corner.nbe rename to mods/facade/models/nbe files/rgspro_corner.nbe diff --git a/facade/models/nbe files/rgspro_inner.nbe b/mods/facade/models/nbe files/rgspro_inner.nbe similarity index 100% rename from facade/models/nbe files/rgspro_inner.nbe rename to mods/facade/models/nbe files/rgspro_inner.nbe diff --git a/facade/models/nbe lua files/bannerstone.lua b/mods/facade/models/nbe lua files/bannerstone.lua similarity index 100% rename from facade/models/nbe lua files/bannerstone.lua rename to mods/facade/models/nbe lua files/bannerstone.lua diff --git a/facade/models/nbe lua files/bannerstone_corner.lua b/mods/facade/models/nbe lua files/bannerstone_corner.lua similarity index 100% rename from facade/models/nbe lua files/bannerstone_corner.lua rename to mods/facade/models/nbe lua files/bannerstone_corner.lua diff --git a/facade/models/nbe lua files/carved_stone_a.lua b/mods/facade/models/nbe lua files/carved_stone_a.lua similarity index 100% rename from facade/models/nbe lua files/carved_stone_a.lua rename to mods/facade/models/nbe lua files/carved_stone_a.lua diff --git a/facade/models/nbe lua files/carved_stone_a_corner.lua b/mods/facade/models/nbe lua files/carved_stone_a_corner.lua similarity index 100% rename from facade/models/nbe lua files/carved_stone_a_corner.lua rename to mods/facade/models/nbe lua files/carved_stone_a_corner.lua diff --git a/facade/models/nbe lua files/column.lua b/mods/facade/models/nbe lua files/column.lua similarity index 100% rename from facade/models/nbe lua files/column.lua rename to mods/facade/models/nbe lua files/column.lua diff --git a/facade/models/nbe lua files/column_corner.lua b/mods/facade/models/nbe lua files/column_corner.lua similarity index 100% rename from facade/models/nbe lua files/column_corner.lua rename to mods/facade/models/nbe lua files/column_corner.lua diff --git a/facade/models/nbe lua files/corbel.lua b/mods/facade/models/nbe lua files/corbel.lua similarity index 100% rename from facade/models/nbe lua files/corbel.lua rename to mods/facade/models/nbe lua files/corbel.lua diff --git a/facade/models/nbe lua files/corbel_corner.lua b/mods/facade/models/nbe lua files/corbel_corner.lua similarity index 100% rename from facade/models/nbe lua files/corbel_corner.lua rename to mods/facade/models/nbe lua files/corbel_corner.lua diff --git a/facade/models/nbe lua files/corbel_inner_corner.lua b/mods/facade/models/nbe lua files/corbel_inner_corner.lua similarity index 100% rename from facade/models/nbe lua files/corbel_inner_corner.lua rename to mods/facade/models/nbe lua files/corbel_inner_corner.lua diff --git a/facade/models/nbe lua files/corner_bricks.lua b/mods/facade/models/nbe lua files/corner_bricks.lua similarity index 100% rename from facade/models/nbe lua files/corner_bricks.lua rename to mods/facade/models/nbe lua files/corner_bricks.lua diff --git a/facade/models/nbe lua files/nbe lua.txt b/mods/facade/models/nbe lua files/nbe lua.txt similarity index 100% rename from facade/models/nbe lua files/nbe lua.txt rename to mods/facade/models/nbe lua files/nbe lua.txt diff --git a/facade/models/nbe lua files/rgspro.lua b/mods/facade/models/nbe lua files/rgspro.lua similarity index 100% rename from facade/models/nbe lua files/rgspro.lua rename to mods/facade/models/nbe lua files/rgspro.lua diff --git a/facade/models/nbe lua files/rgspro_corner.lua b/mods/facade/models/nbe lua files/rgspro_corner.lua similarity index 100% rename from facade/models/nbe lua files/rgspro_corner.lua rename to mods/facade/models/nbe lua files/rgspro_corner.lua diff --git a/facade/models/nbe lua files/rgspro_inner.lua b/mods/facade/models/nbe lua files/rgspro_inner.lua similarity index 100% rename from facade/models/nbe lua files/rgspro_inner.lua rename to mods/facade/models/nbe lua files/rgspro_inner.lua diff --git a/facade/models/obj_info.txt b/mods/facade/models/obj_info.txt similarity index 100% rename from facade/models/obj_info.txt rename to mods/facade/models/obj_info.txt diff --git a/facade/models/rgspro.obj b/mods/facade/models/rgspro.obj similarity index 100% rename from facade/models/rgspro.obj rename to mods/facade/models/rgspro.obj diff --git a/facade/models/rgspro_corner.obj b/mods/facade/models/rgspro_corner.obj similarity index 100% rename from facade/models/rgspro_corner.obj rename to mods/facade/models/rgspro_corner.obj diff --git a/facade/models/rgspro_inner.obj b/mods/facade/models/rgspro_inner.obj similarity index 100% rename from facade/models/rgspro_inner.obj rename to mods/facade/models/rgspro_inner.obj diff --git a/facade/screenshot.png b/mods/facade/screenshot.png similarity index 100% rename from facade/screenshot.png rename to mods/facade/screenshot.png diff --git a/facade/screenshot2.png b/mods/facade/screenshot2.png similarity index 100% rename from facade/screenshot2.png rename to mods/facade/screenshot2.png diff --git a/facade/screenshot3.png b/mods/facade/screenshot3.png similarity index 100% rename from facade/screenshot3.png rename to mods/facade/screenshot3.png diff --git a/facade/screenshot4.png b/mods/facade/screenshot4.png similarity index 100% rename from facade/screenshot4.png rename to mods/facade/screenshot4.png diff --git a/facade/shaper.lua b/mods/facade/shaper.lua similarity index 100% rename from facade/shaper.lua rename to mods/facade/shaper.lua diff --git a/facade/shapes.lua b/mods/facade/shapes.lua similarity index 100% rename from facade/shapes.lua rename to mods/facade/shapes.lua diff --git a/facade/textures/facade_bannerstone.png b/mods/facade/textures/facade_bannerstone.png similarity index 100% rename from facade/textures/facade_bannerstone.png rename to mods/facade/textures/facade_bannerstone.png diff --git a/facade/textures/facade_carved_stone_a.png b/mods/facade/textures/facade_carved_stone_a.png similarity index 100% rename from facade/textures/facade_carved_stone_a.png rename to mods/facade/textures/facade_carved_stone_a.png diff --git a/facade/textures/facade_centerstone.png b/mods/facade/textures/facade_centerstone.png similarity index 100% rename from facade/textures/facade_centerstone.png rename to mods/facade/textures/facade_centerstone.png diff --git a/facade/textures/facade_column.png b/mods/facade/textures/facade_column.png similarity index 100% rename from facade/textures/facade_column.png rename to mods/facade/textures/facade_column.png diff --git a/facade/textures/facade_rgspro.png b/mods/facade/textures/facade_rgspro.png similarity index 100% rename from facade/textures/facade_rgspro.png rename to mods/facade/textures/facade_rgspro.png diff --git a/facade/textures/facade_shaper_back.png b/mods/facade/textures/facade_shaper_back.png similarity index 100% rename from facade/textures/facade_shaper_back.png rename to mods/facade/textures/facade_shaper_back.png diff --git a/facade/textures/facade_shaper_bottom.png b/mods/facade/textures/facade_shaper_bottom.png similarity index 100% rename from facade/textures/facade_shaper_bottom.png rename to mods/facade/textures/facade_shaper_bottom.png diff --git a/facade/textures/facade_shaper_front.png b/mods/facade/textures/facade_shaper_front.png similarity index 100% rename from facade/textures/facade_shaper_front.png rename to mods/facade/textures/facade_shaper_front.png diff --git a/facade/textures/facade_shaper_left.png b/mods/facade/textures/facade_shaper_left.png similarity index 100% rename from facade/textures/facade_shaper_left.png rename to mods/facade/textures/facade_shaper_left.png diff --git a/facade/textures/facade_shaper_right.png b/mods/facade/textures/facade_shaper_right.png similarity index 100% rename from facade/textures/facade_shaper_right.png rename to mods/facade/textures/facade_shaper_right.png diff --git a/facade/textures/facade_shaper_top.png b/mods/facade/textures/facade_shaper_top.png similarity index 100% rename from facade/textures/facade_shaper_top.png rename to mods/facade/textures/facade_shaper_top.png diff --git a/facade/textures/license.txt b/mods/facade/textures/license.txt similarity index 100% rename from facade/textures/license.txt rename to mods/facade/textures/license.txt diff --git a/fake_fire/.luacheckrc b/mods/fake_fire/.luacheckrc similarity index 100% rename from fake_fire/.luacheckrc rename to mods/fake_fire/.luacheckrc diff --git a/fake_fire/init.lua b/mods/fake_fire/init.lua similarity index 100% rename from fake_fire/init.lua rename to mods/fake_fire/init.lua diff --git a/fake_fire/locale/fake_fire.de.tr b/mods/fake_fire/locale/fake_fire.de.tr similarity index 100% rename from fake_fire/locale/fake_fire.de.tr rename to mods/fake_fire/locale/fake_fire.de.tr diff --git a/fake_fire/locale/fake_fire.es.tr b/mods/fake_fire/locale/fake_fire.es.tr similarity index 100% rename from fake_fire/locale/fake_fire.es.tr rename to mods/fake_fire/locale/fake_fire.es.tr diff --git a/fake_fire/locale/fake_fire.fr.tr b/mods/fake_fire/locale/fake_fire.fr.tr similarity index 100% rename from fake_fire/locale/fake_fire.fr.tr rename to mods/fake_fire/locale/fake_fire.fr.tr diff --git a/fake_fire/locale/fake_fire.ms.tr b/mods/fake_fire/locale/fake_fire.ms.tr similarity index 100% rename from fake_fire/locale/fake_fire.ms.tr rename to mods/fake_fire/locale/fake_fire.ms.tr diff --git a/fake_fire/locale/fake_fire.pt.tr b/mods/fake_fire/locale/fake_fire.pt.tr similarity index 100% rename from fake_fire/locale/fake_fire.pt.tr rename to mods/fake_fire/locale/fake_fire.pt.tr diff --git a/fake_fire/locale/fake_fire.pt_BR.tr b/mods/fake_fire/locale/fake_fire.pt_BR.tr similarity index 100% rename from fake_fire/locale/fake_fire.pt_BR.tr rename to mods/fake_fire/locale/fake_fire.pt_BR.tr diff --git a/fake_fire/locale/fake_fire.ru.tr b/mods/fake_fire/locale/fake_fire.ru.tr similarity index 100% rename from fake_fire/locale/fake_fire.ru.tr rename to mods/fake_fire/locale/fake_fire.ru.tr diff --git a/fake_fire/locale/fake_fire.zh_CN.tr b/mods/fake_fire/locale/fake_fire.zh_CN.tr similarity index 100% rename from fake_fire/locale/fake_fire.zh_CN.tr rename to mods/fake_fire/locale/fake_fire.zh_CN.tr diff --git a/fake_fire/locale/template.txt b/mods/fake_fire/locale/template.txt similarity index 100% rename from fake_fire/locale/template.txt rename to mods/fake_fire/locale/template.txt diff --git a/fake_fire/mod.conf b/mods/fake_fire/mod.conf similarity index 100% rename from fake_fire/mod.conf rename to mods/fake_fire/mod.conf diff --git a/fake_fire/models/fancy_fire.obj b/mods/fake_fire/models/fancy_fire.obj similarity index 100% rename from fake_fire/models/fancy_fire.obj rename to mods/fake_fire/models/fancy_fire.obj diff --git a/fake_fire/sounds/fire_extinguish.ogg b/mods/fake_fire/sounds/fire_extinguish.ogg similarity index 100% rename from fake_fire/sounds/fire_extinguish.ogg rename to mods/fake_fire/sounds/fire_extinguish.ogg diff --git a/fake_fire/sounds/fire_small.ogg b/mods/fake_fire/sounds/fire_small.ogg similarity index 100% rename from fake_fire/sounds/fire_small.ogg rename to mods/fake_fire/sounds/fire_small.ogg diff --git a/fake_fire/textures/chimney_top.png b/mods/fake_fire/textures/chimney_top.png similarity index 100% rename from fake_fire/textures/chimney_top.png rename to mods/fake_fire/textures/chimney_top.png diff --git a/fake_fire/textures/embers_animated.png b/mods/fake_fire/textures/embers_animated.png similarity index 100% rename from fake_fire/textures/embers_animated.png rename to mods/fake_fire/textures/embers_animated.png diff --git a/fake_fire/textures/fake_fire_animated.png b/mods/fake_fire/textures/fake_fire_animated.png similarity index 100% rename from fake_fire/textures/fake_fire_animated.png rename to mods/fake_fire/textures/fake_fire_animated.png diff --git a/fake_fire/textures/fake_fire_embers.png b/mods/fake_fire/textures/fake_fire_embers.png similarity index 100% rename from fake_fire/textures/fake_fire_embers.png rename to mods/fake_fire/textures/fake_fire_embers.png diff --git a/fake_fire/textures/fake_fire_empty_tile.png b/mods/fake_fire/textures/fake_fire_empty_tile.png similarity index 100% rename from fake_fire/textures/fake_fire_empty_tile.png rename to mods/fake_fire/textures/fake_fire_empty_tile.png diff --git a/fake_fire/textures/fake_fire_inv.png b/mods/fake_fire/textures/fake_fire_inv.png similarity index 100% rename from fake_fire/textures/fake_fire_inv.png rename to mods/fake_fire/textures/fake_fire_inv.png diff --git a/fake_fire/textures/fake_fire_particle_anim_fire.png b/mods/fake_fire/textures/fake_fire_particle_anim_fire.png similarity index 100% rename from fake_fire/textures/fake_fire_particle_anim_fire.png rename to mods/fake_fire/textures/fake_fire_particle_anim_fire.png diff --git a/fake_fire/textures/fake_fire_particle_anim_smoke.png b/mods/fake_fire/textures/fake_fire_particle_anim_smoke.png similarity index 100% rename from fake_fire/textures/fake_fire_particle_anim_smoke.png rename to mods/fake_fire/textures/fake_fire_particle_anim_smoke.png diff --git a/fake_fire/textures/fancy_fire_inv.png b/mods/fake_fire/textures/fancy_fire_inv.png similarity index 100% rename from fake_fire/textures/fancy_fire_inv.png rename to mods/fake_fire/textures/fancy_fire_inv.png diff --git a/fake_fire/textures/flint_and_steel.png b/mods/fake_fire/textures/flint_and_steel.png similarity index 100% rename from fake_fire/textures/flint_and_steel.png rename to mods/fake_fire/textures/flint_and_steel.png diff --git a/fake_fire/textures/ice_fire_animated.png b/mods/fake_fire/textures/ice_fire_animated.png similarity index 100% rename from fake_fire/textures/ice_fire_animated.png rename to mods/fake_fire/textures/ice_fire_animated.png diff --git a/fake_fire/textures/ice_fire_inv.png b/mods/fake_fire/textures/ice_fire_inv.png similarity index 100% rename from fake_fire/textures/ice_fire_inv.png rename to mods/fake_fire/textures/ice_fire_inv.png diff --git a/fake_fire/textures/smoke_particle.png b/mods/fake_fire/textures/smoke_particle.png similarity index 100% rename from fake_fire/textures/smoke_particle.png rename to mods/fake_fire/textures/smoke_particle.png diff --git a/farming/README.md b/mods/farming/README.md similarity index 100% rename from farming/README.md rename to mods/farming/README.md diff --git a/farming/api.txt b/mods/farming/api.txt similarity index 100% rename from farming/api.txt rename to mods/farming/api.txt diff --git a/farming/compatibility.lua b/mods/farming/compatibility.lua similarity index 100% rename from farming/compatibility.lua rename to mods/farming/compatibility.lua diff --git a/farming/crops/barley.lua b/mods/farming/crops/barley.lua similarity index 100% rename from farming/crops/barley.lua rename to mods/farming/crops/barley.lua diff --git a/farming/crops/beans.lua b/mods/farming/crops/beans.lua similarity index 100% rename from farming/crops/beans.lua rename to mods/farming/crops/beans.lua diff --git a/farming/crops/beetroot.lua b/mods/farming/crops/beetroot.lua similarity index 100% rename from farming/crops/beetroot.lua rename to mods/farming/crops/beetroot.lua diff --git a/farming/crops/blackberry.lua b/mods/farming/crops/blackberry.lua similarity index 100% rename from farming/crops/blackberry.lua rename to mods/farming/crops/blackberry.lua diff --git a/farming/crops/blueberry.lua b/mods/farming/crops/blueberry.lua similarity index 100% rename from farming/crops/blueberry.lua rename to mods/farming/crops/blueberry.lua diff --git a/farming/crops/cabbage.lua b/mods/farming/crops/cabbage.lua similarity index 100% rename from farming/crops/cabbage.lua rename to mods/farming/crops/cabbage.lua diff --git a/farming/crops/carrot.lua b/mods/farming/crops/carrot.lua similarity index 100% rename from farming/crops/carrot.lua rename to mods/farming/crops/carrot.lua diff --git a/farming/crops/chili.lua b/mods/farming/crops/chili.lua similarity index 100% rename from farming/crops/chili.lua rename to mods/farming/crops/chili.lua diff --git a/farming/crops/cocoa.lua b/mods/farming/crops/cocoa.lua similarity index 100% rename from farming/crops/cocoa.lua rename to mods/farming/crops/cocoa.lua diff --git a/farming/crops/coffee.lua b/mods/farming/crops/coffee.lua similarity index 100% rename from farming/crops/coffee.lua rename to mods/farming/crops/coffee.lua diff --git a/farming/crops/corn.lua b/mods/farming/crops/corn.lua similarity index 100% rename from farming/crops/corn.lua rename to mods/farming/crops/corn.lua diff --git a/farming/crops/cotton.lua b/mods/farming/crops/cotton.lua similarity index 100% rename from farming/crops/cotton.lua rename to mods/farming/crops/cotton.lua diff --git a/farming/crops/cucumber.lua b/mods/farming/crops/cucumber.lua similarity index 100% rename from farming/crops/cucumber.lua rename to mods/farming/crops/cucumber.lua diff --git a/farming/crops/garlic.lua b/mods/farming/crops/garlic.lua similarity index 100% rename from farming/crops/garlic.lua rename to mods/farming/crops/garlic.lua diff --git a/farming/crops/grapes.lua b/mods/farming/crops/grapes.lua similarity index 100% rename from farming/crops/grapes.lua rename to mods/farming/crops/grapes.lua diff --git a/farming/crops/hemp.lua b/mods/farming/crops/hemp.lua similarity index 100% rename from farming/crops/hemp.lua rename to mods/farming/crops/hemp.lua diff --git a/farming/crops/lettuce.lua b/mods/farming/crops/lettuce.lua similarity index 100% rename from farming/crops/lettuce.lua rename to mods/farming/crops/lettuce.lua diff --git a/farming/crops/melon.lua b/mods/farming/crops/melon.lua similarity index 100% rename from farming/crops/melon.lua rename to mods/farming/crops/melon.lua diff --git a/farming/crops/mint.lua b/mods/farming/crops/mint.lua similarity index 100% rename from farming/crops/mint.lua rename to mods/farming/crops/mint.lua diff --git a/farming/crops/onion.lua b/mods/farming/crops/onion.lua similarity index 100% rename from farming/crops/onion.lua rename to mods/farming/crops/onion.lua diff --git a/farming/crops/peas.lua b/mods/farming/crops/peas.lua similarity index 100% rename from farming/crops/peas.lua rename to mods/farming/crops/peas.lua diff --git a/farming/crops/pepper.lua b/mods/farming/crops/pepper.lua similarity index 100% rename from farming/crops/pepper.lua rename to mods/farming/crops/pepper.lua diff --git a/farming/crops/pineapple.lua b/mods/farming/crops/pineapple.lua similarity index 100% rename from farming/crops/pineapple.lua rename to mods/farming/crops/pineapple.lua diff --git a/farming/crops/potato.lua b/mods/farming/crops/potato.lua similarity index 100% rename from farming/crops/potato.lua rename to mods/farming/crops/potato.lua diff --git a/farming/crops/pumpkin.lua b/mods/farming/crops/pumpkin.lua similarity index 100% rename from farming/crops/pumpkin.lua rename to mods/farming/crops/pumpkin.lua diff --git a/farming/crops/raspberry.lua b/mods/farming/crops/raspberry.lua similarity index 100% rename from farming/crops/raspberry.lua rename to mods/farming/crops/raspberry.lua diff --git a/farming/crops/rhubarb.lua b/mods/farming/crops/rhubarb.lua similarity index 100% rename from farming/crops/rhubarb.lua rename to mods/farming/crops/rhubarb.lua diff --git a/farming/crops/ryeoatrice.lua b/mods/farming/crops/ryeoatrice.lua similarity index 100% rename from farming/crops/ryeoatrice.lua rename to mods/farming/crops/ryeoatrice.lua diff --git a/farming/crops/soy.lua b/mods/farming/crops/soy.lua similarity index 100% rename from farming/crops/soy.lua rename to mods/farming/crops/soy.lua diff --git a/farming/crops/tomato.lua b/mods/farming/crops/tomato.lua similarity index 100% rename from farming/crops/tomato.lua rename to mods/farming/crops/tomato.lua diff --git a/farming/crops/vanilla.lua b/mods/farming/crops/vanilla.lua similarity index 100% rename from farming/crops/vanilla.lua rename to mods/farming/crops/vanilla.lua diff --git a/farming/crops/wheat.lua b/mods/farming/crops/wheat.lua similarity index 100% rename from farming/crops/wheat.lua rename to mods/farming/crops/wheat.lua diff --git a/farming/depends.txt b/mods/farming/depends.txt similarity index 100% rename from farming/depends.txt rename to mods/farming/depends.txt diff --git a/farming/description.txt b/mods/farming/description.txt similarity index 100% rename from farming/description.txt rename to mods/farming/description.txt diff --git a/farming/farming.conf_example b/mods/farming/farming.conf_example similarity index 100% rename from farming/farming.conf_example rename to mods/farming/farming.conf_example diff --git a/mods/farming/food.lua b/mods/farming/food.lua new file mode 100644 index 00000000..7f63b8a2 --- /dev/null +++ b/mods/farming/food.lua @@ -0,0 +1,474 @@ + +local S = farming.intllib + +--= Sugar + +minetest.register_craftitem("farming:sugar", { + description = S("Sugar"), + inventory_image = "farming_sugar.png", + groups = {food_sugar = 1, flammable = 3} +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 3, + output = "farming:sugar 2", + recipe = "default:papyrus" +}) + + +--= Salt + +minetest.register_node("farming:salt", { + description = S("Salt"), + inventory_image = "farming_salt.png", + wield_image = "farming_salt.png", + drawtype = "plantlike", + visual_scale = 0.8, + paramtype = "light", + tiles = {"farming_salt.png"}, + groups = {food_salt = 1, vessel = 1, dig_immediate = 3, + attached_node = 1}, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + -- special function to make salt crystals form inside water + dropped_step = function(self, pos, dtime) + + self.ctimer = (self.ctimer or 0) + dtime + if self.ctimer < 15.0 then return end + self.ctimer = 0 + + local needed + + if self.node_inside + and self.node_inside.name == "default:water_source" then + needed = 8 + + elseif self.node_inside + and self.node_inside.name == "default:river_water_source" then + needed = 9 + end + + if not needed then return end + + local objs = core.get_objects_inside_radius(pos, 0.5) + + if not objs or #objs ~= 1 then return end + + local salt, ent = nil, nil + + for k, obj in pairs(objs) do + + ent = obj:get_luaentity() + + if ent and ent.name == "__builtin:item" + and ent.itemstring == "farming:salt " .. needed then + + obj:remove() + + core.add_item(pos, "farming:salt_crystal") + + return false -- return with no further action + end + end + end +}) + +minetest.register_craft({ + type = "cooking", + cooktime = 15, + output = "farming:salt", + recipe = "bucket:bucket_water", + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}} +}) + +--= Salt Crystal + +minetest.register_node("farming:salt_crystal", { + description = ("Salt crystal"), + inventory_image = "farming_salt_crystal.png", + wield_image = "farming_salt_crystal.png", + drawtype = "plantlike", + visual_scale = 0.8, + paramtype = "light", + light_source = 1, + tiles = {"farming_salt_crystal.png"}, + groups = { dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, +}) +minetest.register_craft({ + type = "shapeless", + output = "farming:salt 9", + recipe = {"farming:salt_crystal", "farming:mortar_pestle"}, + replacements = {{"farming:mortar_pestle", "farming:mortar_pestle"}} +}) + +minetest.register_craft({ + output = "farming:salt_crystal", + recipe = { + {"farming:salt", "farming:salt", "farming:salt"}, + {"farming:salt", "farming:salt", "farming:salt"}, + {"farming:salt", "farming:salt", "farming:salt"} + } +}) + +--= Rose Water + +minetest.register_node("farming:rose_water", { + description = S("Rose Water"), + inventory_image = "farming_rose_water.png", + wield_image = "farming_rose_water.png", + drawtype = "plantlike", + visual_scale = 0.8, + paramtype = "light", + tiles = {"farming_rose_water.png"}, + groups = {food_rose_water = 1, vessel = 1, dig_immediate = 3, + attached_node = 1}, + sounds = default.node_sound_defaults(), + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + } +}) + +minetest.register_craft({ + output = "farming:rose_water", + recipe = { + {"flowers:rose", "flowers:rose", "flowers:rose"}, + {"flowers:rose", "flowers:rose", "flowers:rose"}, + {"group:water_bucket", "group:food_pot", "vessels:glass_bottle"} + }, + replacements = { + {"group:water_bucket", "bucket:bucket_empty"}, + {"group:food_pot", "farming:pot"} + } +}) + +if minetest.get_modpath("bucket_wooden") then + minetest.register_craft({ + output = "farming:rose_water", + recipe = { + {"flowers:rose", "flowers:rose", "flowers:rose"}, + {"flowers:rose", "flowers:rose", "flowers:rose"}, + {"group:water_bucket_wooden", "group:food_pot", "vessels:glass_bottle"} + }, + replacements = { + {"group:water_bucket_wooden", "bucket_wooden:bucket_empty"}, + {"group:food_pot", "farming:pot"} + } + }) +end + +--= Turkish Delight + +minetest.register_craftitem("farming:turkish_delight", { + description = S("Turkish Delight"), + inventory_image = "farming_turkish_delight.png", + groups = {flammable = 3}, + on_use = minetest.item_eat(2) +}) + +minetest.register_craft({ + output = "farming:turkish_delight 4", + recipe = { + {"group:food_gelatin", "group:food_sugar", "group:food_gelatin"}, + {"group:food_sugar", "group:food_rose_water", "group:food_sugar"}, + {"group:food_cornstarch", "group:food_sugar", "dye:pink"} + }, + replacements = { + {"group:food_cornstarch", "farming:bowl"}, + {"group:food_rose_water", "vessels:glass_bottle"} + } +}) + +--= Garlic Bread + +minetest.register_craftitem("farming:garlic_bread", { + description = S("Garlic Bread"), + inventory_image = "farming_garlic_bread.png", + groups = {flammable = 3}, + on_use = minetest.item_eat(2) +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:garlic_bread", + recipe = {"group:food_toast", "group:food_garlic_clove", "group:food_garlic_clove"} +}) + +--= Donuts (thanks to Bockwurst for making the donut images) + +minetest.register_craftitem("farming:donut", { + description = S("Donut"), + inventory_image = "farming_donut.png", + on_use = minetest.item_eat(4) +}) + +minetest.register_craft({ + output = "farming:donut 3", + recipe = { + {"", "group:food_wheat", ""}, + {"group:food_wheat", "group:food_sugar", "group:food_wheat"}, + {"", "group:food_wheat", ""} + } +}) + +minetest.register_craftitem("farming:donut_chocolate", { + description = S("Chocolate Donut"), + inventory_image = "farming_donut_chocolate.png", + on_use = minetest.item_eat(6) +}) + +minetest.register_craft({ + output = "farming:donut_chocolate", + recipe = { + {"group:food_cocoa"}, + {"farming:donut"} + } +}) + +minetest.register_craftitem("farming:donut_apple", { + description = S("Apple Donut"), + inventory_image = "farming_donut_apple.png", + on_use = minetest.item_eat(6) +}) + +minetest.register_craft({ + output = "farming:donut_apple", + recipe = { + {"default:apple"}, + {"farming:donut"} + } +}) + +--= Porridge Oats + +minetest.register_craftitem("farming:porridge", { + description = S("Porridge"), + inventory_image = "farming_porridge.png", + on_use = minetest.item_eat(6, "farming:bowl") +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:porridge", + recipe = { + "group:food_oats", "group:food_oats", "group:food_oats", + "group:food_oats", "group:food_bowl", "group:food_milk_glass" + }, + replacements = { + {"mobs:glass_milk", "vessels:drinking_glass"}, + {"farming:soy_milk", "vessels:drinking_glass"} + } +}) + +--= Jaffa Cake + +minetest.register_craftitem("farming:jaffa_cake", { + description = S("Jaffa Cake"), + inventory_image = "farming_jaffa_cake.png", + on_use = minetest.item_eat(6) +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:jaffa_cake", + recipe = { + "farming:baking_tray", "group:food_egg", "group:food_sugar", + "group:food_flour", "group:food_cocoa", "group:food_orange", + "group:food_milk" + }, + replacements = { + {"farming:baking_tray", "farming:baking_tray"}, + {"mobs:bucket_milk", "bucket:bucket_empty"} + } +}) + +-- Apple Pie + +minetest.register_craftitem("farming:apple_pie", { + description = S("Apple Pie"), + inventory_image = "farming_apple_pie.png", + on_use = minetest.item_eat(6) +}) + +minetest.register_craft({ + output = "farming:apple_pie", + type = "shapeless", + recipe = { + "group:food_flour", "group:food_sugar", + "group:food_apple", "group:food_baking_tray" + }, + replacements = {{"group:food_baking_tray", "farming:baking_tray"}} +}) + +-- Cactus Juice + +minetest.register_craftitem("farming:cactus_juice", { + description = S("Cactus Juice"), + inventory_image = "farming_cactus_juice.png", + groups = {vessel = 1, drink = 1}, + on_use = function(itemstack, user, pointed_thing) + if user then + if math.random(5) == 1 then + return minetest.do_item_eat(-1, "vessels:drinking_glass", + itemstack, user, pointed_thing) + else + return minetest.do_item_eat(2, "vessels:drinking_glass", + itemstack, user, pointed_thing) + end + end + end +}) + +minetest.register_craft({ + output = "farming:cactus_juice 2", + type = "shapeless", + recipe = { + "vessels:drinking_glass", "vessels:drinking_glass", + "default:cactus", "farming:juicer" + }, + replacements = { + {"group:food_juicer", "farming:juicer"} + } +}) + +-- Pasta + +minetest.register_craftitem("farming:pasta", { + description = S("Pasta"), + inventory_image = "farming_pasta.png", + groups = {food_pasta = 1} +}) + +minetest.register_craft({ + output = "farming:pasta", + type = "shapeless", + recipe = { + "group:food_flour", "group:food_mixing_bowl", + "group:food_butter" + }, + replacements = {{"group:food_mixing_bowl", "farming:mixing_bowl"}} +}) + +minetest.register_craft({ + output = "farming:pasta", + type = "shapeless", + recipe = { + "group:food_flour", "group:food_mixing_bowl", + "group:food_oil" + }, + replacements = { + {"group:food_mixing_bowl", "farming:mixing_bowl"}, + {"group:food_oil", "vessels:glass_bottle"} + } +}) + +-- Spaghetti + +minetest.register_craftitem("farming:spaghetti", { + description = S("Spaghetti"), + inventory_image = "farming_spaghetti.png", + on_use = minetest.item_eat(8) +}) + +minetest.register_craft({ + output = "farming:spaghetti", + type = "shapeless", + recipe = { + "group:food_pasta", "group:food_saucepan", + "group:food_tomato", "group:food_garlic_clove", "group:food_garlic_clove" + }, + replacements = {{"group:food_saucepan", "farming:saucepan"}} +}) + +-- Korean Bibimbap + +minetest.register_craftitem("farming:bibimbap", { + description = S("Bibimbap"), + inventory_image = "farming_bibimbap.png", + on_use = minetest.item_eat(8, "farming:bowl") +}) + +minetest.register_craft({ + output = "farming:bibimbap", + type = "shapeless", + recipe = { + "group:food_skillet", "group:food_bowl", "group:food_egg", "group:food_rice", + "group:food_chicken_raw", "group:food_cabbage", "group:food_carrot", + "group:food_chili_pepper" + }, + replacements = {{"group:food_skillet", "farming:skillet"}} +}) + +minetest.register_craft({ + output = "farming:bibimbap", + type = "shapeless", + recipe = { + "group:food_skillet", "group:food_bowl", "group:food_mushroom", + "group:food_rice", "group:food_cabbage", "group:food_carrot", + "group:food_mushroom", "group:food_chili_pepper" + }, + replacements = {{"group:food_skillet", "farming:skillet"}} +}) + +-- Burger + +minetest.register_craftitem("farming:burger", { + description = S("Burger"), + inventory_image = "farming_burger.png", + on_use = minetest.item_eat(16), +}) + +minetest.register_craft({ + type = "shapeless", + output = "farming:burger", + recipe = { + "farming:bread", "group:food_meat", "group:food_cheese", + "group:food_tomato", "group:food_cucumber", "group:food_onion", + "group:food_lettuce" + } +}) + +-- Salad + +minetest.register_craftitem("farming:salad", { + description = S("Salad"), + inventory_image = "farming_salad.png", + on_use = minetest.item_eat(8, "farming:bowl") +}) + +minetest.register_craft({ + output = "farming:salad", + type = "shapeless", + recipe = { + "group:food_bowl", "group:food_tomato", "group:food_cucumber", + "group:food_lettuce", "group:food_oil" + }, +}) + +-- Triple Berry Smoothie + +minetest.register_craftitem("farming:smoothie_berry", { + description = S("Triple Berry Smoothie"), + inventory_image = "farming_berry_smoothie.png", + on_use = minetest.item_eat(6, "vessels:drinking_glass"), + groups = {vessel = 1, drink = 1} +}) + +minetest.register_craft({ + output = "farming:smoothie_berry", + type = "shapeless", + recipe = { + "group:food_raspberries", "group:food_blackberries", + "group:food_strawberry", "group:food_banana", + "vessels:drinking_glass" + } +}) diff --git a/farming/grass.lua b/mods/farming/grass.lua similarity index 100% rename from farming/grass.lua rename to mods/farming/grass.lua diff --git a/farming/hoes.lua b/mods/farming/hoes.lua similarity index 100% rename from farming/hoes.lua rename to mods/farming/hoes.lua diff --git a/farming/init.lua b/mods/farming/init.lua similarity index 100% rename from farming/init.lua rename to mods/farming/init.lua diff --git a/farming/intllib.lua b/mods/farming/intllib.lua similarity index 100% rename from farming/intllib.lua rename to mods/farming/intllib.lua diff --git a/farming/license.txt b/mods/farming/license.txt similarity index 100% rename from farming/license.txt rename to mods/farming/license.txt diff --git a/farming/locale/de.txt b/mods/farming/locale/de.txt similarity index 100% rename from farming/locale/de.txt rename to mods/farming/locale/de.txt diff --git a/farming/locale/farming.de.tr b/mods/farming/locale/farming.de.tr similarity index 100% rename from farming/locale/farming.de.tr rename to mods/farming/locale/farming.de.tr diff --git a/farming/locale/farming.en.tr b/mods/farming/locale/farming.en.tr similarity index 100% rename from farming/locale/farming.en.tr rename to mods/farming/locale/farming.en.tr diff --git a/farming/locale/farming.fr.tr b/mods/farming/locale/farming.fr.tr similarity index 100% rename from farming/locale/farming.fr.tr rename to mods/farming/locale/farming.fr.tr diff --git a/farming/locale/farming.it.tr b/mods/farming/locale/farming.it.tr similarity index 100% rename from farming/locale/farming.it.tr rename to mods/farming/locale/farming.it.tr diff --git a/farming/locale/farming.pt.tr b/mods/farming/locale/farming.pt.tr similarity index 100% rename from farming/locale/farming.pt.tr rename to mods/farming/locale/farming.pt.tr diff --git a/farming/locale/farming.ru.tr b/mods/farming/locale/farming.ru.tr similarity index 100% rename from farming/locale/farming.ru.tr rename to mods/farming/locale/farming.ru.tr diff --git a/farming/locale/farming.zh_CN.tr b/mods/farming/locale/farming.zh_CN.tr similarity index 100% rename from farming/locale/farming.zh_CN.tr rename to mods/farming/locale/farming.zh_CN.tr diff --git a/farming/locale/farming.zh_TW.tr b/mods/farming/locale/farming.zh_TW.tr similarity index 100% rename from farming/locale/farming.zh_TW.tr rename to mods/farming/locale/farming.zh_TW.tr diff --git a/farming/locale/fr.txt b/mods/farming/locale/fr.txt similarity index 100% rename from farming/locale/fr.txt rename to mods/farming/locale/fr.txt diff --git a/farming/locale/it.txt b/mods/farming/locale/it.txt similarity index 100% rename from farming/locale/it.txt rename to mods/farming/locale/it.txt diff --git a/farming/locale/pt.txt b/mods/farming/locale/pt.txt similarity index 100% rename from farming/locale/pt.txt rename to mods/farming/locale/pt.txt diff --git a/farming/locale/ru.txt b/mods/farming/locale/ru.txt similarity index 100% rename from farming/locale/ru.txt rename to mods/farming/locale/ru.txt diff --git a/farming/locale/template.txt b/mods/farming/locale/template.txt similarity index 100% rename from farming/locale/template.txt rename to mods/farming/locale/template.txt diff --git a/mods/farming/locale/zh_CN.txt b/mods/farming/locale/zh_CN.txt new file mode 100644 index 00000000..2ec4e554 --- /dev/null +++ b/mods/farming/locale/zh_CN.txt @@ -0,0 +1,119 @@ +Seed=种子 +Banana=香蕉 +Banana Leaves=香蕉叶 +Orange=橙色 +Strawberry=草莓 +Sugar=糖 +Salt=盐 +Rose Water=玫瑰汁 +Turkish Delight=土耳其软糖 +Garlic Bread=蒜香面包 +Donut=甜甜圈 +Chocolate Donut=巧克力甜甜圈 +Apple Donut=苹果甜甜圈 +Porridge=粥 +Jaffa Cake=佳发饼 +Hoe=锄头 +Wooden Hoe=木锄 +Stone Hoe=石锄 +Steel Hoe=钢锄头 +Bronze Hoe=青铜锄头 +Mese Hoe=黄石锄头 +Diamond Hoe=钻石锄 +Hoe Bomb (use or throw on grassy areas to hoe land)=锄弹(在草地上使用或扔在锄地上) +Mithril Scythe (Right-click to harvest and replant crops)=秘银镰刀(右击可收获并重新种植作物) +Soil=土壤 +Wet Soil=湿土 +Wooden Bowl=木碗 +Saucepan=平底锅 +Cooking Pot=锅 +Baking Tray=烤盘 +Skillet=平底锅 +Mortar and Pestle=研钵 +Cutting Board=砧板 +Juicer=榨汁机 +Glass Mixing Bowl=搅拌杯 +Barley Seed=大麦种子 +Barley=大麦 +Green Beans=青豆 +Bean Pole (place on soil before planting beans)=豆杆(种豆前先放在土上) +Beetroot=甜菜根 +Beetroot Soup=甜菜根汤 +Blueberries=蓝莓 +Blueberry Muffin=蓝莓松糕 +Blueberry Pie=蓝莓派 +Carrot=胡萝卜 +Carrot Juice=胡萝卜汁 +Golden Carrot=金萝卜 +Chili Pepper=辣椒 +Bowl of Chili=一碗辣椒 +Cocoa Beans=可可豆 +Cookie=曲奇 +Bar of Dark Chocolate=黑巧克力条 +Chocolate Block=巧克力块 +Coffee Beans=咖啡豆 +Cup of Coffee=一杯咖啡 +Corn=玉米 +Corn on the Cob=玉米棒 +Cornstarch=玉米淀粉 +Bottle of Ethanol=一瓶乙醇 +Cotton Seed=棉籽 +Cotton=棉花 +String=线 +Cucumber=黄瓜 +Garlic clove=蒜瓣 +Garlic=大蒜 +Garlic Braid=蒜辫 +Grapes=葡萄 +Trellis (place on soil before planting grapes)=棚架(种植葡萄前先放在土壤上) +Hemp Seed=大麻籽 +Hemp Leaf=大麻叶 +Bottle of Hemp Oil=一瓶大麻油 +Hemp Fibre=大麻纤维 +Hemp Block=麻块 +Hemp Rope=麻绳 +Melon Slice=西瓜片 +Melon=甜瓜 +Onion=洋葱 +Pea Pod=豌豆荚 +Peas=豌豆 +Pea Soup=豌豆汤 +Peppercorn=胡椒粉 +Pepper=胡椒粉 +Ground Pepper=胡椒粉 +Pineapple Top=菠萝上衣 +Pineapple=菠萝 +Pineapple Ring=菠萝圈 +Pineapple Juice=菠萝汁 +Potato=土豆 +Baked Potato=焗马铃薯 +Cucumber and Potato Salad=黄瓜土豆沙拉 +Pumpkin Slice=南瓜片 +Jack 'O Lantern (punch to turn on and off)=杰克灯(按一下开关) +Scarecrow Bottom=稻草人屁股 +Pumpkin Bread=南瓜面包 +Pumpkin Dough=南瓜面团 +Pumpkin=南瓜 +Raspberries=覆盆子 +Raspberry Smoothie=覆盆子冰沙 +Rhubarb=大黄 +Rhubarb Pie=大黄派 +Rye=黑麦 +Rye seed=黑麦种子 +Oat=燕麦 +Oat seed=燕麦籽 +Rice=大米 +Rice grains=稻谷 +Rice Bread=米饭面包 +Rice Flour=米粉 +Multigrain Flour=多粒面粉 +Multigrain Bread=杂粮面包 +Tomato=番茄 +Wheat Seed=小麦种子 +Wheat=小麦 +Straw=稻草 +Flour=面粉 +Bread=面包 +Sliced Bread=切片面包 +Toast=烤面包片 +Toast Sandwich=三明治面包 diff --git a/farming/locale/zh_TW.txt b/mods/farming/locale/zh_TW.txt similarity index 100% rename from farming/locale/zh_TW.txt rename to mods/farming/locale/zh_TW.txt diff --git a/farming/lucky_block.lua b/mods/farming/lucky_block.lua similarity index 100% rename from farming/lucky_block.lua rename to mods/farming/lucky_block.lua diff --git a/farming/mapgen.lua b/mods/farming/mapgen.lua similarity index 100% rename from farming/mapgen.lua rename to mods/farming/mapgen.lua diff --git a/farming/mod.conf b/mods/farming/mod.conf similarity index 100% rename from farming/mod.conf rename to mods/farming/mod.conf diff --git a/farming/screenshot.png b/mods/farming/screenshot.png similarity index 100% rename from farming/screenshot.png rename to mods/farming/screenshot.png diff --git a/farming/settingtypes.txt b/mods/farming/settingtypes.txt similarity index 100% rename from farming/settingtypes.txt rename to mods/farming/settingtypes.txt diff --git a/farming/soil.lua b/mods/farming/soil.lua similarity index 100% rename from farming/soil.lua rename to mods/farming/soil.lua diff --git a/farming/statistics.lua b/mods/farming/statistics.lua similarity index 100% rename from farming/statistics.lua rename to mods/farming/statistics.lua diff --git a/farming/textures/banana_leaf.png b/mods/farming/textures/banana_leaf.png similarity index 100% rename from farming/textures/banana_leaf.png rename to mods/farming/textures/banana_leaf.png diff --git a/farming/textures/banana_single.png b/mods/farming/textures/banana_single.png similarity index 100% rename from farming/textures/banana_single.png rename to mods/farming/textures/banana_single.png diff --git a/farming/textures/crops_garlic.png b/mods/farming/textures/crops_garlic.png similarity index 100% rename from farming/textures/crops_garlic.png rename to mods/farming/textures/crops_garlic.png diff --git a/farming/textures/crops_garlic_braid.png b/mods/farming/textures/crops_garlic_braid.png similarity index 100% rename from farming/textures/crops_garlic_braid.png rename to mods/farming/textures/crops_garlic_braid.png diff --git a/farming/textures/crops_garlic_braid_side.png b/mods/farming/textures/crops_garlic_braid_side.png similarity index 100% rename from farming/textures/crops_garlic_braid_side.png rename to mods/farming/textures/crops_garlic_braid_side.png diff --git a/farming/textures/crops_garlic_clove.png b/mods/farming/textures/crops_garlic_clove.png similarity index 100% rename from farming/textures/crops_garlic_clove.png rename to mods/farming/textures/crops_garlic_clove.png diff --git a/farming/textures/crops_garlic_plant_1.png b/mods/farming/textures/crops_garlic_plant_1.png similarity index 100% rename from farming/textures/crops_garlic_plant_1.png rename to mods/farming/textures/crops_garlic_plant_1.png diff --git a/farming/textures/crops_garlic_plant_2.png b/mods/farming/textures/crops_garlic_plant_2.png similarity index 100% rename from farming/textures/crops_garlic_plant_2.png rename to mods/farming/textures/crops_garlic_plant_2.png diff --git a/farming/textures/crops_garlic_plant_3.png b/mods/farming/textures/crops_garlic_plant_3.png similarity index 100% rename from farming/textures/crops_garlic_plant_3.png rename to mods/farming/textures/crops_garlic_plant_3.png diff --git a/farming/textures/crops_garlic_plant_4.png b/mods/farming/textures/crops_garlic_plant_4.png similarity index 100% rename from farming/textures/crops_garlic_plant_4.png rename to mods/farming/textures/crops_garlic_plant_4.png diff --git a/farming/textures/crops_garlic_plant_5.png b/mods/farming/textures/crops_garlic_plant_5.png similarity index 100% rename from farming/textures/crops_garlic_plant_5.png rename to mods/farming/textures/crops_garlic_plant_5.png diff --git a/farming/textures/crops_onion.png b/mods/farming/textures/crops_onion.png similarity index 100% rename from farming/textures/crops_onion.png rename to mods/farming/textures/crops_onion.png diff --git a/farming/textures/crops_onion_plant_1.png b/mods/farming/textures/crops_onion_plant_1.png similarity index 100% rename from farming/textures/crops_onion_plant_1.png rename to mods/farming/textures/crops_onion_plant_1.png diff --git a/farming/textures/crops_onion_plant_2.png b/mods/farming/textures/crops_onion_plant_2.png similarity index 100% rename from farming/textures/crops_onion_plant_2.png rename to mods/farming/textures/crops_onion_plant_2.png diff --git a/farming/textures/crops_onion_plant_3.png b/mods/farming/textures/crops_onion_plant_3.png similarity index 100% rename from farming/textures/crops_onion_plant_3.png rename to mods/farming/textures/crops_onion_plant_3.png diff --git a/farming/textures/crops_onion_plant_4.png b/mods/farming/textures/crops_onion_plant_4.png similarity index 100% rename from farming/textures/crops_onion_plant_4.png rename to mods/farming/textures/crops_onion_plant_4.png diff --git a/farming/textures/crops_onion_plant_5.png b/mods/farming/textures/crops_onion_plant_5.png similarity index 100% rename from farming/textures/crops_onion_plant_5.png rename to mods/farming/textures/crops_onion_plant_5.png diff --git a/farming/textures/crops_pepper.png b/mods/farming/textures/crops_pepper.png similarity index 100% rename from farming/textures/crops_pepper.png rename to mods/farming/textures/crops_pepper.png diff --git a/farming/textures/crops_pepper_ground.png b/mods/farming/textures/crops_pepper_ground.png similarity index 100% rename from farming/textures/crops_pepper_ground.png rename to mods/farming/textures/crops_pepper_ground.png diff --git a/farming/textures/crops_pepper_plant_1.png b/mods/farming/textures/crops_pepper_plant_1.png similarity index 100% rename from farming/textures/crops_pepper_plant_1.png rename to mods/farming/textures/crops_pepper_plant_1.png diff --git a/farming/textures/crops_pepper_plant_2.png b/mods/farming/textures/crops_pepper_plant_2.png similarity index 100% rename from farming/textures/crops_pepper_plant_2.png rename to mods/farming/textures/crops_pepper_plant_2.png diff --git a/farming/textures/crops_pepper_plant_3.png b/mods/farming/textures/crops_pepper_plant_3.png similarity index 100% rename from farming/textures/crops_pepper_plant_3.png rename to mods/farming/textures/crops_pepper_plant_3.png diff --git a/farming/textures/crops_pepper_plant_4.png b/mods/farming/textures/crops_pepper_plant_4.png similarity index 100% rename from farming/textures/crops_pepper_plant_4.png rename to mods/farming/textures/crops_pepper_plant_4.png diff --git a/farming/textures/crops_pepper_plant_5.png b/mods/farming/textures/crops_pepper_plant_5.png similarity index 100% rename from farming/textures/crops_pepper_plant_5.png rename to mods/farming/textures/crops_pepper_plant_5.png diff --git a/farming/textures/crops_pepper_plant_6.png b/mods/farming/textures/crops_pepper_plant_6.png similarity index 100% rename from farming/textures/crops_pepper_plant_6.png rename to mods/farming/textures/crops_pepper_plant_6.png diff --git a/farming/textures/crops_pepper_plant_7.png b/mods/farming/textures/crops_pepper_plant_7.png similarity index 100% rename from farming/textures/crops_pepper_plant_7.png rename to mods/farming/textures/crops_pepper_plant_7.png diff --git a/farming/textures/crops_pepper_red.png b/mods/farming/textures/crops_pepper_red.png similarity index 100% rename from farming/textures/crops_pepper_red.png rename to mods/farming/textures/crops_pepper_red.png diff --git a/farming/textures/crops_pepper_yellow.png b/mods/farming/textures/crops_pepper_yellow.png similarity index 100% rename from farming/textures/crops_pepper_yellow.png rename to mods/farming/textures/crops_pepper_yellow.png diff --git a/farming/textures/crops_peppercorn.png b/mods/farming/textures/crops_peppercorn.png similarity index 100% rename from farming/textures/crops_peppercorn.png rename to mods/farming/textures/crops_peppercorn.png diff --git a/farming/textures/default_junglegrass.png b/mods/farming/textures/default_junglegrass.png similarity index 100% rename from farming/textures/default_junglegrass.png rename to mods/farming/textures/default_junglegrass.png diff --git a/farming/textures/farming_apple_pie.png b/mods/farming/textures/farming_apple_pie.png similarity index 100% rename from farming/textures/farming_apple_pie.png rename to mods/farming/textures/farming_apple_pie.png diff --git a/farming/textures/farming_baked_potato.png b/mods/farming/textures/farming_baked_potato.png similarity index 100% rename from farming/textures/farming_baked_potato.png rename to mods/farming/textures/farming_baked_potato.png diff --git a/farming/textures/farming_baking_tray.png b/mods/farming/textures/farming_baking_tray.png similarity index 100% rename from farming/textures/farming_baking_tray.png rename to mods/farming/textures/farming_baking_tray.png diff --git a/farming/textures/farming_barley.png b/mods/farming/textures/farming_barley.png similarity index 100% rename from farming/textures/farming_barley.png rename to mods/farming/textures/farming_barley.png diff --git a/farming/textures/farming_barley_1.png b/mods/farming/textures/farming_barley_1.png similarity index 100% rename from farming/textures/farming_barley_1.png rename to mods/farming/textures/farming_barley_1.png diff --git a/farming/textures/farming_barley_2.png b/mods/farming/textures/farming_barley_2.png similarity index 100% rename from farming/textures/farming_barley_2.png rename to mods/farming/textures/farming_barley_2.png diff --git a/farming/textures/farming_barley_3.png b/mods/farming/textures/farming_barley_3.png similarity index 100% rename from farming/textures/farming_barley_3.png rename to mods/farming/textures/farming_barley_3.png diff --git a/farming/textures/farming_barley_4.png b/mods/farming/textures/farming_barley_4.png similarity index 100% rename from farming/textures/farming_barley_4.png rename to mods/farming/textures/farming_barley_4.png diff --git a/farming/textures/farming_barley_5.png b/mods/farming/textures/farming_barley_5.png similarity index 100% rename from farming/textures/farming_barley_5.png rename to mods/farming/textures/farming_barley_5.png diff --git a/farming/textures/farming_barley_6.png b/mods/farming/textures/farming_barley_6.png similarity index 100% rename from farming/textures/farming_barley_6.png rename to mods/farming/textures/farming_barley_6.png diff --git a/farming/textures/farming_barley_7.png b/mods/farming/textures/farming_barley_7.png similarity index 100% rename from farming/textures/farming_barley_7.png rename to mods/farming/textures/farming_barley_7.png diff --git a/farming/textures/farming_barley_seed.png b/mods/farming/textures/farming_barley_seed.png similarity index 100% rename from farming/textures/farming_barley_seed.png rename to mods/farming/textures/farming_barley_seed.png diff --git a/farming/textures/farming_beanbush.png b/mods/farming/textures/farming_beanbush.png similarity index 100% rename from farming/textures/farming_beanbush.png rename to mods/farming/textures/farming_beanbush.png diff --git a/farming/textures/farming_beanpole.png b/mods/farming/textures/farming_beanpole.png similarity index 100% rename from farming/textures/farming_beanpole.png rename to mods/farming/textures/farming_beanpole.png diff --git a/farming/textures/farming_beanpole_1.png b/mods/farming/textures/farming_beanpole_1.png similarity index 100% rename from farming/textures/farming_beanpole_1.png rename to mods/farming/textures/farming_beanpole_1.png diff --git a/farming/textures/farming_beanpole_2.png b/mods/farming/textures/farming_beanpole_2.png similarity index 100% rename from farming/textures/farming_beanpole_2.png rename to mods/farming/textures/farming_beanpole_2.png diff --git a/farming/textures/farming_beanpole_3.png b/mods/farming/textures/farming_beanpole_3.png similarity index 100% rename from farming/textures/farming_beanpole_3.png rename to mods/farming/textures/farming_beanpole_3.png diff --git a/farming/textures/farming_beanpole_4.png b/mods/farming/textures/farming_beanpole_4.png similarity index 100% rename from farming/textures/farming_beanpole_4.png rename to mods/farming/textures/farming_beanpole_4.png diff --git a/farming/textures/farming_beanpole_5.png b/mods/farming/textures/farming_beanpole_5.png similarity index 100% rename from farming/textures/farming_beanpole_5.png rename to mods/farming/textures/farming_beanpole_5.png diff --git a/farming/textures/farming_beans.png b/mods/farming/textures/farming_beans.png similarity index 100% rename from farming/textures/farming_beans.png rename to mods/farming/textures/farming_beans.png diff --git a/farming/textures/farming_beetroot.png b/mods/farming/textures/farming_beetroot.png similarity index 100% rename from farming/textures/farming_beetroot.png rename to mods/farming/textures/farming_beetroot.png diff --git a/farming/textures/farming_beetroot_1.png b/mods/farming/textures/farming_beetroot_1.png similarity index 100% rename from farming/textures/farming_beetroot_1.png rename to mods/farming/textures/farming_beetroot_1.png diff --git a/farming/textures/farming_beetroot_2.png b/mods/farming/textures/farming_beetroot_2.png similarity index 100% rename from farming/textures/farming_beetroot_2.png rename to mods/farming/textures/farming_beetroot_2.png diff --git a/farming/textures/farming_beetroot_3.png b/mods/farming/textures/farming_beetroot_3.png similarity index 100% rename from farming/textures/farming_beetroot_3.png rename to mods/farming/textures/farming_beetroot_3.png diff --git a/farming/textures/farming_beetroot_4.png b/mods/farming/textures/farming_beetroot_4.png similarity index 100% rename from farming/textures/farming_beetroot_4.png rename to mods/farming/textures/farming_beetroot_4.png diff --git a/farming/textures/farming_beetroot_5.png b/mods/farming/textures/farming_beetroot_5.png similarity index 100% rename from farming/textures/farming_beetroot_5.png rename to mods/farming/textures/farming_beetroot_5.png diff --git a/farming/textures/farming_beetroot_soup.png b/mods/farming/textures/farming_beetroot_soup.png similarity index 100% rename from farming/textures/farming_beetroot_soup.png rename to mods/farming/textures/farming_beetroot_soup.png diff --git a/farming/textures/farming_berry_smoothie.png b/mods/farming/textures/farming_berry_smoothie.png similarity index 100% rename from farming/textures/farming_berry_smoothie.png rename to mods/farming/textures/farming_berry_smoothie.png diff --git a/farming/textures/farming_bibimbap.png b/mods/farming/textures/farming_bibimbap.png similarity index 100% rename from farming/textures/farming_bibimbap.png rename to mods/farming/textures/farming_bibimbap.png diff --git a/farming/textures/farming_blackberry.png b/mods/farming/textures/farming_blackberry.png similarity index 100% rename from farming/textures/farming_blackberry.png rename to mods/farming/textures/farming_blackberry.png diff --git a/farming/textures/farming_blackberry_1.png b/mods/farming/textures/farming_blackberry_1.png similarity index 100% rename from farming/textures/farming_blackberry_1.png rename to mods/farming/textures/farming_blackberry_1.png diff --git a/farming/textures/farming_blackberry_2.png b/mods/farming/textures/farming_blackberry_2.png similarity index 100% rename from farming/textures/farming_blackberry_2.png rename to mods/farming/textures/farming_blackberry_2.png diff --git a/farming/textures/farming_blackberry_3.png b/mods/farming/textures/farming_blackberry_3.png similarity index 100% rename from farming/textures/farming_blackberry_3.png rename to mods/farming/textures/farming_blackberry_3.png diff --git a/farming/textures/farming_blackberry_4.png b/mods/farming/textures/farming_blackberry_4.png similarity index 100% rename from farming/textures/farming_blackberry_4.png rename to mods/farming/textures/farming_blackberry_4.png diff --git a/farming/textures/farming_blueberries.png b/mods/farming/textures/farming_blueberries.png similarity index 100% rename from farming/textures/farming_blueberries.png rename to mods/farming/textures/farming_blueberries.png diff --git a/farming/textures/farming_blueberry_1.png b/mods/farming/textures/farming_blueberry_1.png similarity index 100% rename from farming/textures/farming_blueberry_1.png rename to mods/farming/textures/farming_blueberry_1.png diff --git a/farming/textures/farming_blueberry_2.png b/mods/farming/textures/farming_blueberry_2.png similarity index 100% rename from farming/textures/farming_blueberry_2.png rename to mods/farming/textures/farming_blueberry_2.png diff --git a/farming/textures/farming_blueberry_3.png b/mods/farming/textures/farming_blueberry_3.png similarity index 100% rename from farming/textures/farming_blueberry_3.png rename to mods/farming/textures/farming_blueberry_3.png diff --git a/farming/textures/farming_blueberry_4.png b/mods/farming/textures/farming_blueberry_4.png similarity index 100% rename from farming/textures/farming_blueberry_4.png rename to mods/farming/textures/farming_blueberry_4.png diff --git a/farming/textures/farming_blueberry_muffin.png b/mods/farming/textures/farming_blueberry_muffin.png similarity index 100% rename from farming/textures/farming_blueberry_muffin.png rename to mods/farming/textures/farming_blueberry_muffin.png diff --git a/farming/textures/farming_blueberry_pie.png b/mods/farming/textures/farming_blueberry_pie.png similarity index 100% rename from farming/textures/farming_blueberry_pie.png rename to mods/farming/textures/farming_blueberry_pie.png diff --git a/farming/textures/farming_bottle_ethanol.png b/mods/farming/textures/farming_bottle_ethanol.png similarity index 100% rename from farming/textures/farming_bottle_ethanol.png rename to mods/farming/textures/farming_bottle_ethanol.png diff --git a/farming/textures/farming_bowl.png b/mods/farming/textures/farming_bowl.png similarity index 100% rename from farming/textures/farming_bowl.png rename to mods/farming/textures/farming_bowl.png diff --git a/farming/textures/farming_bread.png b/mods/farming/textures/farming_bread.png similarity index 100% rename from farming/textures/farming_bread.png rename to mods/farming/textures/farming_bread.png diff --git a/farming/textures/farming_bread_multigrain.png b/mods/farming/textures/farming_bread_multigrain.png similarity index 100% rename from farming/textures/farming_bread_multigrain.png rename to mods/farming/textures/farming_bread_multigrain.png diff --git a/farming/textures/farming_bread_slice.png b/mods/farming/textures/farming_bread_slice.png similarity index 100% rename from farming/textures/farming_bread_slice.png rename to mods/farming/textures/farming_bread_slice.png diff --git a/farming/textures/farming_burger.png b/mods/farming/textures/farming_burger.png similarity index 100% rename from farming/textures/farming_burger.png rename to mods/farming/textures/farming_burger.png diff --git a/farming/textures/farming_cabbage.png b/mods/farming/textures/farming_cabbage.png similarity index 100% rename from farming/textures/farming_cabbage.png rename to mods/farming/textures/farming_cabbage.png diff --git a/farming/textures/farming_cabbage_1.png b/mods/farming/textures/farming_cabbage_1.png similarity index 100% rename from farming/textures/farming_cabbage_1.png rename to mods/farming/textures/farming_cabbage_1.png diff --git a/farming/textures/farming_cabbage_2.png b/mods/farming/textures/farming_cabbage_2.png similarity index 100% rename from farming/textures/farming_cabbage_2.png rename to mods/farming/textures/farming_cabbage_2.png diff --git a/farming/textures/farming_cabbage_3.png b/mods/farming/textures/farming_cabbage_3.png similarity index 100% rename from farming/textures/farming_cabbage_3.png rename to mods/farming/textures/farming_cabbage_3.png diff --git a/farming/textures/farming_cabbage_4.png b/mods/farming/textures/farming_cabbage_4.png similarity index 100% rename from farming/textures/farming_cabbage_4.png rename to mods/farming/textures/farming_cabbage_4.png diff --git a/farming/textures/farming_cabbage_5.png b/mods/farming/textures/farming_cabbage_5.png similarity index 100% rename from farming/textures/farming_cabbage_5.png rename to mods/farming/textures/farming_cabbage_5.png diff --git a/farming/textures/farming_cabbage_6.png b/mods/farming/textures/farming_cabbage_6.png similarity index 100% rename from farming/textures/farming_cabbage_6.png rename to mods/farming/textures/farming_cabbage_6.png diff --git a/farming/textures/farming_cactus_juice.png b/mods/farming/textures/farming_cactus_juice.png similarity index 100% rename from farming/textures/farming_cactus_juice.png rename to mods/farming/textures/farming_cactus_juice.png diff --git a/farming/textures/farming_carrot.png b/mods/farming/textures/farming_carrot.png similarity index 100% rename from farming/textures/farming_carrot.png rename to mods/farming/textures/farming_carrot.png diff --git a/farming/textures/farming_carrot_1.png b/mods/farming/textures/farming_carrot_1.png similarity index 100% rename from farming/textures/farming_carrot_1.png rename to mods/farming/textures/farming_carrot_1.png diff --git a/farming/textures/farming_carrot_2.png b/mods/farming/textures/farming_carrot_2.png similarity index 100% rename from farming/textures/farming_carrot_2.png rename to mods/farming/textures/farming_carrot_2.png diff --git a/farming/textures/farming_carrot_3.png b/mods/farming/textures/farming_carrot_3.png similarity index 100% rename from farming/textures/farming_carrot_3.png rename to mods/farming/textures/farming_carrot_3.png diff --git a/farming/textures/farming_carrot_4.png b/mods/farming/textures/farming_carrot_4.png similarity index 100% rename from farming/textures/farming_carrot_4.png rename to mods/farming/textures/farming_carrot_4.png diff --git a/farming/textures/farming_carrot_5.png b/mods/farming/textures/farming_carrot_5.png similarity index 100% rename from farming/textures/farming_carrot_5.png rename to mods/farming/textures/farming_carrot_5.png diff --git a/farming/textures/farming_carrot_6.png b/mods/farming/textures/farming_carrot_6.png similarity index 100% rename from farming/textures/farming_carrot_6.png rename to mods/farming/textures/farming_carrot_6.png diff --git a/farming/textures/farming_carrot_7.png b/mods/farming/textures/farming_carrot_7.png similarity index 100% rename from farming/textures/farming_carrot_7.png rename to mods/farming/textures/farming_carrot_7.png diff --git a/farming/textures/farming_carrot_8.png b/mods/farming/textures/farming_carrot_8.png similarity index 100% rename from farming/textures/farming_carrot_8.png rename to mods/farming/textures/farming_carrot_8.png diff --git a/farming/textures/farming_carrot_gold.png b/mods/farming/textures/farming_carrot_gold.png similarity index 100% rename from farming/textures/farming_carrot_gold.png rename to mods/farming/textures/farming_carrot_gold.png diff --git a/farming/textures/farming_carrot_juice.png b/mods/farming/textures/farming_carrot_juice.png similarity index 100% rename from farming/textures/farming_carrot_juice.png rename to mods/farming/textures/farming_carrot_juice.png diff --git a/farming/textures/farming_chili_1.png b/mods/farming/textures/farming_chili_1.png similarity index 100% rename from farming/textures/farming_chili_1.png rename to mods/farming/textures/farming_chili_1.png diff --git a/farming/textures/farming_chili_2.png b/mods/farming/textures/farming_chili_2.png similarity index 100% rename from farming/textures/farming_chili_2.png rename to mods/farming/textures/farming_chili_2.png diff --git a/farming/textures/farming_chili_3.png b/mods/farming/textures/farming_chili_3.png similarity index 100% rename from farming/textures/farming_chili_3.png rename to mods/farming/textures/farming_chili_3.png diff --git a/farming/textures/farming_chili_4.png b/mods/farming/textures/farming_chili_4.png similarity index 100% rename from farming/textures/farming_chili_4.png rename to mods/farming/textures/farming_chili_4.png diff --git a/farming/textures/farming_chili_5.png b/mods/farming/textures/farming_chili_5.png similarity index 100% rename from farming/textures/farming_chili_5.png rename to mods/farming/textures/farming_chili_5.png diff --git a/farming/textures/farming_chili_6.png b/mods/farming/textures/farming_chili_6.png similarity index 100% rename from farming/textures/farming_chili_6.png rename to mods/farming/textures/farming_chili_6.png diff --git a/farming/textures/farming_chili_7.png b/mods/farming/textures/farming_chili_7.png similarity index 100% rename from farming/textures/farming_chili_7.png rename to mods/farming/textures/farming_chili_7.png diff --git a/farming/textures/farming_chili_8.png b/mods/farming/textures/farming_chili_8.png similarity index 100% rename from farming/textures/farming_chili_8.png rename to mods/farming/textures/farming_chili_8.png diff --git a/farming/textures/farming_chili_bowl.png b/mods/farming/textures/farming_chili_bowl.png similarity index 100% rename from farming/textures/farming_chili_bowl.png rename to mods/farming/textures/farming_chili_bowl.png diff --git a/farming/textures/farming_chili_pepper.png b/mods/farming/textures/farming_chili_pepper.png similarity index 100% rename from farming/textures/farming_chili_pepper.png rename to mods/farming/textures/farming_chili_pepper.png diff --git a/farming/textures/farming_chocolate_block.png b/mods/farming/textures/farming_chocolate_block.png similarity index 100% rename from farming/textures/farming_chocolate_block.png rename to mods/farming/textures/farming_chocolate_block.png diff --git a/farming/textures/farming_chocolate_dark.png b/mods/farming/textures/farming_chocolate_dark.png similarity index 100% rename from farming/textures/farming_chocolate_dark.png rename to mods/farming/textures/farming_chocolate_dark.png diff --git a/farming/textures/farming_cocoa_1.png b/mods/farming/textures/farming_cocoa_1.png similarity index 100% rename from farming/textures/farming_cocoa_1.png rename to mods/farming/textures/farming_cocoa_1.png diff --git a/farming/textures/farming_cocoa_2.png b/mods/farming/textures/farming_cocoa_2.png similarity index 100% rename from farming/textures/farming_cocoa_2.png rename to mods/farming/textures/farming_cocoa_2.png diff --git a/farming/textures/farming_cocoa_3.png b/mods/farming/textures/farming_cocoa_3.png similarity index 100% rename from farming/textures/farming_cocoa_3.png rename to mods/farming/textures/farming_cocoa_3.png diff --git a/farming/textures/farming_cocoa_4.png b/mods/farming/textures/farming_cocoa_4.png similarity index 100% rename from farming/textures/farming_cocoa_4.png rename to mods/farming/textures/farming_cocoa_4.png diff --git a/farming/textures/farming_cocoa_beans.png b/mods/farming/textures/farming_cocoa_beans.png similarity index 100% rename from farming/textures/farming_cocoa_beans.png rename to mods/farming/textures/farming_cocoa_beans.png diff --git a/farming/textures/farming_coffee_1.png b/mods/farming/textures/farming_coffee_1.png similarity index 100% rename from farming/textures/farming_coffee_1.png rename to mods/farming/textures/farming_coffee_1.png diff --git a/farming/textures/farming_coffee_2.png b/mods/farming/textures/farming_coffee_2.png similarity index 100% rename from farming/textures/farming_coffee_2.png rename to mods/farming/textures/farming_coffee_2.png diff --git a/farming/textures/farming_coffee_3.png b/mods/farming/textures/farming_coffee_3.png similarity index 100% rename from farming/textures/farming_coffee_3.png rename to mods/farming/textures/farming_coffee_3.png diff --git a/farming/textures/farming_coffee_4.png b/mods/farming/textures/farming_coffee_4.png similarity index 100% rename from farming/textures/farming_coffee_4.png rename to mods/farming/textures/farming_coffee_4.png diff --git a/farming/textures/farming_coffee_5.png b/mods/farming/textures/farming_coffee_5.png similarity index 100% rename from farming/textures/farming_coffee_5.png rename to mods/farming/textures/farming_coffee_5.png diff --git a/farming/textures/farming_coffee_beans.png b/mods/farming/textures/farming_coffee_beans.png similarity index 100% rename from farming/textures/farming_coffee_beans.png rename to mods/farming/textures/farming_coffee_beans.png diff --git a/farming/textures/farming_coffee_cup.png b/mods/farming/textures/farming_coffee_cup.png similarity index 100% rename from farming/textures/farming_coffee_cup.png rename to mods/farming/textures/farming_coffee_cup.png diff --git a/farming/textures/farming_cookie.png b/mods/farming/textures/farming_cookie.png similarity index 100% rename from farming/textures/farming_cookie.png rename to mods/farming/textures/farming_cookie.png diff --git a/farming/textures/farming_corn.png b/mods/farming/textures/farming_corn.png similarity index 100% rename from farming/textures/farming_corn.png rename to mods/farming/textures/farming_corn.png diff --git a/farming/textures/farming_corn_1.png b/mods/farming/textures/farming_corn_1.png similarity index 100% rename from farming/textures/farming_corn_1.png rename to mods/farming/textures/farming_corn_1.png diff --git a/farming/textures/farming_corn_2.png b/mods/farming/textures/farming_corn_2.png similarity index 100% rename from farming/textures/farming_corn_2.png rename to mods/farming/textures/farming_corn_2.png diff --git a/farming/textures/farming_corn_3.png b/mods/farming/textures/farming_corn_3.png similarity index 100% rename from farming/textures/farming_corn_3.png rename to mods/farming/textures/farming_corn_3.png diff --git a/farming/textures/farming_corn_4.png b/mods/farming/textures/farming_corn_4.png similarity index 100% rename from farming/textures/farming_corn_4.png rename to mods/farming/textures/farming_corn_4.png diff --git a/farming/textures/farming_corn_5.png b/mods/farming/textures/farming_corn_5.png similarity index 100% rename from farming/textures/farming_corn_5.png rename to mods/farming/textures/farming_corn_5.png diff --git a/farming/textures/farming_corn_6.png b/mods/farming/textures/farming_corn_6.png similarity index 100% rename from farming/textures/farming_corn_6.png rename to mods/farming/textures/farming_corn_6.png diff --git a/farming/textures/farming_corn_7.png b/mods/farming/textures/farming_corn_7.png similarity index 100% rename from farming/textures/farming_corn_7.png rename to mods/farming/textures/farming_corn_7.png diff --git a/farming/textures/farming_corn_8.png b/mods/farming/textures/farming_corn_8.png similarity index 100% rename from farming/textures/farming_corn_8.png rename to mods/farming/textures/farming_corn_8.png diff --git a/farming/textures/farming_corn_cob.png b/mods/farming/textures/farming_corn_cob.png similarity index 100% rename from farming/textures/farming_corn_cob.png rename to mods/farming/textures/farming_corn_cob.png diff --git a/farming/textures/farming_cornstarch.png b/mods/farming/textures/farming_cornstarch.png similarity index 100% rename from farming/textures/farming_cornstarch.png rename to mods/farming/textures/farming_cornstarch.png diff --git a/farming/textures/farming_cotton.png b/mods/farming/textures/farming_cotton.png similarity index 100% rename from farming/textures/farming_cotton.png rename to mods/farming/textures/farming_cotton.png diff --git a/farming/textures/farming_cotton_1.png b/mods/farming/textures/farming_cotton_1.png similarity index 100% rename from farming/textures/farming_cotton_1.png rename to mods/farming/textures/farming_cotton_1.png diff --git a/farming/textures/farming_cotton_2.png b/mods/farming/textures/farming_cotton_2.png similarity index 100% rename from farming/textures/farming_cotton_2.png rename to mods/farming/textures/farming_cotton_2.png diff --git a/farming/textures/farming_cotton_3.png b/mods/farming/textures/farming_cotton_3.png similarity index 100% rename from farming/textures/farming_cotton_3.png rename to mods/farming/textures/farming_cotton_3.png diff --git a/farming/textures/farming_cotton_4.png b/mods/farming/textures/farming_cotton_4.png similarity index 100% rename from farming/textures/farming_cotton_4.png rename to mods/farming/textures/farming_cotton_4.png diff --git a/farming/textures/farming_cotton_5.png b/mods/farming/textures/farming_cotton_5.png similarity index 100% rename from farming/textures/farming_cotton_5.png rename to mods/farming/textures/farming_cotton_5.png diff --git a/farming/textures/farming_cotton_6.png b/mods/farming/textures/farming_cotton_6.png similarity index 100% rename from farming/textures/farming_cotton_6.png rename to mods/farming/textures/farming_cotton_6.png diff --git a/farming/textures/farming_cotton_7.png b/mods/farming/textures/farming_cotton_7.png similarity index 100% rename from farming/textures/farming_cotton_7.png rename to mods/farming/textures/farming_cotton_7.png diff --git a/farming/textures/farming_cotton_8.png b/mods/farming/textures/farming_cotton_8.png similarity index 100% rename from farming/textures/farming_cotton_8.png rename to mods/farming/textures/farming_cotton_8.png diff --git a/farming/textures/farming_cotton_seed.png b/mods/farming/textures/farming_cotton_seed.png similarity index 100% rename from farming/textures/farming_cotton_seed.png rename to mods/farming/textures/farming_cotton_seed.png diff --git a/farming/textures/farming_cotton_wild.png b/mods/farming/textures/farming_cotton_wild.png similarity index 100% rename from farming/textures/farming_cotton_wild.png rename to mods/farming/textures/farming_cotton_wild.png diff --git a/farming/textures/farming_cucumber.png b/mods/farming/textures/farming_cucumber.png similarity index 100% rename from farming/textures/farming_cucumber.png rename to mods/farming/textures/farming_cucumber.png diff --git a/farming/textures/farming_cucumber_1.png b/mods/farming/textures/farming_cucumber_1.png similarity index 100% rename from farming/textures/farming_cucumber_1.png rename to mods/farming/textures/farming_cucumber_1.png diff --git a/farming/textures/farming_cucumber_2.png b/mods/farming/textures/farming_cucumber_2.png similarity index 100% rename from farming/textures/farming_cucumber_2.png rename to mods/farming/textures/farming_cucumber_2.png diff --git a/farming/textures/farming_cucumber_3.png b/mods/farming/textures/farming_cucumber_3.png similarity index 100% rename from farming/textures/farming_cucumber_3.png rename to mods/farming/textures/farming_cucumber_3.png diff --git a/farming/textures/farming_cucumber_4.png b/mods/farming/textures/farming_cucumber_4.png similarity index 100% rename from farming/textures/farming_cucumber_4.png rename to mods/farming/textures/farming_cucumber_4.png diff --git a/farming/textures/farming_cutting_board.png b/mods/farming/textures/farming_cutting_board.png similarity index 100% rename from farming/textures/farming_cutting_board.png rename to mods/farming/textures/farming_cutting_board.png diff --git a/farming/textures/farming_desert_sand_soil.png b/mods/farming/textures/farming_desert_sand_soil.png similarity index 100% rename from farming/textures/farming_desert_sand_soil.png rename to mods/farming/textures/farming_desert_sand_soil.png diff --git a/farming/textures/farming_desert_sand_soil_wet.png b/mods/farming/textures/farming_desert_sand_soil_wet.png similarity index 100% rename from farming/textures/farming_desert_sand_soil_wet.png rename to mods/farming/textures/farming_desert_sand_soil_wet.png diff --git a/farming/textures/farming_desert_sand_soil_wet_side.png b/mods/farming/textures/farming_desert_sand_soil_wet_side.png similarity index 100% rename from farming/textures/farming_desert_sand_soil_wet_side.png rename to mods/farming/textures/farming_desert_sand_soil_wet_side.png diff --git a/farming/textures/farming_donut.png b/mods/farming/textures/farming_donut.png similarity index 100% rename from farming/textures/farming_donut.png rename to mods/farming/textures/farming_donut.png diff --git a/farming/textures/farming_donut_apple.png b/mods/farming/textures/farming_donut_apple.png similarity index 100% rename from farming/textures/farming_donut_apple.png rename to mods/farming/textures/farming_donut_apple.png diff --git a/farming/textures/farming_donut_chocolate.png b/mods/farming/textures/farming_donut_chocolate.png similarity index 100% rename from farming/textures/farming_donut_chocolate.png rename to mods/farming/textures/farming_donut_chocolate.png diff --git a/farming/textures/farming_flour.png b/mods/farming/textures/farming_flour.png similarity index 100% rename from farming/textures/farming_flour.png rename to mods/farming/textures/farming_flour.png diff --git a/farming/textures/farming_flour_multigrain.png b/mods/farming/textures/farming_flour_multigrain.png similarity index 100% rename from farming/textures/farming_flour_multigrain.png rename to mods/farming/textures/farming_flour_multigrain.png diff --git a/farming/textures/farming_garlic_bread.png b/mods/farming/textures/farming_garlic_bread.png similarity index 100% rename from farming/textures/farming_garlic_bread.png rename to mods/farming/textures/farming_garlic_bread.png diff --git a/farming/textures/farming_grapebush.png b/mods/farming/textures/farming_grapebush.png similarity index 100% rename from farming/textures/farming_grapebush.png rename to mods/farming/textures/farming_grapebush.png diff --git a/farming/textures/farming_grapes.png b/mods/farming/textures/farming_grapes.png similarity index 100% rename from farming/textures/farming_grapes.png rename to mods/farming/textures/farming_grapes.png diff --git a/farming/textures/farming_grapes_1.png b/mods/farming/textures/farming_grapes_1.png similarity index 100% rename from farming/textures/farming_grapes_1.png rename to mods/farming/textures/farming_grapes_1.png diff --git a/farming/textures/farming_grapes_2.png b/mods/farming/textures/farming_grapes_2.png similarity index 100% rename from farming/textures/farming_grapes_2.png rename to mods/farming/textures/farming_grapes_2.png diff --git a/farming/textures/farming_grapes_3.png b/mods/farming/textures/farming_grapes_3.png similarity index 100% rename from farming/textures/farming_grapes_3.png rename to mods/farming/textures/farming_grapes_3.png diff --git a/farming/textures/farming_grapes_4.png b/mods/farming/textures/farming_grapes_4.png similarity index 100% rename from farming/textures/farming_grapes_4.png rename to mods/farming/textures/farming_grapes_4.png diff --git a/farming/textures/farming_grapes_5.png b/mods/farming/textures/farming_grapes_5.png similarity index 100% rename from farming/textures/farming_grapes_5.png rename to mods/farming/textures/farming_grapes_5.png diff --git a/farming/textures/farming_grapes_6.png b/mods/farming/textures/farming_grapes_6.png similarity index 100% rename from farming/textures/farming_grapes_6.png rename to mods/farming/textures/farming_grapes_6.png diff --git a/farming/textures/farming_grapes_7.png b/mods/farming/textures/farming_grapes_7.png similarity index 100% rename from farming/textures/farming_grapes_7.png rename to mods/farming/textures/farming_grapes_7.png diff --git a/farming/textures/farming_grapes_8.png b/mods/farming/textures/farming_grapes_8.png similarity index 100% rename from farming/textures/farming_grapes_8.png rename to mods/farming/textures/farming_grapes_8.png diff --git a/farming/textures/farming_hemp_1.png b/mods/farming/textures/farming_hemp_1.png similarity index 100% rename from farming/textures/farming_hemp_1.png rename to mods/farming/textures/farming_hemp_1.png diff --git a/farming/textures/farming_hemp_2.png b/mods/farming/textures/farming_hemp_2.png similarity index 100% rename from farming/textures/farming_hemp_2.png rename to mods/farming/textures/farming_hemp_2.png diff --git a/farming/textures/farming_hemp_3.png b/mods/farming/textures/farming_hemp_3.png similarity index 100% rename from farming/textures/farming_hemp_3.png rename to mods/farming/textures/farming_hemp_3.png diff --git a/farming/textures/farming_hemp_4.png b/mods/farming/textures/farming_hemp_4.png similarity index 100% rename from farming/textures/farming_hemp_4.png rename to mods/farming/textures/farming_hemp_4.png diff --git a/farming/textures/farming_hemp_5.png b/mods/farming/textures/farming_hemp_5.png similarity index 100% rename from farming/textures/farming_hemp_5.png rename to mods/farming/textures/farming_hemp_5.png diff --git a/farming/textures/farming_hemp_6.png b/mods/farming/textures/farming_hemp_6.png similarity index 100% rename from farming/textures/farming_hemp_6.png rename to mods/farming/textures/farming_hemp_6.png diff --git a/farming/textures/farming_hemp_7.png b/mods/farming/textures/farming_hemp_7.png similarity index 100% rename from farming/textures/farming_hemp_7.png rename to mods/farming/textures/farming_hemp_7.png diff --git a/farming/textures/farming_hemp_8.png b/mods/farming/textures/farming_hemp_8.png similarity index 100% rename from farming/textures/farming_hemp_8.png rename to mods/farming/textures/farming_hemp_8.png diff --git a/farming/textures/farming_hemp_block.png b/mods/farming/textures/farming_hemp_block.png similarity index 100% rename from farming/textures/farming_hemp_block.png rename to mods/farming/textures/farming_hemp_block.png diff --git a/farming/textures/farming_hemp_fibre.png b/mods/farming/textures/farming_hemp_fibre.png similarity index 100% rename from farming/textures/farming_hemp_fibre.png rename to mods/farming/textures/farming_hemp_fibre.png diff --git a/farming/textures/farming_hemp_leaf.png b/mods/farming/textures/farming_hemp_leaf.png similarity index 100% rename from farming/textures/farming_hemp_leaf.png rename to mods/farming/textures/farming_hemp_leaf.png diff --git a/farming/textures/farming_hemp_oil.png b/mods/farming/textures/farming_hemp_oil.png similarity index 100% rename from farming/textures/farming_hemp_oil.png rename to mods/farming/textures/farming_hemp_oil.png diff --git a/farming/textures/farming_hemp_rope.png b/mods/farming/textures/farming_hemp_rope.png similarity index 100% rename from farming/textures/farming_hemp_rope.png rename to mods/farming/textures/farming_hemp_rope.png diff --git a/farming/textures/farming_hemp_seed.png b/mods/farming/textures/farming_hemp_seed.png similarity index 100% rename from farming/textures/farming_hemp_seed.png rename to mods/farming/textures/farming_hemp_seed.png diff --git a/farming/textures/farming_hoe_bomb.png b/mods/farming/textures/farming_hoe_bomb.png similarity index 100% rename from farming/textures/farming_hoe_bomb.png rename to mods/farming/textures/farming_hoe_bomb.png diff --git a/farming/textures/farming_jaffa_cake.png b/mods/farming/textures/farming_jaffa_cake.png similarity index 100% rename from farming/textures/farming_jaffa_cake.png rename to mods/farming/textures/farming_jaffa_cake.png diff --git a/farming/textures/farming_juicer.png b/mods/farming/textures/farming_juicer.png similarity index 100% rename from farming/textures/farming_juicer.png rename to mods/farming/textures/farming_juicer.png diff --git a/farming/textures/farming_lettuce.png b/mods/farming/textures/farming_lettuce.png similarity index 100% rename from farming/textures/farming_lettuce.png rename to mods/farming/textures/farming_lettuce.png diff --git a/farming/textures/farming_lettuce_1.png b/mods/farming/textures/farming_lettuce_1.png similarity index 100% rename from farming/textures/farming_lettuce_1.png rename to mods/farming/textures/farming_lettuce_1.png diff --git a/farming/textures/farming_lettuce_2.png b/mods/farming/textures/farming_lettuce_2.png similarity index 100% rename from farming/textures/farming_lettuce_2.png rename to mods/farming/textures/farming_lettuce_2.png diff --git a/farming/textures/farming_lettuce_3.png b/mods/farming/textures/farming_lettuce_3.png similarity index 100% rename from farming/textures/farming_lettuce_3.png rename to mods/farming/textures/farming_lettuce_3.png diff --git a/farming/textures/farming_lettuce_4.png b/mods/farming/textures/farming_lettuce_4.png similarity index 100% rename from farming/textures/farming_lettuce_4.png rename to mods/farming/textures/farming_lettuce_4.png diff --git a/farming/textures/farming_lettuce_5.png b/mods/farming/textures/farming_lettuce_5.png similarity index 100% rename from farming/textures/farming_lettuce_5.png rename to mods/farming/textures/farming_lettuce_5.png diff --git a/farming/textures/farming_melon_1.png b/mods/farming/textures/farming_melon_1.png similarity index 100% rename from farming/textures/farming_melon_1.png rename to mods/farming/textures/farming_melon_1.png diff --git a/farming/textures/farming_melon_2.png b/mods/farming/textures/farming_melon_2.png similarity index 100% rename from farming/textures/farming_melon_2.png rename to mods/farming/textures/farming_melon_2.png diff --git a/farming/textures/farming_melon_3.png b/mods/farming/textures/farming_melon_3.png similarity index 100% rename from farming/textures/farming_melon_3.png rename to mods/farming/textures/farming_melon_3.png diff --git a/farming/textures/farming_melon_4.png b/mods/farming/textures/farming_melon_4.png similarity index 100% rename from farming/textures/farming_melon_4.png rename to mods/farming/textures/farming_melon_4.png diff --git a/farming/textures/farming_melon_5.png b/mods/farming/textures/farming_melon_5.png similarity index 100% rename from farming/textures/farming_melon_5.png rename to mods/farming/textures/farming_melon_5.png diff --git a/farming/textures/farming_melon_6.png b/mods/farming/textures/farming_melon_6.png similarity index 100% rename from farming/textures/farming_melon_6.png rename to mods/farming/textures/farming_melon_6.png diff --git a/farming/textures/farming_melon_7.png b/mods/farming/textures/farming_melon_7.png similarity index 100% rename from farming/textures/farming_melon_7.png rename to mods/farming/textures/farming_melon_7.png diff --git a/farming/textures/farming_melon_side.png b/mods/farming/textures/farming_melon_side.png similarity index 100% rename from farming/textures/farming_melon_side.png rename to mods/farming/textures/farming_melon_side.png diff --git a/farming/textures/farming_melon_slice.png b/mods/farming/textures/farming_melon_slice.png similarity index 100% rename from farming/textures/farming_melon_slice.png rename to mods/farming/textures/farming_melon_slice.png diff --git a/farming/textures/farming_melon_top.png b/mods/farming/textures/farming_melon_top.png similarity index 100% rename from farming/textures/farming_melon_top.png rename to mods/farming/textures/farming_melon_top.png diff --git a/farming/textures/farming_mint_1.png b/mods/farming/textures/farming_mint_1.png similarity index 100% rename from farming/textures/farming_mint_1.png rename to mods/farming/textures/farming_mint_1.png diff --git a/farming/textures/farming_mint_2.png b/mods/farming/textures/farming_mint_2.png similarity index 100% rename from farming/textures/farming_mint_2.png rename to mods/farming/textures/farming_mint_2.png diff --git a/farming/textures/farming_mint_3.png b/mods/farming/textures/farming_mint_3.png similarity index 100% rename from farming/textures/farming_mint_3.png rename to mods/farming/textures/farming_mint_3.png diff --git a/farming/textures/farming_mint_4.png b/mods/farming/textures/farming_mint_4.png similarity index 100% rename from farming/textures/farming_mint_4.png rename to mods/farming/textures/farming_mint_4.png diff --git a/farming/textures/farming_mint_leaf.png b/mods/farming/textures/farming_mint_leaf.png similarity index 100% rename from farming/textures/farming_mint_leaf.png rename to mods/farming/textures/farming_mint_leaf.png diff --git a/farming/textures/farming_mint_seeds.png b/mods/farming/textures/farming_mint_seeds.png similarity index 100% rename from farming/textures/farming_mint_seeds.png rename to mods/farming/textures/farming_mint_seeds.png diff --git a/farming/textures/farming_mint_tea.png b/mods/farming/textures/farming_mint_tea.png similarity index 100% rename from farming/textures/farming_mint_tea.png rename to mods/farming/textures/farming_mint_tea.png diff --git a/farming/textures/farming_mixing_bowl.png b/mods/farming/textures/farming_mixing_bowl.png similarity index 100% rename from farming/textures/farming_mixing_bowl.png rename to mods/farming/textures/farming_mixing_bowl.png diff --git a/farming/textures/farming_mortar_pestle.png b/mods/farming/textures/farming_mortar_pestle.png similarity index 100% rename from farming/textures/farming_mortar_pestle.png rename to mods/farming/textures/farming_mortar_pestle.png diff --git a/farming/textures/farming_oat.png b/mods/farming/textures/farming_oat.png similarity index 100% rename from farming/textures/farming_oat.png rename to mods/farming/textures/farming_oat.png diff --git a/farming/textures/farming_oat_1.png b/mods/farming/textures/farming_oat_1.png similarity index 100% rename from farming/textures/farming_oat_1.png rename to mods/farming/textures/farming_oat_1.png diff --git a/farming/textures/farming_oat_2.png b/mods/farming/textures/farming_oat_2.png similarity index 100% rename from farming/textures/farming_oat_2.png rename to mods/farming/textures/farming_oat_2.png diff --git a/farming/textures/farming_oat_3.png b/mods/farming/textures/farming_oat_3.png similarity index 100% rename from farming/textures/farming_oat_3.png rename to mods/farming/textures/farming_oat_3.png diff --git a/farming/textures/farming_oat_4.png b/mods/farming/textures/farming_oat_4.png similarity index 100% rename from farming/textures/farming_oat_4.png rename to mods/farming/textures/farming_oat_4.png diff --git a/farming/textures/farming_oat_5.png b/mods/farming/textures/farming_oat_5.png similarity index 100% rename from farming/textures/farming_oat_5.png rename to mods/farming/textures/farming_oat_5.png diff --git a/farming/textures/farming_oat_6.png b/mods/farming/textures/farming_oat_6.png similarity index 100% rename from farming/textures/farming_oat_6.png rename to mods/farming/textures/farming_oat_6.png diff --git a/farming/textures/farming_oat_7.png b/mods/farming/textures/farming_oat_7.png similarity index 100% rename from farming/textures/farming_oat_7.png rename to mods/farming/textures/farming_oat_7.png diff --git a/farming/textures/farming_oat_8.png b/mods/farming/textures/farming_oat_8.png similarity index 100% rename from farming/textures/farming_oat_8.png rename to mods/farming/textures/farming_oat_8.png diff --git a/farming/textures/farming_oat_seed.png b/mods/farming/textures/farming_oat_seed.png similarity index 100% rename from farming/textures/farming_oat_seed.png rename to mods/farming/textures/farming_oat_seed.png diff --git a/farming/textures/farming_onion_soup.png b/mods/farming/textures/farming_onion_soup.png similarity index 100% rename from farming/textures/farming_onion_soup.png rename to mods/farming/textures/farming_onion_soup.png diff --git a/farming/textures/farming_orange.png b/mods/farming/textures/farming_orange.png similarity index 100% rename from farming/textures/farming_orange.png rename to mods/farming/textures/farming_orange.png diff --git a/farming/textures/farming_pasta.png b/mods/farming/textures/farming_pasta.png similarity index 100% rename from farming/textures/farming_pasta.png rename to mods/farming/textures/farming_pasta.png diff --git a/farming/textures/farming_pea_1.png b/mods/farming/textures/farming_pea_1.png similarity index 100% rename from farming/textures/farming_pea_1.png rename to mods/farming/textures/farming_pea_1.png diff --git a/farming/textures/farming_pea_2.png b/mods/farming/textures/farming_pea_2.png similarity index 100% rename from farming/textures/farming_pea_2.png rename to mods/farming/textures/farming_pea_2.png diff --git a/farming/textures/farming_pea_3.png b/mods/farming/textures/farming_pea_3.png similarity index 100% rename from farming/textures/farming_pea_3.png rename to mods/farming/textures/farming_pea_3.png diff --git a/farming/textures/farming_pea_4.png b/mods/farming/textures/farming_pea_4.png similarity index 100% rename from farming/textures/farming_pea_4.png rename to mods/farming/textures/farming_pea_4.png diff --git a/farming/textures/farming_pea_5.png b/mods/farming/textures/farming_pea_5.png similarity index 100% rename from farming/textures/farming_pea_5.png rename to mods/farming/textures/farming_pea_5.png diff --git a/farming/textures/farming_pea_peas.png b/mods/farming/textures/farming_pea_peas.png similarity index 100% rename from farming/textures/farming_pea_peas.png rename to mods/farming/textures/farming_pea_peas.png diff --git a/farming/textures/farming_pea_pod.png b/mods/farming/textures/farming_pea_pod.png similarity index 100% rename from farming/textures/farming_pea_pod.png rename to mods/farming/textures/farming_pea_pod.png diff --git a/farming/textures/farming_pea_soup.png b/mods/farming/textures/farming_pea_soup.png similarity index 100% rename from farming/textures/farming_pea_soup.png rename to mods/farming/textures/farming_pea_soup.png diff --git a/farming/textures/farming_pineapple.png b/mods/farming/textures/farming_pineapple.png similarity index 100% rename from farming/textures/farming_pineapple.png rename to mods/farming/textures/farming_pineapple.png diff --git a/farming/textures/farming_pineapple_1.png b/mods/farming/textures/farming_pineapple_1.png similarity index 100% rename from farming/textures/farming_pineapple_1.png rename to mods/farming/textures/farming_pineapple_1.png diff --git a/farming/textures/farming_pineapple_2.png b/mods/farming/textures/farming_pineapple_2.png similarity index 100% rename from farming/textures/farming_pineapple_2.png rename to mods/farming/textures/farming_pineapple_2.png diff --git a/farming/textures/farming_pineapple_3.png b/mods/farming/textures/farming_pineapple_3.png similarity index 100% rename from farming/textures/farming_pineapple_3.png rename to mods/farming/textures/farming_pineapple_3.png diff --git a/farming/textures/farming_pineapple_4.png b/mods/farming/textures/farming_pineapple_4.png similarity index 100% rename from farming/textures/farming_pineapple_4.png rename to mods/farming/textures/farming_pineapple_4.png diff --git a/farming/textures/farming_pineapple_5.png b/mods/farming/textures/farming_pineapple_5.png similarity index 100% rename from farming/textures/farming_pineapple_5.png rename to mods/farming/textures/farming_pineapple_5.png diff --git a/farming/textures/farming_pineapple_6.png b/mods/farming/textures/farming_pineapple_6.png similarity index 100% rename from farming/textures/farming_pineapple_6.png rename to mods/farming/textures/farming_pineapple_6.png diff --git a/farming/textures/farming_pineapple_7.png b/mods/farming/textures/farming_pineapple_7.png similarity index 100% rename from farming/textures/farming_pineapple_7.png rename to mods/farming/textures/farming_pineapple_7.png diff --git a/farming/textures/farming_pineapple_8.png b/mods/farming/textures/farming_pineapple_8.png similarity index 100% rename from farming/textures/farming_pineapple_8.png rename to mods/farming/textures/farming_pineapple_8.png diff --git a/farming/textures/farming_pineapple_juice.png b/mods/farming/textures/farming_pineapple_juice.png similarity index 100% rename from farming/textures/farming_pineapple_juice.png rename to mods/farming/textures/farming_pineapple_juice.png diff --git a/farming/textures/farming_pineapple_ring.png b/mods/farming/textures/farming_pineapple_ring.png similarity index 100% rename from farming/textures/farming_pineapple_ring.png rename to mods/farming/textures/farming_pineapple_ring.png diff --git a/farming/textures/farming_pineapple_top.png b/mods/farming/textures/farming_pineapple_top.png similarity index 100% rename from farming/textures/farming_pineapple_top.png rename to mods/farming/textures/farming_pineapple_top.png diff --git a/farming/textures/farming_porridge.png b/mods/farming/textures/farming_porridge.png similarity index 100% rename from farming/textures/farming_porridge.png rename to mods/farming/textures/farming_porridge.png diff --git a/farming/textures/farming_pot.png b/mods/farming/textures/farming_pot.png similarity index 100% rename from farming/textures/farming_pot.png rename to mods/farming/textures/farming_pot.png diff --git a/farming/textures/farming_potato.png b/mods/farming/textures/farming_potato.png similarity index 100% rename from farming/textures/farming_potato.png rename to mods/farming/textures/farming_potato.png diff --git a/farming/textures/farming_potato_1.png b/mods/farming/textures/farming_potato_1.png similarity index 100% rename from farming/textures/farming_potato_1.png rename to mods/farming/textures/farming_potato_1.png diff --git a/farming/textures/farming_potato_2.png b/mods/farming/textures/farming_potato_2.png similarity index 100% rename from farming/textures/farming_potato_2.png rename to mods/farming/textures/farming_potato_2.png diff --git a/farming/textures/farming_potato_3.png b/mods/farming/textures/farming_potato_3.png similarity index 100% rename from farming/textures/farming_potato_3.png rename to mods/farming/textures/farming_potato_3.png diff --git a/farming/textures/farming_potato_4.png b/mods/farming/textures/farming_potato_4.png similarity index 100% rename from farming/textures/farming_potato_4.png rename to mods/farming/textures/farming_potato_4.png diff --git a/farming/textures/farming_potato_salad.png b/mods/farming/textures/farming_potato_salad.png similarity index 100% rename from farming/textures/farming_potato_salad.png rename to mods/farming/textures/farming_potato_salad.png diff --git a/farming/textures/farming_pumpkin_1.png b/mods/farming/textures/farming_pumpkin_1.png similarity index 100% rename from farming/textures/farming_pumpkin_1.png rename to mods/farming/textures/farming_pumpkin_1.png diff --git a/farming/textures/farming_pumpkin_2.png b/mods/farming/textures/farming_pumpkin_2.png similarity index 100% rename from farming/textures/farming_pumpkin_2.png rename to mods/farming/textures/farming_pumpkin_2.png diff --git a/farming/textures/farming_pumpkin_3.png b/mods/farming/textures/farming_pumpkin_3.png similarity index 100% rename from farming/textures/farming_pumpkin_3.png rename to mods/farming/textures/farming_pumpkin_3.png diff --git a/farming/textures/farming_pumpkin_4.png b/mods/farming/textures/farming_pumpkin_4.png similarity index 100% rename from farming/textures/farming_pumpkin_4.png rename to mods/farming/textures/farming_pumpkin_4.png diff --git a/farming/textures/farming_pumpkin_5.png b/mods/farming/textures/farming_pumpkin_5.png similarity index 100% rename from farming/textures/farming_pumpkin_5.png rename to mods/farming/textures/farming_pumpkin_5.png diff --git a/farming/textures/farming_pumpkin_6.png b/mods/farming/textures/farming_pumpkin_6.png similarity index 100% rename from farming/textures/farming_pumpkin_6.png rename to mods/farming/textures/farming_pumpkin_6.png diff --git a/farming/textures/farming_pumpkin_7.png b/mods/farming/textures/farming_pumpkin_7.png similarity index 100% rename from farming/textures/farming_pumpkin_7.png rename to mods/farming/textures/farming_pumpkin_7.png diff --git a/farming/textures/farming_pumpkin_8.png b/mods/farming/textures/farming_pumpkin_8.png similarity index 100% rename from farming/textures/farming_pumpkin_8.png rename to mods/farming/textures/farming_pumpkin_8.png diff --git a/farming/textures/farming_pumpkin_bread.png b/mods/farming/textures/farming_pumpkin_bread.png similarity index 100% rename from farming/textures/farming_pumpkin_bread.png rename to mods/farming/textures/farming_pumpkin_bread.png diff --git a/farming/textures/farming_pumpkin_dough.png b/mods/farming/textures/farming_pumpkin_dough.png similarity index 100% rename from farming/textures/farming_pumpkin_dough.png rename to mods/farming/textures/farming_pumpkin_dough.png diff --git a/farming/textures/farming_pumpkin_face_off.png b/mods/farming/textures/farming_pumpkin_face_off.png similarity index 100% rename from farming/textures/farming_pumpkin_face_off.png rename to mods/farming/textures/farming_pumpkin_face_off.png diff --git a/farming/textures/farming_pumpkin_face_on.png b/mods/farming/textures/farming_pumpkin_face_on.png similarity index 100% rename from farming/textures/farming_pumpkin_face_on.png rename to mods/farming/textures/farming_pumpkin_face_on.png diff --git a/farming/textures/farming_pumpkin_side.png b/mods/farming/textures/farming_pumpkin_side.png similarity index 100% rename from farming/textures/farming_pumpkin_side.png rename to mods/farming/textures/farming_pumpkin_side.png diff --git a/farming/textures/farming_pumpkin_slice.png b/mods/farming/textures/farming_pumpkin_slice.png similarity index 100% rename from farming/textures/farming_pumpkin_slice.png rename to mods/farming/textures/farming_pumpkin_slice.png diff --git a/farming/textures/farming_pumpkin_top.png b/mods/farming/textures/farming_pumpkin_top.png similarity index 100% rename from farming/textures/farming_pumpkin_top.png rename to mods/farming/textures/farming_pumpkin_top.png diff --git a/farming/textures/farming_raspberries.png b/mods/farming/textures/farming_raspberries.png similarity index 100% rename from farming/textures/farming_raspberries.png rename to mods/farming/textures/farming_raspberries.png diff --git a/farming/textures/farming_raspberry_1.png b/mods/farming/textures/farming_raspberry_1.png similarity index 100% rename from farming/textures/farming_raspberry_1.png rename to mods/farming/textures/farming_raspberry_1.png diff --git a/farming/textures/farming_raspberry_2.png b/mods/farming/textures/farming_raspberry_2.png similarity index 100% rename from farming/textures/farming_raspberry_2.png rename to mods/farming/textures/farming_raspberry_2.png diff --git a/farming/textures/farming_raspberry_3.png b/mods/farming/textures/farming_raspberry_3.png similarity index 100% rename from farming/textures/farming_raspberry_3.png rename to mods/farming/textures/farming_raspberry_3.png diff --git a/farming/textures/farming_raspberry_4.png b/mods/farming/textures/farming_raspberry_4.png similarity index 100% rename from farming/textures/farming_raspberry_4.png rename to mods/farming/textures/farming_raspberry_4.png diff --git a/farming/textures/farming_raspberry_smoothie.png b/mods/farming/textures/farming_raspberry_smoothie.png similarity index 100% rename from farming/textures/farming_raspberry_smoothie.png rename to mods/farming/textures/farming_raspberry_smoothie.png diff --git a/farming/textures/farming_rhubarb.png b/mods/farming/textures/farming_rhubarb.png similarity index 100% rename from farming/textures/farming_rhubarb.png rename to mods/farming/textures/farming_rhubarb.png diff --git a/farming/textures/farming_rhubarb_1.png b/mods/farming/textures/farming_rhubarb_1.png similarity index 100% rename from farming/textures/farming_rhubarb_1.png rename to mods/farming/textures/farming_rhubarb_1.png diff --git a/farming/textures/farming_rhubarb_2.png b/mods/farming/textures/farming_rhubarb_2.png similarity index 100% rename from farming/textures/farming_rhubarb_2.png rename to mods/farming/textures/farming_rhubarb_2.png diff --git a/farming/textures/farming_rhubarb_3.png b/mods/farming/textures/farming_rhubarb_3.png similarity index 100% rename from farming/textures/farming_rhubarb_3.png rename to mods/farming/textures/farming_rhubarb_3.png diff --git a/farming/textures/farming_rhubarb_pie.png b/mods/farming/textures/farming_rhubarb_pie.png similarity index 100% rename from farming/textures/farming_rhubarb_pie.png rename to mods/farming/textures/farming_rhubarb_pie.png diff --git a/farming/textures/farming_rice.png b/mods/farming/textures/farming_rice.png similarity index 100% rename from farming/textures/farming_rice.png rename to mods/farming/textures/farming_rice.png diff --git a/farming/textures/farming_rice_1.png b/mods/farming/textures/farming_rice_1.png similarity index 100% rename from farming/textures/farming_rice_1.png rename to mods/farming/textures/farming_rice_1.png diff --git a/farming/textures/farming_rice_2.png b/mods/farming/textures/farming_rice_2.png similarity index 100% rename from farming/textures/farming_rice_2.png rename to mods/farming/textures/farming_rice_2.png diff --git a/farming/textures/farming_rice_3.png b/mods/farming/textures/farming_rice_3.png similarity index 100% rename from farming/textures/farming_rice_3.png rename to mods/farming/textures/farming_rice_3.png diff --git a/farming/textures/farming_rice_4.png b/mods/farming/textures/farming_rice_4.png similarity index 100% rename from farming/textures/farming_rice_4.png rename to mods/farming/textures/farming_rice_4.png diff --git a/farming/textures/farming_rice_5.png b/mods/farming/textures/farming_rice_5.png similarity index 100% rename from farming/textures/farming_rice_5.png rename to mods/farming/textures/farming_rice_5.png diff --git a/farming/textures/farming_rice_6.png b/mods/farming/textures/farming_rice_6.png similarity index 100% rename from farming/textures/farming_rice_6.png rename to mods/farming/textures/farming_rice_6.png diff --git a/farming/textures/farming_rice_7.png b/mods/farming/textures/farming_rice_7.png similarity index 100% rename from farming/textures/farming_rice_7.png rename to mods/farming/textures/farming_rice_7.png diff --git a/farming/textures/farming_rice_8.png b/mods/farming/textures/farming_rice_8.png similarity index 100% rename from farming/textures/farming_rice_8.png rename to mods/farming/textures/farming_rice_8.png diff --git a/farming/textures/farming_rice_bread.png b/mods/farming/textures/farming_rice_bread.png similarity index 100% rename from farming/textures/farming_rice_bread.png rename to mods/farming/textures/farming_rice_bread.png diff --git a/farming/textures/farming_rice_flour.png b/mods/farming/textures/farming_rice_flour.png similarity index 100% rename from farming/textures/farming_rice_flour.png rename to mods/farming/textures/farming_rice_flour.png diff --git a/farming/textures/farming_rice_seed.png b/mods/farming/textures/farming_rice_seed.png similarity index 100% rename from farming/textures/farming_rice_seed.png rename to mods/farming/textures/farming_rice_seed.png diff --git a/farming/textures/farming_rose_water.png b/mods/farming/textures/farming_rose_water.png similarity index 100% rename from farming/textures/farming_rose_water.png rename to mods/farming/textures/farming_rose_water.png diff --git a/farming/textures/farming_rye.png b/mods/farming/textures/farming_rye.png similarity index 100% rename from farming/textures/farming_rye.png rename to mods/farming/textures/farming_rye.png diff --git a/farming/textures/farming_rye_1.png b/mods/farming/textures/farming_rye_1.png similarity index 100% rename from farming/textures/farming_rye_1.png rename to mods/farming/textures/farming_rye_1.png diff --git a/farming/textures/farming_rye_2.png b/mods/farming/textures/farming_rye_2.png similarity index 100% rename from farming/textures/farming_rye_2.png rename to mods/farming/textures/farming_rye_2.png diff --git a/farming/textures/farming_rye_3.png b/mods/farming/textures/farming_rye_3.png similarity index 100% rename from farming/textures/farming_rye_3.png rename to mods/farming/textures/farming_rye_3.png diff --git a/farming/textures/farming_rye_4.png b/mods/farming/textures/farming_rye_4.png similarity index 100% rename from farming/textures/farming_rye_4.png rename to mods/farming/textures/farming_rye_4.png diff --git a/farming/textures/farming_rye_5.png b/mods/farming/textures/farming_rye_5.png similarity index 100% rename from farming/textures/farming_rye_5.png rename to mods/farming/textures/farming_rye_5.png diff --git a/farming/textures/farming_rye_6.png b/mods/farming/textures/farming_rye_6.png similarity index 100% rename from farming/textures/farming_rye_6.png rename to mods/farming/textures/farming_rye_6.png diff --git a/farming/textures/farming_rye_7.png b/mods/farming/textures/farming_rye_7.png similarity index 100% rename from farming/textures/farming_rye_7.png rename to mods/farming/textures/farming_rye_7.png diff --git a/farming/textures/farming_rye_8.png b/mods/farming/textures/farming_rye_8.png similarity index 100% rename from farming/textures/farming_rye_8.png rename to mods/farming/textures/farming_rye_8.png diff --git a/farming/textures/farming_rye_seed.png b/mods/farming/textures/farming_rye_seed.png similarity index 100% rename from farming/textures/farming_rye_seed.png rename to mods/farming/textures/farming_rye_seed.png diff --git a/farming/textures/farming_salad.png b/mods/farming/textures/farming_salad.png similarity index 100% rename from farming/textures/farming_salad.png rename to mods/farming/textures/farming_salad.png diff --git a/farming/textures/farming_salt.png b/mods/farming/textures/farming_salt.png similarity index 100% rename from farming/textures/farming_salt.png rename to mods/farming/textures/farming_salt.png diff --git a/farming/textures/farming_salt_crystal.png b/mods/farming/textures/farming_salt_crystal.png similarity index 100% rename from farming/textures/farming_salt_crystal.png rename to mods/farming/textures/farming_salt_crystal.png diff --git a/farming/textures/farming_saucepan.png b/mods/farming/textures/farming_saucepan.png similarity index 100% rename from farming/textures/farming_saucepan.png rename to mods/farming/textures/farming_saucepan.png diff --git a/farming/textures/farming_scythe_mithril.png b/mods/farming/textures/farming_scythe_mithril.png similarity index 100% rename from farming/textures/farming_scythe_mithril.png rename to mods/farming/textures/farming_scythe_mithril.png diff --git a/farming/textures/farming_skillet.png b/mods/farming/textures/farming_skillet.png similarity index 100% rename from farming/textures/farming_skillet.png rename to mods/farming/textures/farming_skillet.png diff --git a/farming/textures/farming_soil.png b/mods/farming/textures/farming_soil.png similarity index 100% rename from farming/textures/farming_soil.png rename to mods/farming/textures/farming_soil.png diff --git a/farming/textures/farming_soil_wet.png b/mods/farming/textures/farming_soil_wet.png similarity index 100% rename from farming/textures/farming_soil_wet.png rename to mods/farming/textures/farming_soil_wet.png diff --git a/farming/textures/farming_soil_wet_side.png b/mods/farming/textures/farming_soil_wet_side.png similarity index 100% rename from farming/textures/farming_soil_wet_side.png rename to mods/farming/textures/farming_soil_wet_side.png diff --git a/farming/textures/farming_soy_1.png b/mods/farming/textures/farming_soy_1.png similarity index 100% rename from farming/textures/farming_soy_1.png rename to mods/farming/textures/farming_soy_1.png diff --git a/farming/textures/farming_soy_2.png b/mods/farming/textures/farming_soy_2.png similarity index 100% rename from farming/textures/farming_soy_2.png rename to mods/farming/textures/farming_soy_2.png diff --git a/farming/textures/farming_soy_3.png b/mods/farming/textures/farming_soy_3.png similarity index 100% rename from farming/textures/farming_soy_3.png rename to mods/farming/textures/farming_soy_3.png diff --git a/farming/textures/farming_soy_4.png b/mods/farming/textures/farming_soy_4.png similarity index 100% rename from farming/textures/farming_soy_4.png rename to mods/farming/textures/farming_soy_4.png diff --git a/farming/textures/farming_soy_5.png b/mods/farming/textures/farming_soy_5.png similarity index 100% rename from farming/textures/farming_soy_5.png rename to mods/farming/textures/farming_soy_5.png diff --git a/farming/textures/farming_soy_6.png b/mods/farming/textures/farming_soy_6.png similarity index 100% rename from farming/textures/farming_soy_6.png rename to mods/farming/textures/farming_soy_6.png diff --git a/farming/textures/farming_soy_7.png b/mods/farming/textures/farming_soy_7.png similarity index 100% rename from farming/textures/farming_soy_7.png rename to mods/farming/textures/farming_soy_7.png diff --git a/farming/textures/farming_soy_beans.png b/mods/farming/textures/farming_soy_beans.png similarity index 100% rename from farming/textures/farming_soy_beans.png rename to mods/farming/textures/farming_soy_beans.png diff --git a/farming/textures/farming_soy_milk_glass.png b/mods/farming/textures/farming_soy_milk_glass.png similarity index 100% rename from farming/textures/farming_soy_milk_glass.png rename to mods/farming/textures/farming_soy_milk_glass.png diff --git a/farming/textures/farming_soy_pod.png b/mods/farming/textures/farming_soy_pod.png similarity index 100% rename from farming/textures/farming_soy_pod.png rename to mods/farming/textures/farming_soy_pod.png diff --git a/farming/textures/farming_spaghetti.png b/mods/farming/textures/farming_spaghetti.png similarity index 100% rename from farming/textures/farming_spaghetti.png rename to mods/farming/textures/farming_spaghetti.png diff --git a/farming/textures/farming_straw.png b/mods/farming/textures/farming_straw.png similarity index 100% rename from farming/textures/farming_straw.png rename to mods/farming/textures/farming_straw.png diff --git a/farming/textures/farming_string.png b/mods/farming/textures/farming_string.png similarity index 100% rename from farming/textures/farming_string.png rename to mods/farming/textures/farming_string.png diff --git a/farming/textures/farming_sugar.png b/mods/farming/textures/farming_sugar.png similarity index 100% rename from farming/textures/farming_sugar.png rename to mods/farming/textures/farming_sugar.png diff --git a/farming/textures/farming_toast.png b/mods/farming/textures/farming_toast.png similarity index 100% rename from farming/textures/farming_toast.png rename to mods/farming/textures/farming_toast.png diff --git a/farming/textures/farming_toast_sandwich.png b/mods/farming/textures/farming_toast_sandwich.png similarity index 100% rename from farming/textures/farming_toast_sandwich.png rename to mods/farming/textures/farming_toast_sandwich.png diff --git a/farming/textures/farming_tofu.png b/mods/farming/textures/farming_tofu.png similarity index 100% rename from farming/textures/farming_tofu.png rename to mods/farming/textures/farming_tofu.png diff --git a/farming/textures/farming_tofu_cooked.png b/mods/farming/textures/farming_tofu_cooked.png similarity index 100% rename from farming/textures/farming_tofu_cooked.png rename to mods/farming/textures/farming_tofu_cooked.png diff --git a/farming/textures/farming_tomato.png b/mods/farming/textures/farming_tomato.png similarity index 100% rename from farming/textures/farming_tomato.png rename to mods/farming/textures/farming_tomato.png diff --git a/farming/textures/farming_tomato_1.png b/mods/farming/textures/farming_tomato_1.png similarity index 100% rename from farming/textures/farming_tomato_1.png rename to mods/farming/textures/farming_tomato_1.png diff --git a/farming/textures/farming_tomato_2.png b/mods/farming/textures/farming_tomato_2.png similarity index 100% rename from farming/textures/farming_tomato_2.png rename to mods/farming/textures/farming_tomato_2.png diff --git a/farming/textures/farming_tomato_3.png b/mods/farming/textures/farming_tomato_3.png similarity index 100% rename from farming/textures/farming_tomato_3.png rename to mods/farming/textures/farming_tomato_3.png diff --git a/farming/textures/farming_tomato_4.png b/mods/farming/textures/farming_tomato_4.png similarity index 100% rename from farming/textures/farming_tomato_4.png rename to mods/farming/textures/farming_tomato_4.png diff --git a/farming/textures/farming_tomato_5.png b/mods/farming/textures/farming_tomato_5.png similarity index 100% rename from farming/textures/farming_tomato_5.png rename to mods/farming/textures/farming_tomato_5.png diff --git a/farming/textures/farming_tomato_6.png b/mods/farming/textures/farming_tomato_6.png similarity index 100% rename from farming/textures/farming_tomato_6.png rename to mods/farming/textures/farming_tomato_6.png diff --git a/farming/textures/farming_tomato_7.png b/mods/farming/textures/farming_tomato_7.png similarity index 100% rename from farming/textures/farming_tomato_7.png rename to mods/farming/textures/farming_tomato_7.png diff --git a/farming/textures/farming_tomato_8.png b/mods/farming/textures/farming_tomato_8.png similarity index 100% rename from farming/textures/farming_tomato_8.png rename to mods/farming/textures/farming_tomato_8.png diff --git a/farming/textures/farming_tool_bronzehoe.png b/mods/farming/textures/farming_tool_bronzehoe.png similarity index 100% rename from farming/textures/farming_tool_bronzehoe.png rename to mods/farming/textures/farming_tool_bronzehoe.png diff --git a/farming/textures/farming_tool_diamondhoe.png b/mods/farming/textures/farming_tool_diamondhoe.png similarity index 100% rename from farming/textures/farming_tool_diamondhoe.png rename to mods/farming/textures/farming_tool_diamondhoe.png diff --git a/farming/textures/farming_tool_mesehoe.png b/mods/farming/textures/farming_tool_mesehoe.png similarity index 100% rename from farming/textures/farming_tool_mesehoe.png rename to mods/farming/textures/farming_tool_mesehoe.png diff --git a/farming/textures/farming_tool_steelhoe.png b/mods/farming/textures/farming_tool_steelhoe.png similarity index 100% rename from farming/textures/farming_tool_steelhoe.png rename to mods/farming/textures/farming_tool_steelhoe.png diff --git a/farming/textures/farming_tool_stonehoe.png b/mods/farming/textures/farming_tool_stonehoe.png similarity index 100% rename from farming/textures/farming_tool_stonehoe.png rename to mods/farming/textures/farming_tool_stonehoe.png diff --git a/farming/textures/farming_tool_woodhoe.png b/mods/farming/textures/farming_tool_woodhoe.png similarity index 100% rename from farming/textures/farming_tool_woodhoe.png rename to mods/farming/textures/farming_tool_woodhoe.png diff --git a/farming/textures/farming_trellis.png b/mods/farming/textures/farming_trellis.png similarity index 100% rename from farming/textures/farming_trellis.png rename to mods/farming/textures/farming_trellis.png diff --git a/farming/textures/farming_turkish_delight.png b/mods/farming/textures/farming_turkish_delight.png similarity index 100% rename from farming/textures/farming_turkish_delight.png rename to mods/farming/textures/farming_turkish_delight.png diff --git a/farming/textures/farming_vanilla.png b/mods/farming/textures/farming_vanilla.png similarity index 100% rename from farming/textures/farming_vanilla.png rename to mods/farming/textures/farming_vanilla.png diff --git a/farming/textures/farming_vanilla_1.png b/mods/farming/textures/farming_vanilla_1.png similarity index 100% rename from farming/textures/farming_vanilla_1.png rename to mods/farming/textures/farming_vanilla_1.png diff --git a/farming/textures/farming_vanilla_2.png b/mods/farming/textures/farming_vanilla_2.png similarity index 100% rename from farming/textures/farming_vanilla_2.png rename to mods/farming/textures/farming_vanilla_2.png diff --git a/farming/textures/farming_vanilla_3.png b/mods/farming/textures/farming_vanilla_3.png similarity index 100% rename from farming/textures/farming_vanilla_3.png rename to mods/farming/textures/farming_vanilla_3.png diff --git a/farming/textures/farming_vanilla_4.png b/mods/farming/textures/farming_vanilla_4.png similarity index 100% rename from farming/textures/farming_vanilla_4.png rename to mods/farming/textures/farming_vanilla_4.png diff --git a/farming/textures/farming_vanilla_5.png b/mods/farming/textures/farming_vanilla_5.png similarity index 100% rename from farming/textures/farming_vanilla_5.png rename to mods/farming/textures/farming_vanilla_5.png diff --git a/farming/textures/farming_vanilla_6.png b/mods/farming/textures/farming_vanilla_6.png similarity index 100% rename from farming/textures/farming_vanilla_6.png rename to mods/farming/textures/farming_vanilla_6.png diff --git a/farming/textures/farming_vanilla_7.png b/mods/farming/textures/farming_vanilla_7.png similarity index 100% rename from farming/textures/farming_vanilla_7.png rename to mods/farming/textures/farming_vanilla_7.png diff --git a/farming/textures/farming_vanilla_8.png b/mods/farming/textures/farming_vanilla_8.png similarity index 100% rename from farming/textures/farming_vanilla_8.png rename to mods/farming/textures/farming_vanilla_8.png diff --git a/farming/textures/farming_vanilla_extract.png b/mods/farming/textures/farming_vanilla_extract.png similarity index 100% rename from farming/textures/farming_vanilla_extract.png rename to mods/farming/textures/farming_vanilla_extract.png diff --git a/farming/textures/farming_wheat.png b/mods/farming/textures/farming_wheat.png similarity index 100% rename from farming/textures/farming_wheat.png rename to mods/farming/textures/farming_wheat.png diff --git a/farming/textures/farming_wheat_1.png b/mods/farming/textures/farming_wheat_1.png similarity index 100% rename from farming/textures/farming_wheat_1.png rename to mods/farming/textures/farming_wheat_1.png diff --git a/farming/textures/farming_wheat_2.png b/mods/farming/textures/farming_wheat_2.png similarity index 100% rename from farming/textures/farming_wheat_2.png rename to mods/farming/textures/farming_wheat_2.png diff --git a/farming/textures/farming_wheat_3.png b/mods/farming/textures/farming_wheat_3.png similarity index 100% rename from farming/textures/farming_wheat_3.png rename to mods/farming/textures/farming_wheat_3.png diff --git a/farming/textures/farming_wheat_4.png b/mods/farming/textures/farming_wheat_4.png similarity index 100% rename from farming/textures/farming_wheat_4.png rename to mods/farming/textures/farming_wheat_4.png diff --git a/farming/textures/farming_wheat_5.png b/mods/farming/textures/farming_wheat_5.png similarity index 100% rename from farming/textures/farming_wheat_5.png rename to mods/farming/textures/farming_wheat_5.png diff --git a/farming/textures/farming_wheat_6.png b/mods/farming/textures/farming_wheat_6.png similarity index 100% rename from farming/textures/farming_wheat_6.png rename to mods/farming/textures/farming_wheat_6.png diff --git a/farming/textures/farming_wheat_7.png b/mods/farming/textures/farming_wheat_7.png similarity index 100% rename from farming/textures/farming_wheat_7.png rename to mods/farming/textures/farming_wheat_7.png diff --git a/farming/textures/farming_wheat_8.png b/mods/farming/textures/farming_wheat_8.png similarity index 100% rename from farming/textures/farming_wheat_8.png rename to mods/farming/textures/farming_wheat_8.png diff --git a/farming/textures/farming_wheat_seed.png b/mods/farming/textures/farming_wheat_seed.png similarity index 100% rename from farming/textures/farming_wheat_seed.png rename to mods/farming/textures/farming_wheat_seed.png diff --git a/farming/textures/strawberry.png b/mods/farming/textures/strawberry.png similarity index 100% rename from farming/textures/strawberry.png rename to mods/farming/textures/strawberry.png diff --git a/farming/textures/vessels_drinking_cup.png b/mods/farming/textures/vessels_drinking_cup.png similarity index 100% rename from farming/textures/vessels_drinking_cup.png rename to mods/farming/textures/vessels_drinking_cup.png diff --git a/farming/utensils.lua b/mods/farming/utensils.lua similarity index 100% rename from farming/utensils.lua rename to mods/farming/utensils.lua diff --git a/ferns/crafting.lua b/mods/ferns/crafting.lua similarity index 100% rename from ferns/crafting.lua rename to mods/ferns/crafting.lua diff --git a/ferns/fern.lua b/mods/ferns/fern.lua similarity index 100% rename from ferns/fern.lua rename to mods/ferns/fern.lua diff --git a/ferns/gianttreefern.lua b/mods/ferns/gianttreefern.lua similarity index 100% rename from ferns/gianttreefern.lua rename to mods/ferns/gianttreefern.lua diff --git a/ferns/horsetail.lua b/mods/ferns/horsetail.lua similarity index 100% rename from ferns/horsetail.lua rename to mods/ferns/horsetail.lua diff --git a/ferns/init.lua b/mods/ferns/init.lua similarity index 100% rename from ferns/init.lua rename to mods/ferns/init.lua diff --git a/ferns/locale/ferns.fr.tr b/mods/ferns/locale/ferns.fr.tr similarity index 100% rename from ferns/locale/ferns.fr.tr rename to mods/ferns/locale/ferns.fr.tr diff --git a/ferns/locale/template.txt b/mods/ferns/locale/template.txt similarity index 100% rename from ferns/locale/template.txt rename to mods/ferns/locale/template.txt diff --git a/ferns/mod.conf b/mods/ferns/mod.conf similarity index 100% rename from ferns/mod.conf rename to mods/ferns/mod.conf diff --git a/ferns/settings.lua b/mods/ferns/settings.lua similarity index 100% rename from ferns/settings.lua rename to mods/ferns/settings.lua diff --git a/ferns/textures/ferns_5.png b/mods/ferns/textures/ferns_5.png similarity index 100% rename from ferns/textures/ferns_5.png rename to mods/ferns/textures/ferns_5.png diff --git a/ferns/textures/ferns_6.png b/mods/ferns/textures/ferns_6.png similarity index 100% rename from ferns/textures/ferns_6.png rename to mods/ferns/textures/ferns_6.png diff --git a/ferns/textures/ferns_7.png b/mods/ferns/textures/ferns_7.png similarity index 100% rename from ferns/textures/ferns_7.png rename to mods/ferns/textures/ferns_7.png diff --git a/ferns/textures/ferns_8.png b/mods/ferns/textures/ferns_8.png similarity index 100% rename from ferns/textures/ferns_8.png rename to mods/ferns/textures/ferns_8.png diff --git a/ferns/textures/ferns_fern.png b/mods/ferns/textures/ferns_fern.png similarity index 100% rename from ferns/textures/ferns_fern.png rename to mods/ferns/textures/ferns_fern.png diff --git a/ferns/textures/ferns_fern_big.png b/mods/ferns/textures/ferns_fern_big.png similarity index 100% rename from ferns/textures/ferns_fern_big.png rename to mods/ferns/textures/ferns_fern_big.png diff --git a/ferns/textures/ferns_fern_mid.png b/mods/ferns/textures/ferns_fern_mid.png similarity index 100% rename from ferns/textures/ferns_fern_mid.png rename to mods/ferns/textures/ferns_fern_mid.png diff --git a/ferns/textures/ferns_fern_tree.png b/mods/ferns/textures/ferns_fern_tree.png similarity index 100% rename from ferns/textures/ferns_fern_tree.png rename to mods/ferns/textures/ferns_fern_tree.png diff --git a/ferns/textures/ferns_fern_tree_giant.png b/mods/ferns/textures/ferns_fern_tree_giant.png similarity index 100% rename from ferns/textures/ferns_fern_tree_giant.png rename to mods/ferns/textures/ferns_fern_tree_giant.png diff --git a/ferns/textures/ferns_fern_tree_inv.png b/mods/ferns/textures/ferns_fern_tree_inv.png similarity index 100% rename from ferns/textures/ferns_fern_tree_inv.png rename to mods/ferns/textures/ferns_fern_tree_inv.png diff --git a/ferns/textures/ferns_fern_tree_tl.png b/mods/ferns/textures/ferns_fern_tree_tl.png similarity index 100% rename from ferns/textures/ferns_fern_tree_tl.png rename to mods/ferns/textures/ferns_fern_tree_tl.png diff --git a/ferns/textures/ferns_fern_tree_tr.png b/mods/ferns/textures/ferns_fern_tree_tr.png similarity index 100% rename from ferns/textures/ferns_fern_tree_tr.png rename to mods/ferns/textures/ferns_fern_tree_tr.png diff --git a/ferns/textures/ferns_fern_trunk.png b/mods/ferns/textures/ferns_fern_trunk.png similarity index 100% rename from ferns/textures/ferns_fern_trunk.png rename to mods/ferns/textures/ferns_fern_trunk.png diff --git a/ferns/textures/ferns_fern_trunk_big.png b/mods/ferns/textures/ferns_fern_trunk_big.png similarity index 100% rename from ferns/textures/ferns_fern_trunk_big.png rename to mods/ferns/textures/ferns_fern_trunk_big.png diff --git a/ferns/textures/ferns_fern_trunk_big_top.png b/mods/ferns/textures/ferns_fern_trunk_big_top.png similarity index 100% rename from ferns/textures/ferns_fern_trunk_big_top.png rename to mods/ferns/textures/ferns_fern_trunk_big_top.png diff --git a/ferns/textures/ferns_fern_trunk_top.png b/mods/ferns/textures/ferns_fern_trunk_top.png similarity index 100% rename from ferns/textures/ferns_fern_trunk_top.png rename to mods/ferns/textures/ferns_fern_trunk_top.png diff --git a/ferns/textures/ferns_ferntuber.png b/mods/ferns/textures/ferns_ferntuber.png similarity index 100% rename from ferns/textures/ferns_ferntuber.png rename to mods/ferns/textures/ferns_ferntuber.png diff --git a/ferns/textures/ferns_ferntuber_roasted.png b/mods/ferns/textures/ferns_ferntuber_roasted.png similarity index 100% rename from ferns/textures/ferns_ferntuber_roasted.png rename to mods/ferns/textures/ferns_ferntuber_roasted.png diff --git a/ferns/textures/ferns_fiddlehead.png b/mods/ferns/textures/ferns_fiddlehead.png similarity index 100% rename from ferns/textures/ferns_fiddlehead.png rename to mods/ferns/textures/ferns_fiddlehead.png diff --git a/ferns/textures/ferns_fiddlehead_roasted.png b/mods/ferns/textures/ferns_fiddlehead_roasted.png similarity index 100% rename from ferns/textures/ferns_fiddlehead_roasted.png rename to mods/ferns/textures/ferns_fiddlehead_roasted.png diff --git a/ferns/textures/ferns_horsetail_01.png b/mods/ferns/textures/ferns_horsetail_01.png similarity index 100% rename from ferns/textures/ferns_horsetail_01.png rename to mods/ferns/textures/ferns_horsetail_01.png diff --git a/ferns/textures/ferns_horsetail_02.png b/mods/ferns/textures/ferns_horsetail_02.png similarity index 100% rename from ferns/textures/ferns_horsetail_02.png rename to mods/ferns/textures/ferns_horsetail_02.png diff --git a/ferns/textures/ferns_horsetail_03.png b/mods/ferns/textures/ferns_horsetail_03.png similarity index 100% rename from ferns/textures/ferns_horsetail_03.png rename to mods/ferns/textures/ferns_horsetail_03.png diff --git a/ferns/textures/ferns_horsetail_04.png b/mods/ferns/textures/ferns_horsetail_04.png similarity index 100% rename from ferns/textures/ferns_horsetail_04.png rename to mods/ferns/textures/ferns_horsetail_04.png diff --git a/ferns/textures/ferns_sapling_tree_fern.png b/mods/ferns/textures/ferns_sapling_tree_fern.png similarity index 100% rename from ferns/textures/ferns_sapling_tree_fern.png rename to mods/ferns/textures/ferns_sapling_tree_fern.png diff --git a/ferns/textures/ferns_sapling_tree_fern_giant.png b/mods/ferns/textures/ferns_sapling_tree_fern_giant.png similarity index 100% rename from ferns/textures/ferns_sapling_tree_fern_giant.png rename to mods/ferns/textures/ferns_sapling_tree_fern_giant.png diff --git a/ferns/textures/ferns_tree_fern_leave_big.png b/mods/ferns/textures/ferns_tree_fern_leave_big.png similarity index 100% rename from ferns/textures/ferns_tree_fern_leave_big.png rename to mods/ferns/textures/ferns_tree_fern_leave_big.png diff --git a/ferns/textures/ferns_tree_fern_leave_big_cross.png b/mods/ferns/textures/ferns_tree_fern_leave_big_cross.png similarity index 100% rename from ferns/textures/ferns_tree_fern_leave_big_cross.png rename to mods/ferns/textures/ferns_tree_fern_leave_big_cross.png diff --git a/ferns/textures/ferns_tree_fern_leave_big_end.png b/mods/ferns/textures/ferns_tree_fern_leave_big_end.png similarity index 100% rename from ferns/textures/ferns_tree_fern_leave_big_end.png rename to mods/ferns/textures/ferns_tree_fern_leave_big_end.png diff --git a/ferns/textures/not_in_use/archaeplantae_horsetails.png b/mods/ferns/textures/not_in_use/archaeplantae_horsetails.png similarity index 100% rename from ferns/textures/not_in_use/archaeplantae_horsetails.png rename to mods/ferns/textures/not_in_use/archaeplantae_horsetails.png diff --git a/ferns/textures/not_in_use/big picture 3.png b/mods/ferns/textures/not_in_use/big picture 3.png similarity index 100% rename from ferns/textures/not_in_use/big picture 3.png rename to mods/ferns/textures/not_in_use/big picture 3.png diff --git a/ferns/textures/not_in_use/ferns_fern_big_left.png b/mods/ferns/textures/not_in_use/ferns_fern_big_left.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_big_left.png rename to mods/ferns/textures/not_in_use/ferns_fern_big_left.png diff --git a/ferns/textures/not_in_use/ferns_fern_big_right.png b/mods/ferns/textures/not_in_use/ferns_fern_big_right.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_big_right.png rename to mods/ferns/textures/not_in_use/ferns_fern_big_right.png diff --git a/ferns/textures/not_in_use/ferns_fern_mid_left.png b/mods/ferns/textures/not_in_use/ferns_fern_mid_left.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_mid_left.png rename to mods/ferns/textures/not_in_use/ferns_fern_mid_left.png diff --git a/ferns/textures/not_in_use/ferns_fern_mid_right.png b/mods/ferns/textures/not_in_use/ferns_fern_mid_right.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_mid_right.png rename to mods/ferns/textures/not_in_use/ferns_fern_mid_right.png diff --git a/ferns/textures/not_in_use/ferns_fern_tree_bl.png b/mods/ferns/textures/not_in_use/ferns_fern_tree_bl.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_tree_bl.png rename to mods/ferns/textures/not_in_use/ferns_fern_tree_bl.png diff --git a/ferns/textures/not_in_use/ferns_fern_tree_br.png b/mods/ferns/textures/not_in_use/ferns_fern_tree_br.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_tree_br.png rename to mods/ferns/textures/not_in_use/ferns_fern_tree_br.png diff --git a/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png b/mods/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png similarity index 100% rename from ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png rename to mods/ferns/textures/not_in_use/ferns_fern_trunk_big_crown.png diff --git a/ferns/textures/old/archaeplantae_fern_old4.png b/mods/ferns/textures/old/archaeplantae_fern_old4.png similarity index 100% rename from ferns/textures/old/archaeplantae_fern_old4.png rename to mods/ferns/textures/old/archaeplantae_fern_old4.png diff --git a/ferns/textures/old/comb.png b/mods/ferns/textures/old/comb.png similarity index 100% rename from ferns/textures/old/comb.png rename to mods/ferns/textures/old/comb.png diff --git a/ferns/textures/old/ferns_5_old.png b/mods/ferns/textures/old/ferns_5_old.png similarity index 100% rename from ferns/textures/old/ferns_5_old.png rename to mods/ferns/textures/old/ferns_5_old.png diff --git a/ferns/textures/old/ferns_6_old.png b/mods/ferns/textures/old/ferns_6_old.png similarity index 100% rename from ferns/textures/old/ferns_6_old.png rename to mods/ferns/textures/old/ferns_6_old.png diff --git a/ferns/textures/old/ferns_7_old.png b/mods/ferns/textures/old/ferns_7_old.png similarity index 100% rename from ferns/textures/old/ferns_7_old.png rename to mods/ferns/textures/old/ferns_7_old.png diff --git a/ferns/textures/old/ferns_fern_big_old.png b/mods/ferns/textures/old/ferns_fern_big_old.png similarity index 100% rename from ferns/textures/old/ferns_fern_big_old.png rename to mods/ferns/textures/old/ferns_fern_big_old.png diff --git a/ferns/textures/old/ferns_fern_mid_old.png b/mods/ferns/textures/old/ferns_fern_mid_old.png similarity index 100% rename from ferns/textures/old/ferns_fern_mid_old.png rename to mods/ferns/textures/old/ferns_fern_mid_old.png diff --git a/ferns/textures/old/ferns_fern_tree_old.png b/mods/ferns/textures/old/ferns_fern_tree_old.png similarity index 100% rename from ferns/textures/old/ferns_fern_tree_old.png rename to mods/ferns/textures/old/ferns_fern_tree_old.png diff --git a/ferns/textures/old/ferns_fern_trunk_big_old2.png b/mods/ferns/textures/old/ferns_fern_trunk_big_old2.png similarity index 100% rename from ferns/textures/old/ferns_fern_trunk_big_old2.png rename to mods/ferns/textures/old/ferns_fern_trunk_big_old2.png diff --git a/ferns/textures/old/ferns_fern_trunk_big_top_old.png b/mods/ferns/textures/old/ferns_fern_trunk_big_top_old.png similarity index 100% rename from ferns/textures/old/ferns_fern_trunk_big_top_old.png rename to mods/ferns/textures/old/ferns_fern_trunk_big_top_old.png diff --git a/ferns/textures/old/ferns_fern_trunk_big_top_old2.png b/mods/ferns/textures/old/ferns_fern_trunk_big_top_old2.png similarity index 100% rename from ferns/textures/old/ferns_fern_trunk_big_top_old2.png rename to mods/ferns/textures/old/ferns_fern_trunk_big_top_old2.png diff --git a/ferns/textures/old/ferns_fern_trunk_top_old.png b/mods/ferns/textures/old/ferns_fern_trunk_top_old.png similarity index 100% rename from ferns/textures/old/ferns_fern_trunk_top_old.png rename to mods/ferns/textures/old/ferns_fern_trunk_top_old.png diff --git a/ferns/textures/old/ferns_horsetail_01_old2.png b/mods/ferns/textures/old/ferns_horsetail_01_old2.png similarity index 100% rename from ferns/textures/old/ferns_horsetail_01_old2.png rename to mods/ferns/textures/old/ferns_horsetail_01_old2.png diff --git a/ferns/textures/old/ferns_horsetail_02_old2.png b/mods/ferns/textures/old/ferns_horsetail_02_old2.png similarity index 100% rename from ferns/textures/old/ferns_horsetail_02_old2.png rename to mods/ferns/textures/old/ferns_horsetail_02_old2.png diff --git a/ferns/textures/old/ferns_horsetail_03_old2.png b/mods/ferns/textures/old/ferns_horsetail_03_old2.png similarity index 100% rename from ferns/textures/old/ferns_horsetail_03_old2.png rename to mods/ferns/textures/old/ferns_horsetail_03_old2.png diff --git a/ferns/textures/old/ferns_horsetail_04_old2.png b/mods/ferns/textures/old/ferns_horsetail_04_old2.png similarity index 100% rename from ferns/textures/old/ferns_horsetail_04_old2.png rename to mods/ferns/textures/old/ferns_horsetail_04_old2.png diff --git a/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png b/mods/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png similarity index 100% rename from ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png rename to mods/ferns/textures/old/ferns_tree_fern_leave_big_cross_old.png diff --git a/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png b/mods/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png similarity index 100% rename from ferns/textures/old/ferns_tree_fern_leave_big_end_old.png rename to mods/ferns/textures/old/ferns_tree_fern_leave_big_end_old.png diff --git a/ferns/textures/old/ferns_tree_fern_leave_big_old.png b/mods/ferns/textures/old/ferns_tree_fern_leave_big_old.png similarity index 100% rename from ferns/textures/old/ferns_tree_fern_leave_big_old.png rename to mods/ferns/textures/old/ferns_tree_fern_leave_big_old.png diff --git a/ferns/treefern.lua b/mods/ferns/treefern.lua similarity index 100% rename from ferns/treefern.lua rename to mods/ferns/treefern.lua diff --git a/mods/fire/README.txt b/mods/fire/README.txt new file mode 100644 index 00000000..25ba26ef --- /dev/null +++ b/mods/fire/README.txt @@ -0,0 +1,35 @@ +Minetest Game mod: fire +======================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +Authors of media (textures and sounds) +-------------------------------------- +Everything not listed in here: +Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) + +Muadtralk (CC BY-SA 3.0) + fire_basic_flame_animated.png + +Gambit (CC BY-SA 3.0) + fire_flint_steel.png + +dobroide (CC BY 3.0) +http://www.freesound.org/people/dobroide/sounds/4211/ + fire_small.ogg + +Dynamicell (CC BY 3.0) +http://www.freesound.org/people/Dynamicell/sounds/17548/ + fire_large.ogg + fire_fire.*.ogg + +fire_small.ogg and fire_large.ogg are unused but kept temporarily to not break +other mods that may use them. + +Benboncan (CC BY 3.0) +https://www.freesound.org/people/Benboncan/sounds/66457/ + fire_flint_and_steel.ogg diff --git a/mods/fire/init.lua b/mods/fire/init.lua new file mode 100644 index 00000000..621e00e4 --- /dev/null +++ b/mods/fire/init.lua @@ -0,0 +1,307 @@ +-- fire/init.lua + +-- Global namespace for functions +fire = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("fire") + +-- 'Enable fire' setting +local fire_enabled = minetest.settings:get_bool("enable_fire") +if fire_enabled == nil then + -- enable_fire setting not specified, check for disable_fire + local fire_disabled = minetest.settings:get_bool("disable_fire") + if fire_disabled == nil then + -- Neither setting specified, check whether singleplayer + fire_enabled = minetest.is_singleplayer() + else + fire_enabled = not fire_disabled + end +end + +-- +-- Items +-- + +-- Flood flame function +local function flood_flame(pos, _, newnode) + -- Play flame extinguish sound if liquid is not an 'igniter' + if minetest.get_item_group(newnode.name, "igniter") == 0 then + minetest.sound_play("fire_extinguish_flame", + {pos = pos, max_hear_distance = 16, gain = 0.15}, true) + end + -- Remove the flame + return false +end + +-- Flame nodes +local fire_node = { + drawtype = "firelike", + tiles = {{ + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }} + }, + inventory_image = "fire_basic_flame.png", + paramtype = "light", + light_source = 13, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + floodable = true, + damage_per_second = 4, + groups = {igniter = 2, dig_immediate = 3, fire = 1}, + drop = "", + on_flood = flood_flame +} + +-- Basic flame node +local flame_fire_node = table.copy(fire_node) +flame_fire_node.description = S("Fire") +flame_fire_node.groups.not_in_creative_inventory = 1 +flame_fire_node.on_timer = function(pos) + if not minetest.find_node_near(pos, 1, {"group:flammable"}) then + minetest.remove_node(pos) + return + end + -- Restart timer + return true +end +flame_fire_node.on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(30, 60)) +end + +minetest.register_node("fire:basic_flame", flame_fire_node) + +-- Permanent flame node +local permanent_fire_node = table.copy(fire_node) +permanent_fire_node.description = S("Permanent Fire") + +minetest.register_node("fire:permanent_flame", permanent_fire_node) + +-- Flint and Steel +minetest.register_tool("fire:flint_and_steel", { + description = S("Flint and Steel"), + inventory_image = "fire_flint_steel.png", + sound = {breaks = "default_tool_breaks"}, + + on_use = function(itemstack, user, pointed_thing) + local sound_pos = pointed_thing.above or user:get_pos() + minetest.sound_play("fire_flint_and_steel", + {pos = sound_pos, gain = 0.5, max_hear_distance = 8}, true) + local player_name = user:get_player_name() + if pointed_thing.type == "node" then + local node_under = minetest.get_node(pointed_thing.under).name + local nodedef = minetest.registered_nodes[node_under] + if not nodedef then + return + end + if minetest.is_protected(pointed_thing.under, player_name) then + minetest.chat_send_player(player_name, "This area is protected") + return + end + if nodedef.on_ignite then + nodedef.on_ignite(pointed_thing.under, user) + elseif minetest.get_item_group(node_under, "flammable") >= 1 + and minetest.get_node(pointed_thing.above).name == "air" then + minetest.set_node(pointed_thing.above, {name = "fire:basic_flame"}) + end + end + if not minetest.is_creative_enabled(player_name) then + -- Wear tool + local wdef = itemstack:get_definition() + itemstack:add_wear(1000) + + -- Tool break sound + if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then + minetest.sound_play(wdef.sound.breaks, + {pos = sound_pos, gain = 0.5}, true) + end + return itemstack + end + end +}) + +minetest.register_craft({ + output = "fire:flint_and_steel", + recipe = { + {"default:flint", "default:steel_ingot"} + } +}) + +-- Override coalblock to enable permanent flame above +-- Coalblock is non-flammable to avoid unwanted basic_flame nodes +minetest.override_item("default:coalblock", { + after_destruct = function(pos) + pos.y = pos.y + 1 + if minetest.get_node(pos).name == "fire:permanent_flame" then + minetest.remove_node(pos) + end + end, + on_ignite = function(pos) + local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(flame_pos).name == "air" then + minetest.set_node(flame_pos, {name = "fire:permanent_flame"}) + end + end +}) + + +-- +-- Sound +-- + +-- Enable if no setting present +local flame_sound = minetest.settings:get_bool("flame_sound", true) + +if flame_sound then + local handles = {} + local timer = 0 + + -- Parameters + local radius = 8 -- Flame node search radius around player + local cycle = 3 -- Cycle time for sound updates + + -- Update sound for player + function fire.update_player_sound(player) + local player_name = player:get_player_name() + -- Search for flame nodes in radius around player + local ppos = player:get_pos() + local areamin = vector.subtract(ppos, radius) + local areamax = vector.add(ppos, radius) + local fpos, num = minetest.find_nodes_in_area( + areamin, + areamax, + {"fire:basic_flame", "fire:permanent_flame"} + ) + -- Total number of flames in radius + local flames = (num["fire:basic_flame"] or 0) + + (num["fire:permanent_flame"] or 0) + -- Stop previous sound + if handles[player_name] then + minetest.sound_stop(handles[player_name]) + handles[player_name] = nil + end + -- If flames + if flames > 0 then + -- Find centre of flame positions + local fposmid = fpos[1] + -- If more than 1 flame + if #fpos > 1 then + local fposmin = areamax + local fposmax = areamin + for i = 1, #fpos do + local fposi = fpos[i] + if fposi.x > fposmax.x then + fposmax.x = fposi.x + end + if fposi.y > fposmax.y then + fposmax.y = fposi.y + end + if fposi.z > fposmax.z then + fposmax.z = fposi.z + end + if fposi.x < fposmin.x then + fposmin.x = fposi.x + end + if fposi.y < fposmin.y then + fposmin.y = fposi.y + end + if fposi.z < fposmin.z then + fposmin.z = fposi.z + end + end + fposmid = vector.divide(vector.add(fposmin, fposmax), 2) + end + -- Play sound + local handle = minetest.sound_play("fire_fire", { + pos = fposmid, + to_player = player_name, + gain = math.min(0.06 * (1 + flames * 0.125), 0.18), + max_hear_distance = 32, + loop = true -- In case of lag + }) + -- Store sound handle for this player + if handle then + handles[player_name] = handle + end + end + end + + -- Cycle for updating players sounds + minetest.register_globalstep(function(dtime) + timer = timer + dtime + if timer < cycle then + return + end + + timer = 0 + local players = minetest.get_connected_players() + for n = 1, #players do + fire.update_player_sound(players[n]) + end + end) + + -- Stop sound and clear handle on player leave + minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + if handles[player_name] then + minetest.sound_stop(handles[player_name]) + handles[player_name] = nil + end + end) +end + + +-- Deprecated function kept temporarily to avoid crashes if mod fire nodes call it +function fire.update_sounds_around() end + +-- +-- ABMs +-- + +if fire_enabled then + -- Ignite neighboring nodes, add basic flames + minetest.register_abm({ + label = "Ignite flame", + nodenames = {"group:flammable"}, + neighbors = {"group:igniter"}, + interval = 7, + chance = 12, + catch_up = false, + action = function(pos) + local p = minetest.find_node_near(pos, 1, {"air"}) + if p then + minetest.set_node(p, {name = "fire:basic_flame"}) + end + end + }) + + -- Remove flammable nodes around basic flame + minetest.register_abm({ + label = "Remove flammable nodes", + nodenames = {"fire:basic_flame"}, + neighbors = "group:flammable", + interval = 5, + chance = 18, + catch_up = false, + action = function(pos) + local p = minetest.find_node_near(pos, 1, {"group:flammable"}) + if not p then + return + end + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.remove_node(p) + minetest.check_for_falling(p) + end + end + }) +end diff --git a/mods/fire/license.txt b/mods/fire/license.txt new file mode 100644 index 00000000..43f9cd7f --- /dev/null +++ b/mods/fire/license.txt @@ -0,0 +1,84 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures and sounds) +--------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Muadtralk +Copyright (C) 2013-2016 Gambit + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2005 dobroide +Copyright (C) 2006 Dynamicell +Copyright (C) 2009 Benboncan + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/fire/locale/fire.de.tr b/mods/fire/locale/fire.de.tr new file mode 100644 index 00000000..dad7c34a --- /dev/null +++ b/mods/fire/locale/fire.de.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Feuer +Permanent Fire=Permanentes Feuer +Flint and Steel=Feuerstein und Stahl diff --git a/mods/fire/locale/fire.es.tr b/mods/fire/locale/fire.es.tr new file mode 100644 index 00000000..4ce3f328 --- /dev/null +++ b/mods/fire/locale/fire.es.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Fuego +Permanent Fire=Fuego permanente +Flint and Steel=Yesca y pedernal diff --git a/mods/fire/locale/fire.fr.tr b/mods/fire/locale/fire.fr.tr new file mode 100644 index 00000000..a16b4718 --- /dev/null +++ b/mods/fire/locale/fire.fr.tr @@ -0,0 +1,10 @@ +# textdomain: fire +Fire= +Permanent Fire= +Flint and Steel=Briquet à silex en acier + + +##### not used anymore ##### + +# textdomain: fire +Permanent Flame=Flamme permanente diff --git a/mods/fire/locale/fire.id.tr b/mods/fire/locale/fire.id.tr new file mode 100644 index 00000000..a6d2da55 --- /dev/null +++ b/mods/fire/locale/fire.id.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Api +Permanent Fire=Api Abadi +Flint and Steel=Pemantik Api diff --git a/mods/fire/locale/fire.it.tr b/mods/fire/locale/fire.it.tr new file mode 100644 index 00000000..61eae452 --- /dev/null +++ b/mods/fire/locale/fire.it.tr @@ -0,0 +1,10 @@ +# textdomain: fire +Fire= +Permanent Fire= +Flint and Steel=Acciarino + + +##### not used anymore ##### + +# textdomain: fire +Permanent Flame=Fiamma permanente diff --git a/mods/fire/locale/fire.jbo.tr b/mods/fire/locale/fire.jbo.tr new file mode 100644 index 00000000..b081236d --- /dev/null +++ b/mods/fire/locale/fire.jbo.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=lo fagri +Permanent Fire=lo vitno fagri +Flint and Steel=lo fakro'i jo'u gasta diff --git a/mods/fire/locale/fire.ms.tr b/mods/fire/locale/fire.ms.tr new file mode 100644 index 00000000..fdd20a51 --- /dev/null +++ b/mods/fire/locale/fire.ms.tr @@ -0,0 +1,10 @@ +# textdomain: fire +Fire= +Permanent Fire= +Flint and Steel=Pemetik Api + + +##### not used anymore ##### + +# textdomain: fire +Permanent Flame=Api Abadi diff --git a/mods/fire/locale/fire.pt_BR.tr b/mods/fire/locale/fire.pt_BR.tr new file mode 100644 index 00000000..8a37359b --- /dev/null +++ b/mods/fire/locale/fire.pt_BR.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Fogo +Permanent Fire=Fogo Permanente +Flint and Steel=Sílex e Fogo diff --git a/mods/fire/locale/fire.ru.tr b/mods/fire/locale/fire.ru.tr new file mode 100644 index 00000000..d2cb81f4 --- /dev/null +++ b/mods/fire/locale/fire.ru.tr @@ -0,0 +1,10 @@ +# textdomain: fire +Fire= +Permanent Fire= +Flint and Steel=Огниво + + +##### not used anymore ##### + +# textdomain: fire +Permanent Flame=Вечный Огонь diff --git a/mods/fire/locale/fire.se.tr b/mods/fire/locale/fire.se.tr new file mode 100644 index 00000000..9a51aed2 --- /dev/null +++ b/mods/fire/locale/fire.se.tr @@ -0,0 +1,10 @@ +# textdomain: fire +Fire= +Permanent Fire= +Flint and Steel=Flinta och Stål + + +##### not used anymore ##### + +# textdomain: fire +Permanent Flame=Permanent Eld diff --git a/mods/fire/locale/fire.sk.tr b/mods/fire/locale/fire.sk.tr new file mode 100644 index 00000000..125c8603 --- /dev/null +++ b/mods/fire/locale/fire.sk.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Oheň +Permanent Fire=Stály oheň +Flint and Steel=Pazúrik a ocieľka diff --git a/mods/fire/locale/fire.zh_CN.tr b/mods/fire/locale/fire.zh_CN.tr new file mode 100644 index 00000000..052089a3 --- /dev/null +++ b/mods/fire/locale/fire.zh_CN.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=火焰 +Permanent Fire=永久火焰 +Flint and Steel=火石和钢 diff --git a/mods/fire/locale/fire.zh_TW.tr b/mods/fire/locale/fire.zh_TW.tr new file mode 100644 index 00000000..9e3d7663 --- /dev/null +++ b/mods/fire/locale/fire.zh_TW.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=火焰 +Permanent Fire=永久火焰 +Flint and Steel=火石和鋼 diff --git a/mods/fire/locale/template.txt b/mods/fire/locale/template.txt new file mode 100644 index 00000000..e4e44e79 --- /dev/null +++ b/mods/fire/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: fire +Fire= +Permanent Fire= +Flint and Steel= diff --git a/mods/fire/mod.conf b/mods/fire/mod.conf new file mode 100644 index 00000000..c70f23b7 --- /dev/null +++ b/mods/fire/mod.conf @@ -0,0 +1,3 @@ +name = fire +description = Minetest Game mod: fire +depends = default diff --git a/mods/fire/sounds/fire_extinguish_flame.1.ogg b/mods/fire/sounds/fire_extinguish_flame.1.ogg new file mode 100644 index 00000000..42506ddf Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.1.ogg differ diff --git a/mods/fire/sounds/fire_extinguish_flame.2.ogg b/mods/fire/sounds/fire_extinguish_flame.2.ogg new file mode 100644 index 00000000..2747ab81 Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.2.ogg differ diff --git a/mods/fire/sounds/fire_extinguish_flame.3.ogg b/mods/fire/sounds/fire_extinguish_flame.3.ogg new file mode 100644 index 00000000..8baeac32 Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.3.ogg differ diff --git a/mods/fire/sounds/fire_fire.1.ogg b/mods/fire/sounds/fire_fire.1.ogg new file mode 100644 index 00000000..cbfee4c6 Binary files /dev/null and b/mods/fire/sounds/fire_fire.1.ogg differ diff --git a/mods/fire/sounds/fire_fire.2.ogg b/mods/fire/sounds/fire_fire.2.ogg new file mode 100644 index 00000000..e8d0eb13 Binary files /dev/null and b/mods/fire/sounds/fire_fire.2.ogg differ diff --git a/mods/fire/sounds/fire_fire.3.ogg b/mods/fire/sounds/fire_fire.3.ogg new file mode 100644 index 00000000..5cad3d9b Binary files /dev/null and b/mods/fire/sounds/fire_fire.3.ogg differ diff --git a/mods/fire/sounds/fire_flint_and_steel.ogg b/mods/fire/sounds/fire_flint_and_steel.ogg new file mode 100644 index 00000000..6996e16f Binary files /dev/null and b/mods/fire/sounds/fire_flint_and_steel.ogg differ diff --git a/mods/fire/sounds/fire_large.ogg b/mods/fire/sounds/fire_large.ogg new file mode 100644 index 00000000..fe78e625 Binary files /dev/null and b/mods/fire/sounds/fire_large.ogg differ diff --git a/new_campfire/sounds/fire_small.ogg b/mods/fire/sounds/fire_small.ogg similarity index 100% rename from new_campfire/sounds/fire_small.ogg rename to mods/fire/sounds/fire_small.ogg diff --git a/mods/fire/textures/fire_basic_flame.png b/mods/fire/textures/fire_basic_flame.png new file mode 100644 index 00000000..484bcb19 Binary files /dev/null and b/mods/fire/textures/fire_basic_flame.png differ diff --git a/mods/fire/textures/fire_basic_flame_animated.png b/mods/fire/textures/fire_basic_flame_animated.png new file mode 100644 index 00000000..b01f7036 Binary files /dev/null and b/mods/fire/textures/fire_basic_flame_animated.png differ diff --git a/mods/fire/textures/fire_flint_steel.png b/mods/fire/textures/fire_flint_steel.png new file mode 100644 index 00000000..9d32d85b Binary files /dev/null and b/mods/fire/textures/fire_flint_steel.png differ diff --git a/mods/fireflies/README.txt b/mods/fireflies/README.txt new file mode 100644 index 00000000..7382578d --- /dev/null +++ b/mods/fireflies/README.txt @@ -0,0 +1,22 @@ +Minetest Game mod: fireflies +============================ +Adds fireflies to the world on mapgen, which can then be caught in a net and placed in +bottles to provide light. + +Authors of source code +---------------------- +Shara RedCat (MIT) + +Authors of media (textures) +--------------------------- +Shara RedCat (CC BY-SA 3.0): + fireflies_firefly.png + fireflies_firefly_animated.png + fireflies_bugnet.png + fireflies_bottle.png + fireflies_bottle_animated.png + +fireflies_bugnet.png is modified from a texture by tenplus1 (CC0) + +fireflies_bottle.png and fireflies_bottle_animated.png are +modified from a texture by Vanessa Ezekowitz (CC BY-SA 3.0) \ No newline at end of file diff --git a/mods/fireflies/init.lua b/mods/fireflies/init.lua new file mode 100644 index 00000000..59a40c54 --- /dev/null +++ b/mods/fireflies/init.lua @@ -0,0 +1,291 @@ +-- firefly/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("fireflies") + + +minetest.register_node("fireflies:firefly", { + description = S("Firefly"), + drawtype = "plantlike", + tiles = {{ + name = "fireflies_firefly_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + }}, + inventory_image = "fireflies_firefly.png", + wield_image = "fireflies_firefly.png", + waving = 1, + paramtype = "light", + sunlight_propagates = true, + buildable_to = true, + walkable = false, + groups = {catchable = 1}, + selection_box = { + type = "fixed", + fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1}, + }, + light_source = 6, + floodable = true, + on_place = function(itemstack, placer, pointed_thing) + local player_name = placer:get_player_name() + local pos = pointed_thing.above + + if not minetest.is_protected(pos, player_name) and + not minetest.is_protected(pointed_thing.under, player_name) and + minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name = "fireflies:firefly"}) + minetest.get_node_timer(pos):start(1) + itemstack:take_item() + end + return itemstack + end, + on_timer = function(pos, elapsed) + if minetest.get_node_light(pos) > 11 then + minetest.set_node(pos, {name = "fireflies:hidden_firefly"}) + end + minetest.get_node_timer(pos):start(30) + end +}) + +minetest.register_node("fireflies:hidden_firefly", { + description = S("Hidden Firefly"), + drawtype = "airlike", + inventory_image = "fireflies_firefly.png^default_invisible_node_overlay.png", + wield_image = "fireflies_firefly.png^default_invisible_node_overlay.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + groups = {not_in_creative_inventory = 1}, + floodable = true, + on_place = function(itemstack, placer, pointed_thing) + local player_name = placer:get_player_name() + local pos = pointed_thing.above + + if not minetest.is_protected(pos, player_name) and + not minetest.is_protected(pointed_thing.under, player_name) and + minetest.get_node(pos).name == "air" then + minetest.set_node(pos, {name = "fireflies:hidden_firefly"}) + minetest.get_node_timer(pos):start(1) + itemstack:take_item() + end + return itemstack + end, + on_timer = function(pos, elapsed) + if minetest.get_node_light(pos) <= 11 then + minetest.set_node(pos, {name = "fireflies:firefly"}) + end + minetest.get_node_timer(pos):start(30) + end +}) + + +-- bug net +minetest.register_tool("fireflies:bug_net", { + description = S("Bug Net"), + inventory_image = "fireflies_bugnet.png", + on_use = function(itemstack, player, pointed_thing) + local player_name = player and player:get_player_name() or "" + if not pointed_thing or pointed_thing.type ~= "node" or + minetest.is_protected(pointed_thing.under, player_name) then + return + end + local node_name = minetest.get_node(pointed_thing.under).name + local inv = player:get_inventory() + if minetest.get_item_group(node_name, "catchable") == 1 then + minetest.set_node(pointed_thing.under, {name = "air"}) + local stack = ItemStack(node_name.." 1") + local leftover = inv:add_item("main", stack) + if leftover:get_count() > 0 then + minetest.add_item(pointed_thing.under, node_name.." 1") + end + end + if not minetest.is_creative_enabled(player_name) then + itemstack:add_wear(256) + return itemstack + end + end +}) + +minetest.register_craft( { + output = "fireflies:bug_net", + recipe = { + {"farming:string", "farming:string"}, + {"farming:string", "farming:string"}, + {"group:stick", ""} + } +}) + + +-- firefly in a bottle +minetest.register_node("fireflies:firefly_bottle", { + description = S("Firefly in a Bottle"), + inventory_image = "fireflies_bottle.png", + wield_image = "fireflies_bottle.png", + tiles = {{ + name = "fireflies_bottle_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + }}, + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + light_source = 9, + walkable = false, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + sounds = default.node_sound_glass_defaults(), + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + local lower_pos = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.is_protected(pos, player:get_player_name()) or + minetest.get_node(lower_pos).name ~= "air" then + return + end + + local upper_pos = {x = pos.x, y = pos.y + 2, z = pos.z} + local firefly_pos + + if not minetest.is_protected(upper_pos, player:get_player_name()) and + minetest.get_node(upper_pos).name == "air" then + firefly_pos = upper_pos + elseif not minetest.is_protected(lower_pos, player:get_player_name()) then + firefly_pos = lower_pos + end + + if firefly_pos then + minetest.set_node(pos, {name = "vessels:glass_bottle"}) + minetest.set_node(firefly_pos, {name = "fireflies:firefly"}) + minetest.get_node_timer(firefly_pos):start(1) + end + end +}) + +minetest.register_craft( { + output = "fireflies:firefly_bottle", + recipe = { + {"fireflies:firefly"}, + {"vessels:glass_bottle"} + } +}) + + +-- register fireflies as decorations + +if minetest.get_mapgen_setting("mg_name") == "v6" then + + minetest.register_decoration({ + name = "fireflies:firefly_low", + deco_type = "simple", + place_on = "default:dirt_with_grass", + place_offset_y = 2, + sidelen = 80, + fill_ratio = 0.0002, + y_max = 31000, + y_min = 1, + decoration = "fireflies:hidden_firefly", + }) + + minetest.register_decoration({ + name = "fireflies:firefly_high", + deco_type = "simple", + place_on = "default:dirt_with_grass", + place_offset_y = 3, + sidelen = 80, + fill_ratio = 0.0002, + y_max = 31000, + y_min = 1, + decoration = "fireflies:hidden_firefly", + }) + +else + + minetest.register_decoration({ + name = "fireflies:firefly_low", + deco_type = "simple", + place_on = { + "default:dirt_with_grass", + "default:dirt_with_coniferous_litter", + "default:dirt_with_rainforest_litter", + "default:dirt" + }, + place_offset_y = 2, + sidelen = 80, + fill_ratio = 0.0005, + biomes = { + "deciduous_forest", + "coniferous_forest", + "rainforest", + "rainforest_swamp" + }, + y_max = 31000, + y_min = -1, + decoration = "fireflies:hidden_firefly", + }) + + minetest.register_decoration({ + name = "fireflies:firefly_high", + deco_type = "simple", + place_on = { + "default:dirt_with_grass", + "default:dirt_with_coniferous_litter", + "default:dirt_with_rainforest_litter", + "default:dirt" + }, + place_offset_y = 3, + sidelen = 80, + fill_ratio = 0.0005, + biomes = { + "deciduous_forest", + "coniferous_forest", + "rainforest", + "rainforest_swamp" + }, + y_max = 31000, + y_min = -1, + decoration = "fireflies:hidden_firefly", + }) + +end + + +-- get decoration IDs +local firefly_low = minetest.get_decoration_id("fireflies:firefly_low") +local firefly_high = minetest.get_decoration_id("fireflies:firefly_high") + +minetest.set_gen_notify({decoration = true}, {firefly_low, firefly_high}) + +-- start nodetimers +minetest.register_on_generated(function(minp, maxp, blockseed) + local gennotify = minetest.get_mapgen_object("gennotify") + local poslist = {} + + for _, pos in ipairs(gennotify["decoration#"..firefly_low] or {}) do + local firefly_low_pos = {x = pos.x, y = pos.y + 3, z = pos.z} + table.insert(poslist, firefly_low_pos) + end + for _, pos in ipairs(gennotify["decoration#"..firefly_high] or {}) do + local firefly_high_pos = {x = pos.x, y = pos.y + 4, z = pos.z} + table.insert(poslist, firefly_high_pos) + end + + if #poslist ~= 0 then + for i = 1, #poslist do + local pos = poslist[i] + minetest.get_node_timer(pos):start(1) + end + end +end) diff --git a/mods/fireflies/license.txt b/mods/fireflies/license.txt new file mode 100644 index 00000000..eebdad63 --- /dev/null +++ b/mods/fireflies/license.txt @@ -0,0 +1,58 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (c) 2018 Shara RedCat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2018 Shara RedCat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/mods/fireflies/locale/fireflies.de.tr b/mods/fireflies/locale/fireflies.de.tr new file mode 100644 index 00000000..c5d116a7 --- /dev/null +++ b/mods/fireflies/locale/fireflies.de.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Glühwürmchen +Hidden Firefly=Verborgenes Glühwürmchen +Bug Net=Insektennetz +Firefly in a Bottle=Glühwürmchen in einer Flasche diff --git a/mods/fireflies/locale/fireflies.es.tr b/mods/fireflies/locale/fireflies.es.tr new file mode 100644 index 00000000..95d053e1 --- /dev/null +++ b/mods/fireflies/locale/fireflies.es.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Luciérnaga +Hidden Firefly=Luciérnaga oculta +Bug Net=Red de insectos +Firefly in a Bottle=Luciérnaga en botella diff --git a/mods/fireflies/locale/fireflies.fr.tr b/mods/fireflies/locale/fireflies.fr.tr new file mode 100644 index 00000000..3deda664 --- /dev/null +++ b/mods/fireflies/locale/fireflies.fr.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Luciole +Hidden Firefly=Luciole cachée +Bug Net=Filet à papillon +Firefly in a Bottle=Luciole en bouteille diff --git a/mods/fireflies/locale/fireflies.id.tr b/mods/fireflies/locale/fireflies.id.tr new file mode 100644 index 00000000..bc6434ee --- /dev/null +++ b/mods/fireflies/locale/fireflies.id.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Kunang-Kunang +Hidden Firefly=Kunang-Kunang Tersembunyi +Bug Net=Jaring Serangga +Firefly in a Bottle=Kunang-Kunang dalam Botol diff --git a/mods/fireflies/locale/fireflies.it.tr b/mods/fireflies/locale/fireflies.it.tr new file mode 100644 index 00000000..22ad57b3 --- /dev/null +++ b/mods/fireflies/locale/fireflies.it.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Lucciola +Hidden Firefly=Lucciola nascosta +Bug Net=Retino +Firefly in a Bottle=Lucciola imbottigliata diff --git a/mods/fireflies/locale/fireflies.jbo.tr b/mods/fireflies/locale/fireflies.jbo.tr new file mode 100644 index 00000000..4e69ab49 --- /dev/null +++ b/mods/fireflies/locale/fireflies.jbo.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=lo gusycinki +Hidden Firefly=lo se mipri gusycinki +Bug Net=lo cinki julne +Firefly in a Bottle=lo gusycinki poi nenri lo botpi diff --git a/mods/fireflies/locale/fireflies.ms.tr b/mods/fireflies/locale/fireflies.ms.tr new file mode 100644 index 00000000..509d03d3 --- /dev/null +++ b/mods/fireflies/locale/fireflies.ms.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Kelip-Kelip +Hidden Firefly=Kelip-Kelip Tersembunyi +Bug Net=Jaring Pepijat +Firefly in a Bottle=Kelip-Kelip dalam Botol diff --git a/mods/fireflies/locale/fireflies.pt_BR.tr b/mods/fireflies/locale/fireflies.pt_BR.tr new file mode 100644 index 00000000..543c00b7 --- /dev/null +++ b/mods/fireflies/locale/fireflies.pt_BR.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Vaga-lume +Hidden Firefly=Vaga-lume escondido +Bug Net=Rede de Insetos +Firefly in a Bottle=Vaga-lume em uma garrafa diff --git a/mods/fireflies/locale/fireflies.ru.tr b/mods/fireflies/locale/fireflies.ru.tr new file mode 100644 index 00000000..c05f2884 --- /dev/null +++ b/mods/fireflies/locale/fireflies.ru.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Светлячок +Hidden Firefly=Притаившийся Светлячок +Bug Net=Сачок Для Ловли Насекомых +Firefly in a Bottle=Светлячок в Бутылке diff --git a/mods/fireflies/locale/fireflies.se.tr b/mods/fireflies/locale/fireflies.se.tr new file mode 100644 index 00000000..ebd0cf9e --- /dev/null +++ b/mods/fireflies/locale/fireflies.se.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Eldfluga +Hidden Firefly=Gömd Eldfluga +Bug Net=Buggernät +Firefly in a Bottle=Eldfluga i en flaska diff --git a/mods/fireflies/locale/fireflies.sk.tr b/mods/fireflies/locale/fireflies.sk.tr new file mode 100644 index 00000000..b68674dd --- /dev/null +++ b/mods/fireflies/locale/fireflies.sk.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Svetluška +Hidden Firefly=Skrytá svetluška +Bug Net=Sieťka na hmyz +Firefly in a Bottle=Svetluška vo fľaši diff --git a/mods/fireflies/locale/fireflies.zh_CN.tr b/mods/fireflies/locale/fireflies.zh_CN.tr new file mode 100644 index 00000000..5971785a --- /dev/null +++ b/mods/fireflies/locale/fireflies.zh_CN.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=萤火虫 +Hidden Firefly=隐藏的萤火虫 +Bug Net=虫网 +Firefly in a Bottle=放在瓶子里的萤火虫 diff --git a/mods/fireflies/locale/fireflies.zh_TW.tr b/mods/fireflies/locale/fireflies.zh_TW.tr new file mode 100644 index 00000000..af754a91 --- /dev/null +++ b/mods/fireflies/locale/fireflies.zh_TW.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=螢火蟲 +Hidden Firefly=隱藏的螢火蟲 +Bug Net=蟲網 +Firefly in a Bottle=放在瓶子裡的螢火蟲 diff --git a/mods/fireflies/locale/template.txt b/mods/fireflies/locale/template.txt new file mode 100644 index 00000000..91aa8ffa --- /dev/null +++ b/mods/fireflies/locale/template.txt @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly= +Hidden Firefly= +Bug Net= +Firefly in a Bottle= diff --git a/mods/fireflies/mod.conf b/mods/fireflies/mod.conf new file mode 100644 index 00000000..a5335880 --- /dev/null +++ b/mods/fireflies/mod.conf @@ -0,0 +1,3 @@ +name = fireflies +description = Minetest Game mod: fireflies +depends = default, vessels diff --git a/mods/fireflies/textures/fireflies_bottle.png b/mods/fireflies/textures/fireflies_bottle.png new file mode 100644 index 00000000..ecca0363 Binary files /dev/null and b/mods/fireflies/textures/fireflies_bottle.png differ diff --git a/mods/fireflies/textures/fireflies_bottle_animated.png b/mods/fireflies/textures/fireflies_bottle_animated.png new file mode 100644 index 00000000..294ff974 Binary files /dev/null and b/mods/fireflies/textures/fireflies_bottle_animated.png differ diff --git a/mods/fireflies/textures/fireflies_bugnet.png b/mods/fireflies/textures/fireflies_bugnet.png new file mode 100644 index 00000000..8ec3d33b Binary files /dev/null and b/mods/fireflies/textures/fireflies_bugnet.png differ diff --git a/mods/fireflies/textures/fireflies_firefly.png b/mods/fireflies/textures/fireflies_firefly.png new file mode 100644 index 00000000..c0866894 Binary files /dev/null and b/mods/fireflies/textures/fireflies_firefly.png differ diff --git a/mods/fireflies/textures/fireflies_firefly_animated.png b/mods/fireflies/textures/fireflies_firefly_animated.png new file mode 100644 index 00000000..e6932e37 Binary files /dev/null and b/mods/fireflies/textures/fireflies_firefly_animated.png differ diff --git a/mods/flowers/README.txt b/mods/flowers/README.txt new file mode 100644 index 00000000..4b3149c4 --- /dev/null +++ b/mods/flowers/README.txt @@ -0,0 +1,30 @@ +Minetest Game mod: flowers +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Ironzorg (MIT) and VanessaE (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +RHRhino (CC BY-SA 3.0): + flowers_dandelion_white.png + flowers_geranium.png + flowers_rose.png + flowers_tulip.png + flowers_viola.png + +Gambit (CC BY-SA 3.0): + flowers_mushroom_brown.png + flowers_mushroom_red.png + flowers_waterlily.png + +yyt16384 (CC BY-SA 3.0): + flowers_waterlily_bottom.png -- Derived from Gambit's texture + +paramat (CC BY-SA 3.0): + flowers_dandelion_yellow.png -- Derived from RHRhino's texture + flowers_tulip_black.png -- Derived from RHRhino's texture + flowers_chrysanthemum_green.png diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua new file mode 100644 index 00000000..a52847fd --- /dev/null +++ b/mods/flowers/init.lua @@ -0,0 +1,336 @@ +-- flowers/init.lua + +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + + +-- Namespace for functions + +flowers = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("flowers") + + +-- Map Generation + +dofile(minetest.get_modpath("flowers") .. "/mapgen.lua") + + +-- +-- Flowers +-- + +-- Aliases for original flowers mod + +minetest.register_alias("flowers:flower_rose", "flowers:rose") +minetest.register_alias("flowers:flower_tulip", "flowers:tulip") +minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow") +minetest.register_alias("flowers:flower_geranium", "flowers:geranium") +minetest.register_alias("flowers:flower_viola", "flowers:viola") +minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") + + +-- Flower registration + +local function add_simple_flower(name, desc, box, f_groups) + -- Common flowers' groups + f_groups.snappy = 3 + f_groups.flower = 1 + f_groups.flora = 1 + f_groups.attached_node = 1 + + minetest.register_node("flowers:" .. name, { + description = desc, + drawtype = "plantlike", + waving = 1, + tiles = {"flowers_" .. name .. ".png"}, + inventory_image = "flowers_" .. name .. ".png", + wield_image = "flowers_" .. name .. ".png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + groups = f_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = box + } + }) +end + +flowers.datas = { + { + "rose", + S("Red Rose"), + {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, + {color_red = 1, flammable = 1} + }, + { + "tulip", + S("Orange Tulip"), + {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + {color_orange = 1, flammable = 1} + }, + { + "dandelion_yellow", + S("Yellow Dandelion"), + {-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16}, + {color_yellow = 1, flammable = 1} + }, + { + "chrysanthemum_green", + S("Green Chrysanthemum"), + {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, + {color_green = 1, flammable = 1} + }, + { + "geranium", + S("Blue Geranium"), + {-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16}, + {color_blue = 1, flammable = 1} + }, + { + "viola", + S("Viola"), + {-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16}, + {color_violet = 1, flammable = 1} + }, + { + "dandelion_white", + S("White Dandelion"), + {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, + {color_white = 1, flammable = 1} + }, + { + "tulip_black", + S("Black Tulip"), + {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + {color_black = 1, flammable = 1} + }, +} + +for _,item in pairs(flowers.datas) do + add_simple_flower(unpack(item)) +end + + +-- Flower spread +-- Public function to enable override by mods + +function flowers.flower_spread(pos, node) + pos.y = pos.y - 1 + local under = minetest.get_node(pos) + pos.y = pos.y + 1 + -- Replace flora with dry shrub in desert sand and silver sand, + -- as this is the only way to generate them. + -- However, preserve grasses in sand dune biomes. + if minetest.get_item_group(under.name, "sand") == 1 and + under.name ~= "default:sand" then + minetest.set_node(pos, {name = "default:dry_shrub"}) + return + end + + if minetest.get_item_group(under.name, "soil") == 0 then + return + end + + local light = minetest.get_node_light(pos) + if not light or light < 13 then + return + end + + local pos0 = vector.subtract(pos, 4) + local pos1 = vector.add(pos, 4) + -- Testing shows that a threshold of 3 results in an appropriate maximum + -- density of approximately 7 flora per 9x9 area. + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora") > 3 then + return + end + + local soils = minetest.find_nodes_in_area_under_air( + pos0, pos1, "group:soil") + local num_soils = #soils + if num_soils >= 1 then + for si = 1, math.min(3, num_soils) do + local soil = soils[math.random(num_soils)] + local soil_name = minetest.get_node(soil).name + local soil_above = {x = soil.x, y = soil.y + 1, z = soil.z} + light = minetest.get_node_light(soil_above) + if light and light >= 13 and + -- Only spread to same surface node + soil_name == under.name and + -- Desert sand is in the soil group + soil_name ~= "default:desert_sand" then + minetest.set_node(soil_above, {name = node.name}) + end + end + end +end + +minetest.register_abm({ + label = "Flower spread", + nodenames = {"group:flora"}, + interval = 13, + chance = 300, + action = function(...) + flowers.flower_spread(...) + end, +}) + + +-- +-- Mushrooms +-- + +minetest.register_node("flowers:mushroom_red", { + description = S("Red Mushroom"), + tiles = {"flowers_mushroom_red.png"}, + inventory_image = "flowers_mushroom_red.png", + wield_image = "flowers_mushroom_red.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {mushroom = 1, snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-5), + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_brown", { + description = S("Brown Mushroom"), + tiles = {"flowers_mushroom_brown.png"}, + inventory_image = "flowers_mushroom_brown.png", + wield_image = "flowers_mushroom_brown.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {mushroom = 1, food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + + +-- Mushroom spread and death + +function flowers.mushroom_spread(pos, node) + if minetest.get_node_light(pos, 0.5) > 3 then + if minetest.get_node_light(pos, nil) == 15 then + minetest.remove_node(pos) + end + return + end + local positions = minetest.find_nodes_in_area_under_air( + {x = pos.x - 1, y = pos.y - 2, z = pos.z - 1}, + {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, + {"group:soil", "group:tree"}) + if #positions == 0 then + return + end + local pos2 = positions[math.random(#positions)] + pos2.y = pos2.y + 1 + if minetest.get_node_light(pos2, 0.5) <= 3 then + minetest.set_node(pos2, {name = node.name}) + end +end + +minetest.register_abm({ + label = "Mushroom spread", + nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, + interval = 11, + chance = 150, + action = function(...) + flowers.mushroom_spread(...) + end, +}) + + +-- These old mushroom related nodes can be simplified now + +minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red") +minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red") +minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_brown") +minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") + + +-- +-- Waterlily +-- + +local waterlily_def = { + description = S("Waterlily"), + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"flowers_waterlily.png", "flowers_waterlily_bottom.png"}, + inventory_image = "flowers_waterlily.png", + wield_image = "flowers_waterlily.png", + use_texture_alpha = "clip", + liquids_pointable = true, + walkable = false, + buildable_to = true, + floodable = true, + groups = {snappy = 3, flower = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + node_placement_prediction = "", + node_box = { + type = "fixed", + fixed = {-0.5, -31 / 64, -0.5, 0.5, -15 / 32, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16} + }, + + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + local node = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[node.name] + + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, node, placer, itemstack, + pointed_thing) + end + + if def and def.liquidtype == "source" and + minetest.get_item_group(node.name, "water") > 0 then + local player_name = placer and placer:get_player_name() or "" + if not minetest.is_protected(pos, player_name) then + minetest.set_node(pos, {name = "flowers:waterlily" .. + (def.waving == 3 and "_waving" or ""), + param2 = math.random(0, 3)}) + if not minetest.is_creative_enabled(player_name) then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end +} + +local waterlily_waving_def = table.copy(waterlily_def) +waterlily_waving_def.waving = 3 +waterlily_waving_def.drop = "flowers:waterlily" +waterlily_waving_def.groups.not_in_creative_inventory = 1 + +minetest.register_node("flowers:waterlily", waterlily_def) +minetest.register_node("flowers:waterlily_waving", waterlily_waving_def) + diff --git a/mods/flowers/license.txt b/mods/flowers/license.txt new file mode 100644 index 00000000..419ebe5a --- /dev/null +++ b/mods/flowers/license.txt @@ -0,0 +1,63 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Ironzorg, VanessaE +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 RHRhino +Copyright (C) 2015-2016 Gambit +Copyright (C) 2016 yyt16384 +Copyright (C) 2017 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/flowers/locale/flowers.de.tr b/mods/flowers/locale/flowers.de.tr new file mode 100644 index 00000000..18afb2af --- /dev/null +++ b/mods/flowers/locale/flowers.de.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rote Rose +Orange Tulip=Orange Tulpe +Yellow Dandelion=Gelber Löwenzahn +Green Chrysanthemum=Grüne Chrysantheme +Blue Geranium=Blaue Geranie +Viola=Veilchen +White Dandelion=Weißer Löwenzahn +Black Tulip=Schwarze Tulpe +Red Mushroom=Roter Pilz +Brown Mushroom=Brauner Pilz +Waterlily=Wasserlilie diff --git a/mods/flowers/locale/flowers.es.tr b/mods/flowers/locale/flowers.es.tr new file mode 100644 index 00000000..e9c345d8 --- /dev/null +++ b/mods/flowers/locale/flowers.es.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rosa roja +Orange Tulip=Tulipán naranja +Yellow Dandelion=Diente de León amarillo +Green Chrysanthemum=Crisantemo verde +Blue Geranium=Geranio azul +Viola=Violeta +White Dandelion=Diente de León blanco +Black Tulip=Tulipán negro +Red Mushroom=Champiñón rojo +Brown Mushroom=Champiñón café +Waterlily=Nenúfar diff --git a/mods/flowers/locale/flowers.fr.tr b/mods/flowers/locale/flowers.fr.tr new file mode 100644 index 00000000..41e0d008 --- /dev/null +++ b/mods/flowers/locale/flowers.fr.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rose rouge +Orange Tulip=Tulipe orange +Yellow Dandelion=Pissenlit jaune +Green Chrysanthemum=Chrysanthème vert +Blue Geranium=Géranium bleu +Viola=Violette +White Dandelion=Pissenlit blanc +Black Tulip=Tulipe noire +Red Mushroom=Champignon rouge +Brown Mushroom=Champignon brun +Waterlily=Nénuphar diff --git a/mods/flowers/locale/flowers.id.tr b/mods/flowers/locale/flowers.id.tr new file mode 100644 index 00000000..730529b3 --- /dev/null +++ b/mods/flowers/locale/flowers.id.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Mawar Merah +Orange Tulip=Tulip Oranye +Yellow Dandelion=Dandelion Kuning +Green Chrysanthemum=Krisan Hijau +Blue Geranium=Geranium Biru +Viola=Viola +White Dandelion=Dandelion Putih +Black Tulip=Tulip Hitam +Red Mushroom=Jamur Merah +Brown Mushroom=Jamur Cokelat +Waterlily=Teratai diff --git a/mods/flowers/locale/flowers.it.tr b/mods/flowers/locale/flowers.it.tr new file mode 100644 index 00000000..1ab49dd4 --- /dev/null +++ b/mods/flowers/locale/flowers.it.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rosa rossa +Orange Tulip=Tulipano arancione +Yellow Dandelion=Dente di leone giallo +Green Chrysanthemum=Crisantemo verde +Blue Geranium=Geranio blu +Viola=Viola +White Dandelion=Dente di leone bianco +Black Tulip=Tulipano nero +Red Mushroom=Fungo rosso +Brown Mushroom=Fungo marrone +Waterlily=Ninfea diff --git a/mods/flowers/locale/flowers.jbo.tr b/mods/flowers/locale/flowers.jbo.tr new file mode 100644 index 00000000..8f816082 --- /dev/null +++ b/mods/flowers/locale/flowers.jbo.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=lo xunre rozgu +Orange Tulip=lo narju tujli +Yellow Dandelion=lo pelxu spatrtaraksaku +Green Chrysanthemum=lo crino xrisantemo +Blue Geranium=lo blanu plargoni +Viola=lo spatrvi'ola +White Dandelion=lo blabi spatrtaraksaku +Black Tulip=lo xekri tujli +Red Mushroom=lo xunre ledgrute +Brown Mushroom=lo bunre ledgrute +Waterlily=lo spatrnimfe'a diff --git a/mods/flowers/locale/flowers.ms.tr b/mods/flowers/locale/flowers.ms.tr new file mode 100644 index 00000000..4e846eb5 --- /dev/null +++ b/mods/flowers/locale/flowers.ms.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Ros Merah +Orange Tulip=Tulip Jingga +Yellow Dandelion=Dandelion Kuning +Green Chrysanthemum=Kekwa Hijau +Blue Geranium=Geranium Biru +Viola=Violet +White Dandelion=Dandelion Putih +Black Tulip=Tulip Hitam +Red Mushroom=Cendawan Merah +Brown Mushroom=Cendawan Perang +Waterlily=Teratai diff --git a/mods/flowers/locale/flowers.pt_BR.tr b/mods/flowers/locale/flowers.pt_BR.tr new file mode 100644 index 00000000..1f5ff929 --- /dev/null +++ b/mods/flowers/locale/flowers.pt_BR.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rosa Vermelha +Orange Tulip=Tulipa Laranja +Yellow Dandelion=Dente-de-leão Amarelo +Green Chrysanthemum=Crisântemo Verde +Blue Geranium=Gerânio Azul +Viola=Violeta +White Dandelion=Dente-de-leão Branco +Black Tulip=Tulipa Negra +Red Mushroom=Cogumelo Vermelho +Brown Mushroom=Cogumelo Marrom +Waterlily=Nenúfar diff --git a/mods/flowers/locale/flowers.ru.tr b/mods/flowers/locale/flowers.ru.tr new file mode 100644 index 00000000..d861e2a4 --- /dev/null +++ b/mods/flowers/locale/flowers.ru.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Красная Роза +Orange Tulip=Оранжевый Тюльпан +Yellow Dandelion=Желтый Одуванчик +Green Chrysanthemum=Зелёная Хризантема +Blue Geranium=Синяя Герань +Viola=Фиалка +White Dandelion=Белый Одуванчик +Black Tulip=Черный Тюльпан +Red Mushroom=Мухомор +Brown Mushroom=Коричневый Гриб +Waterlily=Кувшинка diff --git a/mods/flowers/locale/flowers.se.tr b/mods/flowers/locale/flowers.se.tr new file mode 100644 index 00000000..018e133b --- /dev/null +++ b/mods/flowers/locale/flowers.se.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Röd ros +Orange Tulip=Orange Tulpan +Yellow Dandelion=Gul Maskros +Green Chrysanthemum=Grön Krysantemum +Blue Geranium=Blå Geranium +Viola=Violett Viola +White Dandelion=Vit Maskros +Black Tulip=Svart Tulpan +Red Mushroom=Röd Svamp +Brown Mushroom=Brun Svamp +Waterlily=Näckros diff --git a/mods/flowers/locale/flowers.sk.tr b/mods/flowers/locale/flowers.sk.tr new file mode 100644 index 00000000..75d4ae1e --- /dev/null +++ b/mods/flowers/locale/flowers.sk.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Červená ruža +Orange Tulip=Oranžový tulipán +Yellow Dandelion=Žltá púpava +Green Chrysanthemum=Zelená chryzantéma +Blue Geranium=Modrý muškát +Viola=Fialka +White Dandelion=Biela púpava +Black Tulip=Čierny tulipán +Red Mushroom=Červená huba +Brown Mushroom=Hnedá huba +Waterlily=Lekno diff --git a/mods/flowers/locale/flowers.zh_CN.tr b/mods/flowers/locale/flowers.zh_CN.tr new file mode 100644 index 00000000..3139dfbc --- /dev/null +++ b/mods/flowers/locale/flowers.zh_CN.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=红玫瑰 +Orange Tulip=橙郁金香 +Yellow Dandelion=黄蒲公英 +Green Chrysanthemum=绿菊花 +Blue Geranium=蓝天竺葵 +Viola=三色堇 +White Dandelion=白蒲公英 +Black Tulip=黑郁金香 +Red Mushroom=红蘑菇 +Brown Mushroom=棕蘑菇 +Waterlily=睡莲 diff --git a/mods/flowers/locale/flowers.zh_TW.tr b/mods/flowers/locale/flowers.zh_TW.tr new file mode 100644 index 00000000..a3a3ec5a --- /dev/null +++ b/mods/flowers/locale/flowers.zh_TW.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=紅玫瑰 +Orange Tulip=橙鬱金香 +Yellow Dandelion=黃蒲公英 +Green Chrysanthemum=綠菊花 +Blue Geranium=藍天竺葵 +Viola=三色堇 +White Dandelion=白蒲公英 +Black Tulip=黑鬱金香 +Red Mushroom=紅蘑菇 +Brown Mushroom=棕蘑菇 +Waterlily=睡蓮 diff --git a/mods/flowers/locale/template.txt b/mods/flowers/locale/template.txt new file mode 100644 index 00000000..a3a687fd --- /dev/null +++ b/mods/flowers/locale/template.txt @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose= +Orange Tulip= +Yellow Dandelion= +Green Chrysanthemum= +Blue Geranium= +Viola= +White Dandelion= +Black Tulip= +Red Mushroom= +Brown Mushroom= +Waterlily= diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua new file mode 100644 index 00000000..f282f505 --- /dev/null +++ b/mods/flowers/mapgen.lua @@ -0,0 +1,181 @@ +-- +-- Mgv6 +-- + +local function register_mgv6_flower(flower_name) + minetest.register_decoration({ + name = "flowers:"..flower_name, + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 100, y = 100, z = 100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_max = 30, + y_min = 1, + decoration = "flowers:"..flower_name, + }) +end + +local function register_mgv6_mushroom(mushroom_name) + minetest.register_decoration({ + name = "flowers:"..mushroom_name, + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.04, + spread = {x = 100, y = 100, z = 100}, + seed = 7133, + octaves = 3, + persist = 0.6 + }, + y_max = 30, + y_min = 1, + decoration = "flowers:"..mushroom_name, + spawn_by = "default:tree", + num_spawn_by = 1, + }) +end + +local function register_mgv6_waterlily() + minetest.register_decoration({ + name = "flowers:waterlily", + deco_type = "simple", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 100, y = 100, z = 100}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + y_max = 0, + y_min = 0, + decoration = "flowers:waterlily_waving", + param2 = 0, + param2_max = 3, + place_offset_y = 1, + }) +end + +function flowers.register_mgv6_decorations() + register_mgv6_flower("rose") + register_mgv6_flower("tulip") + register_mgv6_flower("dandelion_yellow") + register_mgv6_flower("geranium") + register_mgv6_flower("viola") + register_mgv6_flower("dandelion_white") + + register_mgv6_mushroom("mushroom_brown") + register_mgv6_mushroom("mushroom_red") + + register_mgv6_waterlily() +end + + +-- +-- All other biome API mapgens +-- + +local function register_flower(seed, flower_name) + minetest.register_decoration({ + name = "flowers:"..flower_name, + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.02, + scale = 0.04, + spread = {x = 200, y = 200, z = 200}, + seed = seed, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland", "deciduous_forest"}, + y_max = 31000, + y_min = 1, + decoration = "flowers:"..flower_name, + }) +end + +local function register_mushroom(mushroom_name) + minetest.register_decoration({ + name = "flowers:"..mushroom_name, + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:dirt_with_coniferous_litter"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest", "coniferous_forest"}, + y_max = 31000, + y_min = 1, + decoration = "flowers:"..mushroom_name, + }) +end + +local function register_waterlily() + minetest.register_decoration({ + name = "default:waterlily", + deco_type = "simple", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 200, y = 200, z = 200}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"}, + y_max = 0, + y_min = 0, + decoration = "flowers:waterlily_waving", + param2 = 0, + param2_max = 3, + place_offset_y = 1, + }) +end + +function flowers.register_decorations() + register_flower(436, "rose") + register_flower(19822, "tulip") + register_flower(1220999, "dandelion_yellow") + register_flower(800081, "chrysanthemum_green") + register_flower(36662, "geranium") + register_flower(1133, "viola") + register_flower(73133, "dandelion_white") + register_flower(42, "tulip_black") + + register_mushroom("mushroom_brown") + register_mushroom("mushroom_red") + + register_waterlily() +end + + +-- +-- Detect mapgen to select functions +-- + +local mg_name = minetest.get_mapgen_setting("mg_name") +if mg_name == "v6" then + flowers.register_mgv6_decorations() +else + flowers.register_decorations() +end diff --git a/mods/flowers/mod.conf b/mods/flowers/mod.conf new file mode 100644 index 00000000..cdafe642 --- /dev/null +++ b/mods/flowers/mod.conf @@ -0,0 +1,3 @@ +name = flowers +description = Minetest Game mod: flowers +depends = default diff --git a/mods/flowers/textures/flowers_chrysanthemum_green.png b/mods/flowers/textures/flowers_chrysanthemum_green.png new file mode 100644 index 00000000..01d8c7e3 Binary files /dev/null and b/mods/flowers/textures/flowers_chrysanthemum_green.png differ diff --git a/mods/flowers/textures/flowers_dandelion_white.png b/mods/flowers/textures/flowers_dandelion_white.png new file mode 100644 index 00000000..1bc02fb5 Binary files /dev/null and b/mods/flowers/textures/flowers_dandelion_white.png differ diff --git a/mods/flowers/textures/flowers_dandelion_yellow.png b/mods/flowers/textures/flowers_dandelion_yellow.png new file mode 100644 index 00000000..544f60c1 Binary files /dev/null and b/mods/flowers/textures/flowers_dandelion_yellow.png differ diff --git a/mods/flowers/textures/flowers_geranium.png b/mods/flowers/textures/flowers_geranium.png new file mode 100644 index 00000000..88de1d7f Binary files /dev/null and b/mods/flowers/textures/flowers_geranium.png differ diff --git a/mods/flowers/textures/flowers_mushroom_brown.png b/mods/flowers/textures/flowers_mushroom_brown.png new file mode 100644 index 00000000..33ffcd47 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_brown.png differ diff --git a/mods/flowers/textures/flowers_mushroom_red.png b/mods/flowers/textures/flowers_mushroom_red.png new file mode 100644 index 00000000..a68f5d50 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_red.png differ diff --git a/mods/flowers/textures/flowers_rose.png b/mods/flowers/textures/flowers_rose.png new file mode 100644 index 00000000..e3b841d2 Binary files /dev/null and b/mods/flowers/textures/flowers_rose.png differ diff --git a/mods/flowers/textures/flowers_tulip.png b/mods/flowers/textures/flowers_tulip.png new file mode 100644 index 00000000..471fcd3a Binary files /dev/null and b/mods/flowers/textures/flowers_tulip.png differ diff --git a/mods/flowers/textures/flowers_tulip_black.png b/mods/flowers/textures/flowers_tulip_black.png new file mode 100644 index 00000000..1dd09f74 Binary files /dev/null and b/mods/flowers/textures/flowers_tulip_black.png differ diff --git a/mods/flowers/textures/flowers_viola.png b/mods/flowers/textures/flowers_viola.png new file mode 100644 index 00000000..ca2d750e Binary files /dev/null and b/mods/flowers/textures/flowers_viola.png differ diff --git a/mods/flowers/textures/flowers_waterlily.png b/mods/flowers/textures/flowers_waterlily.png new file mode 100644 index 00000000..973e5113 Binary files /dev/null and b/mods/flowers/textures/flowers_waterlily.png differ diff --git a/mods/flowers/textures/flowers_waterlily_bottom.png b/mods/flowers/textures/flowers_waterlily_bottom.png new file mode 100644 index 00000000..3dbeaf40 Binary files /dev/null and b/mods/flowers/textures/flowers_waterlily_bottom.png differ diff --git a/flowers_plus/flowers-changelog.txt b/mods/flowers_plus/flowers-changelog.txt similarity index 100% rename from flowers_plus/flowers-changelog.txt rename to mods/flowers_plus/flowers-changelog.txt diff --git a/flowers_plus/init.lua b/mods/flowers_plus/init.lua similarity index 100% rename from flowers_plus/init.lua rename to mods/flowers_plus/init.lua diff --git a/flowers_plus/locale/flowers_plus.de.tr b/mods/flowers_plus/locale/flowers_plus.de.tr similarity index 100% rename from flowers_plus/locale/flowers_plus.de.tr rename to mods/flowers_plus/locale/flowers_plus.de.tr diff --git a/flowers_plus/locale/flowers_plus.es.tr b/mods/flowers_plus/locale/flowers_plus.es.tr similarity index 100% rename from flowers_plus/locale/flowers_plus.es.tr rename to mods/flowers_plus/locale/flowers_plus.es.tr diff --git a/flowers_plus/locale/flowers_plus.fr.tr b/mods/flowers_plus/locale/flowers_plus.fr.tr similarity index 100% rename from flowers_plus/locale/flowers_plus.fr.tr rename to mods/flowers_plus/locale/flowers_plus.fr.tr diff --git a/flowers_plus/locale/flowers_plus.tr.tr b/mods/flowers_plus/locale/flowers_plus.tr.tr similarity index 100% rename from flowers_plus/locale/flowers_plus.tr.tr rename to mods/flowers_plus/locale/flowers_plus.tr.tr diff --git a/flowers_plus/locale/template.txt b/mods/flowers_plus/locale/template.txt similarity index 100% rename from flowers_plus/locale/template.txt rename to mods/flowers_plus/locale/template.txt diff --git a/flowers_plus/mod.conf b/mods/flowers_plus/mod.conf similarity index 100% rename from flowers_plus/mod.conf rename to mods/flowers_plus/mod.conf diff --git a/flowers_plus/models/flowers_sunflower.obj b/mods/flowers_plus/models/flowers_sunflower.obj similarity index 100% rename from flowers_plus/models/flowers_sunflower.obj rename to mods/flowers_plus/models/flowers_sunflower.obj diff --git a/flowers_plus/textures/flowers_seaweed.png b/mods/flowers_plus/textures/flowers_seaweed.png similarity index 100% rename from flowers_plus/textures/flowers_seaweed.png rename to mods/flowers_plus/textures/flowers_seaweed.png diff --git a/flowers_plus/textures/flowers_seaweedLight.png b/mods/flowers_plus/textures/flowers_seaweedLight.png similarity index 100% rename from flowers_plus/textures/flowers_seaweedLight.png rename to mods/flowers_plus/textures/flowers_seaweedLight.png diff --git a/flowers_plus/textures/flowers_seaweed_2.png b/mods/flowers_plus/textures/flowers_seaweed_2.png similarity index 100% rename from flowers_plus/textures/flowers_seaweed_2.png rename to mods/flowers_plus/textures/flowers_seaweed_2.png diff --git a/flowers_plus/textures/flowers_seaweed_3.png b/mods/flowers_plus/textures/flowers_seaweed_3.png similarity index 100% rename from flowers_plus/textures/flowers_seaweed_3.png rename to mods/flowers_plus/textures/flowers_seaweed_3.png diff --git a/flowers_plus/textures/flowers_seaweed_4.png b/mods/flowers_plus/textures/flowers_seaweed_4.png similarity index 100% rename from flowers_plus/textures/flowers_seaweed_4.png rename to mods/flowers_plus/textures/flowers_seaweed_4.png diff --git a/flowers_plus/textures/flowers_sunflower.png b/mods/flowers_plus/textures/flowers_sunflower.png similarity index 100% rename from flowers_plus/textures/flowers_sunflower.png rename to mods/flowers_plus/textures/flowers_sunflower.png diff --git a/flowers_plus/textures/flowers_sunflower_inv.png b/mods/flowers_plus/textures/flowers_sunflower_inv.png similarity index 100% rename from flowers_plus/textures/flowers_sunflower_inv.png rename to mods/flowers_plus/textures/flowers_sunflower_inv.png diff --git a/flowers_plus/textures/flowers_waterlily.png b/mods/flowers_plus/textures/flowers_waterlily.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily.png rename to mods/flowers_plus/textures/flowers_waterlily.png diff --git a/flowers_plus/textures/flowers_waterlily_22.5.png b/mods/flowers_plus/textures/flowers_waterlily_22.5.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_22.5.png rename to mods/flowers_plus/textures/flowers_waterlily_22.5.png diff --git a/flowers_plus/textures/flowers_waterlily_45.png b/mods/flowers_plus/textures/flowers_waterlily_45.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_45.png rename to mods/flowers_plus/textures/flowers_waterlily_45.png diff --git a/flowers_plus/textures/flowers_waterlily_67.5.png b/mods/flowers_plus/textures/flowers_waterlily_67.5.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_67.5.png rename to mods/flowers_plus/textures/flowers_waterlily_67.5.png diff --git a/flowers_plus/textures/flowers_waterlily_small_1.png b/mods/flowers_plus/textures/flowers_waterlily_small_1.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_small_1.png rename to mods/flowers_plus/textures/flowers_waterlily_small_1.png diff --git a/flowers_plus/textures/flowers_waterlily_small_2.png b/mods/flowers_plus/textures/flowers_waterlily_small_2.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_small_2.png rename to mods/flowers_plus/textures/flowers_waterlily_small_2.png diff --git a/flowers_plus/textures/flowers_waterlily_small_3.png b/mods/flowers_plus/textures/flowers_waterlily_small_3.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_small_3.png rename to mods/flowers_plus/textures/flowers_waterlily_small_3.png diff --git a/flowers_plus/textures/flowers_waterlily_small_4.png b/mods/flowers_plus/textures/flowers_waterlily_small_4.png similarity index 100% rename from flowers_plus/textures/flowers_waterlily_small_4.png rename to mods/flowers_plus/textures/flowers_waterlily_small_4.png diff --git a/framedglass/README.md b/mods/framedglass/README.md similarity index 100% rename from framedglass/README.md rename to mods/framedglass/README.md diff --git a/framedglass/depends.txt b/mods/framedglass/depends.txt similarity index 100% rename from framedglass/depends.txt rename to mods/framedglass/depends.txt diff --git a/framedglass/init.lua b/mods/framedglass/init.lua similarity index 100% rename from framedglass/init.lua rename to mods/framedglass/init.lua diff --git a/framedglass/textures/framedglass_glass_face_clean.png b/mods/framedglass/textures/framedglass_glass_face_clean.png similarity index 100% rename from framedglass/textures/framedglass_glass_face_clean.png rename to mods/framedglass/textures/framedglass_glass_face_clean.png diff --git a/framedglass/textures/framedglass_glass_face_inv_static.png b/mods/framedglass/textures/framedglass_glass_face_inv_static.png similarity index 100% rename from framedglass/textures/framedglass_glass_face_inv_static.png rename to mods/framedglass/textures/framedglass_glass_face_inv_static.png diff --git a/framedglass/textures/framedglass_glass_face_streaks.png b/mods/framedglass/textures/framedglass_glass_face_streaks.png similarity index 100% rename from framedglass/textures/framedglass_glass_face_streaks.png rename to mods/framedglass/textures/framedglass_glass_face_streaks.png diff --git a/framedglass/textures/framedglass_steel_frame.png b/mods/framedglass/textures/framedglass_steel_frame.png similarity index 100% rename from framedglass/textures/framedglass_steel_frame.png rename to mods/framedglass/textures/framedglass_steel_frame.png diff --git a/framedglass/textures/framedglass_whiteglass.png b/mods/framedglass/textures/framedglass_whiteglass.png similarity index 100% rename from framedglass/textures/framedglass_whiteglass.png rename to mods/framedglass/textures/framedglass_whiteglass.png diff --git a/framedglass/textures/framedglass_wooden_frame.png b/mods/framedglass/textures/framedglass_wooden_frame.png similarity index 100% rename from framedglass/textures/framedglass_wooden_frame.png rename to mods/framedglass/textures/framedglass_wooden_frame.png diff --git a/function_delayer/.luacheckrc b/mods/function_delayer/.luacheckrc similarity index 100% rename from function_delayer/.luacheckrc rename to mods/function_delayer/.luacheckrc diff --git a/function_delayer/LICENSE.txt b/mods/function_delayer/LICENSE.txt similarity index 100% rename from function_delayer/LICENSE.txt rename to mods/function_delayer/LICENSE.txt diff --git a/function_delayer/README.md b/mods/function_delayer/README.md similarity index 100% rename from function_delayer/README.md rename to mods/function_delayer/README.md diff --git a/function_delayer/depends.txt b/mods/function_delayer/depends.txt similarity index 100% rename from function_delayer/depends.txt rename to mods/function_delayer/depends.txt diff --git a/function_delayer/init.lua b/mods/function_delayer/init.lua similarity index 100% rename from function_delayer/init.lua rename to mods/function_delayer/init.lua diff --git a/mods/game_commands/README.txt b/mods/game_commands/README.txt new file mode 100644 index 00000000..a4516082 --- /dev/null +++ b/mods/game_commands/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: game_commands +================================ +See license.txt for license information. + +Authors of source code +---------------------- +rubenwardy (MIT) diff --git a/mods/game_commands/init.lua b/mods/game_commands/init.lua new file mode 100644 index 00000000..e038be18 --- /dev/null +++ b/mods/game_commands/init.lua @@ -0,0 +1,31 @@ +-- game_commands/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("game_commands") + + +minetest.register_chatcommand("killme", { + description = S("Kill yourself to respawn"), + func = function(name) + local player = minetest.get_player_by_name(name) + if player then + if minetest.settings:get_bool("enable_damage") then + player:set_hp(0) + return true + else + for _, callback in pairs(minetest.registered_on_respawnplayers) do + if callback(player) then + return true + end + end + + -- There doesn't seem to be a way to get a default spawn pos + -- from the lua API + return false, S("No static_spawnpoint defined") + end + else + -- Show error message if used when not logged in, eg: from IRC mod + return false, S("You need to be online to be killed!") + end + end +}) diff --git a/mods/game_commands/license.txt b/mods/game_commands/license.txt new file mode 100644 index 00000000..fa855644 --- /dev/null +++ b/mods/game_commands/license.txt @@ -0,0 +1,24 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2017-2018 rubenwardy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/game_commands/locale/game_commands.de.tr b/mods/game_commands/locale/game_commands.de.tr new file mode 100644 index 00000000..24b0e25d --- /dev/null +++ b/mods/game_commands/locale/game_commands.de.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Selbstmord begehen, um zu Respawnen +No static_spawnpoint defined=Kein static_spawnpoint definiert +You need to be online to be killed!=Sie müssen online sein, um getötet zu werden! diff --git a/mods/game_commands/locale/game_commands.es.tr b/mods/game_commands/locale/game_commands.es.tr new file mode 100644 index 00000000..702a2ef9 --- /dev/null +++ b/mods/game_commands/locale/game_commands.es.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Suicídate para reaparecer +No static_spawnpoint defined=No se ha definido un punto de aparición +You need to be online to be killed!=¡Necesitas estar en línea para que te maten! diff --git a/mods/game_commands/locale/game_commands.fr.tr b/mods/game_commands/locale/game_commands.fr.tr new file mode 100644 index 00000000..0e295d68 --- /dev/null +++ b/mods/game_commands/locale/game_commands.fr.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Se suicider pour réapparaître +No static_spawnpoint defined=Pas de point d'apparition défini +You need to be online to be killed!=Vous devez être en ligne pour être tué ! diff --git a/mods/game_commands/locale/game_commands.id.tr b/mods/game_commands/locale/game_commands.id.tr new file mode 100644 index 00000000..1ab364b2 --- /dev/null +++ b/mods/game_commands/locale/game_commands.id.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Bunuh diri untuk bangkit kembali +No static_spawnpoint defined=Tiada static_spawnpoint (titik bangkit statis) yang diatur +You need to be online to be killed!=Anda harus daring untuk dibunuh! diff --git a/mods/game_commands/locale/game_commands.it.tr b/mods/game_commands/locale/game_commands.it.tr new file mode 100644 index 00000000..91646b0f --- /dev/null +++ b/mods/game_commands/locale/game_commands.it.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Ucciditi per ricomparire +No static_spawnpoint defined=Nessuno static_spawnpoint definito +You need to be online to be killed!=Devi essere in linea per essere ucciso! diff --git a/mods/game_commands/locale/game_commands.jbo.tr b/mods/game_commands/locale/game_commands.jbo.tr new file mode 100644 index 00000000..ddddcd7a --- /dev/null +++ b/mods/game_commands/locale/game_commands.jbo.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=.i ro nu do catra do cu tadji pa nu do tolcanci +No static_spawnpoint defined=.i no da ckaji lo me la'o zoi.static_spawnpoint.zoi +You need to be online to be killed!=.i lo nu samjo'e cu sarcu lo nu do se catra diff --git a/mods/game_commands/locale/game_commands.ms.tr b/mods/game_commands/locale/game_commands.ms.tr new file mode 100644 index 00000000..ed4a0bdf --- /dev/null +++ b/mods/game_commands/locale/game_commands.ms.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Bunuh diri anda untuk lahir semula +No static_spawnpoint defined=Tiada titik permulaan statik (tetapan static_spawnpoint) ditakrifkan +You need to be online to be killed!=Anda mesti berada dalam talian untuk dibunuh! diff --git a/mods/game_commands/locale/game_commands.pt_BR.tr b/mods/game_commands/locale/game_commands.pt_BR.tr new file mode 100644 index 00000000..6c52c0bd --- /dev/null +++ b/mods/game_commands/locale/game_commands.pt_BR.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Mate-se para reaparecer +No static_spawnpoint defined=Nenhum ponto de reaparecer estático definido +You need to be online to be killed!=Você precisa estar online para ser morto! diff --git a/mods/game_commands/locale/game_commands.ru.tr b/mods/game_commands/locale/game_commands.ru.tr new file mode 100644 index 00000000..26d9e08a --- /dev/null +++ b/mods/game_commands/locale/game_commands.ru.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Убейте себя, чтобы возродиться +No static_spawnpoint defined=static_spawnpoint не определён +You need to be online to be killed!=Вы должны быть онлайн, чтобы убить себя! diff --git a/mods/game_commands/locale/game_commands.se.tr b/mods/game_commands/locale/game_commands.se.tr new file mode 100644 index 00000000..afefc9b3 --- /dev/null +++ b/mods/game_commands/locale/game_commands.se.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Döda dig själv för att respawna +No static_spawnpoint defined=Ingen static_spawnpoint definierat +You need to be online to be killed!=Du måsta vara online för att bli dödad! diff --git a/mods/game_commands/locale/game_commands.sk.tr b/mods/game_commands/locale/game_commands.sk.tr new file mode 100644 index 00000000..f7d153ae --- /dev/null +++ b/mods/game_commands/locale/game_commands.sk.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Samovražda pre znovuzrodenie +No static_spawnpoint defined=Nie je definované stále miesto znovuzrodenia +You need to be online to be killed!=Musíš byť online, aby si mohol byť zabitý! diff --git a/mods/game_commands/locale/game_commands.zh_CN.tr b/mods/game_commands/locale/game_commands.zh_CN.tr new file mode 100644 index 00000000..3c69dfb7 --- /dev/null +++ b/mods/game_commands/locale/game_commands.zh_CN.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=杀死自己并重生 +No static_spawnpoint defined=static_spawnpoint 未定义 +You need to be online to be killed!=您需要在线才能被杀死! diff --git a/mods/game_commands/locale/game_commands.zh_TW.tr b/mods/game_commands/locale/game_commands.zh_TW.tr new file mode 100644 index 00000000..34e148d2 --- /dev/null +++ b/mods/game_commands/locale/game_commands.zh_TW.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=殺死自己並重生 +No static_spawnpoint defined=static_spawnpoint 未定義 +You need to be online to be killed!=您需要在線才能被殺死! diff --git a/mods/game_commands/locale/template.txt b/mods/game_commands/locale/template.txt new file mode 100644 index 00000000..903f1603 --- /dev/null +++ b/mods/game_commands/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn= +No static_spawnpoint defined= +You need to be online to be killed!= diff --git a/mods/game_commands/mod.conf b/mods/game_commands/mod.conf new file mode 100644 index 00000000..5571ff51 --- /dev/null +++ b/mods/game_commands/mod.conf @@ -0,0 +1,2 @@ +name = game_commands +description = Minetest Game mod: game_commands diff --git a/gardening/README.txt b/mods/gardening/README.txt similarity index 100% rename from gardening/README.txt rename to mods/gardening/README.txt diff --git a/gardening/init.lua b/mods/gardening/init.lua similarity index 100% rename from gardening/init.lua rename to mods/gardening/init.lua diff --git a/gardening/textures/gardening_dandelions.png b/mods/gardening/textures/gardening_dandelions.png similarity index 100% rename from gardening/textures/gardening_dandelions.png rename to mods/gardening/textures/gardening_dandelions.png diff --git a/gardening/textures/gardening_geranium_shrub.png b/mods/gardening/textures/gardening_geranium_shrub.png similarity index 100% rename from gardening/textures/gardening_geranium_shrub.png rename to mods/gardening/textures/gardening_geranium_shrub.png diff --git a/gardening/textures/gardening_packed_dirt.png b/mods/gardening/textures/gardening_packed_dirt.png similarity index 100% rename from gardening/textures/gardening_packed_dirt.png rename to mods/gardening/textures/gardening_packed_dirt.png diff --git a/gardening/textures/gardening_rosebush.png b/mods/gardening/textures/gardening_rosebush.png similarity index 100% rename from gardening/textures/gardening_rosebush.png rename to mods/gardening/textures/gardening_rosebush.png diff --git a/gardening/textures/gardening_tulip_shrub.png b/mods/gardening/textures/gardening_tulip_shrub.png similarity index 100% rename from gardening/textures/gardening_tulip_shrub.png rename to mods/gardening/textures/gardening_tulip_shrub.png diff --git a/gardening/textures/gardening_violas.png b/mods/gardening/textures/gardening_violas.png similarity index 100% rename from gardening/textures/gardening_violas.png rename to mods/gardening/textures/gardening_violas.png diff --git a/mods/give_initial_stuff/README.txt b/mods/give_initial_stuff/README.txt new file mode 100644 index 00000000..cbd240fe --- /dev/null +++ b/mods/give_initial_stuff/README.txt @@ -0,0 +1,8 @@ +Minetest Game mod: give_initial_stuff +===================================== +See license.txt for license information. + +Authors of source code +---------------------- +Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) diff --git a/mods/give_initial_stuff/init.lua b/mods/give_initial_stuff/init.lua new file mode 100644 index 00000000..74421dc6 --- /dev/null +++ b/mods/give_initial_stuff/init.lua @@ -0,0 +1,46 @@ +-- gave_initial_stuff/init.lua + +local stuff_string = minetest.settings:get("initial_stuff") or + "default:pick_steel,default:axe_steel,default:shovel_steel," .. + "default:torch 99,default:cobble 99" + +give_initial_stuff = { + items = {} +} + +function give_initial_stuff.give(player) + minetest.log("action", + "Giving initial stuff to player " .. player:get_player_name()) + local inv = player:get_inventory() + for _, stack in ipairs(give_initial_stuff.items) do + inv:add_item("main", stack) + end +end + +function give_initial_stuff.add(stack) + give_initial_stuff.items[#give_initial_stuff.items + 1] = ItemStack(stack) +end + +function give_initial_stuff.clear() + give_initial_stuff.items = {} +end + +function give_initial_stuff.add_from_csv(str) + local items = str:split(",") + for _, itemname in ipairs(items) do + give_initial_stuff.add(itemname) + end +end + +function give_initial_stuff.set_list(list) + give_initial_stuff.items = list +end + +function give_initial_stuff.get_list() + return give_initial_stuff.items +end + +give_initial_stuff.add_from_csv(stuff_string) +if minetest.settings:get_bool("give_initial_stuff") then + minetest.register_on_newplayer(give_initial_stuff.give) +end diff --git a/mods/give_initial_stuff/license.txt b/mods/give_initial_stuff/license.txt new file mode 100644 index 00000000..8134c920 --- /dev/null +++ b/mods/give_initial_stuff/license.txt @@ -0,0 +1,25 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/give_initial_stuff/mod.conf b/mods/give_initial_stuff/mod.conf new file mode 100644 index 00000000..51d31aef --- /dev/null +++ b/mods/give_initial_stuff/mod.conf @@ -0,0 +1,3 @@ +name = give_initial_stuff +description = Minetest Game mod: give_initial_stuff +depends = default diff --git a/gloopblocks/LICENSE b/mods/gloopblocks/LICENSE similarity index 100% rename from gloopblocks/LICENSE rename to mods/gloopblocks/LICENSE diff --git a/gloopblocks/README b/mods/gloopblocks/README similarity index 100% rename from gloopblocks/README rename to mods/gloopblocks/README diff --git a/gloopblocks/crafts.lua b/mods/gloopblocks/crafts.lua similarity index 100% rename from gloopblocks/crafts.lua rename to mods/gloopblocks/crafts.lua diff --git a/gloopblocks/depends.txt b/mods/gloopblocks/depends.txt similarity index 100% rename from gloopblocks/depends.txt rename to mods/gloopblocks/depends.txt diff --git a/gloopblocks/description.txt b/mods/gloopblocks/description.txt similarity index 100% rename from gloopblocks/description.txt rename to mods/gloopblocks/description.txt diff --git a/gloopblocks/init.lua b/mods/gloopblocks/init.lua similarity index 100% rename from gloopblocks/init.lua rename to mods/gloopblocks/init.lua diff --git a/gloopblocks/intllib.lua b/mods/gloopblocks/intllib.lua similarity index 100% rename from gloopblocks/intllib.lua rename to mods/gloopblocks/intllib.lua diff --git a/gloopblocks/lava-handling.lua b/mods/gloopblocks/lava-handling.lua similarity index 100% rename from gloopblocks/lava-handling.lua rename to mods/gloopblocks/lava-handling.lua diff --git a/gloopblocks/locale/de.po b/mods/gloopblocks/locale/de.po similarity index 100% rename from gloopblocks/locale/de.po rename to mods/gloopblocks/locale/de.po diff --git a/gloopblocks/locale/fr.po b/mods/gloopblocks/locale/fr.po similarity index 100% rename from gloopblocks/locale/fr.po rename to mods/gloopblocks/locale/fr.po diff --git a/gloopblocks/locale/ru.po b/mods/gloopblocks/locale/ru.po similarity index 100% rename from gloopblocks/locale/ru.po rename to mods/gloopblocks/locale/ru.po diff --git a/gloopblocks/locale/template.pot b/mods/gloopblocks/locale/template.pot similarity index 100% rename from gloopblocks/locale/template.pot rename to mods/gloopblocks/locale/template.pot diff --git a/gloopblocks/main.lua b/mods/gloopblocks/main.lua similarity index 100% rename from gloopblocks/main.lua rename to mods/gloopblocks/main.lua diff --git a/gloopblocks/mod.conf b/mods/gloopblocks/mod.conf similarity index 100% rename from gloopblocks/mod.conf rename to mods/gloopblocks/mod.conf diff --git a/gloopblocks/models/gloopblocks_ash_pile.obj b/mods/gloopblocks/models/gloopblocks_ash_pile.obj similarity index 100% rename from gloopblocks/models/gloopblocks_ash_pile.obj rename to mods/gloopblocks/models/gloopblocks_ash_pile.obj diff --git a/gloopblocks/screenshot.png b/mods/gloopblocks/screenshot.png similarity index 100% rename from gloopblocks/screenshot.png rename to mods/gloopblocks/screenshot.png diff --git a/gloopblocks/textures/gloopblocks_ashes.png b/mods/gloopblocks/textures/gloopblocks_ashes.png similarity index 100% rename from gloopblocks/textures/gloopblocks_ashes.png rename to mods/gloopblocks/textures/gloopblocks_ashes.png diff --git a/gloopblocks/textures/gloopblocks_basalt.png b/mods/gloopblocks/textures/gloopblocks_basalt.png similarity index 100% rename from gloopblocks/textures/gloopblocks_basalt.png rename to mods/gloopblocks/textures/gloopblocks_basalt.png diff --git a/gloopblocks/textures/gloopblocks_cement_axe.png b/mods/gloopblocks/textures/gloopblocks_cement_axe.png similarity index 100% rename from gloopblocks/textures/gloopblocks_cement_axe.png rename to mods/gloopblocks/textures/gloopblocks_cement_axe.png diff --git a/gloopblocks/textures/gloopblocks_cement_pick.png b/mods/gloopblocks/textures/gloopblocks_cement_pick.png similarity index 100% rename from gloopblocks/textures/gloopblocks_cement_pick.png rename to mods/gloopblocks/textures/gloopblocks_cement_pick.png diff --git a/gloopblocks/textures/gloopblocks_cement_shovel.png b/mods/gloopblocks/textures/gloopblocks_cement_shovel.png similarity index 100% rename from gloopblocks/textures/gloopblocks_cement_shovel.png rename to mods/gloopblocks/textures/gloopblocks_cement_shovel.png diff --git a/gloopblocks/textures/gloopblocks_cement_sword.png b/mods/gloopblocks/textures/gloopblocks_cement_sword.png similarity index 100% rename from gloopblocks/textures/gloopblocks_cement_sword.png rename to mods/gloopblocks/textures/gloopblocks_cement_sword.png diff --git a/gloopblocks/textures/gloopblocks_cobble_road.png b/mods/gloopblocks/textures/gloopblocks_cobble_road.png similarity index 100% rename from gloopblocks/textures/gloopblocks_cobble_road.png rename to mods/gloopblocks/textures/gloopblocks_cobble_road.png diff --git a/gloopblocks/textures/gloopblocks_cobble_road_mossy.png b/mods/gloopblocks/textures/gloopblocks_cobble_road_mossy.png similarity index 100% rename from gloopblocks/textures/gloopblocks_cobble_road_mossy.png rename to mods/gloopblocks/textures/gloopblocks_cobble_road_mossy.png diff --git a/gloopblocks/textures/gloopblocks_dirt_brick_overlay.png b/mods/gloopblocks/textures/gloopblocks_dirt_brick_overlay.png similarity index 100% rename from gloopblocks/textures/gloopblocks_dirt_brick_overlay.png rename to mods/gloopblocks/textures/gloopblocks_dirt_brick_overlay.png diff --git a/gloopblocks/textures/gloopblocks_dirt_cobble_mask.png b/mods/gloopblocks/textures/gloopblocks_dirt_cobble_mask.png similarity index 100% rename from gloopblocks/textures/gloopblocks_dirt_cobble_mask.png rename to mods/gloopblocks/textures/gloopblocks_dirt_cobble_mask.png diff --git a/gloopblocks/textures/gloopblocks_dirt_stone_mask.png b/mods/gloopblocks/textures/gloopblocks_dirt_stone_mask.png similarity index 100% rename from gloopblocks/textures/gloopblocks_dirt_stone_mask.png rename to mods/gloopblocks/textures/gloopblocks_dirt_stone_mask.png diff --git a/gloopblocks/textures/gloopblocks_evil_axe.png b/mods/gloopblocks/textures/gloopblocks_evil_axe.png similarity index 100% rename from gloopblocks/textures/gloopblocks_evil_axe.png rename to mods/gloopblocks/textures/gloopblocks_evil_axe.png diff --git a/gloopblocks/textures/gloopblocks_evil_block.png b/mods/gloopblocks/textures/gloopblocks_evil_block.png similarity index 100% rename from gloopblocks/textures/gloopblocks_evil_block.png rename to mods/gloopblocks/textures/gloopblocks_evil_block.png diff --git a/gloopblocks/textures/gloopblocks_evil_pick.png b/mods/gloopblocks/textures/gloopblocks_evil_pick.png similarity index 100% rename from gloopblocks/textures/gloopblocks_evil_pick.png rename to mods/gloopblocks/textures/gloopblocks_evil_pick.png diff --git a/gloopblocks/textures/gloopblocks_evil_shovel.png b/mods/gloopblocks/textures/gloopblocks_evil_shovel.png similarity index 100% rename from gloopblocks/textures/gloopblocks_evil_shovel.png rename to mods/gloopblocks/textures/gloopblocks_evil_shovel.png diff --git a/gloopblocks/textures/gloopblocks_evil_stick.png b/mods/gloopblocks/textures/gloopblocks_evil_stick.png similarity index 100% rename from gloopblocks/textures/gloopblocks_evil_stick.png rename to mods/gloopblocks/textures/gloopblocks_evil_stick.png diff --git a/gloopblocks/textures/gloopblocks_evil_sword.png b/mods/gloopblocks/textures/gloopblocks_evil_sword.png similarity index 100% rename from gloopblocks/textures/gloopblocks_evil_sword.png rename to mods/gloopblocks/textures/gloopblocks_evil_sword.png diff --git a/gloopblocks/textures/gloopblocks_ladder_mask.png b/mods/gloopblocks/textures/gloopblocks_ladder_mask.png similarity index 100% rename from gloopblocks/textures/gloopblocks_ladder_mask.png rename to mods/gloopblocks/textures/gloopblocks_ladder_mask.png diff --git a/gloopblocks/textures/gloopblocks_ladder_overlay.png b/mods/gloopblocks/textures/gloopblocks_ladder_overlay.png similarity index 100% rename from gloopblocks/textures/gloopblocks_ladder_overlay.png rename to mods/gloopblocks/textures/gloopblocks_ladder_overlay.png diff --git a/gloopblocks/textures/gloopblocks_oerkkiblock_front.png b/mods/gloopblocks/textures/gloopblocks_oerkkiblock_front.png similarity index 100% rename from gloopblocks/textures/gloopblocks_oerkkiblock_front.png rename to mods/gloopblocks/textures/gloopblocks_oerkkiblock_front.png diff --git a/gloopblocks/textures/gloopblocks_oerkkiblock_sides.png b/mods/gloopblocks/textures/gloopblocks_oerkkiblock_sides.png similarity index 100% rename from gloopblocks/textures/gloopblocks_oerkkiblock_sides.png rename to mods/gloopblocks/textures/gloopblocks_oerkkiblock_sides.png diff --git a/gloopblocks/textures/gloopblocks_oerkkiblock_tb.png b/mods/gloopblocks/textures/gloopblocks_oerkkiblock_tb.png similarity index 100% rename from gloopblocks/textures/gloopblocks_oerkkiblock_tb.png rename to mods/gloopblocks/textures/gloopblocks_oerkkiblock_tb.png diff --git a/gloopblocks/textures/gloopblocks_pavement.png b/mods/gloopblocks/textures/gloopblocks_pavement.png similarity index 100% rename from gloopblocks/textures/gloopblocks_pavement.png rename to mods/gloopblocks/textures/gloopblocks_pavement.png diff --git a/gloopblocks/textures/gloopblocks_pumice.png b/mods/gloopblocks/textures/gloopblocks_pumice.png similarity index 100% rename from gloopblocks/textures/gloopblocks_pumice.png rename to mods/gloopblocks/textures/gloopblocks_pumice.png diff --git a/gloopblocks/textures/gloopblocks_rainbow_block.png b/mods/gloopblocks/textures/gloopblocks_rainbow_block.png similarity index 100% rename from gloopblocks/textures/gloopblocks_rainbow_block.png rename to mods/gloopblocks/textures/gloopblocks_rainbow_block.png diff --git a/gloopblocks/textures/gloopblocks_rainbow_horizontal.png b/mods/gloopblocks/textures/gloopblocks_rainbow_horizontal.png similarity index 100% rename from gloopblocks/textures/gloopblocks_rainbow_horizontal.png rename to mods/gloopblocks/textures/gloopblocks_rainbow_horizontal.png diff --git a/gloopblocks/textures/gloopblocks_scaffold.png b/mods/gloopblocks/textures/gloopblocks_scaffold.png similarity index 100% rename from gloopblocks/textures/gloopblocks_scaffold.png rename to mods/gloopblocks/textures/gloopblocks_scaffold.png diff --git a/gloopblocks/textures/gloopblocks_stone_brick_mossy.png b/mods/gloopblocks/textures/gloopblocks_stone_brick_mossy.png similarity index 100% rename from gloopblocks/textures/gloopblocks_stone_brick_mossy.png rename to mods/gloopblocks/textures/gloopblocks_stone_brick_mossy.png diff --git a/gloopblocks/textures/gloopblocks_stone_mossy.png b/mods/gloopblocks/textures/gloopblocks_stone_mossy.png similarity index 100% rename from gloopblocks/textures/gloopblocks_stone_mossy.png rename to mods/gloopblocks/textures/gloopblocks_stone_mossy.png diff --git a/glooptest/LICENSE.txt b/mods/glooptest/LICENSE.txt similarity index 100% rename from glooptest/LICENSE.txt rename to mods/glooptest/LICENSE.txt diff --git a/glooptest/README.txt b/mods/glooptest/README.txt similarity index 100% rename from glooptest/README.txt rename to mods/glooptest/README.txt diff --git a/glooptest/compat_module/config.cfg b/mods/glooptest/compat_module/config.cfg similarity index 100% rename from glooptest/compat_module/config.cfg rename to mods/glooptest/compat_module/config.cfg diff --git a/glooptest/compat_module/init.lua b/mods/glooptest/compat_module/init.lua similarity index 100% rename from glooptest/compat_module/init.lua rename to mods/glooptest/compat_module/init.lua diff --git a/glooptest/depends.txt b/mods/glooptest/depends.txt similarity index 100% rename from glooptest/depends.txt rename to mods/glooptest/depends.txt diff --git a/glooptest/description.txt b/mods/glooptest/description.txt similarity index 100% rename from glooptest/description.txt rename to mods/glooptest/description.txt diff --git a/glooptest/general.cfg b/mods/glooptest/general.cfg similarity index 100% rename from glooptest/general.cfg rename to mods/glooptest/general.cfg diff --git a/glooptest/init.lua b/mods/glooptest/init.lua similarity index 100% rename from glooptest/init.lua rename to mods/glooptest/init.lua diff --git a/glooptest/mod.conf b/mods/glooptest/mod.conf similarity index 100% rename from glooptest/mod.conf rename to mods/glooptest/mod.conf diff --git a/glooptest/module.cfg b/mods/glooptest/module.cfg similarity index 100% rename from glooptest/module.cfg rename to mods/glooptest/module.cfg diff --git a/glooptest/ore_module/api.lua b/mods/glooptest/ore_module/api.lua similarity index 100% rename from glooptest/ore_module/api.lua rename to mods/glooptest/ore_module/api.lua diff --git a/glooptest/ore_module/init.lua b/mods/glooptest/ore_module/init.lua similarity index 100% rename from glooptest/ore_module/init.lua rename to mods/glooptest/ore_module/init.lua diff --git a/glooptest/othergen_module/init.lua b/mods/glooptest/othergen_module/init.lua similarity index 100% rename from glooptest/othergen_module/init.lua rename to mods/glooptest/othergen_module/init.lua diff --git a/glooptest/parts_module/init.lua b/mods/glooptest/parts_module/init.lua similarity index 100% rename from glooptest/parts_module/init.lua rename to mods/glooptest/parts_module/init.lua diff --git a/glooptest/tech_module/init.lua b/mods/glooptest/tech_module/init.lua similarity index 100% rename from glooptest/tech_module/init.lua rename to mods/glooptest/tech_module/init.lua diff --git a/glooptest/textures/gloopores_akalin_block.png b/mods/glooptest/textures/gloopores_akalin_block.png similarity index 100% rename from glooptest/textures/gloopores_akalin_block.png rename to mods/glooptest/textures/gloopores_akalin_block.png diff --git a/glooptest/textures/gloopores_akalin_ingot.png b/mods/glooptest/textures/gloopores_akalin_ingot.png similarity index 100% rename from glooptest/textures/gloopores_akalin_ingot.png rename to mods/glooptest/textures/gloopores_akalin_ingot.png diff --git a/glooptest/textures/gloopores_akalin_lump.png b/mods/glooptest/textures/gloopores_akalin_lump.png similarity index 100% rename from glooptest/textures/gloopores_akalin_lump.png rename to mods/glooptest/textures/gloopores_akalin_lump.png diff --git a/glooptest/textures/gloopores_alatro_block.png b/mods/glooptest/textures/gloopores_alatro_block.png similarity index 100% rename from glooptest/textures/gloopores_alatro_block.png rename to mods/glooptest/textures/gloopores_alatro_block.png diff --git a/glooptest/textures/gloopores_alatro_ingot.png b/mods/glooptest/textures/gloopores_alatro_ingot.png similarity index 100% rename from glooptest/textures/gloopores_alatro_ingot.png rename to mods/glooptest/textures/gloopores_alatro_ingot.png diff --git a/glooptest/textures/gloopores_alatro_lump.png b/mods/glooptest/textures/gloopores_alatro_lump.png similarity index 100% rename from glooptest/textures/gloopores_alatro_lump.png rename to mods/glooptest/textures/gloopores_alatro_lump.png diff --git a/glooptest/textures/gloopores_arol_ingot.png b/mods/glooptest/textures/gloopores_arol_ingot.png similarity index 100% rename from glooptest/textures/gloopores_arol_ingot.png rename to mods/glooptest/textures/gloopores_arol_ingot.png diff --git a/glooptest/textures/gloopores_arol_lump.png b/mods/glooptest/textures/gloopores_arol_lump.png similarity index 100% rename from glooptest/textures/gloopores_arol_lump.png rename to mods/glooptest/textures/gloopores_arol_lump.png diff --git a/glooptest/textures/gloopores_kalite_lump.png b/mods/glooptest/textures/gloopores_kalite_lump.png similarity index 100% rename from glooptest/textures/gloopores_kalite_lump.png rename to mods/glooptest/textures/gloopores_kalite_lump.png diff --git a/glooptest/textures/gloopores_kalite_torch_animated.png b/mods/glooptest/textures/gloopores_kalite_torch_animated.png similarity index 100% rename from glooptest/textures/gloopores_kalite_torch_animated.png rename to mods/glooptest/textures/gloopores_kalite_torch_animated.png diff --git a/glooptest/textures/gloopores_kalite_torch_on_ceiling_animated.png b/mods/glooptest/textures/gloopores_kalite_torch_on_ceiling_animated.png similarity index 100% rename from glooptest/textures/gloopores_kalite_torch_on_ceiling_animated.png rename to mods/glooptest/textures/gloopores_kalite_torch_on_ceiling_animated.png diff --git a/glooptest/textures/gloopores_kalite_torch_on_floor.png b/mods/glooptest/textures/gloopores_kalite_torch_on_floor.png similarity index 100% rename from glooptest/textures/gloopores_kalite_torch_on_floor.png rename to mods/glooptest/textures/gloopores_kalite_torch_on_floor.png diff --git a/glooptest/textures/gloopores_kalite_torch_on_floor_animated.png b/mods/glooptest/textures/gloopores_kalite_torch_on_floor_animated.png similarity index 100% rename from glooptest/textures/gloopores_kalite_torch_on_floor_animated.png rename to mods/glooptest/textures/gloopores_kalite_torch_on_floor_animated.png diff --git a/glooptest/textures/gloopores_mineral_akalin.png b/mods/glooptest/textures/gloopores_mineral_akalin.png similarity index 100% rename from glooptest/textures/gloopores_mineral_akalin.png rename to mods/glooptest/textures/gloopores_mineral_akalin.png diff --git a/glooptest/textures/gloopores_mineral_alatro.png b/mods/glooptest/textures/gloopores_mineral_alatro.png similarity index 100% rename from glooptest/textures/gloopores_mineral_alatro.png rename to mods/glooptest/textures/gloopores_mineral_alatro.png diff --git a/glooptest/textures/gloopores_mineral_arol.png b/mods/glooptest/textures/gloopores_mineral_arol.png similarity index 100% rename from glooptest/textures/gloopores_mineral_arol.png rename to mods/glooptest/textures/gloopores_mineral_arol.png diff --git a/glooptest/textures/gloopores_mineral_kalite.png b/mods/glooptest/textures/gloopores_mineral_kalite.png similarity index 100% rename from glooptest/textures/gloopores_mineral_kalite.png rename to mods/glooptest/textures/gloopores_mineral_kalite.png diff --git a/glooptest/textures/gloopores_mineral_talinite.png b/mods/glooptest/textures/gloopores_mineral_talinite.png similarity index 100% rename from glooptest/textures/gloopores_mineral_talinite.png rename to mods/glooptest/textures/gloopores_mineral_talinite.png diff --git a/glooptest/textures/gloopores_talinite_block.png b/mods/glooptest/textures/gloopores_talinite_block.png similarity index 100% rename from glooptest/textures/gloopores_talinite_block.png rename to mods/glooptest/textures/gloopores_talinite_block.png diff --git a/glooptest/textures/gloopores_talinite_ingot.png b/mods/glooptest/textures/gloopores_talinite_ingot.png similarity index 100% rename from glooptest/textures/gloopores_talinite_ingot.png rename to mods/glooptest/textures/gloopores_talinite_ingot.png diff --git a/glooptest/textures/gloopores_talinite_lump.png b/mods/glooptest/textures/gloopores_talinite_lump.png similarity index 100% rename from glooptest/textures/gloopores_talinite_lump.png rename to mods/glooptest/textures/gloopores_talinite_lump.png diff --git a/glooptest/textures/gloopores_tool_alatroaxe.png b/mods/glooptest/textures/gloopores_tool_alatroaxe.png similarity index 100% rename from glooptest/textures/gloopores_tool_alatroaxe.png rename to mods/glooptest/textures/gloopores_tool_alatroaxe.png diff --git a/glooptest/textures/gloopores_tool_alatropick.png b/mods/glooptest/textures/gloopores_tool_alatropick.png similarity index 100% rename from glooptest/textures/gloopores_tool_alatropick.png rename to mods/glooptest/textures/gloopores_tool_alatropick.png diff --git a/glooptest/textures/gloopores_tool_alatroshovel.png b/mods/glooptest/textures/gloopores_tool_alatroshovel.png similarity index 100% rename from glooptest/textures/gloopores_tool_alatroshovel.png rename to mods/glooptest/textures/gloopores_tool_alatroshovel.png diff --git a/glooptest/textures/gloopores_tool_alatrosword.png b/mods/glooptest/textures/gloopores_tool_alatrosword.png similarity index 100% rename from glooptest/textures/gloopores_tool_alatrosword.png rename to mods/glooptest/textures/gloopores_tool_alatrosword.png diff --git a/glooptest/textures/gloopores_tool_arolaxe.png b/mods/glooptest/textures/gloopores_tool_arolaxe.png similarity index 100% rename from glooptest/textures/gloopores_tool_arolaxe.png rename to mods/glooptest/textures/gloopores_tool_arolaxe.png diff --git a/glooptest/textures/gloopores_tool_arolpick.png b/mods/glooptest/textures/gloopores_tool_arolpick.png similarity index 100% rename from glooptest/textures/gloopores_tool_arolpick.png rename to mods/glooptest/textures/gloopores_tool_arolpick.png diff --git a/glooptest/textures/gloopores_tool_arolshovel.png b/mods/glooptest/textures/gloopores_tool_arolshovel.png similarity index 100% rename from glooptest/textures/gloopores_tool_arolshovel.png rename to mods/glooptest/textures/gloopores_tool_arolshovel.png diff --git a/glooptest/textures/gloopores_tool_arolsword.png b/mods/glooptest/textures/gloopores_tool_arolsword.png similarity index 100% rename from glooptest/textures/gloopores_tool_arolsword.png rename to mods/glooptest/textures/gloopores_tool_arolsword.png diff --git a/glooptest/textures/glooptest_akalin_crystal_glass.png b/mods/glooptest/textures/glooptest_akalin_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_akalin_crystal_glass.png rename to mods/glooptest/textures/glooptest_akalin_crystal_glass.png diff --git a/glooptest/textures/glooptest_alatro_crystal_glass.png b/mods/glooptest/textures/glooptest_alatro_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_alatro_crystal_glass.png rename to mods/glooptest/textures/glooptest_alatro_crystal_glass.png diff --git a/glooptest/textures/glooptest_amethyst_block.png b/mods/glooptest/textures/glooptest_amethyst_block.png similarity index 100% rename from glooptest/textures/glooptest_amethyst_block.png rename to mods/glooptest/textures/glooptest_amethyst_block.png diff --git a/glooptest/textures/glooptest_arol_crystal_glass.png b/mods/glooptest/textures/glooptest_arol_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_arol_crystal_glass.png rename to mods/glooptest/textures/glooptest_arol_crystal_glass.png diff --git a/glooptest/textures/glooptest_compressed_kalite.png b/mods/glooptest/textures/glooptest_compressed_kalite.png similarity index 100% rename from glooptest/textures/glooptest_compressed_kalite.png rename to mods/glooptest/textures/glooptest_compressed_kalite.png diff --git a/glooptest/textures/glooptest_crystal_glass.png b/mods/glooptest/textures/glooptest_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_crystal_glass.png rename to mods/glooptest/textures/glooptest_crystal_glass.png diff --git a/glooptest/textures/glooptest_emerald_block.png b/mods/glooptest/textures/glooptest_emerald_block.png similarity index 100% rename from glooptest/textures/glooptest_emerald_block.png rename to mods/glooptest/textures/glooptest_emerald_block.png diff --git a/glooptest/textures/glooptest_encrusting_upgrade.png b/mods/glooptest/textures/glooptest_encrusting_upgrade.png similarity index 100% rename from glooptest/textures/glooptest_encrusting_upgrade.png rename to mods/glooptest/textures/glooptest_encrusting_upgrade.png diff --git a/glooptest/textures/glooptest_gem_amethyst.png b/mods/glooptest/textures/glooptest_gem_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gem_amethyst.png rename to mods/glooptest/textures/glooptest_gem_amethyst.png diff --git a/glooptest/textures/glooptest_gem_emerald.png b/mods/glooptest/textures/glooptest_gem_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gem_emerald.png rename to mods/glooptest/textures/glooptest_gem_emerald.png diff --git a/glooptest/textures/glooptest_gem_ruby.png b/mods/glooptest/textures/glooptest_gem_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gem_ruby.png rename to mods/glooptest/textures/glooptest_gem_ruby.png diff --git a/glooptest/textures/glooptest_gem_sapphire.png b/mods/glooptest/textures/glooptest_gem_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gem_sapphire.png rename to mods/glooptest/textures/glooptest_gem_sapphire.png diff --git a/glooptest/textures/glooptest_gem_topaz.png b/mods/glooptest/textures/glooptest_gem_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gem_topaz.png rename to mods/glooptest/textures/glooptest_gem_topaz.png diff --git a/glooptest/textures/glooptest_gemoverlay_axe_amethyst.png b/mods/glooptest/textures/glooptest_gemoverlay_axe_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_axe_amethyst.png rename to mods/glooptest/textures/glooptest_gemoverlay_axe_amethyst.png diff --git a/glooptest/textures/glooptest_gemoverlay_axe_diamond.png b/mods/glooptest/textures/glooptest_gemoverlay_axe_diamond.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_axe_diamond.png rename to mods/glooptest/textures/glooptest_gemoverlay_axe_diamond.png diff --git a/glooptest/textures/glooptest_gemoverlay_axe_emerald.png b/mods/glooptest/textures/glooptest_gemoverlay_axe_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_axe_emerald.png rename to mods/glooptest/textures/glooptest_gemoverlay_axe_emerald.png diff --git a/glooptest/textures/glooptest_gemoverlay_axe_ruby.png b/mods/glooptest/textures/glooptest_gemoverlay_axe_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_axe_ruby.png rename to mods/glooptest/textures/glooptest_gemoverlay_axe_ruby.png diff --git a/glooptest/textures/glooptest_gemoverlay_axe_sapphire.png b/mods/glooptest/textures/glooptest_gemoverlay_axe_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_axe_sapphire.png rename to mods/glooptest/textures/glooptest_gemoverlay_axe_sapphire.png diff --git a/glooptest/textures/glooptest_gemoverlay_axe_topaz.png b/mods/glooptest/textures/glooptest_gemoverlay_axe_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_axe_topaz.png rename to mods/glooptest/textures/glooptest_gemoverlay_axe_topaz.png diff --git a/glooptest/textures/glooptest_gemoverlay_hammer_amethyst.png b/mods/glooptest/textures/glooptest_gemoverlay_hammer_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_hammer_amethyst.png rename to mods/glooptest/textures/glooptest_gemoverlay_hammer_amethyst.png diff --git a/glooptest/textures/glooptest_gemoverlay_hammer_diamond.png b/mods/glooptest/textures/glooptest_gemoverlay_hammer_diamond.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_hammer_diamond.png rename to mods/glooptest/textures/glooptest_gemoverlay_hammer_diamond.png diff --git a/glooptest/textures/glooptest_gemoverlay_hammer_emerald.png b/mods/glooptest/textures/glooptest_gemoverlay_hammer_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_hammer_emerald.png rename to mods/glooptest/textures/glooptest_gemoverlay_hammer_emerald.png diff --git a/glooptest/textures/glooptest_gemoverlay_hammer_ruby.png b/mods/glooptest/textures/glooptest_gemoverlay_hammer_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_hammer_ruby.png rename to mods/glooptest/textures/glooptest_gemoverlay_hammer_ruby.png diff --git a/glooptest/textures/glooptest_gemoverlay_hammer_sapphire.png b/mods/glooptest/textures/glooptest_gemoverlay_hammer_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_hammer_sapphire.png rename to mods/glooptest/textures/glooptest_gemoverlay_hammer_sapphire.png diff --git a/glooptest/textures/glooptest_gemoverlay_hammer_topaz.png b/mods/glooptest/textures/glooptest_gemoverlay_hammer_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_hammer_topaz.png rename to mods/glooptest/textures/glooptest_gemoverlay_hammer_topaz.png diff --git a/glooptest/textures/glooptest_gemoverlay_handsaw_amethyst.png b/mods/glooptest/textures/glooptest_gemoverlay_handsaw_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_handsaw_amethyst.png rename to mods/glooptest/textures/glooptest_gemoverlay_handsaw_amethyst.png diff --git a/glooptest/textures/glooptest_gemoverlay_handsaw_diamond.png b/mods/glooptest/textures/glooptest_gemoverlay_handsaw_diamond.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_handsaw_diamond.png rename to mods/glooptest/textures/glooptest_gemoverlay_handsaw_diamond.png diff --git a/glooptest/textures/glooptest_gemoverlay_handsaw_emerald.png b/mods/glooptest/textures/glooptest_gemoverlay_handsaw_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_handsaw_emerald.png rename to mods/glooptest/textures/glooptest_gemoverlay_handsaw_emerald.png diff --git a/glooptest/textures/glooptest_gemoverlay_handsaw_ruby.png b/mods/glooptest/textures/glooptest_gemoverlay_handsaw_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_handsaw_ruby.png rename to mods/glooptest/textures/glooptest_gemoverlay_handsaw_ruby.png diff --git a/glooptest/textures/glooptest_gemoverlay_handsaw_sapphire.png b/mods/glooptest/textures/glooptest_gemoverlay_handsaw_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_handsaw_sapphire.png rename to mods/glooptest/textures/glooptest_gemoverlay_handsaw_sapphire.png diff --git a/glooptest/textures/glooptest_gemoverlay_handsaw_topaz.png b/mods/glooptest/textures/glooptest_gemoverlay_handsaw_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_handsaw_topaz.png rename to mods/glooptest/textures/glooptest_gemoverlay_handsaw_topaz.png diff --git a/glooptest/textures/glooptest_gemoverlay_pick_amethyst.png b/mods/glooptest/textures/glooptest_gemoverlay_pick_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_pick_amethyst.png rename to mods/glooptest/textures/glooptest_gemoverlay_pick_amethyst.png diff --git a/glooptest/textures/glooptest_gemoverlay_pick_diamond.png b/mods/glooptest/textures/glooptest_gemoverlay_pick_diamond.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_pick_diamond.png rename to mods/glooptest/textures/glooptest_gemoverlay_pick_diamond.png diff --git a/glooptest/textures/glooptest_gemoverlay_pick_emerald.png b/mods/glooptest/textures/glooptest_gemoverlay_pick_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_pick_emerald.png rename to mods/glooptest/textures/glooptest_gemoverlay_pick_emerald.png diff --git a/glooptest/textures/glooptest_gemoverlay_pick_ruby.png b/mods/glooptest/textures/glooptest_gemoverlay_pick_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_pick_ruby.png rename to mods/glooptest/textures/glooptest_gemoverlay_pick_ruby.png diff --git a/glooptest/textures/glooptest_gemoverlay_pick_sapphire.png b/mods/glooptest/textures/glooptest_gemoverlay_pick_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_pick_sapphire.png rename to mods/glooptest/textures/glooptest_gemoverlay_pick_sapphire.png diff --git a/glooptest/textures/glooptest_gemoverlay_pick_topaz.png b/mods/glooptest/textures/glooptest_gemoverlay_pick_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_pick_topaz.png rename to mods/glooptest/textures/glooptest_gemoverlay_pick_topaz.png diff --git a/glooptest/textures/glooptest_gemoverlay_shovel_amethyst.png b/mods/glooptest/textures/glooptest_gemoverlay_shovel_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_shovel_amethyst.png rename to mods/glooptest/textures/glooptest_gemoverlay_shovel_amethyst.png diff --git a/glooptest/textures/glooptest_gemoverlay_shovel_diamond.png b/mods/glooptest/textures/glooptest_gemoverlay_shovel_diamond.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_shovel_diamond.png rename to mods/glooptest/textures/glooptest_gemoverlay_shovel_diamond.png diff --git a/glooptest/textures/glooptest_gemoverlay_shovel_emerald.png b/mods/glooptest/textures/glooptest_gemoverlay_shovel_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_shovel_emerald.png rename to mods/glooptest/textures/glooptest_gemoverlay_shovel_emerald.png diff --git a/glooptest/textures/glooptest_gemoverlay_shovel_ruby.png b/mods/glooptest/textures/glooptest_gemoverlay_shovel_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_shovel_ruby.png rename to mods/glooptest/textures/glooptest_gemoverlay_shovel_ruby.png diff --git a/glooptest/textures/glooptest_gemoverlay_shovel_sapphire.png b/mods/glooptest/textures/glooptest_gemoverlay_shovel_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_shovel_sapphire.png rename to mods/glooptest/textures/glooptest_gemoverlay_shovel_sapphire.png diff --git a/glooptest/textures/glooptest_gemoverlay_shovel_topaz.png b/mods/glooptest/textures/glooptest_gemoverlay_shovel_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_shovel_topaz.png rename to mods/glooptest/textures/glooptest_gemoverlay_shovel_topaz.png diff --git a/glooptest/textures/glooptest_gemoverlay_sword_amethyst.png b/mods/glooptest/textures/glooptest_gemoverlay_sword_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_sword_amethyst.png rename to mods/glooptest/textures/glooptest_gemoverlay_sword_amethyst.png diff --git a/glooptest/textures/glooptest_gemoverlay_sword_diamond.png b/mods/glooptest/textures/glooptest_gemoverlay_sword_diamond.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_sword_diamond.png rename to mods/glooptest/textures/glooptest_gemoverlay_sword_diamond.png diff --git a/glooptest/textures/glooptest_gemoverlay_sword_emerald.png b/mods/glooptest/textures/glooptest_gemoverlay_sword_emerald.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_sword_emerald.png rename to mods/glooptest/textures/glooptest_gemoverlay_sword_emerald.png diff --git a/glooptest/textures/glooptest_gemoverlay_sword_ruby.png b/mods/glooptest/textures/glooptest_gemoverlay_sword_ruby.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_sword_ruby.png rename to mods/glooptest/textures/glooptest_gemoverlay_sword_ruby.png diff --git a/glooptest/textures/glooptest_gemoverlay_sword_sapphire.png b/mods/glooptest/textures/glooptest_gemoverlay_sword_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_sword_sapphire.png rename to mods/glooptest/textures/glooptest_gemoverlay_sword_sapphire.png diff --git a/glooptest/textures/glooptest_gemoverlay_sword_topaz.png b/mods/glooptest/textures/glooptest_gemoverlay_sword_topaz.png similarity index 100% rename from glooptest/textures/glooptest_gemoverlay_sword_topaz.png rename to mods/glooptest/textures/glooptest_gemoverlay_sword_topaz.png diff --git a/glooptest/textures/glooptest_mineral_amethyst.png b/mods/glooptest/textures/glooptest_mineral_amethyst.png similarity index 100% rename from glooptest/textures/glooptest_mineral_amethyst.png rename to mods/glooptest/textures/glooptest_mineral_amethyst.png diff --git a/glooptest/textures/glooptest_mineral_emerald.png b/mods/glooptest/textures/glooptest_mineral_emerald.png similarity index 100% rename from glooptest/textures/glooptest_mineral_emerald.png rename to mods/glooptest/textures/glooptest_mineral_emerald.png diff --git a/glooptest/textures/glooptest_mineral_ruby.png b/mods/glooptest/textures/glooptest_mineral_ruby.png similarity index 100% rename from glooptest/textures/glooptest_mineral_ruby.png rename to mods/glooptest/textures/glooptest_mineral_ruby.png diff --git a/glooptest/textures/glooptest_mineral_sapphire.png b/mods/glooptest/textures/glooptest_mineral_sapphire.png similarity index 100% rename from glooptest/textures/glooptest_mineral_sapphire.png rename to mods/glooptest/textures/glooptest_mineral_sapphire.png diff --git a/glooptest/textures/glooptest_mineral_topaz.png b/mods/glooptest/textures/glooptest_mineral_topaz.png similarity index 100% rename from glooptest/textures/glooptest_mineral_topaz.png rename to mods/glooptest/textures/glooptest_mineral_topaz.png diff --git a/glooptest/textures/glooptest_reinforced_akalin_crystal_glass.png b/mods/glooptest/textures/glooptest_reinforced_akalin_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_reinforced_akalin_crystal_glass.png rename to mods/glooptest/textures/glooptest_reinforced_akalin_crystal_glass.png diff --git a/glooptest/textures/glooptest_reinforced_crystal_glass.png b/mods/glooptest/textures/glooptest_reinforced_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_reinforced_crystal_glass.png rename to mods/glooptest/textures/glooptest_reinforced_crystal_glass.png diff --git a/glooptest/textures/glooptest_ruby_block.png b/mods/glooptest/textures/glooptest_ruby_block.png similarity index 100% rename from glooptest/textures/glooptest_ruby_block.png rename to mods/glooptest/textures/glooptest_ruby_block.png diff --git a/glooptest/textures/glooptest_sapphire_block.png b/mods/glooptest/textures/glooptest_sapphire_block.png similarity index 100% rename from glooptest/textures/glooptest_sapphire_block.png rename to mods/glooptest/textures/glooptest_sapphire_block.png diff --git a/glooptest/textures/glooptest_table_side.png b/mods/glooptest/textures/glooptest_table_side.png similarity index 100% rename from glooptest/textures/glooptest_table_side.png rename to mods/glooptest/textures/glooptest_table_side.png diff --git a/glooptest/textures/glooptest_table_tb.png b/mods/glooptest/textures/glooptest_table_tb.png similarity index 100% rename from glooptest/textures/glooptest_table_tb.png rename to mods/glooptest/textures/glooptest_table_tb.png diff --git a/glooptest/textures/glooptest_talinite_crystal_glass.png b/mods/glooptest/textures/glooptest_talinite_crystal_glass.png similarity index 100% rename from glooptest/textures/glooptest_talinite_crystal_glass.png rename to mods/glooptest/textures/glooptest_talinite_crystal_glass.png diff --git a/glooptest/textures/glooptest_tool_alatrohammer.png b/mods/glooptest/textures/glooptest_tool_alatrohammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_alatrohammer.png rename to mods/glooptest/textures/glooptest_tool_alatrohammer.png diff --git a/glooptest/textures/glooptest_tool_alatrohandsaw.png b/mods/glooptest/textures/glooptest_tool_alatrohandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_alatrohandsaw.png rename to mods/glooptest/textures/glooptest_tool_alatrohandsaw.png diff --git a/glooptest/textures/glooptest_tool_arolhammer.png b/mods/glooptest/textures/glooptest_tool_arolhammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_arolhammer.png rename to mods/glooptest/textures/glooptest_tool_arolhammer.png diff --git a/glooptest/textures/glooptest_tool_arolhandsaw.png b/mods/glooptest/textures/glooptest_tool_arolhandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_arolhandsaw.png rename to mods/glooptest/textures/glooptest_tool_arolhandsaw.png diff --git a/glooptest/textures/glooptest_tool_bronzehammer.png b/mods/glooptest/textures/glooptest_tool_bronzehammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_bronzehammer.png rename to mods/glooptest/textures/glooptest_tool_bronzehammer.png diff --git a/glooptest/textures/glooptest_tool_bronzehandsaw.png b/mods/glooptest/textures/glooptest_tool_bronzehandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_bronzehandsaw.png rename to mods/glooptest/textures/glooptest_tool_bronzehandsaw.png diff --git a/glooptest/textures/glooptest_tool_diamondhammer.png b/mods/glooptest/textures/glooptest_tool_diamondhammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_diamondhammer.png rename to mods/glooptest/textures/glooptest_tool_diamondhammer.png diff --git a/glooptest/textures/glooptest_tool_diamondhandsaw.png b/mods/glooptest/textures/glooptest_tool_diamondhandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_diamondhandsaw.png rename to mods/glooptest/textures/glooptest_tool_diamondhandsaw.png diff --git a/glooptest/textures/glooptest_tool_goldhammer.png b/mods/glooptest/textures/glooptest_tool_goldhammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_goldhammer.png rename to mods/glooptest/textures/glooptest_tool_goldhammer.png diff --git a/glooptest/textures/glooptest_tool_goldhandsaw.png b/mods/glooptest/textures/glooptest_tool_goldhandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_goldhandsaw.png rename to mods/glooptest/textures/glooptest_tool_goldhandsaw.png diff --git a/glooptest/textures/glooptest_tool_mesehammer.png b/mods/glooptest/textures/glooptest_tool_mesehammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_mesehammer.png rename to mods/glooptest/textures/glooptest_tool_mesehammer.png diff --git a/glooptest/textures/glooptest_tool_mesehandsaw.png b/mods/glooptest/textures/glooptest_tool_mesehandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_mesehandsaw.png rename to mods/glooptest/textures/glooptest_tool_mesehandsaw.png diff --git a/glooptest/textures/glooptest_tool_silverhammer.png b/mods/glooptest/textures/glooptest_tool_silverhammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_silverhammer.png rename to mods/glooptest/textures/glooptest_tool_silverhammer.png diff --git a/glooptest/textures/glooptest_tool_silverhandsaw.png b/mods/glooptest/textures/glooptest_tool_silverhandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_silverhandsaw.png rename to mods/glooptest/textures/glooptest_tool_silverhandsaw.png diff --git a/glooptest/textures/glooptest_tool_steelhammer.png b/mods/glooptest/textures/glooptest_tool_steelhammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_steelhammer.png rename to mods/glooptest/textures/glooptest_tool_steelhammer.png diff --git a/glooptest/textures/glooptest_tool_steelhandsaw.png b/mods/glooptest/textures/glooptest_tool_steelhandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_steelhandsaw.png rename to mods/glooptest/textures/glooptest_tool_steelhandsaw.png diff --git a/glooptest/textures/glooptest_tool_stonehammer.png b/mods/glooptest/textures/glooptest_tool_stonehammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_stonehammer.png rename to mods/glooptest/textures/glooptest_tool_stonehammer.png diff --git a/glooptest/textures/glooptest_tool_stonehandsaw.png b/mods/glooptest/textures/glooptest_tool_stonehandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_stonehandsaw.png rename to mods/glooptest/textures/glooptest_tool_stonehandsaw.png diff --git a/glooptest/textures/glooptest_tool_woodhammer.png b/mods/glooptest/textures/glooptest_tool_woodhammer.png similarity index 100% rename from glooptest/textures/glooptest_tool_woodhammer.png rename to mods/glooptest/textures/glooptest_tool_woodhammer.png diff --git a/glooptest/textures/glooptest_tool_woodhandsaw.png b/mods/glooptest/textures/glooptest_tool_woodhandsaw.png similarity index 100% rename from glooptest/textures/glooptest_tool_woodhandsaw.png rename to mods/glooptest/textures/glooptest_tool_woodhandsaw.png diff --git a/glooptest/textures/glooptest_topaz_block.png b/mods/glooptest/textures/glooptest_topaz_block.png similarity index 100% rename from glooptest/textures/glooptest_topaz_block.png rename to mods/glooptest/textures/glooptest_topaz_block.png diff --git a/glooptest/textures/glooptest_upgrade_core.png b/mods/glooptest/textures/glooptest_upgrade_core.png similarity index 100% rename from glooptest/textures/glooptest_upgrade_core.png rename to mods/glooptest/textures/glooptest_upgrade_core.png diff --git a/glooptest/tools_module/api.lua b/mods/glooptest/tools_module/api.lua similarity index 100% rename from glooptest/tools_module/api.lua rename to mods/glooptest/tools_module/api.lua diff --git a/glooptest/tools_module/init.lua b/mods/glooptest/tools_module/init.lua similarity index 100% rename from glooptest/tools_module/init.lua rename to mods/glooptest/tools_module/init.lua diff --git a/hollytree/init.lua b/mods/hollytree/init.lua similarity index 100% rename from hollytree/init.lua rename to mods/hollytree/init.lua diff --git a/hollytree/locale/hollytree.es.tr b/mods/hollytree/locale/hollytree.es.tr similarity index 100% rename from hollytree/locale/hollytree.es.tr rename to mods/hollytree/locale/hollytree.es.tr diff --git a/hollytree/mod.conf b/mods/hollytree/mod.conf similarity index 100% rename from hollytree/mod.conf rename to mods/hollytree/mod.conf diff --git a/hollytree/schematics/hollytree.lua b/mods/hollytree/schematics/hollytree.lua similarity index 100% rename from hollytree/schematics/hollytree.lua rename to mods/hollytree/schematics/hollytree.lua diff --git a/hollytree/schematics/hollytree.mts b/mods/hollytree/schematics/hollytree.mts similarity index 100% rename from hollytree/schematics/hollytree.mts rename to mods/hollytree/schematics/hollytree.mts diff --git a/hollytree/textures/hollytree_leaves.png b/mods/hollytree/textures/hollytree_leaves.png similarity index 100% rename from hollytree/textures/hollytree_leaves.png rename to mods/hollytree/textures/hollytree_leaves.png diff --git a/hollytree/textures/hollytree_sapling.png b/mods/hollytree/textures/hollytree_sapling.png similarity index 100% rename from hollytree/textures/hollytree_sapling.png rename to mods/hollytree/textures/hollytree_sapling.png diff --git a/hollytree/textures/hollytree_trunk.png b/mods/hollytree/textures/hollytree_trunk.png similarity index 100% rename from hollytree/textures/hollytree_trunk.png rename to mods/hollytree/textures/hollytree_trunk.png diff --git a/hollytree/textures/hollytree_trunk_top.png b/mods/hollytree/textures/hollytree_trunk_top.png similarity index 100% rename from hollytree/textures/hollytree_trunk_top.png rename to mods/hollytree/textures/hollytree_trunk_top.png diff --git a/hollytree/textures/hollytree_wood.png b/mods/hollytree/textures/hollytree_wood.png similarity index 100% rename from hollytree/textures/hollytree_wood.png rename to mods/hollytree/textures/hollytree_wood.png diff --git a/homedecor_3d_extras/.luacheckrc b/mods/homedecor_3d_extras/.luacheckrc similarity index 100% rename from homedecor_3d_extras/.luacheckrc rename to mods/homedecor_3d_extras/.luacheckrc diff --git a/homedecor_3d_extras/init.lua b/mods/homedecor_3d_extras/init.lua similarity index 100% rename from homedecor_3d_extras/init.lua rename to mods/homedecor_3d_extras/init.lua diff --git a/homedecor_3d_extras/mod.conf b/mods/homedecor_3d_extras/mod.conf similarity index 100% rename from homedecor_3d_extras/mod.conf rename to mods/homedecor_3d_extras/mod.conf diff --git a/homedecor_3d_extras/models/homedecor_3d_bookshelf.obj b/mods/homedecor_3d_extras/models/homedecor_3d_bookshelf.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_bookshelf.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_bookshelf.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj b/mods/homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_door_steel_a.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj b/mods/homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_door_steel_b.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj b/mods/homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_door_wood_a.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj b/mods/homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_door_wood_b.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor.obj b/mods/homedecor_3d_extras/models/homedecor_3d_trapdoor.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_trapdoor.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_trapdoor.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj b/mods/homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_trapdoor_open.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj b/mods/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj b/mods/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_trapdoor_steel_open.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj b/mods/homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_vessels_bottle.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj b/mods/homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_vessels_bottle_steel.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj b/mods/homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_vessels_drink.obj diff --git a/homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj b/mods/homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj rename to mods/homedecor_3d_extras/models/homedecor_3d_vessels_shelf.obj diff --git a/homedecor_3d_extras/models/homedecor_door_closet_a.obj b/mods/homedecor_3d_extras/models/homedecor_door_closet_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_closet_a.obj rename to mods/homedecor_3d_extras/models/homedecor_door_closet_a.obj diff --git a/homedecor_3d_extras/models/homedecor_door_closet_b.obj b/mods/homedecor_3d_extras/models/homedecor_door_closet_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_closet_b.obj rename to mods/homedecor_3d_extras/models/homedecor_door_closet_b.obj diff --git a/homedecor_3d_extras/models/homedecor_door_fancy_a.obj b/mods/homedecor_3d_extras/models/homedecor_door_fancy_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_fancy_a.obj rename to mods/homedecor_3d_extras/models/homedecor_door_fancy_a.obj diff --git a/homedecor_3d_extras/models/homedecor_door_fancy_b.obj b/mods/homedecor_3d_extras/models/homedecor_door_fancy_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_fancy_b.obj rename to mods/homedecor_3d_extras/models/homedecor_door_fancy_b.obj diff --git a/homedecor_3d_extras/models/homedecor_door_french_a.obj b/mods/homedecor_3d_extras/models/homedecor_door_french_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_french_a.obj rename to mods/homedecor_3d_extras/models/homedecor_door_french_a.obj diff --git a/homedecor_3d_extras/models/homedecor_door_french_b.obj b/mods/homedecor_3d_extras/models/homedecor_door_french_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_french_b.obj rename to mods/homedecor_3d_extras/models/homedecor_door_french_b.obj diff --git a/homedecor_3d_extras/models/homedecor_door_wood_glass_3_a.obj b/mods/homedecor_3d_extras/models/homedecor_door_wood_glass_3_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_wood_glass_3_a.obj rename to mods/homedecor_3d_extras/models/homedecor_door_wood_glass_3_a.obj diff --git a/homedecor_3d_extras/models/homedecor_door_wood_glass_3_b.obj b/mods/homedecor_3d_extras/models/homedecor_door_wood_glass_3_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_wood_glass_3_b.obj rename to mods/homedecor_3d_extras/models/homedecor_door_wood_glass_3_b.obj diff --git a/homedecor_3d_extras/models/homedecor_door_wrought_iron_a.obj b/mods/homedecor_3d_extras/models/homedecor_door_wrought_iron_a.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_wrought_iron_a.obj rename to mods/homedecor_3d_extras/models/homedecor_door_wrought_iron_a.obj diff --git a/homedecor_3d_extras/models/homedecor_door_wrought_iron_b.obj b/mods/homedecor_3d_extras/models/homedecor_door_wrought_iron_b.obj similarity index 100% rename from homedecor_3d_extras/models/homedecor_door_wrought_iron_b.obj rename to mods/homedecor_3d_extras/models/homedecor_door_wrought_iron_b.obj diff --git a/homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png b/mods/homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_bookshelf_books.png diff --git a/homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png b/mods/homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_bookshelf_inside_back.png diff --git a/homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png b/mods/homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_bottle_metal_bright.png diff --git a/homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png b/mods/homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_vessels_drinking_glass_inv.png diff --git a/homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png b/mods/homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_vessels_glass_bottle_inv.png diff --git a/homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png b/mods/homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_vessels_shelf_glass.png diff --git a/homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png b/mods/homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png similarity index 100% rename from homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png rename to mods/homedecor_3d_extras/textures/homedecor_3d_vessels_steel_bottle_inv.png diff --git a/homedecor_bathroom/.luacheckrc b/mods/homedecor_bathroom/.luacheckrc similarity index 100% rename from homedecor_bathroom/.luacheckrc rename to mods/homedecor_bathroom/.luacheckrc diff --git a/homedecor_bathroom/init.lua b/mods/homedecor_bathroom/init.lua similarity index 100% rename from homedecor_bathroom/init.lua rename to mods/homedecor_bathroom/init.lua diff --git a/homedecor_bathroom/locale/homedecor_bathroom.de.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.de.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.de.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.de.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.es.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.es.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.es.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.es.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.fr.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.fr.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.fr.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.fr.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.it.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.it.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.it.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.it.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.ms.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.ms.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.ms.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.ms.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.pt.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.pt.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.pt.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.pt.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.pt_BR.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.pt_BR.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.pt_BR.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.pt_BR.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.ru.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.ru.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.ru.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.ru.tr diff --git a/homedecor_bathroom/locale/homedecor_bathroom.zh_CN.tr b/mods/homedecor_bathroom/locale/homedecor_bathroom.zh_CN.tr similarity index 100% rename from homedecor_bathroom/locale/homedecor_bathroom.zh_CN.tr rename to mods/homedecor_bathroom/locale/homedecor_bathroom.zh_CN.tr diff --git a/homedecor_bathroom/locale/template.txt b/mods/homedecor_bathroom/locale/template.txt similarity index 100% rename from homedecor_bathroom/locale/template.txt rename to mods/homedecor_bathroom/locale/template.txt diff --git a/homedecor_bathroom/mod.conf b/mods/homedecor_bathroom/mod.conf similarity index 100% rename from homedecor_bathroom/mod.conf rename to mods/homedecor_bathroom/mod.conf diff --git a/homedecor_bathroom/models/homedecor_bathroom_faucet.obj b/mods/homedecor_bathroom/models/homedecor_bathroom_faucet.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_bathroom_faucet.obj rename to mods/homedecor_bathroom/models/homedecor_bathroom_faucet.obj diff --git a/homedecor_bathroom/models/homedecor_bathroom_set.obj b/mods/homedecor_bathroom/models/homedecor_bathroom_set.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_bathroom_set.obj rename to mods/homedecor_bathroom/models/homedecor_bathroom_set.obj diff --git a/homedecor_bathroom/models/homedecor_bathroom_sink.obj b/mods/homedecor_bathroom/models/homedecor_bathroom_sink.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_bathroom_sink.obj rename to mods/homedecor_bathroom/models/homedecor_bathroom_sink.obj diff --git a/homedecor_bathroom/models/homedecor_bathtub_clawfoot.obj b/mods/homedecor_bathroom/models/homedecor_bathtub_clawfoot.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_bathtub_clawfoot.obj rename to mods/homedecor_bathroom/models/homedecor_bathtub_clawfoot.obj diff --git a/homedecor_bathroom/models/homedecor_medicine_cabinet.obj b/mods/homedecor_bathroom/models/homedecor_medicine_cabinet.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_medicine_cabinet.obj rename to mods/homedecor_bathroom/models/homedecor_medicine_cabinet.obj diff --git a/homedecor_bathroom/models/homedecor_medicine_cabinet_open.obj b/mods/homedecor_bathroom/models/homedecor_medicine_cabinet_open.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_medicine_cabinet_open.obj rename to mods/homedecor_bathroom/models/homedecor_medicine_cabinet_open.obj diff --git a/homedecor_bathroom/models/homedecor_shower_head.obj b/mods/homedecor_bathroom/models/homedecor_shower_head.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_shower_head.obj rename to mods/homedecor_bathroom/models/homedecor_shower_head.obj diff --git a/homedecor_bathroom/models/homedecor_toilet_closed.obj b/mods/homedecor_bathroom/models/homedecor_toilet_closed.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_toilet_closed.obj rename to mods/homedecor_bathroom/models/homedecor_toilet_closed.obj diff --git a/homedecor_bathroom/models/homedecor_toilet_open.obj b/mods/homedecor_bathroom/models/homedecor_toilet_open.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_toilet_open.obj rename to mods/homedecor_bathroom/models/homedecor_toilet_open.obj diff --git a/homedecor_bathroom/models/homedecor_toilet_paper.obj b/mods/homedecor_bathroom/models/homedecor_toilet_paper.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_toilet_paper.obj rename to mods/homedecor_bathroom/models/homedecor_toilet_paper.obj diff --git a/homedecor_bathroom/models/homedecor_towel_rod.obj b/mods/homedecor_bathroom/models/homedecor_towel_rod.obj similarity index 100% rename from homedecor_bathroom/models/homedecor_towel_rod.obj rename to mods/homedecor_bathroom/models/homedecor_towel_rod.obj diff --git a/homedecor_bathroom/sounds/homedecor_shower.ogg b/mods/homedecor_bathroom/sounds/homedecor_shower.ogg similarity index 100% rename from homedecor_bathroom/sounds/homedecor_shower.ogg rename to mods/homedecor_bathroom/sounds/homedecor_shower.ogg diff --git a/homedecor_bathroom/sounds/homedecor_toilet_flush.ogg b/mods/homedecor_bathroom/sounds/homedecor_toilet_flush.ogg similarity index 100% rename from homedecor_bathroom/sounds/homedecor_toilet_flush.ogg rename to mods/homedecor_bathroom/sounds/homedecor_toilet_flush.ogg diff --git a/homedecor_bathroom/textures/3dforniture_taps_brass_inv.png b/mods/homedecor_bathroom/textures/3dforniture_taps_brass_inv.png similarity index 100% rename from homedecor_bathroom/textures/3dforniture_taps_brass_inv.png rename to mods/homedecor_bathroom/textures/3dforniture_taps_brass_inv.png diff --git a/homedecor_bathroom/textures/3dforniture_taps_inv.png b/mods/homedecor_bathroom/textures/3dforniture_taps_inv.png similarity index 100% rename from homedecor_bathroom/textures/3dforniture_taps_inv.png rename to mods/homedecor_bathroom/textures/3dforniture_taps_inv.png diff --git a/homedecor_bathroom/textures/forniture_marble_base_ducha_top.png b/mods/homedecor_bathroom/textures/forniture_marble_base_ducha_top.png similarity index 100% rename from homedecor_bathroom/textures/forniture_marble_base_ducha_top.png rename to mods/homedecor_bathroom/textures/forniture_marble_base_ducha_top.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_set_cup.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_set_cup.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_set_cup.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_set_cup.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_set_inv.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_set_inv.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_set_inv.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_set_inv.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_set_mirror.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_set_mirror.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_set_mirror.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_set_mirror.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_set_toothbrush.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_set_toothbrush.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_set_toothbrush.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_set_toothbrush.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_set_toothpaste.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_set_toothpaste.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_set_toothpaste.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_set_toothpaste.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_set_tray.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_set_tray.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_set_tray.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_set_tray.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_sink_inv.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_sink_inv.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_sink_inv.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_sink_inv.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_tiles_bg.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_tiles_bg.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_tiles_bg.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_tiles_bg.png diff --git a/homedecor_bathroom/textures/homedecor_bathroom_tiles_fg.png b/mods/homedecor_bathroom/textures/homedecor_bathroom_tiles_fg.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathroom_tiles_fg.png rename to mods/homedecor_bathroom/textures/homedecor_bathroom_tiles_fg.png diff --git a/homedecor_bathroom/textures/homedecor_bathtub_clawfoot_bottom_inside.png b/mods/homedecor_bathroom/textures/homedecor_bathtub_clawfoot_bottom_inside.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_bathtub_clawfoot_bottom_inside.png rename to mods/homedecor_bathroom/textures/homedecor_bathtub_clawfoot_bottom_inside.png diff --git a/homedecor_bathroom/textures/homedecor_medicine_cabinet_inside.png b/mods/homedecor_bathroom/textures/homedecor_medicine_cabinet_inside.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_medicine_cabinet_inside.png rename to mods/homedecor_bathroom/textures/homedecor_medicine_cabinet_inside.png diff --git a/homedecor_bathroom/textures/homedecor_medicine_cabinet_inv.png b/mods/homedecor_bathroom/textures/homedecor_medicine_cabinet_inv.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_medicine_cabinet_inv.png rename to mods/homedecor_bathroom/textures/homedecor_medicine_cabinet_inv.png diff --git a/homedecor_bathroom/textures/homedecor_medicine_cabinet_mirror.png b/mods/homedecor_bathroom/textures/homedecor_medicine_cabinet_mirror.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_medicine_cabinet_mirror.png rename to mods/homedecor_bathroom/textures/homedecor_medicine_cabinet_mirror.png diff --git a/homedecor_bathroom/textures/homedecor_shower_head.png b/mods/homedecor_bathroom/textures/homedecor_shower_head.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_shower_head.png rename to mods/homedecor_bathroom/textures/homedecor_shower_head.png diff --git a/homedecor_bathroom/textures/homedecor_shower_head_inv.png b/mods/homedecor_bathroom/textures/homedecor_shower_head_inv.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_shower_head_inv.png rename to mods/homedecor_bathroom/textures/homedecor_shower_head_inv.png diff --git a/homedecor_bathroom/textures/homedecor_toilet_paper_inv.png b/mods/homedecor_bathroom/textures/homedecor_toilet_paper_inv.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_toilet_paper_inv.png rename to mods/homedecor_bathroom/textures/homedecor_toilet_paper_inv.png diff --git a/homedecor_bathroom/textures/homedecor_towel_rod_inv.png b/mods/homedecor_bathroom/textures/homedecor_towel_rod_inv.png similarity index 100% rename from homedecor_bathroom/textures/homedecor_towel_rod_inv.png rename to mods/homedecor_bathroom/textures/homedecor_towel_rod_inv.png diff --git a/homedecor_bedroom/.luacheckrc b/mods/homedecor_bedroom/.luacheckrc similarity index 100% rename from homedecor_bedroom/.luacheckrc rename to mods/homedecor_bedroom/.luacheckrc diff --git a/homedecor_bedroom/init.lua b/mods/homedecor_bedroom/init.lua similarity index 100% rename from homedecor_bedroom/init.lua rename to mods/homedecor_bedroom/init.lua diff --git a/homedecor_bedroom/locale/homedecor_bedroom.de.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.de.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.de.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.de.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.es.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.es.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.es.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.es.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.fr.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.fr.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.fr.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.fr.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.it.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.it.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.it.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.it.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.ms.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.ms.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.ms.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.ms.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.pt.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.pt.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.pt.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.pt.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.pt_BR.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.pt_BR.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.pt_BR.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.pt_BR.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.ru.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.ru.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.ru.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.ru.tr diff --git a/homedecor_bedroom/locale/homedecor_bedroom.zh_CN.tr b/mods/homedecor_bedroom/locale/homedecor_bedroom.zh_CN.tr similarity index 100% rename from homedecor_bedroom/locale/homedecor_bedroom.zh_CN.tr rename to mods/homedecor_bedroom/locale/homedecor_bedroom.zh_CN.tr diff --git a/homedecor_bedroom/locale/template.txt b/mods/homedecor_bedroom/locale/template.txt similarity index 100% rename from homedecor_bedroom/locale/template.txt rename to mods/homedecor_bedroom/locale/template.txt diff --git a/homedecor_bedroom/mod.conf b/mods/homedecor_bedroom/mod.conf similarity index 100% rename from homedecor_bedroom/mod.conf rename to mods/homedecor_bedroom/mod.conf diff --git a/homedecor_bedroom/models/homedecor_bed_extended.obj b/mods/homedecor_bedroom/models/homedecor_bed_extended.obj similarity index 100% rename from homedecor_bedroom/models/homedecor_bed_extended.obj rename to mods/homedecor_bedroom/models/homedecor_bed_extended.obj diff --git a/homedecor_bedroom/models/homedecor_bed_kingsize.obj b/mods/homedecor_bedroom/models/homedecor_bed_kingsize.obj similarity index 100% rename from homedecor_bedroom/models/homedecor_bed_kingsize.obj rename to mods/homedecor_bedroom/models/homedecor_bed_kingsize.obj diff --git a/homedecor_bedroom/models/homedecor_bed_regular.obj b/mods/homedecor_bedroom/models/homedecor_bed_regular.obj similarity index 100% rename from homedecor_bedroom/models/homedecor_bed_regular.obj rename to mods/homedecor_bedroom/models/homedecor_bed_regular.obj diff --git a/homedecor_bedroom/textures/homedecor_bed_bottom.png b/mods/homedecor_bedroom/textures/homedecor_bed_bottom.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_bed_bottom.png rename to mods/homedecor_bedroom/textures/homedecor_bed_bottom.png diff --git a/homedecor_bedroom/textures/homedecor_bed_frame.png b/mods/homedecor_bedroom/textures/homedecor_bed_frame.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_bed_frame.png rename to mods/homedecor_bedroom/textures/homedecor_bed_frame.png diff --git a/homedecor_bedroom/textures/homedecor_bed_inv.png b/mods/homedecor_bedroom/textures/homedecor_bed_inv.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_bed_inv.png rename to mods/homedecor_bedroom/textures/homedecor_bed_inv.png diff --git a/homedecor_bedroom/textures/homedecor_bed_kingsize_inv.png b/mods/homedecor_bedroom/textures/homedecor_bed_kingsize_inv.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_bed_kingsize_inv.png rename to mods/homedecor_bedroom/textures/homedecor_bed_kingsize_inv.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_mahogany_1_drawer_front.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_1_drawer_front.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_mahogany_1_drawer_front.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_1_drawer_front.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_mahogany_2_drawer_front.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_2_drawer_front.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_mahogany_2_drawer_front.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_2_drawer_front.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_mahogany_back.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_back.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_mahogany_back.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_back.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_mahogany_lr.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_lr.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_mahogany_lr.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_lr.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_mahogany_tb.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_tb.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_mahogany_tb.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_mahogany_tb.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_oak_1_drawer_front.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_oak_1_drawer_front.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_oak_1_drawer_front.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_oak_1_drawer_front.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_oak_2_drawer_front.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_oak_2_drawer_front.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_oak_2_drawer_front.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_oak_2_drawer_front.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_oak_back.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_oak_back.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_oak_back.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_oak_back.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_oak_lr.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_oak_lr.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_oak_lr.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_oak_lr.png diff --git a/homedecor_bedroom/textures/homedecor_nightstand_oak_tb.png b/mods/homedecor_bedroom/textures/homedecor_nightstand_oak_tb.png similarity index 100% rename from homedecor_bedroom/textures/homedecor_nightstand_oak_tb.png rename to mods/homedecor_bedroom/textures/homedecor_nightstand_oak_tb.png diff --git a/homedecor_books/.luacheckrc b/mods/homedecor_books/.luacheckrc similarity index 100% rename from homedecor_books/.luacheckrc rename to mods/homedecor_books/.luacheckrc diff --git a/homedecor_books/init.lua b/mods/homedecor_books/init.lua similarity index 100% rename from homedecor_books/init.lua rename to mods/homedecor_books/init.lua diff --git a/homedecor_books/locale/homedecor_books.de.tr b/mods/homedecor_books/locale/homedecor_books.de.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.de.tr rename to mods/homedecor_books/locale/homedecor_books.de.tr diff --git a/homedecor_books/locale/homedecor_books.es.tr b/mods/homedecor_books/locale/homedecor_books.es.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.es.tr rename to mods/homedecor_books/locale/homedecor_books.es.tr diff --git a/homedecor_books/locale/homedecor_books.fr.tr b/mods/homedecor_books/locale/homedecor_books.fr.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.fr.tr rename to mods/homedecor_books/locale/homedecor_books.fr.tr diff --git a/homedecor_books/locale/homedecor_books.it.tr b/mods/homedecor_books/locale/homedecor_books.it.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.it.tr rename to mods/homedecor_books/locale/homedecor_books.it.tr diff --git a/homedecor_books/locale/homedecor_books.ms.tr b/mods/homedecor_books/locale/homedecor_books.ms.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.ms.tr rename to mods/homedecor_books/locale/homedecor_books.ms.tr diff --git a/homedecor_books/locale/homedecor_books.pt.tr b/mods/homedecor_books/locale/homedecor_books.pt.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.pt.tr rename to mods/homedecor_books/locale/homedecor_books.pt.tr diff --git a/homedecor_books/locale/homedecor_books.pt_BR.tr b/mods/homedecor_books/locale/homedecor_books.pt_BR.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.pt_BR.tr rename to mods/homedecor_books/locale/homedecor_books.pt_BR.tr diff --git a/homedecor_books/locale/homedecor_books.ru.tr b/mods/homedecor_books/locale/homedecor_books.ru.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.ru.tr rename to mods/homedecor_books/locale/homedecor_books.ru.tr diff --git a/homedecor_books/locale/homedecor_books.zh_CN.tr b/mods/homedecor_books/locale/homedecor_books.zh_CN.tr similarity index 100% rename from homedecor_books/locale/homedecor_books.zh_CN.tr rename to mods/homedecor_books/locale/homedecor_books.zh_CN.tr diff --git a/homedecor_books/locale/template.txt b/mods/homedecor_books/locale/template.txt similarity index 100% rename from homedecor_books/locale/template.txt rename to mods/homedecor_books/locale/template.txt diff --git a/homedecor_books/mod.conf b/mods/homedecor_books/mod.conf similarity index 100% rename from homedecor_books/mod.conf rename to mods/homedecor_books/mod.conf diff --git a/homedecor_books/models/homedecor_book.obj b/mods/homedecor_books/models/homedecor_book.obj similarity index 100% rename from homedecor_books/models/homedecor_book.obj rename to mods/homedecor_books/models/homedecor_book.obj diff --git a/homedecor_books/models/homedecor_book_open.obj b/mods/homedecor_books/models/homedecor_book_open.obj similarity index 100% rename from homedecor_books/models/homedecor_book_open.obj rename to mods/homedecor_books/models/homedecor_book_open.obj diff --git a/homedecor_books/textures/homedecor_book_cover.png b/mods/homedecor_books/textures/homedecor_book_cover.png similarity index 100% rename from homedecor_books/textures/homedecor_book_cover.png rename to mods/homedecor_books/textures/homedecor_book_cover.png diff --git a/homedecor_books/textures/homedecor_book_cover_trim.png b/mods/homedecor_books/textures/homedecor_book_cover_trim.png similarity index 100% rename from homedecor_books/textures/homedecor_book_cover_trim.png rename to mods/homedecor_books/textures/homedecor_book_cover_trim.png diff --git a/homedecor_books/textures/homedecor_book_edges.png b/mods/homedecor_books/textures/homedecor_book_edges.png similarity index 100% rename from homedecor_books/textures/homedecor_book_edges.png rename to mods/homedecor_books/textures/homedecor_book_edges.png diff --git a/homedecor_books/textures/homedecor_book_inv.png b/mods/homedecor_books/textures/homedecor_book_inv.png similarity index 100% rename from homedecor_books/textures/homedecor_book_inv.png rename to mods/homedecor_books/textures/homedecor_book_inv.png diff --git a/homedecor_books/textures/homedecor_book_pages.png b/mods/homedecor_books/textures/homedecor_book_pages.png similarity index 100% rename from homedecor_books/textures/homedecor_book_pages.png rename to mods/homedecor_books/textures/homedecor_book_pages.png diff --git a/homedecor_books/textures/homedecor_book_trim_inv.png b/mods/homedecor_books/textures/homedecor_book_trim_inv.png similarity index 100% rename from homedecor_books/textures/homedecor_book_trim_inv.png rename to mods/homedecor_books/textures/homedecor_book_trim_inv.png diff --git a/homedecor_climate_control/.luacheckrc b/mods/homedecor_climate_control/.luacheckrc similarity index 100% rename from homedecor_climate_control/.luacheckrc rename to mods/homedecor_climate_control/.luacheckrc diff --git a/homedecor_climate_control/init.lua b/mods/homedecor_climate_control/init.lua similarity index 100% rename from homedecor_climate_control/init.lua rename to mods/homedecor_climate_control/init.lua diff --git a/homedecor_climate_control/locale/homedecor_climate_control.de.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.de.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.de.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.de.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.es.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.es.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.es.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.es.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.fr.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.fr.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.fr.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.fr.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.ms.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.ms.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.ms.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.ms.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.pt.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.pt.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.pt.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.pt.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.pt_BR.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.pt_BR.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.pt_BR.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.pt_BR.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.ru.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.ru.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.ru.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.ru.tr diff --git a/homedecor_climate_control/locale/homedecor_climate_control.zh_CN.tr b/mods/homedecor_climate_control/locale/homedecor_climate_control.zh_CN.tr similarity index 100% rename from homedecor_climate_control/locale/homedecor_climate_control.zh_CN.tr rename to mods/homedecor_climate_control/locale/homedecor_climate_control.zh_CN.tr diff --git a/homedecor_climate_control/locale/template.txt b/mods/homedecor_climate_control/locale/template.txt similarity index 100% rename from homedecor_climate_control/locale/template.txt rename to mods/homedecor_climate_control/locale/template.txt diff --git a/homedecor_climate_control/mod.conf b/mods/homedecor_climate_control/mod.conf similarity index 100% rename from homedecor_climate_control/mod.conf rename to mods/homedecor_climate_control/mod.conf diff --git a/homedecor_climate_control/models/homedecor_ac.obj b/mods/homedecor_climate_control/models/homedecor_ac.obj similarity index 100% rename from homedecor_climate_control/models/homedecor_ac.obj rename to mods/homedecor_climate_control/models/homedecor_ac.obj diff --git a/homedecor_climate_control/models/homedecor_desk_fan.b3d b/mods/homedecor_climate_control/models/homedecor_desk_fan.b3d similarity index 100% rename from homedecor_climate_control/models/homedecor_desk_fan.b3d rename to mods/homedecor_climate_control/models/homedecor_desk_fan.b3d diff --git a/homedecor_climate_control/models/homedecor_radiator.obj b/mods/homedecor_climate_control/models/homedecor_radiator.obj similarity index 100% rename from homedecor_climate_control/models/homedecor_radiator.obj rename to mods/homedecor_climate_control/models/homedecor_radiator.obj diff --git a/homedecor_climate_control/textures/homedecor_ac.png b/mods/homedecor_climate_control/textures/homedecor_ac.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_ac.png rename to mods/homedecor_climate_control/textures/homedecor_ac.png diff --git a/homedecor_climate_control/textures/homedecor_ceiling_fan_bottom.png b/mods/homedecor_climate_control/textures/homedecor_ceiling_fan_bottom.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_ceiling_fan_bottom.png rename to mods/homedecor_climate_control/textures/homedecor_ceiling_fan_bottom.png diff --git a/homedecor_climate_control/textures/homedecor_ceiling_fan_inv.png b/mods/homedecor_climate_control/textures/homedecor_ceiling_fan_inv.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_ceiling_fan_inv.png rename to mods/homedecor_climate_control/textures/homedecor_ceiling_fan_inv.png diff --git a/homedecor_climate_control/textures/homedecor_ceiling_fan_sides.png b/mods/homedecor_climate_control/textures/homedecor_ceiling_fan_sides.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_ceiling_fan_sides.png rename to mods/homedecor_climate_control/textures/homedecor_ceiling_fan_sides.png diff --git a/homedecor_climate_control/textures/homedecor_ceiling_fan_top.png b/mods/homedecor_climate_control/textures/homedecor_ceiling_fan_top.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_ceiling_fan_top.png rename to mods/homedecor_climate_control/textures/homedecor_ceiling_fan_top.png diff --git a/homedecor_climate_control/textures/homedecor_desk_fan_body.png b/mods/homedecor_climate_control/textures/homedecor_desk_fan_body.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_desk_fan_body.png rename to mods/homedecor_climate_control/textures/homedecor_desk_fan_body.png diff --git a/homedecor_climate_control/textures/homedecor_desk_fan_inv.png b/mods/homedecor_climate_control/textures/homedecor_desk_fan_inv.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_desk_fan_inv.png rename to mods/homedecor_climate_control/textures/homedecor_desk_fan_inv.png diff --git a/homedecor_climate_control/textures/homedecor_desk_fan_uv.png b/mods/homedecor_climate_control/textures/homedecor_desk_fan_uv.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_desk_fan_uv.png rename to mods/homedecor_climate_control/textures/homedecor_desk_fan_uv.png diff --git a/homedecor_climate_control/textures/homedecor_fan_blades.png b/mods/homedecor_climate_control/textures/homedecor_fan_blades.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_fan_blades.png rename to mods/homedecor_climate_control/textures/homedecor_fan_blades.png diff --git a/homedecor_climate_control/textures/homedecor_heater_back.png b/mods/homedecor_climate_control/textures/homedecor_heater_back.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_heater_back.png rename to mods/homedecor_climate_control/textures/homedecor_heater_back.png diff --git a/homedecor_climate_control/textures/homedecor_heater_front.png b/mods/homedecor_climate_control/textures/homedecor_heater_front.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_heater_front.png rename to mods/homedecor_climate_control/textures/homedecor_heater_front.png diff --git a/homedecor_climate_control/textures/homedecor_heater_inv.png b/mods/homedecor_climate_control/textures/homedecor_heater_inv.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_heater_inv.png rename to mods/homedecor_climate_control/textures/homedecor_heater_inv.png diff --git a/homedecor_climate_control/textures/homedecor_heater_sides.png b/mods/homedecor_climate_control/textures/homedecor_heater_sides.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_heater_sides.png rename to mods/homedecor_climate_control/textures/homedecor_heater_sides.png diff --git a/homedecor_climate_control/textures/homedecor_heater_tb.png b/mods/homedecor_climate_control/textures/homedecor_heater_tb.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_heater_tb.png rename to mods/homedecor_climate_control/textures/homedecor_heater_tb.png diff --git a/homedecor_climate_control/textures/homedecor_radiator_controls.png b/mods/homedecor_climate_control/textures/homedecor_radiator_controls.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_radiator_controls.png rename to mods/homedecor_climate_control/textures/homedecor_radiator_controls.png diff --git a/homedecor_climate_control/textures/homedecor_radiator_inv.png b/mods/homedecor_climate_control/textures/homedecor_radiator_inv.png similarity index 100% rename from homedecor_climate_control/textures/homedecor_radiator_inv.png rename to mods/homedecor_climate_control/textures/homedecor_radiator_inv.png diff --git a/homedecor_clocks/.luacheckrc b/mods/homedecor_clocks/.luacheckrc similarity index 100% rename from homedecor_clocks/.luacheckrc rename to mods/homedecor_clocks/.luacheckrc diff --git a/homedecor_clocks/init.lua b/mods/homedecor_clocks/init.lua similarity index 100% rename from homedecor_clocks/init.lua rename to mods/homedecor_clocks/init.lua diff --git a/homedecor_clocks/locale/homedecor_clocks.de.tr b/mods/homedecor_clocks/locale/homedecor_clocks.de.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.de.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.de.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.es.tr b/mods/homedecor_clocks/locale/homedecor_clocks.es.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.es.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.es.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.fr.tr b/mods/homedecor_clocks/locale/homedecor_clocks.fr.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.fr.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.fr.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.ms.tr b/mods/homedecor_clocks/locale/homedecor_clocks.ms.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.ms.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.ms.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.pt.tr b/mods/homedecor_clocks/locale/homedecor_clocks.pt.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.pt.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.pt.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.pt_BR.tr b/mods/homedecor_clocks/locale/homedecor_clocks.pt_BR.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.pt_BR.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.pt_BR.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.ru.tr b/mods/homedecor_clocks/locale/homedecor_clocks.ru.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.ru.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.ru.tr diff --git a/homedecor_clocks/locale/homedecor_clocks.zh_CN.tr b/mods/homedecor_clocks/locale/homedecor_clocks.zh_CN.tr similarity index 100% rename from homedecor_clocks/locale/homedecor_clocks.zh_CN.tr rename to mods/homedecor_clocks/locale/homedecor_clocks.zh_CN.tr diff --git a/homedecor_clocks/locale/template.txt b/mods/homedecor_clocks/locale/template.txt similarity index 100% rename from homedecor_clocks/locale/template.txt rename to mods/homedecor_clocks/locale/template.txt diff --git a/homedecor_clocks/mod.conf b/mods/homedecor_clocks/mod.conf similarity index 100% rename from homedecor_clocks/mod.conf rename to mods/homedecor_clocks/mod.conf diff --git a/homedecor_clocks/models/homedecor_analog_clock.obj b/mods/homedecor_clocks/models/homedecor_analog_clock.obj similarity index 100% rename from homedecor_clocks/models/homedecor_analog_clock.obj rename to mods/homedecor_clocks/models/homedecor_analog_clock.obj diff --git a/homedecor_clocks/models/homedecor_grandfather_clock.obj b/mods/homedecor_clocks/models/homedecor_grandfather_clock.obj similarity index 100% rename from homedecor_clocks/models/homedecor_grandfather_clock.obj rename to mods/homedecor_clocks/models/homedecor_grandfather_clock.obj diff --git a/homedecor_clocks/textures/homedecor_alarm_clock_back.png b/mods/homedecor_clocks/textures/homedecor_alarm_clock_back.png similarity index 100% rename from homedecor_clocks/textures/homedecor_alarm_clock_back.png rename to mods/homedecor_clocks/textures/homedecor_alarm_clock_back.png diff --git a/homedecor_clocks/textures/homedecor_alarm_clock_bottom.png b/mods/homedecor_clocks/textures/homedecor_alarm_clock_bottom.png similarity index 100% rename from homedecor_clocks/textures/homedecor_alarm_clock_bottom.png rename to mods/homedecor_clocks/textures/homedecor_alarm_clock_bottom.png diff --git a/homedecor_clocks/textures/homedecor_alarm_clock_front.png b/mods/homedecor_clocks/textures/homedecor_alarm_clock_front.png similarity index 100% rename from homedecor_clocks/textures/homedecor_alarm_clock_front.png rename to mods/homedecor_clocks/textures/homedecor_alarm_clock_front.png diff --git a/homedecor_clocks/textures/homedecor_alarm_clock_inv.png b/mods/homedecor_clocks/textures/homedecor_alarm_clock_inv.png similarity index 100% rename from homedecor_clocks/textures/homedecor_alarm_clock_inv.png rename to mods/homedecor_clocks/textures/homedecor_alarm_clock_inv.png diff --git a/homedecor_clocks/textures/homedecor_alarm_clock_sides.png b/mods/homedecor_clocks/textures/homedecor_alarm_clock_sides.png similarity index 100% rename from homedecor_clocks/textures/homedecor_alarm_clock_sides.png rename to mods/homedecor_clocks/textures/homedecor_alarm_clock_sides.png diff --git a/homedecor_clocks/textures/homedecor_alarm_clock_top.png b/mods/homedecor_clocks/textures/homedecor_alarm_clock_top.png similarity index 100% rename from homedecor_clocks/textures/homedecor_alarm_clock_top.png rename to mods/homedecor_clocks/textures/homedecor_alarm_clock_top.png diff --git a/homedecor_clocks/textures/homedecor_analog_clock_back.png b/mods/homedecor_clocks/textures/homedecor_analog_clock_back.png similarity index 100% rename from homedecor_clocks/textures/homedecor_analog_clock_back.png rename to mods/homedecor_clocks/textures/homedecor_analog_clock_back.png diff --git a/homedecor_clocks/textures/homedecor_analog_clock_face.png b/mods/homedecor_clocks/textures/homedecor_analog_clock_face.png similarity index 100% rename from homedecor_clocks/textures/homedecor_analog_clock_face.png rename to mods/homedecor_clocks/textures/homedecor_analog_clock_face.png diff --git a/homedecor_clocks/textures/homedecor_analog_clock_plastic_inv.png b/mods/homedecor_clocks/textures/homedecor_analog_clock_plastic_inv.png similarity index 100% rename from homedecor_clocks/textures/homedecor_analog_clock_plastic_inv.png rename to mods/homedecor_clocks/textures/homedecor_analog_clock_plastic_inv.png diff --git a/homedecor_clocks/textures/homedecor_analog_clock_wood_inv.png b/mods/homedecor_clocks/textures/homedecor_analog_clock_wood_inv.png similarity index 100% rename from homedecor_clocks/textures/homedecor_analog_clock_wood_inv.png rename to mods/homedecor_clocks/textures/homedecor_analog_clock_wood_inv.png diff --git a/homedecor_clocks/textures/homedecor_digital_clock_back.png b/mods/homedecor_clocks/textures/homedecor_digital_clock_back.png similarity index 100% rename from homedecor_clocks/textures/homedecor_digital_clock_back.png rename to mods/homedecor_clocks/textures/homedecor_digital_clock_back.png diff --git a/homedecor_clocks/textures/homedecor_digital_clock_edges.png b/mods/homedecor_clocks/textures/homedecor_digital_clock_edges.png similarity index 100% rename from homedecor_clocks/textures/homedecor_digital_clock_edges.png rename to mods/homedecor_clocks/textures/homedecor_digital_clock_edges.png diff --git a/homedecor_clocks/textures/homedecor_digital_clock_front.png b/mods/homedecor_clocks/textures/homedecor_digital_clock_front.png similarity index 100% rename from homedecor_clocks/textures/homedecor_digital_clock_front.png rename to mods/homedecor_clocks/textures/homedecor_digital_clock_front.png diff --git a/homedecor_clocks/textures/homedecor_digital_clock_inv.png b/mods/homedecor_clocks/textures/homedecor_digital_clock_inv.png similarity index 100% rename from homedecor_clocks/textures/homedecor_digital_clock_inv.png rename to mods/homedecor_clocks/textures/homedecor_digital_clock_inv.png diff --git a/homedecor_clocks/textures/homedecor_grandfather_clock_face.png b/mods/homedecor_clocks/textures/homedecor_grandfather_clock_face.png similarity index 100% rename from homedecor_clocks/textures/homedecor_grandfather_clock_face.png rename to mods/homedecor_clocks/textures/homedecor_grandfather_clock_face.png diff --git a/homedecor_clocks/textures/homedecor_grandfather_clock_face_edge.png b/mods/homedecor_clocks/textures/homedecor_grandfather_clock_face_edge.png similarity index 100% rename from homedecor_clocks/textures/homedecor_grandfather_clock_face_edge.png rename to mods/homedecor_clocks/textures/homedecor_grandfather_clock_face_edge.png diff --git a/homedecor_clocks/textures/homedecor_grandfather_clock_inv.png b/mods/homedecor_clocks/textures/homedecor_grandfather_clock_inv.png similarity index 100% rename from homedecor_clocks/textures/homedecor_grandfather_clock_inv.png rename to mods/homedecor_clocks/textures/homedecor_grandfather_clock_inv.png diff --git a/homedecor_cobweb/.luacheckrc b/mods/homedecor_cobweb/.luacheckrc similarity index 100% rename from homedecor_cobweb/.luacheckrc rename to mods/homedecor_cobweb/.luacheckrc diff --git a/homedecor_cobweb/init.lua b/mods/homedecor_cobweb/init.lua similarity index 100% rename from homedecor_cobweb/init.lua rename to mods/homedecor_cobweb/init.lua diff --git a/homedecor_cobweb/locale/homedecor_cobweb.de.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.de.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.de.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.de.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.es.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.es.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.es.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.es.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.fr.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.fr.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.fr.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.fr.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.ms.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.ms.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.ms.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.ms.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.pt.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.pt.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.pt.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.pt.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.pt_BR.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.pt_BR.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.pt_BR.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.pt_BR.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.ru.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.ru.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.ru.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.ru.tr diff --git a/homedecor_cobweb/locale/homedecor_cobweb.zh_CN.tr b/mods/homedecor_cobweb/locale/homedecor_cobweb.zh_CN.tr similarity index 100% rename from homedecor_cobweb/locale/homedecor_cobweb.zh_CN.tr rename to mods/homedecor_cobweb/locale/homedecor_cobweb.zh_CN.tr diff --git a/homedecor_cobweb/locale/template.txt b/mods/homedecor_cobweb/locale/template.txt similarity index 100% rename from homedecor_cobweb/locale/template.txt rename to mods/homedecor_cobweb/locale/template.txt diff --git a/homedecor_cobweb/mod.conf b/mods/homedecor_cobweb/mod.conf similarity index 100% rename from homedecor_cobweb/mod.conf rename to mods/homedecor_cobweb/mod.conf diff --git a/homedecor_cobweb/textures/homedecor_cobweb.png b/mods/homedecor_cobweb/textures/homedecor_cobweb.png similarity index 100% rename from homedecor_cobweb/textures/homedecor_cobweb.png rename to mods/homedecor_cobweb/textures/homedecor_cobweb.png diff --git a/homedecor_cobweb/textures/homedecor_cobweb_plantlike.png b/mods/homedecor_cobweb/textures/homedecor_cobweb_plantlike.png similarity index 100% rename from homedecor_cobweb/textures/homedecor_cobweb_plantlike.png rename to mods/homedecor_cobweb/textures/homedecor_cobweb_plantlike.png diff --git a/homedecor_cobweb/textures/homedecor_cobweb_torchlike.png b/mods/homedecor_cobweb/textures/homedecor_cobweb_torchlike.png similarity index 100% rename from homedecor_cobweb/textures/homedecor_cobweb_torchlike.png rename to mods/homedecor_cobweb/textures/homedecor_cobweb_torchlike.png diff --git a/homedecor_common/.luacheckrc b/mods/homedecor_common/.luacheckrc similarity index 100% rename from homedecor_common/.luacheckrc rename to mods/homedecor_common/.luacheckrc diff --git a/homedecor_common/crafts.lua b/mods/homedecor_common/crafts.lua similarity index 100% rename from homedecor_common/crafts.lua rename to mods/homedecor_common/crafts.lua diff --git a/homedecor_common/expansion.lua b/mods/homedecor_common/expansion.lua similarity index 100% rename from homedecor_common/expansion.lua rename to mods/homedecor_common/expansion.lua diff --git a/homedecor_common/furnaces.lua b/mods/homedecor_common/furnaces.lua similarity index 100% rename from homedecor_common/furnaces.lua rename to mods/homedecor_common/furnaces.lua diff --git a/homedecor_common/init.lua b/mods/homedecor_common/init.lua similarity index 100% rename from homedecor_common/init.lua rename to mods/homedecor_common/init.lua diff --git a/homedecor_common/inventory.lua b/mods/homedecor_common/inventory.lua similarity index 100% rename from homedecor_common/inventory.lua rename to mods/homedecor_common/inventory.lua diff --git a/homedecor_common/locale/homedecor_common.de.tr b/mods/homedecor_common/locale/homedecor_common.de.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.de.tr rename to mods/homedecor_common/locale/homedecor_common.de.tr diff --git a/homedecor_common/locale/homedecor_common.es.tr b/mods/homedecor_common/locale/homedecor_common.es.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.es.tr rename to mods/homedecor_common/locale/homedecor_common.es.tr diff --git a/homedecor_common/locale/homedecor_common.fr.tr b/mods/homedecor_common/locale/homedecor_common.fr.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.fr.tr rename to mods/homedecor_common/locale/homedecor_common.fr.tr diff --git a/homedecor_common/locale/homedecor_common.it.tr b/mods/homedecor_common/locale/homedecor_common.it.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.it.tr rename to mods/homedecor_common/locale/homedecor_common.it.tr diff --git a/homedecor_common/locale/homedecor_common.ms.tr b/mods/homedecor_common/locale/homedecor_common.ms.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.ms.tr rename to mods/homedecor_common/locale/homedecor_common.ms.tr diff --git a/homedecor_common/locale/homedecor_common.pt.tr b/mods/homedecor_common/locale/homedecor_common.pt.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.pt.tr rename to mods/homedecor_common/locale/homedecor_common.pt.tr diff --git a/homedecor_common/locale/homedecor_common.pt_BR.tr b/mods/homedecor_common/locale/homedecor_common.pt_BR.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.pt_BR.tr rename to mods/homedecor_common/locale/homedecor_common.pt_BR.tr diff --git a/homedecor_common/locale/homedecor_common.ru.tr b/mods/homedecor_common/locale/homedecor_common.ru.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.ru.tr rename to mods/homedecor_common/locale/homedecor_common.ru.tr diff --git a/homedecor_common/locale/homedecor_common.zh_CN.tr b/mods/homedecor_common/locale/homedecor_common.zh_CN.tr similarity index 100% rename from homedecor_common/locale/homedecor_common.zh_CN.tr rename to mods/homedecor_common/locale/homedecor_common.zh_CN.tr diff --git a/homedecor_common/locale/template.txt b/mods/homedecor_common/locale/template.txt similarity index 100% rename from homedecor_common/locale/template.txt rename to mods/homedecor_common/locale/template.txt diff --git a/homedecor_common/mod.conf b/mods/homedecor_common/mod.conf similarity index 100% rename from homedecor_common/mod.conf rename to mods/homedecor_common/mod.conf diff --git a/homedecor_common/models/homedecor_cube.obj b/mods/homedecor_common/models/homedecor_cube.obj similarity index 100% rename from homedecor_common/models/homedecor_cube.obj rename to mods/homedecor_common/models/homedecor_cube.obj diff --git a/homedecor_common/models/homedecor_slope.obj b/mods/homedecor_common/models/homedecor_slope.obj similarity index 100% rename from homedecor_common/models/homedecor_slope.obj rename to mods/homedecor_common/models/homedecor_slope.obj diff --git a/homedecor_common/models/homedecor_slope_inner_corner.obj b/mods/homedecor_common/models/homedecor_slope_inner_corner.obj similarity index 100% rename from homedecor_common/models/homedecor_slope_inner_corner.obj rename to mods/homedecor_common/models/homedecor_slope_inner_corner.obj diff --git a/homedecor_common/models/homedecor_slope_outer_corner.obj b/mods/homedecor_common/models/homedecor_slope_outer_corner.obj similarity index 100% rename from homedecor_common/models/homedecor_slope_outer_corner.obj rename to mods/homedecor_common/models/homedecor_slope_outer_corner.obj diff --git a/homedecor_common/nodeboxes.lua b/mods/homedecor_common/nodeboxes.lua similarity index 100% rename from homedecor_common/nodeboxes.lua rename to mods/homedecor_common/nodeboxes.lua diff --git a/homedecor_common/registration.lua b/mods/homedecor_common/registration.lua similarity index 100% rename from homedecor_common/registration.lua rename to mods/homedecor_common/registration.lua diff --git a/homedecor_common/sit.lua b/mods/homedecor_common/sit.lua similarity index 100% rename from homedecor_common/sit.lua rename to mods/homedecor_common/sit.lua diff --git a/homedecor_common/sounds/homedecor_faucet.ogg b/mods/homedecor_common/sounds/homedecor_faucet.ogg similarity index 100% rename from homedecor_common/sounds/homedecor_faucet.ogg rename to mods/homedecor_common/sounds/homedecor_faucet.ogg diff --git a/homedecor_common/textures/homedecor_blanktile.png b/mods/homedecor_common/textures/homedecor_blanktile.png similarity index 100% rename from homedecor_common/textures/homedecor_blanktile.png rename to mods/homedecor_common/textures/homedecor_blanktile.png diff --git a/homedecor_common/textures/homedecor_drawer_small.png b/mods/homedecor_common/textures/homedecor_drawer_small.png similarity index 100% rename from homedecor_common/textures/homedecor_drawer_small.png rename to mods/homedecor_common/textures/homedecor_drawer_small.png diff --git a/homedecor_common/textures/homedecor_generic_metal.png b/mods/homedecor_common/textures/homedecor_generic_metal.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal.png rename to mods/homedecor_common/textures/homedecor_generic_metal.png diff --git a/homedecor_common/textures/homedecor_generic_metal_brass.png b/mods/homedecor_common/textures/homedecor_generic_metal_brass.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal_brass.png rename to mods/homedecor_common/textures/homedecor_generic_metal_brass.png diff --git a/homedecor_common/textures/homedecor_generic_metal_bright.png b/mods/homedecor_common/textures/homedecor_generic_metal_bright.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal_bright.png rename to mods/homedecor_common/textures/homedecor_generic_metal_bright.png diff --git a/homedecor_common/textures/homedecor_generic_metal_gold.png b/mods/homedecor_common/textures/homedecor_generic_metal_gold.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal_gold.png rename to mods/homedecor_common/textures/homedecor_generic_metal_gold.png diff --git a/homedecor_common/textures/homedecor_generic_metal_gold2.png b/mods/homedecor_common/textures/homedecor_generic_metal_gold2.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal_gold2.png rename to mods/homedecor_common/textures/homedecor_generic_metal_gold2.png diff --git a/homedecor_common/textures/homedecor_generic_metal_lines_overlay.png b/mods/homedecor_common/textures/homedecor_generic_metal_lines_overlay.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal_lines_overlay.png rename to mods/homedecor_common/textures/homedecor_generic_metal_lines_overlay.png diff --git a/homedecor_common/textures/homedecor_generic_metal_wrought_iron.png b/mods/homedecor_common/textures/homedecor_generic_metal_wrought_iron.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_metal_wrought_iron.png rename to mods/homedecor_common/textures/homedecor_generic_metal_wrought_iron.png diff --git a/homedecor_common/textures/homedecor_generic_plastic.png b/mods/homedecor_common/textures/homedecor_generic_plastic.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_plastic.png rename to mods/homedecor_common/textures/homedecor_generic_plastic.png diff --git a/homedecor_common/textures/homedecor_generic_quilted_paper.png b/mods/homedecor_common/textures/homedecor_generic_quilted_paper.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_quilted_paper.png rename to mods/homedecor_common/textures/homedecor_generic_quilted_paper.png diff --git a/homedecor_common/textures/homedecor_generic_terrycloth.png b/mods/homedecor_common/textures/homedecor_generic_terrycloth.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_terrycloth.png rename to mods/homedecor_common/textures/homedecor_generic_terrycloth.png diff --git a/homedecor_common/textures/homedecor_generic_wood_luxury.png b/mods/homedecor_common/textures/homedecor_generic_wood_luxury.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_wood_luxury.png rename to mods/homedecor_common/textures/homedecor_generic_wood_luxury.png diff --git a/homedecor_common/textures/homedecor_generic_wood_old.png b/mods/homedecor_common/textures/homedecor_generic_wood_old.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_wood_old.png rename to mods/homedecor_common/textures/homedecor_generic_wood_old.png diff --git a/homedecor_common/textures/homedecor_generic_wood_plain.png b/mods/homedecor_common/textures/homedecor_generic_wood_plain.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_wood_plain.png rename to mods/homedecor_common/textures/homedecor_generic_wood_plain.png diff --git a/homedecor_common/textures/homedecor_generic_wood_red.png b/mods/homedecor_common/textures/homedecor_generic_wood_red.png similarity index 100% rename from homedecor_common/textures/homedecor_generic_wood_red.png rename to mods/homedecor_common/textures/homedecor_generic_wood_red.png diff --git a/homedecor_common/textures/homedecor_japanese_paper.png b/mods/homedecor_common/textures/homedecor_japanese_paper.png similarity index 100% rename from homedecor_common/textures/homedecor_japanese_paper.png rename to mods/homedecor_common/textures/homedecor_japanese_paper.png diff --git a/homedecor_common/textures/homedecor_polished_copper.png b/mods/homedecor_common/textures/homedecor_polished_copper.png similarity index 100% rename from homedecor_common/textures/homedecor_polished_copper.png rename to mods/homedecor_common/textures/homedecor_polished_copper.png diff --git a/homedecor_common/textures/homedecor_roof_tile_terracotta.png b/mods/homedecor_common/textures/homedecor_roof_tile_terracotta.png similarity index 100% rename from homedecor_common/textures/homedecor_roof_tile_terracotta.png rename to mods/homedecor_common/textures/homedecor_roof_tile_terracotta.png diff --git a/homedecor_common/textures/homedecor_shingles_asphalt.png b/mods/homedecor_common/textures/homedecor_shingles_asphalt.png similarity index 100% rename from homedecor_common/textures/homedecor_shingles_asphalt.png rename to mods/homedecor_common/textures/homedecor_shingles_asphalt.png diff --git a/homedecor_common/textures/homedecor_shingles_terracotta.png b/mods/homedecor_common/textures/homedecor_shingles_terracotta.png similarity index 100% rename from homedecor_common/textures/homedecor_shingles_terracotta.png rename to mods/homedecor_common/textures/homedecor_shingles_terracotta.png diff --git a/homedecor_common/textures/homedecor_shingles_terracotta_inv.png b/mods/homedecor_common/textures/homedecor_shingles_terracotta_inv.png similarity index 100% rename from homedecor_common/textures/homedecor_shingles_terracotta_inv.png rename to mods/homedecor_common/textures/homedecor_shingles_terracotta_inv.png diff --git a/homedecor_common/textures/homedecor_shingles_wood.png b/mods/homedecor_common/textures/homedecor_shingles_wood.png similarity index 100% rename from homedecor_common/textures/homedecor_shingles_wood.png rename to mods/homedecor_common/textures/homedecor_shingles_wood.png diff --git a/homedecor_common/textures/homedecor_water_particle.png b/mods/homedecor_common/textures/homedecor_water_particle.png similarity index 100% rename from homedecor_common/textures/homedecor_water_particle.png rename to mods/homedecor_common/textures/homedecor_water_particle.png diff --git a/homedecor_common/water_particles.lua b/mods/homedecor_common/water_particles.lua similarity index 100% rename from homedecor_common/water_particles.lua rename to mods/homedecor_common/water_particles.lua diff --git a/homedecor_doors_and_gates/.luacheckrc b/mods/homedecor_doors_and_gates/.luacheckrc similarity index 100% rename from homedecor_doors_and_gates/.luacheckrc rename to mods/homedecor_doors_and_gates/.luacheckrc diff --git a/homedecor_doors_and_gates/init.lua b/mods/homedecor_doors_and_gates/init.lua similarity index 100% rename from homedecor_doors_and_gates/init.lua rename to mods/homedecor_doors_and_gates/init.lua diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.de.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.de.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.de.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.de.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.es.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.es.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.es.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.es.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.fr.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.fr.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.fr.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.fr.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.it.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.it.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.it.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.it.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ms.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ms.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ms.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ms.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt_BR.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt_BR.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt_BR.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.pt_BR.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ru.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ru.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ru.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.ru.tr diff --git a/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.zh_CN.tr b/mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.zh_CN.tr similarity index 100% rename from homedecor_doors_and_gates/locale/homedecor_doors_and_gates.zh_CN.tr rename to mods/homedecor_doors_and_gates/locale/homedecor_doors_and_gates.zh_CN.tr diff --git a/homedecor_doors_and_gates/locale/template.txt b/mods/homedecor_doors_and_gates/locale/template.txt similarity index 100% rename from homedecor_doors_and_gates/locale/template.txt rename to mods/homedecor_doors_and_gates/locale/template.txt diff --git a/homedecor_doors_and_gates/mod.conf b/mods/homedecor_doors_and_gates/mod.conf similarity index 100% rename from homedecor_doors_and_gates/mod.conf rename to mods/homedecor_doors_and_gates/mod.conf diff --git a/homedecor_doors_and_gates/models/homedecor_door_japanese_closed.obj b/mods/homedecor_doors_and_gates/models/homedecor_door_japanese_closed.obj similarity index 100% rename from homedecor_doors_and_gates/models/homedecor_door_japanese_closed.obj rename to mods/homedecor_doors_and_gates/models/homedecor_door_japanese_closed.obj diff --git a/homedecor_doors_and_gates/models/homedecor_door_japanese_open.obj b/mods/homedecor_doors_and_gates/models/homedecor_door_japanese_open.obj similarity index 100% rename from homedecor_doors_and_gates/models/homedecor_door_japanese_open.obj rename to mods/homedecor_doors_and_gates/models/homedecor_door_japanese_open.obj diff --git a/homedecor_doors_and_gates/sounds/homedecor_book_close.ogg b/mods/homedecor_doors_and_gates/sounds/homedecor_book_close.ogg similarity index 100% rename from homedecor_doors_and_gates/sounds/homedecor_book_close.ogg rename to mods/homedecor_doors_and_gates/sounds/homedecor_book_close.ogg diff --git a/homedecor_doors_and_gates/sounds/homedecor_door_close.ogg b/mods/homedecor_doors_and_gates/sounds/homedecor_door_close.ogg similarity index 100% rename from homedecor_doors_and_gates/sounds/homedecor_door_close.ogg rename to mods/homedecor_doors_and_gates/sounds/homedecor_door_close.ogg diff --git a/homedecor_doors_and_gates/sounds/homedecor_door_open.ogg b/mods/homedecor_doors_and_gates/sounds/homedecor_door_open.ogg similarity index 100% rename from homedecor_doors_and_gates/sounds/homedecor_door_open.ogg rename to mods/homedecor_doors_and_gates/sounds/homedecor_door_open.ogg diff --git a/homedecor_doors_and_gates/sounds/homedecor_gate_open_close.ogg b/mods/homedecor_doors_and_gates/sounds/homedecor_gate_open_close.ogg similarity index 100% rename from homedecor_doors_and_gates/sounds/homedecor_gate_open_close.ogg rename to mods/homedecor_doors_and_gates/sounds/homedecor_gate_open_close.ogg diff --git a/homedecor_doors_and_gates/textures/homedecor_door_basic_panel.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_basic_panel.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_basic_panel.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_basic_panel.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_basic_panel_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_basic_panel_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_basic_panel_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_basic_panel_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_carolina.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_carolina.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_carolina.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_carolina.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_carolina_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_carolina_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_carolina_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_carolina_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_closet_mahogany_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_closet_oak.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_closet_oak.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_closet_oak.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_closet_oak.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_closet_oak_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_closet_oak_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_closet_oak_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_closet_oak_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_exterior_fancy_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_french_mahogany.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_french_mahogany.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_french_mahogany.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_french_mahogany.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_french_mahogany_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_french_mahogany_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_french_mahogany_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_french_mahogany_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_french_oak.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_french_oak.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_french_oak.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_french_oak.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_french_oak_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_french_oak_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_french_oak_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_french_oak_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_french_white.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_french_white.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_french_white.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_french_white.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_french_white_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_french_white_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_french_white_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_french_white_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_glass.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_glass.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_glass.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_glass.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_glass_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_glass_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_glass_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_glass_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_japanese_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_japanese_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_japanese_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_japanese_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_wood_plain.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_wood_plain.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_wood_plain.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_wood_plain.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_wood_plain_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_wood_plain_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_wood_plain_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_wood_plain_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_woodglass.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_woodglass.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_woodglass.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_woodglass.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_woodglass_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_woodglass_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_woodglass_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_woodglass_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_wrought_iron.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_wrought_iron.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_wrought_iron.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_wrought_iron.png diff --git a/homedecor_doors_and_gates/textures/homedecor_door_wrought_iron_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_door_wrought_iron_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_door_wrought_iron_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_door_wrought_iron_inv.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_edges.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_edges.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_edges.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_edges.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_fb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_fb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_fb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_barbed_wire_fb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_fb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_fb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_chainlink_fb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_fb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_lr.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_lr.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_chainlink_lr.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_lr.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_tb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_tb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_chainlink_tb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_chainlink_tb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_half_door_fb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_fb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_half_door_fb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_fb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_half_door_lr.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_lr.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_half_door_lr.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_lr.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_half_door_tb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_tb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_half_door_tb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_tb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_fb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_fb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_fb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_fb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_lr.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_lr.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_lr.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_lr.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_tb.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_tb.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_tb.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_half_door_white_tb.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_picket_back.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_back.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_picket_back.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_back.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_picket_front.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_front.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_picket_front.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_front.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_picket_white_back.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_white_back.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_picket_white_back.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_white_back.png diff --git a/homedecor_doors_and_gates/textures/homedecor_gate_picket_white_front.png b/mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_white_front.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_gate_picket_white_front.png rename to mods/homedecor_doors_and_gates/textures/homedecor_gate_picket_white_front.png diff --git a/homedecor_doors_and_gates/textures/homedecor_jpn_door_inv.png b/mods/homedecor_doors_and_gates/textures/homedecor_jpn_door_inv.png similarity index 100% rename from homedecor_doors_and_gates/textures/homedecor_jpn_door_inv.png rename to mods/homedecor_doors_and_gates/textures/homedecor_jpn_door_inv.png diff --git a/homedecor_electrical/.luacheckrc b/mods/homedecor_electrical/.luacheckrc similarity index 100% rename from homedecor_electrical/.luacheckrc rename to mods/homedecor_electrical/.luacheckrc diff --git a/homedecor_electrical/init.lua b/mods/homedecor_electrical/init.lua similarity index 100% rename from homedecor_electrical/init.lua rename to mods/homedecor_electrical/init.lua diff --git a/homedecor_electrical/locale/homedecor_electrical.de.tr b/mods/homedecor_electrical/locale/homedecor_electrical.de.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.de.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.de.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.es.tr b/mods/homedecor_electrical/locale/homedecor_electrical.es.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.es.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.es.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.fr.tr b/mods/homedecor_electrical/locale/homedecor_electrical.fr.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.fr.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.fr.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.ms.tr b/mods/homedecor_electrical/locale/homedecor_electrical.ms.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.ms.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.ms.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.pt.tr b/mods/homedecor_electrical/locale/homedecor_electrical.pt.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.pt.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.pt.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.pt_BR.tr b/mods/homedecor_electrical/locale/homedecor_electrical.pt_BR.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.pt_BR.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.pt_BR.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.ru.tr b/mods/homedecor_electrical/locale/homedecor_electrical.ru.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.ru.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.ru.tr diff --git a/homedecor_electrical/locale/homedecor_electrical.zh_CN.tr b/mods/homedecor_electrical/locale/homedecor_electrical.zh_CN.tr similarity index 100% rename from homedecor_electrical/locale/homedecor_electrical.zh_CN.tr rename to mods/homedecor_electrical/locale/homedecor_electrical.zh_CN.tr diff --git a/homedecor_electrical/locale/template.txt b/mods/homedecor_electrical/locale/template.txt similarity index 100% rename from homedecor_electrical/locale/template.txt rename to mods/homedecor_electrical/locale/template.txt diff --git a/homedecor_electrical/mod.conf b/mods/homedecor_electrical/mod.conf similarity index 100% rename from homedecor_electrical/mod.conf rename to mods/homedecor_electrical/mod.conf diff --git a/homedecor_electrical/sounds/homedecor_doorbell.ogg b/mods/homedecor_electrical/sounds/homedecor_doorbell.ogg similarity index 100% rename from homedecor_electrical/sounds/homedecor_doorbell.ogg rename to mods/homedecor_electrical/sounds/homedecor_doorbell.ogg diff --git a/homedecor_electrical/textures/homedecor_doorbell.png b/mods/homedecor_electrical/textures/homedecor_doorbell.png similarity index 100% rename from homedecor_electrical/textures/homedecor_doorbell.png rename to mods/homedecor_electrical/textures/homedecor_doorbell.png diff --git a/homedecor_electrical/textures/homedecor_doorbell_inv.png b/mods/homedecor_electrical/textures/homedecor_doorbell_inv.png similarity index 100% rename from homedecor_electrical/textures/homedecor_doorbell_inv.png rename to mods/homedecor_electrical/textures/homedecor_doorbell_inv.png diff --git a/homedecor_electrical/textures/homedecor_light_switch_back.png b/mods/homedecor_electrical/textures/homedecor_light_switch_back.png similarity index 100% rename from homedecor_electrical/textures/homedecor_light_switch_back.png rename to mods/homedecor_electrical/textures/homedecor_light_switch_back.png diff --git a/homedecor_electrical/textures/homedecor_light_switch_edges.png b/mods/homedecor_electrical/textures/homedecor_light_switch_edges.png similarity index 100% rename from homedecor_electrical/textures/homedecor_light_switch_edges.png rename to mods/homedecor_electrical/textures/homedecor_light_switch_edges.png diff --git a/homedecor_electrical/textures/homedecor_light_switch_front_off.png b/mods/homedecor_electrical/textures/homedecor_light_switch_front_off.png similarity index 100% rename from homedecor_electrical/textures/homedecor_light_switch_front_off.png rename to mods/homedecor_electrical/textures/homedecor_light_switch_front_off.png diff --git a/homedecor_electrical/textures/homedecor_light_switch_front_on.png b/mods/homedecor_electrical/textures/homedecor_light_switch_front_on.png similarity index 100% rename from homedecor_electrical/textures/homedecor_light_switch_front_on.png rename to mods/homedecor_electrical/textures/homedecor_light_switch_front_on.png diff --git a/homedecor_electrical/textures/homedecor_light_switch_inv.png b/mods/homedecor_electrical/textures/homedecor_light_switch_inv.png similarity index 100% rename from homedecor_electrical/textures/homedecor_light_switch_inv.png rename to mods/homedecor_electrical/textures/homedecor_light_switch_inv.png diff --git a/homedecor_electrical/textures/homedecor_outlet_back.png b/mods/homedecor_electrical/textures/homedecor_outlet_back.png similarity index 100% rename from homedecor_electrical/textures/homedecor_outlet_back.png rename to mods/homedecor_electrical/textures/homedecor_outlet_back.png diff --git a/homedecor_electrical/textures/homedecor_outlet_edges.png b/mods/homedecor_electrical/textures/homedecor_outlet_edges.png similarity index 100% rename from homedecor_electrical/textures/homedecor_outlet_edges.png rename to mods/homedecor_electrical/textures/homedecor_outlet_edges.png diff --git a/homedecor_electrical/textures/homedecor_outlet_inv.png b/mods/homedecor_electrical/textures/homedecor_outlet_inv.png similarity index 100% rename from homedecor_electrical/textures/homedecor_outlet_inv.png rename to mods/homedecor_electrical/textures/homedecor_outlet_inv.png diff --git a/homedecor_electronics/.luacheckrc b/mods/homedecor_electronics/.luacheckrc similarity index 100% rename from homedecor_electronics/.luacheckrc rename to mods/homedecor_electronics/.luacheckrc diff --git a/homedecor_electronics/init.lua b/mods/homedecor_electronics/init.lua similarity index 100% rename from homedecor_electronics/init.lua rename to mods/homedecor_electronics/init.lua diff --git a/homedecor_electronics/locale/homedecor_electronics.de.tr b/mods/homedecor_electronics/locale/homedecor_electronics.de.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.de.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.de.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.es.tr b/mods/homedecor_electronics/locale/homedecor_electronics.es.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.es.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.es.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.fr.tr b/mods/homedecor_electronics/locale/homedecor_electronics.fr.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.fr.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.fr.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.it.tr b/mods/homedecor_electronics/locale/homedecor_electronics.it.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.it.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.it.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.ms.tr b/mods/homedecor_electronics/locale/homedecor_electronics.ms.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.ms.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.ms.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.pt.tr b/mods/homedecor_electronics/locale/homedecor_electronics.pt.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.pt.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.pt.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.pt_BR.tr b/mods/homedecor_electronics/locale/homedecor_electronics.pt_BR.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.pt_BR.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.pt_BR.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.ru.tr b/mods/homedecor_electronics/locale/homedecor_electronics.ru.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.ru.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.ru.tr diff --git a/homedecor_electronics/locale/homedecor_electronics.zh_CN.tr b/mods/homedecor_electronics/locale/homedecor_electronics.zh_CN.tr similarity index 100% rename from homedecor_electronics/locale/homedecor_electronics.zh_CN.tr rename to mods/homedecor_electronics/locale/homedecor_electronics.zh_CN.tr diff --git a/homedecor_electronics/locale/template.txt b/mods/homedecor_electronics/locale/template.txt similarity index 100% rename from homedecor_electronics/locale/template.txt rename to mods/homedecor_electronics/locale/template.txt diff --git a/homedecor_electronics/mod.conf b/mods/homedecor_electronics/mod.conf similarity index 100% rename from homedecor_electronics/mod.conf rename to mods/homedecor_electronics/mod.conf diff --git a/homedecor_electronics/models/homedecor_speaker_large.obj b/mods/homedecor_electronics/models/homedecor_speaker_large.obj similarity index 100% rename from homedecor_electronics/models/homedecor_speaker_large.obj rename to mods/homedecor_electronics/models/homedecor_speaker_large.obj diff --git a/homedecor_electronics/models/homedecor_speaker_large_open.obj b/mods/homedecor_electronics/models/homedecor_speaker_large_open.obj similarity index 100% rename from homedecor_electronics/models/homedecor_speaker_large_open.obj rename to mods/homedecor_electronics/models/homedecor_speaker_large_open.obj diff --git a/homedecor_electronics/models/homedecor_speaker_small.obj b/mods/homedecor_electronics/models/homedecor_speaker_small.obj similarity index 100% rename from homedecor_electronics/models/homedecor_speaker_small.obj rename to mods/homedecor_electronics/models/homedecor_speaker_small.obj diff --git a/homedecor_electronics/models/homedecor_telephone.obj b/mods/homedecor_electronics/models/homedecor_telephone.obj similarity index 100% rename from homedecor_electronics/models/homedecor_telephone.obj rename to mods/homedecor_electronics/models/homedecor_telephone.obj diff --git a/homedecor_electronics/textures/homedecor_dvd_player.png b/mods/homedecor_electronics/textures/homedecor_dvd_player.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvd_player.png rename to mods/homedecor_electronics/textures/homedecor_dvd_player.png diff --git a/homedecor_electronics/textures/homedecor_dvdvcr_back.png b/mods/homedecor_electronics/textures/homedecor_dvdvcr_back.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvdvcr_back.png rename to mods/homedecor_electronics/textures/homedecor_dvdvcr_back.png diff --git a/homedecor_electronics/textures/homedecor_dvdvcr_bottom.png b/mods/homedecor_electronics/textures/homedecor_dvdvcr_bottom.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvdvcr_bottom.png rename to mods/homedecor_electronics/textures/homedecor_dvdvcr_bottom.png diff --git a/homedecor_electronics/textures/homedecor_dvdvcr_front.png b/mods/homedecor_electronics/textures/homedecor_dvdvcr_front.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvdvcr_front.png rename to mods/homedecor_electronics/textures/homedecor_dvdvcr_front.png diff --git a/homedecor_electronics/textures/homedecor_dvdvcr_inv.png b/mods/homedecor_electronics/textures/homedecor_dvdvcr_inv.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvdvcr_inv.png rename to mods/homedecor_electronics/textures/homedecor_dvdvcr_inv.png diff --git a/homedecor_electronics/textures/homedecor_dvdvcr_sides.png b/mods/homedecor_electronics/textures/homedecor_dvdvcr_sides.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvdvcr_sides.png rename to mods/homedecor_electronics/textures/homedecor_dvdvcr_sides.png diff --git a/homedecor_electronics/textures/homedecor_dvdvcr_top.png b/mods/homedecor_electronics/textures/homedecor_dvdvcr_top.png similarity index 100% rename from homedecor_electronics/textures/homedecor_dvdvcr_top.png rename to mods/homedecor_electronics/textures/homedecor_dvdvcr_top.png diff --git a/homedecor_electronics/textures/homedecor_projection_screen.png b/mods/homedecor_electronics/textures/homedecor_projection_screen.png similarity index 100% rename from homedecor_electronics/textures/homedecor_projection_screen.png rename to mods/homedecor_electronics/textures/homedecor_projection_screen.png diff --git a/homedecor_electronics/textures/homedecor_projection_screen_inv.png b/mods/homedecor_electronics/textures/homedecor_projection_screen_inv.png similarity index 100% rename from homedecor_electronics/textures/homedecor_projection_screen_inv.png rename to mods/homedecor_electronics/textures/homedecor_projection_screen_inv.png diff --git a/homedecor_electronics/textures/homedecor_speaker_driver.png b/mods/homedecor_electronics/textures/homedecor_speaker_driver.png similarity index 100% rename from homedecor_electronics/textures/homedecor_speaker_driver.png rename to mods/homedecor_electronics/textures/homedecor_speaker_driver.png diff --git a/homedecor_electronics/textures/homedecor_speaker_driver_inv.png b/mods/homedecor_electronics/textures/homedecor_speaker_driver_inv.png similarity index 100% rename from homedecor_electronics/textures/homedecor_speaker_driver_inv.png rename to mods/homedecor_electronics/textures/homedecor_speaker_driver_inv.png diff --git a/homedecor_electronics/textures/homedecor_speaker_front.png b/mods/homedecor_electronics/textures/homedecor_speaker_front.png similarity index 100% rename from homedecor_electronics/textures/homedecor_speaker_front.png rename to mods/homedecor_electronics/textures/homedecor_speaker_front.png diff --git a/homedecor_electronics/textures/homedecor_speaker_open_front.png b/mods/homedecor_electronics/textures/homedecor_speaker_open_front.png similarity index 100% rename from homedecor_electronics/textures/homedecor_speaker_open_front.png rename to mods/homedecor_electronics/textures/homedecor_speaker_open_front.png diff --git a/homedecor_electronics/textures/homedecor_speaker_sides.png b/mods/homedecor_electronics/textures/homedecor_speaker_sides.png similarity index 100% rename from homedecor_electronics/textures/homedecor_speaker_sides.png rename to mods/homedecor_electronics/textures/homedecor_speaker_sides.png diff --git a/homedecor_electronics/textures/homedecor_stereo_back.png b/mods/homedecor_electronics/textures/homedecor_stereo_back.png similarity index 100% rename from homedecor_electronics/textures/homedecor_stereo_back.png rename to mods/homedecor_electronics/textures/homedecor_stereo_back.png diff --git a/homedecor_electronics/textures/homedecor_stereo_bottom.png b/mods/homedecor_electronics/textures/homedecor_stereo_bottom.png similarity index 100% rename from homedecor_electronics/textures/homedecor_stereo_bottom.png rename to mods/homedecor_electronics/textures/homedecor_stereo_bottom.png diff --git a/homedecor_electronics/textures/homedecor_stereo_front.png b/mods/homedecor_electronics/textures/homedecor_stereo_front.png similarity index 100% rename from homedecor_electronics/textures/homedecor_stereo_front.png rename to mods/homedecor_electronics/textures/homedecor_stereo_front.png diff --git a/homedecor_electronics/textures/homedecor_stereo_left.png b/mods/homedecor_electronics/textures/homedecor_stereo_left.png similarity index 100% rename from homedecor_electronics/textures/homedecor_stereo_left.png rename to mods/homedecor_electronics/textures/homedecor_stereo_left.png diff --git a/homedecor_electronics/textures/homedecor_stereo_top.png b/mods/homedecor_electronics/textures/homedecor_stereo_top.png similarity index 100% rename from homedecor_electronics/textures/homedecor_stereo_top.png rename to mods/homedecor_electronics/textures/homedecor_stereo_top.png diff --git a/homedecor_electronics/textures/homedecor_telephone_base.png b/mods/homedecor_electronics/textures/homedecor_telephone_base.png similarity index 100% rename from homedecor_electronics/textures/homedecor_telephone_base.png rename to mods/homedecor_electronics/textures/homedecor_telephone_base.png diff --git a/homedecor_electronics/textures/homedecor_telephone_cord.png b/mods/homedecor_electronics/textures/homedecor_telephone_cord.png similarity index 100% rename from homedecor_electronics/textures/homedecor_telephone_cord.png rename to mods/homedecor_electronics/textures/homedecor_telephone_cord.png diff --git a/homedecor_electronics/textures/homedecor_telephone_dial.png b/mods/homedecor_electronics/textures/homedecor_telephone_dial.png similarity index 100% rename from homedecor_electronics/textures/homedecor_telephone_dial.png rename to mods/homedecor_electronics/textures/homedecor_telephone_dial.png diff --git a/homedecor_electronics/textures/homedecor_telephone_handset.png b/mods/homedecor_electronics/textures/homedecor_telephone_handset.png similarity index 100% rename from homedecor_electronics/textures/homedecor_telephone_handset.png rename to mods/homedecor_electronics/textures/homedecor_telephone_handset.png diff --git a/homedecor_electronics/textures/homedecor_telephone_inv.png b/mods/homedecor_electronics/textures/homedecor_telephone_inv.png similarity index 100% rename from homedecor_electronics/textures/homedecor_telephone_inv.png rename to mods/homedecor_electronics/textures/homedecor_telephone_inv.png diff --git a/homedecor_electronics/textures/homedecor_television_back.png b/mods/homedecor_electronics/textures/homedecor_television_back.png similarity index 100% rename from homedecor_electronics/textures/homedecor_television_back.png rename to mods/homedecor_electronics/textures/homedecor_television_back.png diff --git a/homedecor_electronics/textures/homedecor_television_bottom.png b/mods/homedecor_electronics/textures/homedecor_television_bottom.png similarity index 100% rename from homedecor_electronics/textures/homedecor_television_bottom.png rename to mods/homedecor_electronics/textures/homedecor_television_bottom.png diff --git a/homedecor_electronics/textures/homedecor_television_front.png b/mods/homedecor_electronics/textures/homedecor_television_front.png similarity index 100% rename from homedecor_electronics/textures/homedecor_television_front.png rename to mods/homedecor_electronics/textures/homedecor_television_front.png diff --git a/homedecor_electronics/textures/homedecor_television_front_animated.png b/mods/homedecor_electronics/textures/homedecor_television_front_animated.png similarity index 100% rename from homedecor_electronics/textures/homedecor_television_front_animated.png rename to mods/homedecor_electronics/textures/homedecor_television_front_animated.png diff --git a/homedecor_electronics/textures/homedecor_television_left.png b/mods/homedecor_electronics/textures/homedecor_television_left.png similarity index 100% rename from homedecor_electronics/textures/homedecor_television_left.png rename to mods/homedecor_electronics/textures/homedecor_television_left.png diff --git a/homedecor_electronics/textures/homedecor_television_top.png b/mods/homedecor_electronics/textures/homedecor_television_top.png similarity index 100% rename from homedecor_electronics/textures/homedecor_television_top.png rename to mods/homedecor_electronics/textures/homedecor_television_top.png diff --git a/homedecor_electronics/textures/homedecor_vcr.png b/mods/homedecor_electronics/textures/homedecor_vcr.png similarity index 100% rename from homedecor_electronics/textures/homedecor_vcr.png rename to mods/homedecor_electronics/textures/homedecor_vcr.png diff --git a/homedecor_exterior/.luacheckrc b/mods/homedecor_exterior/.luacheckrc similarity index 100% rename from homedecor_exterior/.luacheckrc rename to mods/homedecor_exterior/.luacheckrc diff --git a/homedecor_exterior/init.lua b/mods/homedecor_exterior/init.lua similarity index 100% rename from homedecor_exterior/init.lua rename to mods/homedecor_exterior/init.lua diff --git a/homedecor_exterior/locale/homedecor_exterior.de.tr b/mods/homedecor_exterior/locale/homedecor_exterior.de.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.de.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.de.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.es.tr b/mods/homedecor_exterior/locale/homedecor_exterior.es.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.es.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.es.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.fr.tr b/mods/homedecor_exterior/locale/homedecor_exterior.fr.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.fr.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.fr.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.it.tr b/mods/homedecor_exterior/locale/homedecor_exterior.it.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.it.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.it.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.ms.tr b/mods/homedecor_exterior/locale/homedecor_exterior.ms.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.ms.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.ms.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.pt.tr b/mods/homedecor_exterior/locale/homedecor_exterior.pt.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.pt.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.pt.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.pt_BR.tr b/mods/homedecor_exterior/locale/homedecor_exterior.pt_BR.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.pt_BR.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.pt_BR.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.ru.tr b/mods/homedecor_exterior/locale/homedecor_exterior.ru.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.ru.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.ru.tr diff --git a/homedecor_exterior/locale/homedecor_exterior.zh_CN.tr b/mods/homedecor_exterior/locale/homedecor_exterior.zh_CN.tr similarity index 100% rename from homedecor_exterior/locale/homedecor_exterior.zh_CN.tr rename to mods/homedecor_exterior/locale/homedecor_exterior.zh_CN.tr diff --git a/homedecor_exterior/locale/template.txt b/mods/homedecor_exterior/locale/template.txt similarity index 100% rename from homedecor_exterior/locale/template.txt rename to mods/homedecor_exterior/locale/template.txt diff --git a/homedecor_exterior/mod.conf b/mods/homedecor_exterior/mod.conf similarity index 100% rename from homedecor_exterior/mod.conf rename to mods/homedecor_exterior/mod.conf diff --git a/homedecor_exterior/models/homedecor_barbecue.obj b/mods/homedecor_exterior/models/homedecor_barbecue.obj similarity index 100% rename from homedecor_exterior/models/homedecor_barbecue.obj rename to mods/homedecor_exterior/models/homedecor_barbecue.obj diff --git a/homedecor_exterior/models/homedecor_chimney.obj b/mods/homedecor_exterior/models/homedecor_chimney.obj similarity index 100% rename from homedecor_exterior/models/homedecor_chimney.obj rename to mods/homedecor_exterior/models/homedecor_chimney.obj diff --git a/homedecor_exterior/models/homedecor_doghouse.obj b/mods/homedecor_exterior/models/homedecor_doghouse.obj similarity index 100% rename from homedecor_exterior/models/homedecor_doghouse.obj rename to mods/homedecor_exterior/models/homedecor_doghouse.obj diff --git a/homedecor_exterior/models/homedecor_shrubbery.obj b/mods/homedecor_exterior/models/homedecor_shrubbery.obj similarity index 100% rename from homedecor_exterior/models/homedecor_shrubbery.obj rename to mods/homedecor_exterior/models/homedecor_shrubbery.obj diff --git a/homedecor_exterior/models/homedecor_well.obj b/mods/homedecor_exterior/models/homedecor_well.obj similarity index 100% rename from homedecor_exterior/models/homedecor_well.obj rename to mods/homedecor_exterior/models/homedecor_well.obj diff --git a/homedecor_exterior/textures/homedecor_barbecue_meat.png b/mods/homedecor_exterior/textures/homedecor_barbecue_meat.png similarity index 100% rename from homedecor_exterior/textures/homedecor_barbecue_meat.png rename to mods/homedecor_exterior/textures/homedecor_barbecue_meat.png diff --git a/homedecor_exterior/textures/homedecor_chimney_tb.png b/mods/homedecor_exterior/textures/homedecor_chimney_tb.png similarity index 100% rename from homedecor_exterior/textures/homedecor_chimney_tb.png rename to mods/homedecor_exterior/textures/homedecor_chimney_tb.png diff --git a/homedecor_exterior/textures/homedecor_doghouse_inv.png b/mods/homedecor_exterior/textures/homedecor_doghouse_inv.png similarity index 100% rename from homedecor_exterior/textures/homedecor_doghouse_inv.png rename to mods/homedecor_exterior/textures/homedecor_doghouse_inv.png diff --git a/homedecor_exterior/textures/homedecor_embers.png b/mods/homedecor_exterior/textures/homedecor_embers.png similarity index 100% rename from homedecor_exterior/textures/homedecor_embers.png rename to mods/homedecor_exterior/textures/homedecor_embers.png diff --git a/homedecor_exterior/textures/homedecor_lattice.png b/mods/homedecor_exterior/textures/homedecor_lattice.png similarity index 100% rename from homedecor_exterior/textures/homedecor_lattice.png rename to mods/homedecor_exterior/textures/homedecor_lattice.png diff --git a/homedecor_exterior/textures/homedecor_lattice_vegetal.png b/mods/homedecor_exterior/textures/homedecor_lattice_vegetal.png similarity index 100% rename from homedecor_exterior/textures/homedecor_lattice_vegetal.png rename to mods/homedecor_exterior/textures/homedecor_lattice_vegetal.png diff --git a/homedecor_exterior/textures/homedecor_rope_texture.png b/mods/homedecor_exterior/textures/homedecor_rope_texture.png similarity index 100% rename from homedecor_exterior/textures/homedecor_rope_texture.png rename to mods/homedecor_exterior/textures/homedecor_rope_texture.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_green.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_green.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_green.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_green.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_green_bottom.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_green_bottom.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_green_bottom.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_green_bottom.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_red.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_red.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_red.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_red.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_red_bottom.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_red_bottom.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_red_bottom.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_red_bottom.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_roots.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_roots.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_roots.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_roots.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_yellow.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_yellow.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_yellow.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_yellow.png diff --git a/homedecor_exterior/textures/homedecor_shrubbery_yellow_bottom.png b/mods/homedecor_exterior/textures/homedecor_shrubbery_yellow_bottom.png similarity index 100% rename from homedecor_exterior/textures/homedecor_shrubbery_yellow_bottom.png rename to mods/homedecor_exterior/textures/homedecor_shrubbery_yellow_bottom.png diff --git a/homedecor_exterior/textures/homedecor_stonepath_inv.png b/mods/homedecor_exterior/textures/homedecor_stonepath_inv.png similarity index 100% rename from homedecor_exterior/textures/homedecor_stonepath_inv.png rename to mods/homedecor_exterior/textures/homedecor_stonepath_inv.png diff --git a/homedecor_exterior/textures/homedecor_swing_inv.png b/mods/homedecor_exterior/textures/homedecor_swing_inv.png similarity index 100% rename from homedecor_exterior/textures/homedecor_swing_inv.png rename to mods/homedecor_exterior/textures/homedecor_swing_inv.png diff --git a/homedecor_exterior/textures/homedecor_swing_top.png b/mods/homedecor_exterior/textures/homedecor_swing_top.png similarity index 100% rename from homedecor_exterior/textures/homedecor_swing_top.png rename to mods/homedecor_exterior/textures/homedecor_swing_top.png diff --git a/homedecor_exterior/textures/homedecor_swingrope_sides.png b/mods/homedecor_exterior/textures/homedecor_swingrope_sides.png similarity index 100% rename from homedecor_exterior/textures/homedecor_swingrope_sides.png rename to mods/homedecor_exterior/textures/homedecor_swingrope_sides.png diff --git a/homedecor_exterior/textures/homedecor_well_inv.png b/mods/homedecor_exterior/textures/homedecor_well_inv.png similarity index 100% rename from homedecor_exterior/textures/homedecor_well_inv.png rename to mods/homedecor_exterior/textures/homedecor_well_inv.png diff --git a/homedecor_fences/.luacheckrc b/mods/homedecor_fences/.luacheckrc similarity index 100% rename from homedecor_fences/.luacheckrc rename to mods/homedecor_fences/.luacheckrc diff --git a/homedecor_fences/init.lua b/mods/homedecor_fences/init.lua similarity index 100% rename from homedecor_fences/init.lua rename to mods/homedecor_fences/init.lua diff --git a/homedecor_fences/locale/homedecor_fences.de.tr b/mods/homedecor_fences/locale/homedecor_fences.de.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.de.tr rename to mods/homedecor_fences/locale/homedecor_fences.de.tr diff --git a/homedecor_fences/locale/homedecor_fences.es.tr b/mods/homedecor_fences/locale/homedecor_fences.es.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.es.tr rename to mods/homedecor_fences/locale/homedecor_fences.es.tr diff --git a/homedecor_fences/locale/homedecor_fences.fr.tr b/mods/homedecor_fences/locale/homedecor_fences.fr.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.fr.tr rename to mods/homedecor_fences/locale/homedecor_fences.fr.tr diff --git a/homedecor_fences/locale/homedecor_fences.it.tr b/mods/homedecor_fences/locale/homedecor_fences.it.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.it.tr rename to mods/homedecor_fences/locale/homedecor_fences.it.tr diff --git a/homedecor_fences/locale/homedecor_fences.ms.tr b/mods/homedecor_fences/locale/homedecor_fences.ms.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.ms.tr rename to mods/homedecor_fences/locale/homedecor_fences.ms.tr diff --git a/homedecor_fences/locale/homedecor_fences.pt.tr b/mods/homedecor_fences/locale/homedecor_fences.pt.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.pt.tr rename to mods/homedecor_fences/locale/homedecor_fences.pt.tr diff --git a/homedecor_fences/locale/homedecor_fences.pt_BR.tr b/mods/homedecor_fences/locale/homedecor_fences.pt_BR.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.pt_BR.tr rename to mods/homedecor_fences/locale/homedecor_fences.pt_BR.tr diff --git a/homedecor_fences/locale/homedecor_fences.ru.tr b/mods/homedecor_fences/locale/homedecor_fences.ru.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.ru.tr rename to mods/homedecor_fences/locale/homedecor_fences.ru.tr diff --git a/homedecor_fences/locale/homedecor_fences.zh_CN.tr b/mods/homedecor_fences/locale/homedecor_fences.zh_CN.tr similarity index 100% rename from homedecor_fences/locale/homedecor_fences.zh_CN.tr rename to mods/homedecor_fences/locale/homedecor_fences.zh_CN.tr diff --git a/homedecor_fences/locale/template.txt b/mods/homedecor_fences/locale/template.txt similarity index 100% rename from homedecor_fences/locale/template.txt rename to mods/homedecor_fences/locale/template.txt diff --git a/homedecor_fences/mod.conf b/mods/homedecor_fences/mod.conf similarity index 100% rename from homedecor_fences/mod.conf rename to mods/homedecor_fences/mod.conf diff --git a/homedecor_fences/models/homedecor_fence_barbed_wire.obj b/mods/homedecor_fences/models/homedecor_fence_barbed_wire.obj similarity index 100% rename from homedecor_fences/models/homedecor_fence_barbed_wire.obj rename to mods/homedecor_fences/models/homedecor_fence_barbed_wire.obj diff --git a/homedecor_fences/models/homedecor_fence_barbed_wire_corner.obj b/mods/homedecor_fences/models/homedecor_fence_barbed_wire_corner.obj similarity index 100% rename from homedecor_fences/models/homedecor_fence_barbed_wire_corner.obj rename to mods/homedecor_fences/models/homedecor_fence_barbed_wire_corner.obj diff --git a/homedecor_fences/models/homedecor_fence_chainlink.obj b/mods/homedecor_fences/models/homedecor_fence_chainlink.obj similarity index 100% rename from homedecor_fences/models/homedecor_fence_chainlink.obj rename to mods/homedecor_fences/models/homedecor_fence_chainlink.obj diff --git a/homedecor_fences/models/homedecor_fence_chainlink_corner.obj b/mods/homedecor_fences/models/homedecor_fence_chainlink_corner.obj similarity index 100% rename from homedecor_fences/models/homedecor_fence_chainlink_corner.obj rename to mods/homedecor_fences/models/homedecor_fence_chainlink_corner.obj diff --git a/homedecor_fences/textures/homedecor_fence_barbed_wire.png b/mods/homedecor_fences/textures/homedecor_fence_barbed_wire.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_barbed_wire.png rename to mods/homedecor_fences/textures/homedecor_fence_barbed_wire.png diff --git a/homedecor_fences/textures/homedecor_fence_brass.png b/mods/homedecor_fences/textures/homedecor_fence_brass.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_brass.png rename to mods/homedecor_fences/textures/homedecor_fence_brass.png diff --git a/homedecor_fences/textures/homedecor_fence_chainlink_corner_front.png b/mods/homedecor_fences/textures/homedecor_fence_chainlink_corner_front.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_chainlink_corner_front.png rename to mods/homedecor_fences/textures/homedecor_fence_chainlink_corner_front.png diff --git a/homedecor_fences/textures/homedecor_fence_chainlink_corner_top.png b/mods/homedecor_fences/textures/homedecor_fence_chainlink_corner_top.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_chainlink_corner_top.png rename to mods/homedecor_fences/textures/homedecor_fence_chainlink_corner_top.png diff --git a/homedecor_fences/textures/homedecor_fence_chainlink_fb.png b/mods/homedecor_fences/textures/homedecor_fence_chainlink_fb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_chainlink_fb.png rename to mods/homedecor_fences/textures/homedecor_fence_chainlink_fb.png diff --git a/homedecor_fences/textures/homedecor_fence_chainlink_sides.png b/mods/homedecor_fences/textures/homedecor_fence_chainlink_sides.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_chainlink_sides.png rename to mods/homedecor_fences/textures/homedecor_fence_chainlink_sides.png diff --git a/homedecor_fences/textures/homedecor_fence_chainlink_tb.png b/mods/homedecor_fences/textures/homedecor_fence_chainlink_tb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_chainlink_tb.png rename to mods/homedecor_fences/textures/homedecor_fence_chainlink_tb.png diff --git a/homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_sides.png b/mods/homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_sides.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_sides.png rename to mods/homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_sides.png diff --git a/homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_tb.png b/mods/homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_tb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_tb.png rename to mods/homedecor_fences/textures/homedecor_fence_corner_wrought_iron_2_tb.png diff --git a/homedecor_fences/textures/homedecor_fence_picket.png b/mods/homedecor_fences/textures/homedecor_fence_picket.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_picket.png rename to mods/homedecor_fences/textures/homedecor_fence_picket.png diff --git a/homedecor_fences/textures/homedecor_fence_picket_backside.png b/mods/homedecor_fences/textures/homedecor_fence_picket_backside.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_picket_backside.png rename to mods/homedecor_fences/textures/homedecor_fence_picket_backside.png diff --git a/homedecor_fences/textures/homedecor_fence_picket_white.png b/mods/homedecor_fences/textures/homedecor_fence_picket_white.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_picket_white.png rename to mods/homedecor_fences/textures/homedecor_fence_picket_white.png diff --git a/homedecor_fences/textures/homedecor_fence_picket_white_backside.png b/mods/homedecor_fences/textures/homedecor_fence_picket_white_backside.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_picket_white_backside.png rename to mods/homedecor_fences/textures/homedecor_fence_picket_white_backside.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_backside.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_backside.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_backside.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_backside.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_backside2.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_backside2.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_backside2.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_backside2.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_corner_front.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_corner_front.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_corner_front.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_corner_front.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_corner_right.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_corner_right.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_corner_right.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_corner_right.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_corner_tb.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_corner_tb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_corner_tb.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_corner_tb.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_front.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_front.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_front.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_front.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_sides.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_sides.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_sides.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_sides.png diff --git a/homedecor_fences/textures/homedecor_fence_privacy_tb.png b/mods/homedecor_fences/textures/homedecor_fence_privacy_tb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_privacy_tb.png rename to mods/homedecor_fences/textures/homedecor_fence_privacy_tb.png diff --git a/homedecor_fences/textures/homedecor_fence_wrought_iron.png b/mods/homedecor_fences/textures/homedecor_fence_wrought_iron.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_wrought_iron.png rename to mods/homedecor_fences/textures/homedecor_fence_wrought_iron.png diff --git a/homedecor_fences/textures/homedecor_fence_wrought_iron_2_fb.png b/mods/homedecor_fences/textures/homedecor_fence_wrought_iron_2_fb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_wrought_iron_2_fb.png rename to mods/homedecor_fences/textures/homedecor_fence_wrought_iron_2_fb.png diff --git a/homedecor_fences/textures/homedecor_fence_wrought_iron_2_sides.png b/mods/homedecor_fences/textures/homedecor_fence_wrought_iron_2_sides.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_wrought_iron_2_sides.png rename to mods/homedecor_fences/textures/homedecor_fence_wrought_iron_2_sides.png diff --git a/homedecor_fences/textures/homedecor_fence_wrought_iron_2_tb.png b/mods/homedecor_fences/textures/homedecor_fence_wrought_iron_2_tb.png similarity index 100% rename from homedecor_fences/textures/homedecor_fence_wrought_iron_2_tb.png rename to mods/homedecor_fences/textures/homedecor_fence_wrought_iron_2_tb.png diff --git a/homedecor_fences/textures/homedecor_sign_brass_post.png b/mods/homedecor_fences/textures/homedecor_sign_brass_post.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_brass_post.png rename to mods/homedecor_fences/textures/homedecor_sign_brass_post.png diff --git a/homedecor_fences/textures/homedecor_sign_brass_post_back.png b/mods/homedecor_fences/textures/homedecor_sign_brass_post_back.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_brass_post_back.png rename to mods/homedecor_fences/textures/homedecor_sign_brass_post_back.png diff --git a/homedecor_fences/textures/homedecor_sign_brass_post_bottom.png b/mods/homedecor_fences/textures/homedecor_sign_brass_post_bottom.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_brass_post_bottom.png rename to mods/homedecor_fences/textures/homedecor_sign_brass_post_bottom.png diff --git a/homedecor_fences/textures/homedecor_sign_brass_post_front.png b/mods/homedecor_fences/textures/homedecor_sign_brass_post_front.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_brass_post_front.png rename to mods/homedecor_fences/textures/homedecor_sign_brass_post_front.png diff --git a/homedecor_fences/textures/homedecor_sign_brass_post_side.png b/mods/homedecor_fences/textures/homedecor_sign_brass_post_side.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_brass_post_side.png rename to mods/homedecor_fences/textures/homedecor_sign_brass_post_side.png diff --git a/homedecor_fences/textures/homedecor_sign_brass_post_top.png b/mods/homedecor_fences/textures/homedecor_sign_brass_post_top.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_brass_post_top.png rename to mods/homedecor_fences/textures/homedecor_sign_brass_post_top.png diff --git a/homedecor_fences/textures/homedecor_sign_wrought_iron_post.png b/mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_wrought_iron_post.png rename to mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post.png diff --git a/homedecor_fences/textures/homedecor_sign_wrought_iron_post_back.png b/mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_back.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_wrought_iron_post_back.png rename to mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_back.png diff --git a/homedecor_fences/textures/homedecor_sign_wrought_iron_post_bottom.png b/mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_bottom.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_wrought_iron_post_bottom.png rename to mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_bottom.png diff --git a/homedecor_fences/textures/homedecor_sign_wrought_iron_post_front.png b/mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_front.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_wrought_iron_post_front.png rename to mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_front.png diff --git a/homedecor_fences/textures/homedecor_sign_wrought_iron_post_side.png b/mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_side.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_wrought_iron_post_side.png rename to mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_side.png diff --git a/homedecor_fences/textures/homedecor_sign_wrought_iron_post_top.png b/mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_top.png similarity index 100% rename from homedecor_fences/textures/homedecor_sign_wrought_iron_post_top.png rename to mods/homedecor_fences/textures/homedecor_sign_wrought_iron_post_top.png diff --git a/homedecor_foyer/.luacheckrc b/mods/homedecor_foyer/.luacheckrc similarity index 100% rename from homedecor_foyer/.luacheckrc rename to mods/homedecor_foyer/.luacheckrc diff --git a/homedecor_foyer/init.lua b/mods/homedecor_foyer/init.lua similarity index 100% rename from homedecor_foyer/init.lua rename to mods/homedecor_foyer/init.lua diff --git a/homedecor_foyer/locale/homedecor_foyer.de.tr b/mods/homedecor_foyer/locale/homedecor_foyer.de.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.de.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.de.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.es.tr b/mods/homedecor_foyer/locale/homedecor_foyer.es.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.es.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.es.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.fr.tr b/mods/homedecor_foyer/locale/homedecor_foyer.fr.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.fr.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.fr.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.ms.tr b/mods/homedecor_foyer/locale/homedecor_foyer.ms.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.ms.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.ms.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.pt.tr b/mods/homedecor_foyer/locale/homedecor_foyer.pt.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.pt.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.pt.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.pt_BR.tr b/mods/homedecor_foyer/locale/homedecor_foyer.pt_BR.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.pt_BR.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.pt_BR.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.ru.tr b/mods/homedecor_foyer/locale/homedecor_foyer.ru.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.ru.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.ru.tr diff --git a/homedecor_foyer/locale/homedecor_foyer.zh_CN.tr b/mods/homedecor_foyer/locale/homedecor_foyer.zh_CN.tr similarity index 100% rename from homedecor_foyer/locale/homedecor_foyer.zh_CN.tr rename to mods/homedecor_foyer/locale/homedecor_foyer.zh_CN.tr diff --git a/homedecor_foyer/locale/template.txt b/mods/homedecor_foyer/locale/template.txt similarity index 100% rename from homedecor_foyer/locale/template.txt rename to mods/homedecor_foyer/locale/template.txt diff --git a/homedecor_foyer/mod.conf b/mods/homedecor_foyer/mod.conf similarity index 100% rename from homedecor_foyer/mod.conf rename to mods/homedecor_foyer/mod.conf diff --git a/homedecor_foyer/models/homedecor_coatrack.obj b/mods/homedecor_foyer/models/homedecor_coatrack.obj similarity index 100% rename from homedecor_foyer/models/homedecor_coatrack.obj rename to mods/homedecor_foyer/models/homedecor_coatrack.obj diff --git a/homedecor_foyer/textures/homedecor_coatrack_inv.png b/mods/homedecor_foyer/textures/homedecor_coatrack_inv.png similarity index 100% rename from homedecor_foyer/textures/homedecor_coatrack_inv.png rename to mods/homedecor_foyer/textures/homedecor_coatrack_inv.png diff --git a/homedecor_foyer/textures/homedecor_coatrack_wallmount_inv.png b/mods/homedecor_foyer/textures/homedecor_coatrack_wallmount_inv.png similarity index 100% rename from homedecor_foyer/textures/homedecor_coatrack_wallmount_inv.png rename to mods/homedecor_foyer/textures/homedecor_coatrack_wallmount_inv.png diff --git a/homedecor_foyer/textures/homedecor_welcome_mat_bottom.png b/mods/homedecor_foyer/textures/homedecor_welcome_mat_bottom.png similarity index 100% rename from homedecor_foyer/textures/homedecor_welcome_mat_bottom.png rename to mods/homedecor_foyer/textures/homedecor_welcome_mat_bottom.png diff --git a/homedecor_foyer/textures/homedecor_welcome_mat_brown.png b/mods/homedecor_foyer/textures/homedecor_welcome_mat_brown.png similarity index 100% rename from homedecor_foyer/textures/homedecor_welcome_mat_brown.png rename to mods/homedecor_foyer/textures/homedecor_welcome_mat_brown.png diff --git a/homedecor_foyer/textures/homedecor_welcome_mat_green.png b/mods/homedecor_foyer/textures/homedecor_welcome_mat_green.png similarity index 100% rename from homedecor_foyer/textures/homedecor_welcome_mat_green.png rename to mods/homedecor_foyer/textures/homedecor_welcome_mat_green.png diff --git a/homedecor_foyer/textures/homedecor_welcome_mat_grey.png b/mods/homedecor_foyer/textures/homedecor_welcome_mat_grey.png similarity index 100% rename from homedecor_foyer/textures/homedecor_welcome_mat_grey.png rename to mods/homedecor_foyer/textures/homedecor_welcome_mat_grey.png diff --git a/homedecor_furniture/.luacheckrc b/mods/homedecor_furniture/.luacheckrc similarity index 100% rename from homedecor_furniture/.luacheckrc rename to mods/homedecor_furniture/.luacheckrc diff --git a/homedecor_furniture/init.lua b/mods/homedecor_furniture/init.lua similarity index 100% rename from homedecor_furniture/init.lua rename to mods/homedecor_furniture/init.lua diff --git a/homedecor_furniture/locale/homedecor_furniture.de.tr b/mods/homedecor_furniture/locale/homedecor_furniture.de.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.de.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.de.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.es.tr b/mods/homedecor_furniture/locale/homedecor_furniture.es.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.es.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.es.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.fr.tr b/mods/homedecor_furniture/locale/homedecor_furniture.fr.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.fr.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.fr.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.it.tr b/mods/homedecor_furniture/locale/homedecor_furniture.it.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.it.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.it.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.ms.tr b/mods/homedecor_furniture/locale/homedecor_furniture.ms.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.ms.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.ms.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.pt.tr b/mods/homedecor_furniture/locale/homedecor_furniture.pt.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.pt.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.pt.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.pt_BR.tr b/mods/homedecor_furniture/locale/homedecor_furniture.pt_BR.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.pt_BR.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.pt_BR.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.ru.tr b/mods/homedecor_furniture/locale/homedecor_furniture.ru.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.ru.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.ru.tr diff --git a/homedecor_furniture/locale/homedecor_furniture.zh_CN.tr b/mods/homedecor_furniture/locale/homedecor_furniture.zh_CN.tr similarity index 100% rename from homedecor_furniture/locale/homedecor_furniture.zh_CN.tr rename to mods/homedecor_furniture/locale/homedecor_furniture.zh_CN.tr diff --git a/homedecor_furniture/locale/template.txt b/mods/homedecor_furniture/locale/template.txt similarity index 100% rename from homedecor_furniture/locale/template.txt rename to mods/homedecor_furniture/locale/template.txt diff --git a/homedecor_furniture/mod.conf b/mods/homedecor_furniture/mod.conf similarity index 100% rename from homedecor_furniture/mod.conf rename to mods/homedecor_furniture/mod.conf diff --git a/homedecor_furniture/models/homedecor_openframe_bookshelf.obj b/mods/homedecor_furniture/models/homedecor_openframe_bookshelf.obj similarity index 100% rename from homedecor_furniture/models/homedecor_openframe_bookshelf.obj rename to mods/homedecor_furniture/models/homedecor_openframe_bookshelf.obj diff --git a/homedecor_furniture/textures/homedecor_openframe_bookshelf_books.png b/mods/homedecor_furniture/textures/homedecor_openframe_bookshelf_books.png similarity index 100% rename from homedecor_furniture/textures/homedecor_openframe_bookshelf_books.png rename to mods/homedecor_furniture/textures/homedecor_openframe_bookshelf_books.png diff --git a/homedecor_furniture_medieval/.luacheckrc b/mods/homedecor_furniture_medieval/.luacheckrc similarity index 100% rename from homedecor_furniture_medieval/.luacheckrc rename to mods/homedecor_furniture_medieval/.luacheckrc diff --git a/homedecor_furniture_medieval/init.lua b/mods/homedecor_furniture_medieval/init.lua similarity index 100% rename from homedecor_furniture_medieval/init.lua rename to mods/homedecor_furniture_medieval/init.lua diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.de.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.de.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.de.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.de.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.es.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.es.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.es.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.es.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.fr.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.fr.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.fr.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.fr.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.it.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.it.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.it.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.it.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ms.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ms.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ms.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ms.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt_BR.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt_BR.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt_BR.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.pt_BR.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ru.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ru.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ru.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.ru.tr diff --git a/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.zh_CN.tr b/mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.zh_CN.tr similarity index 100% rename from homedecor_furniture_medieval/locale/homedecor_furniture_medieval.zh_CN.tr rename to mods/homedecor_furniture_medieval/locale/homedecor_furniture_medieval.zh_CN.tr diff --git a/homedecor_furniture_medieval/locale/template.txt b/mods/homedecor_furniture_medieval/locale/template.txt similarity index 100% rename from homedecor_furniture_medieval/locale/template.txt rename to mods/homedecor_furniture_medieval/locale/template.txt diff --git a/homedecor_furniture_medieval/mod.conf b/mods/homedecor_furniture_medieval/mod.conf similarity index 100% rename from homedecor_furniture_medieval/mod.conf rename to mods/homedecor_furniture_medieval/mod.conf diff --git a/homedecor_furniture_medieval/models/forniture_chains.obj b/mods/homedecor_furniture_medieval/models/forniture_chains.obj similarity index 100% rename from homedecor_furniture_medieval/models/forniture_chains.obj rename to mods/homedecor_furniture_medieval/models/forniture_chains.obj diff --git a/homedecor_furniture_medieval/textures/forniture_chains_inv.png b/mods/homedecor_furniture_medieval/textures/forniture_chains_inv.png similarity index 100% rename from homedecor_furniture_medieval/textures/forniture_chains_inv.png rename to mods/homedecor_furniture_medieval/textures/forniture_chains_inv.png diff --git a/homedecor_furniture_medieval/textures/forniture_coal.png b/mods/homedecor_furniture_medieval/textures/forniture_coal.png similarity index 100% rename from homedecor_furniture_medieval/textures/forniture_coal.png rename to mods/homedecor_furniture_medieval/textures/forniture_coal.png diff --git a/homedecor_furniture_medieval/textures/forniture_marble_top_toilet.png b/mods/homedecor_furniture_medieval/textures/forniture_marble_top_toilet.png similarity index 100% rename from homedecor_furniture_medieval/textures/forniture_marble_top_toilet.png rename to mods/homedecor_furniture_medieval/textures/forniture_marble_top_toilet.png diff --git a/homedecor_gastronomy/.luacheckrc b/mods/homedecor_gastronomy/.luacheckrc similarity index 100% rename from homedecor_gastronomy/.luacheckrc rename to mods/homedecor_gastronomy/.luacheckrc diff --git a/homedecor_gastronomy/init.lua b/mods/homedecor_gastronomy/init.lua similarity index 100% rename from homedecor_gastronomy/init.lua rename to mods/homedecor_gastronomy/init.lua diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.de.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.de.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.de.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.de.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.es.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.es.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.es.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.es.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.fr.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.fr.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.fr.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.fr.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.it.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.it.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.it.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.it.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.ms.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.ms.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.ms.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.ms.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.pt.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.pt.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.pt.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.pt.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.pt_BR.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.pt_BR.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.pt_BR.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.pt_BR.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.ru.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.ru.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.ru.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.ru.tr diff --git a/homedecor_gastronomy/locale/homedecor_gastronomy.zh_CN.tr b/mods/homedecor_gastronomy/locale/homedecor_gastronomy.zh_CN.tr similarity index 100% rename from homedecor_gastronomy/locale/homedecor_gastronomy.zh_CN.tr rename to mods/homedecor_gastronomy/locale/homedecor_gastronomy.zh_CN.tr diff --git a/homedecor_gastronomy/locale/template.txt b/mods/homedecor_gastronomy/locale/template.txt similarity index 100% rename from homedecor_gastronomy/locale/template.txt rename to mods/homedecor_gastronomy/locale/template.txt diff --git a/homedecor_gastronomy/mod.conf b/mods/homedecor_gastronomy/mod.conf similarity index 100% rename from homedecor_gastronomy/mod.conf rename to mods/homedecor_gastronomy/mod.conf diff --git a/homedecor_gastronomy/models/homedecor_4_bottles.obj b/mods/homedecor_gastronomy/models/homedecor_4_bottles.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_4_bottles.obj rename to mods/homedecor_gastronomy/models/homedecor_4_bottles.obj diff --git a/homedecor_gastronomy/models/homedecor_beer_mug.obj b/mods/homedecor_gastronomy/models/homedecor_beer_mug.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_beer_mug.obj rename to mods/homedecor_gastronomy/models/homedecor_beer_mug.obj diff --git a/homedecor_gastronomy/models/homedecor_beer_taps.obj b/mods/homedecor_gastronomy/models/homedecor_beer_taps.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_beer_taps.obj rename to mods/homedecor_gastronomy/models/homedecor_beer_taps.obj diff --git a/homedecor_gastronomy/models/homedecor_bottle.obj b/mods/homedecor_gastronomy/models/homedecor_bottle.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_bottle.obj rename to mods/homedecor_gastronomy/models/homedecor_bottle.obj diff --git a/homedecor_gastronomy/models/homedecor_coffeemaker.obj b/mods/homedecor_gastronomy/models/homedecor_coffeemaker.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_coffeemaker.obj rename to mods/homedecor_gastronomy/models/homedecor_coffeemaker.obj diff --git a/homedecor_gastronomy/models/homedecor_cutlery_set.obj b/mods/homedecor_gastronomy/models/homedecor_cutlery_set.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_cutlery_set.obj rename to mods/homedecor_gastronomy/models/homedecor_cutlery_set.obj diff --git a/homedecor_gastronomy/models/homedecor_soda_machine.obj b/mods/homedecor_gastronomy/models/homedecor_soda_machine.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_soda_machine.obj rename to mods/homedecor_gastronomy/models/homedecor_soda_machine.obj diff --git a/homedecor_gastronomy/models/homedecor_wine_rack.obj b/mods/homedecor_gastronomy/models/homedecor_wine_rack.obj similarity index 100% rename from homedecor_gastronomy/models/homedecor_wine_rack.obj rename to mods/homedecor_gastronomy/models/homedecor_wine_rack.obj diff --git a/homedecor_gastronomy/sounds/insert_coin.ogg b/mods/homedecor_gastronomy/sounds/insert_coin.ogg similarity index 100% rename from homedecor_gastronomy/sounds/insert_coin.ogg rename to mods/homedecor_gastronomy/sounds/insert_coin.ogg diff --git a/homedecor_gastronomy/sounds/toaster.ogg b/mods/homedecor_gastronomy/sounds/toaster.ogg similarity index 100% rename from homedecor_gastronomy/sounds/toaster.ogg rename to mods/homedecor_gastronomy/sounds/toaster.ogg diff --git a/homedecor_gastronomy/textures/homedecor_4_bottles_brown_inv.png b/mods/homedecor_gastronomy/textures/homedecor_4_bottles_brown_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_4_bottles_brown_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_4_bottles_brown_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_4_bottles_green_inv.png b/mods/homedecor_gastronomy/textures/homedecor_4_bottles_green_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_4_bottles_green_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_4_bottles_green_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_4_bottles_multi_inv.png b/mods/homedecor_gastronomy/textures/homedecor_4_bottles_multi_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_4_bottles_multi_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_4_bottles_multi_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_beer_mug.png b/mods/homedecor_gastronomy/textures/homedecor_beer_mug.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_beer_mug.png rename to mods/homedecor_gastronomy/textures/homedecor_beer_mug.png diff --git a/homedecor_gastronomy/textures/homedecor_beer_mug_inv.png b/mods/homedecor_gastronomy/textures/homedecor_beer_mug_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_beer_mug_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_beer_mug_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_beertap_inv.png b/mods/homedecor_gastronomy/textures/homedecor_beertap_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_beertap_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_beertap_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_brown.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_brown.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_brown.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_brown.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_brown2.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_brown2.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_brown2.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_brown2.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_brown3.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_brown3.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_brown3.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_brown3.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_brown4.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_brown4.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_brown4.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_brown4.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_brown_inv.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_brown_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_brown_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_brown_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_green.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_green.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_green.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_green.png diff --git a/homedecor_gastronomy/textures/homedecor_bottle_green_inv.png b/mods/homedecor_gastronomy/textures/homedecor_bottle_green_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_bottle_green_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_bottle_green_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_coffeemaker_case.png b/mods/homedecor_gastronomy/textures/homedecor_coffeemaker_case.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_coffeemaker_case.png rename to mods/homedecor_gastronomy/textures/homedecor_coffeemaker_case.png diff --git a/homedecor_gastronomy/textures/homedecor_coffeemaker_cup.png b/mods/homedecor_gastronomy/textures/homedecor_coffeemaker_cup.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_coffeemaker_cup.png rename to mods/homedecor_gastronomy/textures/homedecor_coffeemaker_cup.png diff --git a/homedecor_gastronomy/textures/homedecor_coffeemaker_decanter.png b/mods/homedecor_gastronomy/textures/homedecor_coffeemaker_decanter.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_coffeemaker_decanter.png rename to mods/homedecor_gastronomy/textures/homedecor_coffeemaker_decanter.png diff --git a/homedecor_gastronomy/textures/homedecor_coffeemaker_inv.png b/mods/homedecor_gastronomy/textures/homedecor_coffeemaker_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_coffeemaker_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_coffeemaker_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_cutlery_set.png b/mods/homedecor_gastronomy/textures/homedecor_cutlery_set.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_cutlery_set.png rename to mods/homedecor_gastronomy/textures/homedecor_cutlery_set.png diff --git a/homedecor_gastronomy/textures/homedecor_cutlery_set_inv.png b/mods/homedecor_gastronomy/textures/homedecor_cutlery_set_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_cutlery_set_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_cutlery_set_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_soda_can.png b/mods/homedecor_gastronomy/textures/homedecor_soda_can.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_soda_can.png rename to mods/homedecor_gastronomy/textures/homedecor_soda_can.png diff --git a/homedecor_gastronomy/textures/homedecor_soda_machine.png b/mods/homedecor_gastronomy/textures/homedecor_soda_machine.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_soda_machine.png rename to mods/homedecor_gastronomy/textures/homedecor_soda_machine.png diff --git a/homedecor_gastronomy/textures/homedecor_steam.png b/mods/homedecor_gastronomy/textures/homedecor_steam.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_steam.png rename to mods/homedecor_gastronomy/textures/homedecor_steam.png diff --git a/homedecor_gastronomy/textures/homedecor_toaster_inv.png b/mods/homedecor_gastronomy/textures/homedecor_toaster_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_toaster_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_toaster_inv.png diff --git a/homedecor_gastronomy/textures/homedecor_toaster_sides.png b/mods/homedecor_gastronomy/textures/homedecor_toaster_sides.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_toaster_sides.png rename to mods/homedecor_gastronomy/textures/homedecor_toaster_sides.png diff --git a/homedecor_gastronomy/textures/homedecor_toaster_toploaf.png b/mods/homedecor_gastronomy/textures/homedecor_toaster_toploaf.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_toaster_toploaf.png rename to mods/homedecor_gastronomy/textures/homedecor_toaster_toploaf.png diff --git a/homedecor_gastronomy/textures/homedecor_wine_rack_inv.png b/mods/homedecor_gastronomy/textures/homedecor_wine_rack_inv.png similarity index 100% rename from homedecor_gastronomy/textures/homedecor_wine_rack_inv.png rename to mods/homedecor_gastronomy/textures/homedecor_wine_rack_inv.png diff --git a/homedecor_kitchen/.luacheckrc b/mods/homedecor_kitchen/.luacheckrc similarity index 100% rename from homedecor_kitchen/.luacheckrc rename to mods/homedecor_kitchen/.luacheckrc diff --git a/homedecor_kitchen/init.lua b/mods/homedecor_kitchen/init.lua similarity index 100% rename from homedecor_kitchen/init.lua rename to mods/homedecor_kitchen/init.lua diff --git a/homedecor_kitchen/locale/homedecor_kitchen.de.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.de.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.de.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.de.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.es.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.es.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.es.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.es.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.fr.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.fr.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.fr.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.fr.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.it.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.it.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.it.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.it.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.ms.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.ms.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.ms.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.ms.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.pt.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.pt.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.pt.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.pt.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.pt_BR.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.pt_BR.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.pt_BR.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.pt_BR.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.ru.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.ru.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.ru.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.ru.tr diff --git a/homedecor_kitchen/locale/homedecor_kitchen.zh_CN.tr b/mods/homedecor_kitchen/locale/homedecor_kitchen.zh_CN.tr similarity index 100% rename from homedecor_kitchen/locale/homedecor_kitchen.zh_CN.tr rename to mods/homedecor_kitchen/locale/homedecor_kitchen.zh_CN.tr diff --git a/homedecor_kitchen/locale/template.txt b/mods/homedecor_kitchen/locale/template.txt similarity index 100% rename from homedecor_kitchen/locale/template.txt rename to mods/homedecor_kitchen/locale/template.txt diff --git a/homedecor_kitchen/mod.conf b/mods/homedecor_kitchen/mod.conf similarity index 100% rename from homedecor_kitchen/mod.conf rename to mods/homedecor_kitchen/mod.conf diff --git a/homedecor_kitchen/models/homedecor_copper_pans.obj b/mods/homedecor_kitchen/models/homedecor_copper_pans.obj similarity index 100% rename from homedecor_kitchen/models/homedecor_copper_pans.obj rename to mods/homedecor_kitchen/models/homedecor_copper_pans.obj diff --git a/homedecor_kitchen/models/homedecor_kitchen_faucet.obj b/mods/homedecor_kitchen/models/homedecor_kitchen_faucet.obj similarity index 100% rename from homedecor_kitchen/models/homedecor_kitchen_faucet.obj rename to mods/homedecor_kitchen/models/homedecor_kitchen_faucet.obj diff --git a/homedecor_kitchen/models/homedecor_kitchen_sink.obj b/mods/homedecor_kitchen/models/homedecor_kitchen_sink.obj similarity index 100% rename from homedecor_kitchen/models/homedecor_kitchen_sink.obj rename to mods/homedecor_kitchen/models/homedecor_kitchen_sink.obj diff --git a/homedecor_kitchen/models/homedecor_paper_towel.obj b/mods/homedecor_kitchen/models/homedecor_paper_towel.obj similarity index 100% rename from homedecor_kitchen/models/homedecor_paper_towel.obj rename to mods/homedecor_kitchen/models/homedecor_paper_towel.obj diff --git a/homedecor_kitchen/models/homedecor_refrigerator.obj b/mods/homedecor_kitchen/models/homedecor_refrigerator.obj similarity index 100% rename from homedecor_kitchen/models/homedecor_refrigerator.obj rename to mods/homedecor_kitchen/models/homedecor_refrigerator.obj diff --git a/homedecor_kitchen/textures/homedecor_copper_pans_inv.png b/mods/homedecor_kitchen/textures/homedecor_copper_pans_inv.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_copper_pans_inv.png rename to mods/homedecor_kitchen/textures/homedecor_copper_pans_inv.png diff --git a/homedecor_kitchen/textures/homedecor_dishwasher_back.png b/mods/homedecor_kitchen/textures/homedecor_dishwasher_back.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_dishwasher_back.png rename to mods/homedecor_kitchen/textures/homedecor_dishwasher_back.png diff --git a/homedecor_kitchen/textures/homedecor_dishwasher_bottom.png b/mods/homedecor_kitchen/textures/homedecor_dishwasher_bottom.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_dishwasher_bottom.png rename to mods/homedecor_kitchen/textures/homedecor_dishwasher_bottom.png diff --git a/homedecor_kitchen/textures/homedecor_dishwasher_front.png b/mods/homedecor_kitchen/textures/homedecor_dishwasher_front.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_dishwasher_front.png rename to mods/homedecor_kitchen/textures/homedecor_dishwasher_front.png diff --git a/homedecor_kitchen/textures/homedecor_dishwasher_sides.png b/mods/homedecor_kitchen/textures/homedecor_dishwasher_sides.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_dishwasher_sides.png rename to mods/homedecor_kitchen/textures/homedecor_dishwasher_sides.png diff --git a/homedecor_kitchen/textures/homedecor_dishwasher_top.png b/mods/homedecor_kitchen/textures/homedecor_dishwasher_top.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_dishwasher_top.png rename to mods/homedecor_kitchen/textures/homedecor_dishwasher_top.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_bevel.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_front.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_front.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_front.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_front.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_front_half.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_front_half.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_front_half.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_front_half.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_top.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_granite.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_granite.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_granite.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_granite.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_marble.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_marble.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_marble.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_marble.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_steel.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_steel.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_steel.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_steel.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_wood.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_wood.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_wood.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_cabinet_top_wood.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_faucet_inv.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_faucet_inv.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_faucet_inv.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_faucet_inv.png diff --git a/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png b/mods/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_kitchen_sink_top.png rename to mods/homedecor_kitchen/textures/homedecor_kitchen_sink_top.png diff --git a/homedecor_kitchen/textures/homedecor_microwave_front.png b/mods/homedecor_kitchen/textures/homedecor_microwave_front.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_microwave_front.png rename to mods/homedecor_kitchen/textures/homedecor_microwave_front.png diff --git a/homedecor_kitchen/textures/homedecor_microwave_front_active.png b/mods/homedecor_kitchen/textures/homedecor_microwave_front_active.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_microwave_front_active.png rename to mods/homedecor_kitchen/textures/homedecor_microwave_front_active.png diff --git a/homedecor_kitchen/textures/homedecor_microwave_top.png b/mods/homedecor_kitchen/textures/homedecor_microwave_top.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_microwave_top.png rename to mods/homedecor_kitchen/textures/homedecor_microwave_top.png diff --git a/homedecor_kitchen/textures/homedecor_oven_bottom.png b/mods/homedecor_kitchen/textures/homedecor_oven_bottom.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_bottom.png rename to mods/homedecor_kitchen/textures/homedecor_oven_bottom.png diff --git a/homedecor_kitchen/textures/homedecor_oven_front.png b/mods/homedecor_kitchen/textures/homedecor_oven_front.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_front.png rename to mods/homedecor_kitchen/textures/homedecor_oven_front.png diff --git a/homedecor_kitchen/textures/homedecor_oven_front_active.png b/mods/homedecor_kitchen/textures/homedecor_oven_front_active.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_front_active.png rename to mods/homedecor_kitchen/textures/homedecor_oven_front_active.png diff --git a/homedecor_kitchen/textures/homedecor_oven_side.png b/mods/homedecor_kitchen/textures/homedecor_oven_side.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_side.png rename to mods/homedecor_kitchen/textures/homedecor_oven_side.png diff --git a/homedecor_kitchen/textures/homedecor_oven_steel_bottom.png b/mods/homedecor_kitchen/textures/homedecor_oven_steel_bottom.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_steel_bottom.png rename to mods/homedecor_kitchen/textures/homedecor_oven_steel_bottom.png diff --git a/homedecor_kitchen/textures/homedecor_oven_steel_front.png b/mods/homedecor_kitchen/textures/homedecor_oven_steel_front.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_steel_front.png rename to mods/homedecor_kitchen/textures/homedecor_oven_steel_front.png diff --git a/homedecor_kitchen/textures/homedecor_oven_steel_front_active.png b/mods/homedecor_kitchen/textures/homedecor_oven_steel_front_active.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_steel_front_active.png rename to mods/homedecor_kitchen/textures/homedecor_oven_steel_front_active.png diff --git a/homedecor_kitchen/textures/homedecor_oven_steel_side.png b/mods/homedecor_kitchen/textures/homedecor_oven_steel_side.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_steel_side.png rename to mods/homedecor_kitchen/textures/homedecor_oven_steel_side.png diff --git a/homedecor_kitchen/textures/homedecor_oven_steel_top.png b/mods/homedecor_kitchen/textures/homedecor_oven_steel_top.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_steel_top.png rename to mods/homedecor_kitchen/textures/homedecor_oven_steel_top.png diff --git a/homedecor_kitchen/textures/homedecor_oven_top.png b/mods/homedecor_kitchen/textures/homedecor_oven_top.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_oven_top.png rename to mods/homedecor_kitchen/textures/homedecor_oven_top.png diff --git a/homedecor_kitchen/textures/homedecor_paper_towel_inv.png b/mods/homedecor_kitchen/textures/homedecor_paper_towel_inv.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_paper_towel_inv.png rename to mods/homedecor_kitchen/textures/homedecor_paper_towel_inv.png diff --git a/homedecor_kitchen/textures/homedecor_refrigerator_steel.png b/mods/homedecor_kitchen/textures/homedecor_refrigerator_steel.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_refrigerator_steel.png rename to mods/homedecor_kitchen/textures/homedecor_refrigerator_steel.png diff --git a/homedecor_kitchen/textures/homedecor_refrigerator_steel_inv.png b/mods/homedecor_kitchen/textures/homedecor_refrigerator_steel_inv.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_refrigerator_steel_inv.png rename to mods/homedecor_kitchen/textures/homedecor_refrigerator_steel_inv.png diff --git a/homedecor_kitchen/textures/homedecor_refrigerator_white.png b/mods/homedecor_kitchen/textures/homedecor_refrigerator_white.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_refrigerator_white.png rename to mods/homedecor_kitchen/textures/homedecor_refrigerator_white.png diff --git a/homedecor_kitchen/textures/homedecor_refrigerator_white_inv.png b/mods/homedecor_kitchen/textures/homedecor_refrigerator_white_inv.png similarity index 100% rename from homedecor_kitchen/textures/homedecor_refrigerator_white_inv.png rename to mods/homedecor_kitchen/textures/homedecor_refrigerator_white_inv.png diff --git a/homedecor_laundry/.luacheckrc b/mods/homedecor_laundry/.luacheckrc similarity index 100% rename from homedecor_laundry/.luacheckrc rename to mods/homedecor_laundry/.luacheckrc diff --git a/homedecor_laundry/init.lua b/mods/homedecor_laundry/init.lua similarity index 100% rename from homedecor_laundry/init.lua rename to mods/homedecor_laundry/init.lua diff --git a/homedecor_laundry/locale/homedecor_laundry.de.tr b/mods/homedecor_laundry/locale/homedecor_laundry.de.tr similarity index 100% rename from homedecor_laundry/locale/homedecor_laundry.de.tr rename to mods/homedecor_laundry/locale/homedecor_laundry.de.tr diff --git a/homedecor_laundry/locale/homedecor_laundry.fr.tr b/mods/homedecor_laundry/locale/homedecor_laundry.fr.tr similarity index 100% rename from homedecor_laundry/locale/homedecor_laundry.fr.tr rename to mods/homedecor_laundry/locale/homedecor_laundry.fr.tr diff --git a/homedecor_laundry/locale/template.txt b/mods/homedecor_laundry/locale/template.txt similarity index 100% rename from homedecor_laundry/locale/template.txt rename to mods/homedecor_laundry/locale/template.txt diff --git a/homedecor_laundry/mod.conf b/mods/homedecor_laundry/mod.conf similarity index 100% rename from homedecor_laundry/mod.conf rename to mods/homedecor_laundry/mod.conf diff --git a/homedecor_laundry/models/homedecor_ironing_board.obj b/mods/homedecor_laundry/models/homedecor_ironing_board.obj similarity index 100% rename from homedecor_laundry/models/homedecor_ironing_board.obj rename to mods/homedecor_laundry/models/homedecor_ironing_board.obj diff --git a/homedecor_laundry/textures/homedecor_dryer_back.png b/mods/homedecor_laundry/textures/homedecor_dryer_back.png similarity index 100% rename from homedecor_laundry/textures/homedecor_dryer_back.png rename to mods/homedecor_laundry/textures/homedecor_dryer_back.png diff --git a/homedecor_laundry/textures/homedecor_dryer_bottom.png b/mods/homedecor_laundry/textures/homedecor_dryer_bottom.png similarity index 100% rename from homedecor_laundry/textures/homedecor_dryer_bottom.png rename to mods/homedecor_laundry/textures/homedecor_dryer_bottom.png diff --git a/homedecor_laundry/textures/homedecor_dryer_front.png b/mods/homedecor_laundry/textures/homedecor_dryer_front.png similarity index 100% rename from homedecor_laundry/textures/homedecor_dryer_front.png rename to mods/homedecor_laundry/textures/homedecor_dryer_front.png diff --git a/homedecor_laundry/textures/homedecor_dryer_sides.png b/mods/homedecor_laundry/textures/homedecor_dryer_sides.png similarity index 100% rename from homedecor_laundry/textures/homedecor_dryer_sides.png rename to mods/homedecor_laundry/textures/homedecor_dryer_sides.png diff --git a/homedecor_laundry/textures/homedecor_dryer_top.png b/mods/homedecor_laundry/textures/homedecor_dryer_top.png similarity index 100% rename from homedecor_laundry/textures/homedecor_dryer_top.png rename to mods/homedecor_laundry/textures/homedecor_dryer_top.png diff --git a/homedecor_laundry/textures/homedecor_washing_machine_back.png b/mods/homedecor_laundry/textures/homedecor_washing_machine_back.png similarity index 100% rename from homedecor_laundry/textures/homedecor_washing_machine_back.png rename to mods/homedecor_laundry/textures/homedecor_washing_machine_back.png diff --git a/homedecor_laundry/textures/homedecor_washing_machine_bottom.png b/mods/homedecor_laundry/textures/homedecor_washing_machine_bottom.png similarity index 100% rename from homedecor_laundry/textures/homedecor_washing_machine_bottom.png rename to mods/homedecor_laundry/textures/homedecor_washing_machine_bottom.png diff --git a/homedecor_laundry/textures/homedecor_washing_machine_front.png b/mods/homedecor_laundry/textures/homedecor_washing_machine_front.png similarity index 100% rename from homedecor_laundry/textures/homedecor_washing_machine_front.png rename to mods/homedecor_laundry/textures/homedecor_washing_machine_front.png diff --git a/homedecor_laundry/textures/homedecor_washing_machine_sides.png b/mods/homedecor_laundry/textures/homedecor_washing_machine_sides.png similarity index 100% rename from homedecor_laundry/textures/homedecor_washing_machine_sides.png rename to mods/homedecor_laundry/textures/homedecor_washing_machine_sides.png diff --git a/homedecor_laundry/textures/homedecor_washing_machine_top.png b/mods/homedecor_laundry/textures/homedecor_washing_machine_top.png similarity index 100% rename from homedecor_laundry/textures/homedecor_washing_machine_top.png rename to mods/homedecor_laundry/textures/homedecor_washing_machine_top.png diff --git a/homedecor_lighting/.luacheckrc b/mods/homedecor_lighting/.luacheckrc similarity index 100% rename from homedecor_lighting/.luacheckrc rename to mods/homedecor_lighting/.luacheckrc diff --git a/homedecor_lighting/init.lua b/mods/homedecor_lighting/init.lua similarity index 100% rename from homedecor_lighting/init.lua rename to mods/homedecor_lighting/init.lua diff --git a/homedecor_lighting/locale/homedecor_lighting.de.tr b/mods/homedecor_lighting/locale/homedecor_lighting.de.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.de.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.de.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.es.tr b/mods/homedecor_lighting/locale/homedecor_lighting.es.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.es.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.es.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.fr.tr b/mods/homedecor_lighting/locale/homedecor_lighting.fr.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.fr.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.fr.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.it.tr b/mods/homedecor_lighting/locale/homedecor_lighting.it.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.it.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.it.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.ms.tr b/mods/homedecor_lighting/locale/homedecor_lighting.ms.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.ms.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.ms.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.pt.tr b/mods/homedecor_lighting/locale/homedecor_lighting.pt.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.pt.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.pt.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.pt_BR.tr b/mods/homedecor_lighting/locale/homedecor_lighting.pt_BR.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.pt_BR.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.pt_BR.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.ru.tr b/mods/homedecor_lighting/locale/homedecor_lighting.ru.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.ru.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.ru.tr diff --git a/homedecor_lighting/locale/homedecor_lighting.zh_CN.tr b/mods/homedecor_lighting/locale/homedecor_lighting.zh_CN.tr similarity index 100% rename from homedecor_lighting/locale/homedecor_lighting.zh_CN.tr rename to mods/homedecor_lighting/locale/homedecor_lighting.zh_CN.tr diff --git a/homedecor_lighting/locale/template.txt b/mods/homedecor_lighting/locale/template.txt similarity index 100% rename from homedecor_lighting/locale/template.txt rename to mods/homedecor_lighting/locale/template.txt diff --git a/homedecor_lighting/mod.conf b/mods/homedecor_lighting/mod.conf similarity index 100% rename from homedecor_lighting/mod.conf rename to mods/homedecor_lighting/mod.conf diff --git a/homedecor_lighting/models/forniture_torch.obj b/mods/homedecor_lighting/models/forniture_torch.obj similarity index 100% rename from homedecor_lighting/models/forniture_torch.obj rename to mods/homedecor_lighting/models/forniture_torch.obj diff --git a/homedecor_lighting/models/homedecor_candle_thick.obj b/mods/homedecor_lighting/models/homedecor_candle_thick.obj similarity index 100% rename from homedecor_lighting/models/homedecor_candle_thick.obj rename to mods/homedecor_lighting/models/homedecor_candle_thick.obj diff --git a/homedecor_lighting/models/homedecor_candle_thin.obj b/mods/homedecor_lighting/models/homedecor_candle_thin.obj similarity index 100% rename from homedecor_lighting/models/homedecor_candle_thin.obj rename to mods/homedecor_lighting/models/homedecor_candle_thin.obj diff --git a/homedecor_lighting/models/homedecor_candlestick.obj b/mods/homedecor_lighting/models/homedecor_candlestick.obj similarity index 100% rename from homedecor_lighting/models/homedecor_candlestick.obj rename to mods/homedecor_lighting/models/homedecor_candlestick.obj diff --git a/homedecor_lighting/models/homedecor_ceiling_lamp.obj b/mods/homedecor_lighting/models/homedecor_ceiling_lamp.obj similarity index 100% rename from homedecor_lighting/models/homedecor_ceiling_lamp.obj rename to mods/homedecor_lighting/models/homedecor_ceiling_lamp.obj diff --git a/homedecor_lighting/models/homedecor_ceiling_lantern.obj b/mods/homedecor_lighting/models/homedecor_ceiling_lantern.obj similarity index 100% rename from homedecor_lighting/models/homedecor_ceiling_lantern.obj rename to mods/homedecor_lighting/models/homedecor_ceiling_lantern.obj diff --git a/homedecor_lighting/models/homedecor_chains_top.obj b/mods/homedecor_lighting/models/homedecor_chains_top.obj similarity index 100% rename from homedecor_lighting/models/homedecor_chains_top.obj rename to mods/homedecor_lighting/models/homedecor_chains_top.obj diff --git a/homedecor_lighting/models/homedecor_chandelier.obj b/mods/homedecor_lighting/models/homedecor_chandelier.obj similarity index 100% rename from homedecor_lighting/models/homedecor_chandelier.obj rename to mods/homedecor_lighting/models/homedecor_chandelier.obj diff --git a/homedecor_lighting/models/homedecor_desk_lamp.obj b/mods/homedecor_lighting/models/homedecor_desk_lamp.obj similarity index 100% rename from homedecor_lighting/models/homedecor_desk_lamp.obj rename to mods/homedecor_lighting/models/homedecor_desk_lamp.obj diff --git a/homedecor_lighting/models/homedecor_ground_lantern.obj b/mods/homedecor_lighting/models/homedecor_ground_lantern.obj similarity index 100% rename from homedecor_lighting/models/homedecor_ground_lantern.obj rename to mods/homedecor_lighting/models/homedecor_ground_lantern.obj diff --git a/homedecor_lighting/models/homedecor_hanging_lantern.obj b/mods/homedecor_lighting/models/homedecor_hanging_lantern.obj similarity index 100% rename from homedecor_lighting/models/homedecor_hanging_lantern.obj rename to mods/homedecor_lighting/models/homedecor_hanging_lantern.obj diff --git a/homedecor_lighting/models/homedecor_oil_lamp.obj b/mods/homedecor_lighting/models/homedecor_oil_lamp.obj similarity index 100% rename from homedecor_lighting/models/homedecor_oil_lamp.obj rename to mods/homedecor_lighting/models/homedecor_oil_lamp.obj diff --git a/homedecor_lighting/models/homedecor_oil_lamp_tabletop.obj b/mods/homedecor_lighting/models/homedecor_oil_lamp_tabletop.obj similarity index 100% rename from homedecor_lighting/models/homedecor_oil_lamp_tabletop.obj rename to mods/homedecor_lighting/models/homedecor_oil_lamp_tabletop.obj diff --git a/homedecor_lighting/models/homedecor_plasma_ball.obj b/mods/homedecor_lighting/models/homedecor_plasma_ball.obj similarity index 100% rename from homedecor_lighting/models/homedecor_plasma_ball.obj rename to mods/homedecor_lighting/models/homedecor_plasma_ball.obj diff --git a/homedecor_lighting/models/homedecor_standing_lamp.obj b/mods/homedecor_lighting/models/homedecor_standing_lamp.obj similarity index 100% rename from homedecor_lighting/models/homedecor_standing_lamp.obj rename to mods/homedecor_lighting/models/homedecor_standing_lamp.obj diff --git a/homedecor_lighting/models/homedecor_table_lamp.obj b/mods/homedecor_lighting/models/homedecor_table_lamp.obj similarity index 100% rename from homedecor_lighting/models/homedecor_table_lamp.obj rename to mods/homedecor_lighting/models/homedecor_table_lamp.obj diff --git a/homedecor_lighting/models/homedecor_wall_lamp.obj b/mods/homedecor_lighting/models/homedecor_wall_lamp.obj similarity index 100% rename from homedecor_lighting/models/homedecor_wall_lamp.obj rename to mods/homedecor_lighting/models/homedecor_wall_lamp.obj diff --git a/homedecor_lighting/models/homedecor_wall_sconce.obj b/mods/homedecor_lighting/models/homedecor_wall_sconce.obj similarity index 100% rename from homedecor_lighting/models/homedecor_wall_sconce.obj rename to mods/homedecor_lighting/models/homedecor_wall_sconce.obj diff --git a/homedecor_lighting/models/plasma_lamp.obj b/mods/homedecor_lighting/models/plasma_lamp.obj similarity index 100% rename from homedecor_lighting/models/plasma_lamp.obj rename to mods/homedecor_lighting/models/plasma_lamp.obj diff --git a/homedecor_lighting/textures/forniture_torch_flame.png b/mods/homedecor_lighting/textures/forniture_torch_flame.png similarity index 100% rename from homedecor_lighting/textures/forniture_torch_flame.png rename to mods/homedecor_lighting/textures/forniture_torch_flame.png diff --git a/homedecor_lighting/textures/forniture_torch_inv.png b/mods/homedecor_lighting/textures/forniture_torch_inv.png similarity index 100% rename from homedecor_lighting/textures/forniture_torch_inv.png rename to mods/homedecor_lighting/textures/forniture_torch_inv.png diff --git a/homedecor_lighting/textures/homedecor_candle_flame.png b/mods/homedecor_lighting/textures/homedecor_candle_flame.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candle_flame.png rename to mods/homedecor_lighting/textures/homedecor_candle_flame.png diff --git a/homedecor_lighting/textures/homedecor_candle_flat.png b/mods/homedecor_lighting/textures/homedecor_candle_flat.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candle_flat.png rename to mods/homedecor_lighting/textures/homedecor_candle_flat.png diff --git a/homedecor_lighting/textures/homedecor_candle_inv.png b/mods/homedecor_lighting/textures/homedecor_candle_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candle_inv.png rename to mods/homedecor_lighting/textures/homedecor_candle_inv.png diff --git a/homedecor_lighting/textures/homedecor_candle_sides.png b/mods/homedecor_lighting/textures/homedecor_candle_sides.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candle_sides.png rename to mods/homedecor_lighting/textures/homedecor_candle_sides.png diff --git a/homedecor_lighting/textures/homedecor_candle_thin_inv.png b/mods/homedecor_lighting/textures/homedecor_candle_thin_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candle_thin_inv.png rename to mods/homedecor_lighting/textures/homedecor_candle_thin_inv.png diff --git a/homedecor_lighting/textures/homedecor_candlestick_brass_inv.png b/mods/homedecor_lighting/textures/homedecor_candlestick_brass_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candlestick_brass_inv.png rename to mods/homedecor_lighting/textures/homedecor_candlestick_brass_inv.png diff --git a/homedecor_lighting/textures/homedecor_candlestick_wrought_iron_inv.png b/mods/homedecor_lighting/textures/homedecor_candlestick_wrought_iron_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_candlestick_wrought_iron_inv.png rename to mods/homedecor_lighting/textures/homedecor_candlestick_wrought_iron_inv.png diff --git a/homedecor_lighting/textures/homedecor_ceiling_lamp_glass.png b/mods/homedecor_lighting/textures/homedecor_ceiling_lamp_glass.png similarity index 100% rename from homedecor_lighting/textures/homedecor_ceiling_lamp_glass.png rename to mods/homedecor_lighting/textures/homedecor_ceiling_lamp_glass.png diff --git a/homedecor_lighting/textures/homedecor_ceiling_lamp_inv.png b/mods/homedecor_lighting/textures/homedecor_ceiling_lamp_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_ceiling_lamp_inv.png rename to mods/homedecor_lighting/textures/homedecor_ceiling_lamp_inv.png diff --git a/homedecor_lighting/textures/homedecor_ceiling_lantern_inv.png b/mods/homedecor_lighting/textures/homedecor_ceiling_lantern_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_ceiling_lantern_inv.png rename to mods/homedecor_lighting/textures/homedecor_ceiling_lantern_inv.png diff --git a/homedecor_lighting/textures/homedecor_desk_lamp_inv.png b/mods/homedecor_lighting/textures/homedecor_desk_lamp_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_desk_lamp_inv.png rename to mods/homedecor_lighting/textures/homedecor_desk_lamp_inv.png diff --git a/homedecor_lighting/textures/homedecor_generic_light_source_off.png b/mods/homedecor_lighting/textures/homedecor_generic_light_source_off.png similarity index 100% rename from homedecor_lighting/textures/homedecor_generic_light_source_off.png rename to mods/homedecor_lighting/textures/homedecor_generic_light_source_off.png diff --git a/homedecor_lighting/textures/homedecor_generic_light_source_white.png b/mods/homedecor_lighting/textures/homedecor_generic_light_source_white.png similarity index 100% rename from homedecor_lighting/textures/homedecor_generic_light_source_white.png rename to mods/homedecor_lighting/textures/homedecor_generic_light_source_white.png diff --git a/homedecor_lighting/textures/homedecor_generic_light_source_yellow.png b/mods/homedecor_lighting/textures/homedecor_generic_light_source_yellow.png similarity index 100% rename from homedecor_lighting/textures/homedecor_generic_light_source_yellow.png rename to mods/homedecor_lighting/textures/homedecor_generic_light_source_yellow.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_base.png b/mods/homedecor_lighting/textures/homedecor_glowlight_base.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_base.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_base.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_cube_sides_edges.png b/mods/homedecor_lighting/textures/homedecor_glowlight_cube_sides_edges.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_cube_sides_edges.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_cube_sides_edges.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_cube_sides_glare.png b/mods/homedecor_lighting/textures/homedecor_glowlight_cube_sides_glare.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_cube_sides_glare.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_cube_sides_glare.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_cube_tb_edges.png b/mods/homedecor_lighting/textures/homedecor_glowlight_cube_tb_edges.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_cube_tb_edges.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_cube_tb_edges.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_cube_top_glare.png b/mods/homedecor_lighting/textures/homedecor_glowlight_cube_top_glare.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_cube_top_glare.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_cube_top_glare.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_tb_edges.png b/mods/homedecor_lighting/textures/homedecor_glowlight_tb_edges.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_tb_edges.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_tb_edges.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_thick_sides_edges.png b/mods/homedecor_lighting/textures/homedecor_glowlight_thick_sides_edges.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_thick_sides_edges.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_thick_sides_edges.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_thick_sides_glare.png b/mods/homedecor_lighting/textures/homedecor_glowlight_thick_sides_glare.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_thick_sides_glare.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_thick_sides_glare.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_thin_sides_edges.png b/mods/homedecor_lighting/textures/homedecor_glowlight_thin_sides_edges.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_thin_sides_edges.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_thin_sides_edges.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_thin_sides_glare.png b/mods/homedecor_lighting/textures/homedecor_glowlight_thin_sides_glare.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_thin_sides_glare.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_thin_sides_glare.png diff --git a/homedecor_lighting/textures/homedecor_glowlight_top_glare.png b/mods/homedecor_lighting/textures/homedecor_glowlight_top_glare.png similarity index 100% rename from homedecor_lighting/textures/homedecor_glowlight_top_glare.png rename to mods/homedecor_lighting/textures/homedecor_glowlight_top_glare.png diff --git a/homedecor_lighting/textures/homedecor_ground_lantern_inv.png b/mods/homedecor_lighting/textures/homedecor_ground_lantern_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_ground_lantern_inv.png rename to mods/homedecor_lighting/textures/homedecor_ground_lantern_inv.png diff --git a/homedecor_lighting/textures/homedecor_hanging_lantern_inv.png b/mods/homedecor_lighting/textures/homedecor_hanging_lantern_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_hanging_lantern_inv.png rename to mods/homedecor_lighting/textures/homedecor_hanging_lantern_inv.png diff --git a/homedecor_lighting/textures/homedecor_lattice_lantern_large_light.png b/mods/homedecor_lighting/textures/homedecor_lattice_lantern_large_light.png similarity index 100% rename from homedecor_lighting/textures/homedecor_lattice_lantern_large_light.png rename to mods/homedecor_lighting/textures/homedecor_lattice_lantern_large_light.png diff --git a/homedecor_lighting/textures/homedecor_lattice_lantern_large_overlay.png b/mods/homedecor_lighting/textures/homedecor_lattice_lantern_large_overlay.png similarity index 100% rename from homedecor_lighting/textures/homedecor_lattice_lantern_large_overlay.png rename to mods/homedecor_lighting/textures/homedecor_lattice_lantern_large_overlay.png diff --git a/homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_light.png b/mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_light.png similarity index 100% rename from homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_light.png rename to mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_light.png diff --git a/homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_overlay.png b/mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_overlay.png similarity index 100% rename from homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_overlay.png rename to mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_sides_overlay.png diff --git a/homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_light.png b/mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_light.png similarity index 100% rename from homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_light.png rename to mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_light.png diff --git a/homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_overlay.png b/mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_overlay.png similarity index 100% rename from homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_overlay.png rename to mods/homedecor_lighting/textures/homedecor_lattice_lantern_small_tb_overlay.png diff --git a/homedecor_lighting/textures/homedecor_oil_lamp_glass.png b/mods/homedecor_lighting/textures/homedecor_oil_lamp_glass.png similarity index 100% rename from homedecor_lighting/textures/homedecor_oil_lamp_glass.png rename to mods/homedecor_lighting/textures/homedecor_oil_lamp_glass.png diff --git a/homedecor_lighting/textures/homedecor_oil_lamp_inv.png b/mods/homedecor_lighting/textures/homedecor_oil_lamp_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_oil_lamp_inv.png rename to mods/homedecor_lighting/textures/homedecor_oil_lamp_inv.png diff --git a/homedecor_lighting/textures/homedecor_oil_lamp_tabletop.png b/mods/homedecor_lighting/textures/homedecor_oil_lamp_tabletop.png similarity index 100% rename from homedecor_lighting/textures/homedecor_oil_lamp_tabletop.png rename to mods/homedecor_lighting/textures/homedecor_oil_lamp_tabletop.png diff --git a/homedecor_lighting/textures/homedecor_oil_lamp_tabletop_inv.png b/mods/homedecor_lighting/textures/homedecor_oil_lamp_tabletop_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_oil_lamp_tabletop_inv.png rename to mods/homedecor_lighting/textures/homedecor_oil_lamp_tabletop_inv.png diff --git a/homedecor_lighting/textures/homedecor_oil_lamp_wick.png b/mods/homedecor_lighting/textures/homedecor_oil_lamp_wick.png similarity index 100% rename from homedecor_lighting/textures/homedecor_oil_lamp_wick.png rename to mods/homedecor_lighting/textures/homedecor_oil_lamp_wick.png diff --git a/homedecor_lighting/textures/homedecor_plasma_ball_glass.png b/mods/homedecor_lighting/textures/homedecor_plasma_ball_glass.png similarity index 100% rename from homedecor_lighting/textures/homedecor_plasma_ball_glass.png rename to mods/homedecor_lighting/textures/homedecor_plasma_ball_glass.png diff --git a/homedecor_lighting/textures/homedecor_plasma_ball_inv.png b/mods/homedecor_lighting/textures/homedecor_plasma_ball_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_plasma_ball_inv.png rename to mods/homedecor_lighting/textures/homedecor_plasma_ball_inv.png diff --git a/homedecor_lighting/textures/homedecor_plasma_ball_streamers.png b/mods/homedecor_lighting/textures/homedecor_plasma_ball_streamers.png similarity index 100% rename from homedecor_lighting/textures/homedecor_plasma_ball_streamers.png rename to mods/homedecor_lighting/textures/homedecor_plasma_ball_streamers.png diff --git a/homedecor_lighting/textures/homedecor_plasma_lamp_off.png b/mods/homedecor_lighting/textures/homedecor_plasma_lamp_off.png similarity index 100% rename from homedecor_lighting/textures/homedecor_plasma_lamp_off.png rename to mods/homedecor_lighting/textures/homedecor_plasma_lamp_off.png diff --git a/homedecor_lighting/textures/homedecor_plasma_storm.png b/mods/homedecor_lighting/textures/homedecor_plasma_storm.png similarity index 100% rename from homedecor_lighting/textures/homedecor_plasma_storm.png rename to mods/homedecor_lighting/textures/homedecor_plasma_storm.png diff --git a/homedecor_lighting/textures/homedecor_rope_light_on_ceiling.png b/mods/homedecor_lighting/textures/homedecor_rope_light_on_ceiling.png similarity index 100% rename from homedecor_lighting/textures/homedecor_rope_light_on_ceiling.png rename to mods/homedecor_lighting/textures/homedecor_rope_light_on_ceiling.png diff --git a/homedecor_lighting/textures/homedecor_rope_light_on_floor.png b/mods/homedecor_lighting/textures/homedecor_rope_light_on_floor.png similarity index 100% rename from homedecor_lighting/textures/homedecor_rope_light_on_floor.png rename to mods/homedecor_lighting/textures/homedecor_rope_light_on_floor.png diff --git a/homedecor_lighting/textures/homedecor_standing_lamp_foot_inv.png b/mods/homedecor_lighting/textures/homedecor_standing_lamp_foot_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_standing_lamp_foot_inv.png rename to mods/homedecor_lighting/textures/homedecor_standing_lamp_foot_inv.png diff --git a/homedecor_lighting/textures/homedecor_standing_lamp_top_inv.png b/mods/homedecor_lighting/textures/homedecor_standing_lamp_top_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_standing_lamp_top_inv.png rename to mods/homedecor_lighting/textures/homedecor_standing_lamp_top_inv.png diff --git a/homedecor_lighting/textures/homedecor_table_lamp_foot_inv.png b/mods/homedecor_lighting/textures/homedecor_table_lamp_foot_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_table_lamp_foot_inv.png rename to mods/homedecor_lighting/textures/homedecor_table_lamp_foot_inv.png diff --git a/homedecor_lighting/textures/homedecor_table_lamp_top_inv.png b/mods/homedecor_lighting/textures/homedecor_table_lamp_top_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_table_lamp_top_inv.png rename to mods/homedecor_lighting/textures/homedecor_table_lamp_top_inv.png diff --git a/homedecor_lighting/textures/homedecor_wall_lamp_inv.png b/mods/homedecor_lighting/textures/homedecor_wall_lamp_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_wall_lamp_inv.png rename to mods/homedecor_lighting/textures/homedecor_wall_lamp_inv.png diff --git a/homedecor_lighting/textures/homedecor_wall_sconce_back.png b/mods/homedecor_lighting/textures/homedecor_wall_sconce_back.png similarity index 100% rename from homedecor_lighting/textures/homedecor_wall_sconce_back.png rename to mods/homedecor_lighting/textures/homedecor_wall_sconce_back.png diff --git a/homedecor_lighting/textures/homedecor_wall_sconce_inv.png b/mods/homedecor_lighting/textures/homedecor_wall_sconce_inv.png similarity index 100% rename from homedecor_lighting/textures/homedecor_wall_sconce_inv.png rename to mods/homedecor_lighting/textures/homedecor_wall_sconce_inv.png diff --git a/homedecor_misc/.luacheckrc b/mods/homedecor_misc/.luacheckrc similarity index 100% rename from homedecor_misc/.luacheckrc rename to mods/homedecor_misc/.luacheckrc diff --git a/homedecor_misc/init.lua b/mods/homedecor_misc/init.lua similarity index 100% rename from homedecor_misc/init.lua rename to mods/homedecor_misc/init.lua diff --git a/homedecor_misc/locale/homedecor_misc.de.tr b/mods/homedecor_misc/locale/homedecor_misc.de.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.de.tr rename to mods/homedecor_misc/locale/homedecor_misc.de.tr diff --git a/homedecor_misc/locale/homedecor_misc.es.tr b/mods/homedecor_misc/locale/homedecor_misc.es.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.es.tr rename to mods/homedecor_misc/locale/homedecor_misc.es.tr diff --git a/homedecor_misc/locale/homedecor_misc.fr.tr b/mods/homedecor_misc/locale/homedecor_misc.fr.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.fr.tr rename to mods/homedecor_misc/locale/homedecor_misc.fr.tr diff --git a/homedecor_misc/locale/homedecor_misc.it.tr b/mods/homedecor_misc/locale/homedecor_misc.it.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.it.tr rename to mods/homedecor_misc/locale/homedecor_misc.it.tr diff --git a/homedecor_misc/locale/homedecor_misc.ms.tr b/mods/homedecor_misc/locale/homedecor_misc.ms.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.ms.tr rename to mods/homedecor_misc/locale/homedecor_misc.ms.tr diff --git a/homedecor_misc/locale/homedecor_misc.pt.tr b/mods/homedecor_misc/locale/homedecor_misc.pt.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.pt.tr rename to mods/homedecor_misc/locale/homedecor_misc.pt.tr diff --git a/homedecor_misc/locale/homedecor_misc.pt_BR.tr b/mods/homedecor_misc/locale/homedecor_misc.pt_BR.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.pt_BR.tr rename to mods/homedecor_misc/locale/homedecor_misc.pt_BR.tr diff --git a/homedecor_misc/locale/homedecor_misc.ru.tr b/mods/homedecor_misc/locale/homedecor_misc.ru.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.ru.tr rename to mods/homedecor_misc/locale/homedecor_misc.ru.tr diff --git a/homedecor_misc/locale/homedecor_misc.zh_CN.tr b/mods/homedecor_misc/locale/homedecor_misc.zh_CN.tr similarity index 100% rename from homedecor_misc/locale/homedecor_misc.zh_CN.tr rename to mods/homedecor_misc/locale/homedecor_misc.zh_CN.tr diff --git a/homedecor_misc/locale/template.txt b/mods/homedecor_misc/locale/template.txt similarity index 100% rename from homedecor_misc/locale/template.txt rename to mods/homedecor_misc/locale/template.txt diff --git a/homedecor_misc/mod.conf b/mods/homedecor_misc/mod.conf similarity index 100% rename from homedecor_misc/mod.conf rename to mods/homedecor_misc/mod.conf diff --git a/homedecor_misc/models/homedecor_banister_diagonal_left.obj b/mods/homedecor_misc/models/homedecor_banister_diagonal_left.obj similarity index 100% rename from homedecor_misc/models/homedecor_banister_diagonal_left.obj rename to mods/homedecor_misc/models/homedecor_banister_diagonal_left.obj diff --git a/homedecor_misc/models/homedecor_banister_diagonal_right.obj b/mods/homedecor_misc/models/homedecor_banister_diagonal_right.obj similarity index 100% rename from homedecor_misc/models/homedecor_banister_diagonal_right.obj rename to mods/homedecor_misc/models/homedecor_banister_diagonal_right.obj diff --git a/homedecor_misc/models/homedecor_banister_horizontal.obj b/mods/homedecor_misc/models/homedecor_banister_horizontal.obj similarity index 100% rename from homedecor_misc/models/homedecor_banister_horizontal.obj rename to mods/homedecor_misc/models/homedecor_banister_horizontal.obj diff --git a/homedecor_misc/models/homedecor_dartboard.obj b/mods/homedecor_misc/models/homedecor_dartboard.obj similarity index 100% rename from homedecor_misc/models/homedecor_dartboard.obj rename to mods/homedecor_misc/models/homedecor_dartboard.obj diff --git a/homedecor_misc/models/homedecor_dvd_cabinet.obj b/mods/homedecor_misc/models/homedecor_dvd_cabinet.obj similarity index 100% rename from homedecor_misc/models/homedecor_dvd_cabinet.obj rename to mods/homedecor_misc/models/homedecor_dvd_cabinet.obj diff --git a/homedecor_misc/models/homedecor_fishtank.obj b/mods/homedecor_misc/models/homedecor_fishtank.obj similarity index 100% rename from homedecor_misc/models/homedecor_fishtank.obj rename to mods/homedecor_misc/models/homedecor_fishtank.obj diff --git a/homedecor_misc/models/homedecor_flowerpot.obj b/mods/homedecor_misc/models/homedecor_flowerpot.obj similarity index 100% rename from homedecor_misc/models/homedecor_flowerpot.obj rename to mods/homedecor_misc/models/homedecor_flowerpot.obj diff --git a/homedecor_misc/models/homedecor_piano.obj b/mods/homedecor_misc/models/homedecor_piano.obj similarity index 100% rename from homedecor_misc/models/homedecor_piano.obj rename to mods/homedecor_misc/models/homedecor_piano.obj diff --git a/homedecor_misc/models/homedecor_pool_table.obj b/mods/homedecor_misc/models/homedecor_pool_table.obj similarity index 100% rename from homedecor_misc/models/homedecor_pool_table.obj rename to mods/homedecor_misc/models/homedecor_pool_table.obj diff --git a/homedecor_misc/models/homedecor_potted_plant.obj b/mods/homedecor_misc/models/homedecor_potted_plant.obj similarity index 100% rename from homedecor_misc/models/homedecor_potted_plant.obj rename to mods/homedecor_misc/models/homedecor_potted_plant.obj diff --git a/homedecor_misc/models/homedecor_round_pole.obj b/mods/homedecor_misc/models/homedecor_round_pole.obj similarity index 100% rename from homedecor_misc/models/homedecor_round_pole.obj rename to mods/homedecor_misc/models/homedecor_round_pole.obj diff --git a/homedecor_misc/models/homedecor_skateboard.obj b/mods/homedecor_misc/models/homedecor_skateboard.obj similarity index 100% rename from homedecor_misc/models/homedecor_skateboard.obj rename to mods/homedecor_misc/models/homedecor_skateboard.obj diff --git a/homedecor_misc/models/homedecor_small_rug.obj b/mods/homedecor_misc/models/homedecor_small_rug.obj similarity index 100% rename from homedecor_misc/models/homedecor_small_rug.obj rename to mods/homedecor_misc/models/homedecor_small_rug.obj diff --git a/homedecor_misc/models/homedecor_spiral_staircase.obj b/mods/homedecor_misc/models/homedecor_spiral_staircase.obj similarity index 100% rename from homedecor_misc/models/homedecor_spiral_staircase.obj rename to mods/homedecor_misc/models/homedecor_spiral_staircase.obj diff --git a/homedecor_misc/models/homedecor_sport_bench.obj b/mods/homedecor_misc/models/homedecor_sport_bench.obj similarity index 100% rename from homedecor_misc/models/homedecor_sport_bench.obj rename to mods/homedecor_misc/models/homedecor_sport_bench.obj diff --git a/homedecor_misc/models/homedecor_tool_cabinet.obj b/mods/homedecor_misc/models/homedecor_tool_cabinet.obj similarity index 100% rename from homedecor_misc/models/homedecor_tool_cabinet.obj rename to mods/homedecor_misc/models/homedecor_tool_cabinet.obj diff --git a/homedecor_misc/models/homedecor_trophy.obj b/mods/homedecor_misc/models/homedecor_trophy.obj similarity index 100% rename from homedecor_misc/models/homedecor_trophy.obj rename to mods/homedecor_misc/models/homedecor_trophy.obj diff --git a/homedecor_misc/models/homedecor_wall_japanese_bottom.obj b/mods/homedecor_misc/models/homedecor_wall_japanese_bottom.obj similarity index 100% rename from homedecor_misc/models/homedecor_wall_japanese_bottom.obj rename to mods/homedecor_misc/models/homedecor_wall_japanese_bottom.obj diff --git a/homedecor_misc/models/homedecor_wall_japanese_middle.obj b/mods/homedecor_misc/models/homedecor_wall_japanese_middle.obj similarity index 100% rename from homedecor_misc/models/homedecor_wall_japanese_middle.obj rename to mods/homedecor_misc/models/homedecor_wall_japanese_middle.obj diff --git a/homedecor_misc/models/homedecor_wall_japanese_top.obj b/mods/homedecor_misc/models/homedecor_wall_japanese_top.obj similarity index 100% rename from homedecor_misc/models/homedecor_wall_japanese_top.obj rename to mods/homedecor_misc/models/homedecor_wall_japanese_top.obj diff --git a/homedecor_misc/textures/flowers_bonsai.png b/mods/homedecor_misc/textures/flowers_bonsai.png similarity index 100% rename from homedecor_misc/textures/flowers_bonsai.png rename to mods/homedecor_misc/textures/flowers_bonsai.png diff --git a/homedecor_misc/textures/flowers_cactus.png b/mods/homedecor_misc/textures/flowers_cactus.png similarity index 100% rename from homedecor_misc/textures/flowers_cactus.png rename to mods/homedecor_misc/textures/flowers_cactus.png diff --git a/homedecor_misc/textures/homedecor_banister_brass_inv.png b/mods/homedecor_misc/textures/homedecor_banister_brass_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_banister_brass_inv.png rename to mods/homedecor_misc/textures/homedecor_banister_brass_inv.png diff --git a/homedecor_misc/textures/homedecor_banister_white_dark_inv.png b/mods/homedecor_misc/textures/homedecor_banister_white_dark_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_banister_white_dark_inv.png rename to mods/homedecor_misc/textures/homedecor_banister_white_dark_inv.png diff --git a/homedecor_misc/textures/homedecor_banister_wood_colored_inv.png b/mods/homedecor_misc/textures/homedecor_banister_wood_colored_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_banister_wood_colored_inv.png rename to mods/homedecor_misc/textures/homedecor_banister_wood_colored_inv.png diff --git a/homedecor_misc/textures/homedecor_banister_wood_inv.png b/mods/homedecor_misc/textures/homedecor_banister_wood_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_banister_wood_inv.png rename to mods/homedecor_misc/textures/homedecor_banister_wood_inv.png diff --git a/homedecor_misc/textures/homedecor_banister_wrought_iron_inv.png b/mods/homedecor_misc/textures/homedecor_banister_wrought_iron_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_banister_wrought_iron_inv.png rename to mods/homedecor_misc/textures/homedecor_banister_wrought_iron_inv.png diff --git a/homedecor_misc/textures/homedecor_cardbox_big_sides.png b/mods/homedecor_misc/textures/homedecor_cardbox_big_sides.png similarity index 100% rename from homedecor_misc/textures/homedecor_cardbox_big_sides.png rename to mods/homedecor_misc/textures/homedecor_cardbox_big_sides.png diff --git a/homedecor_misc/textures/homedecor_cardbox_big_tb.png b/mods/homedecor_misc/textures/homedecor_cardbox_big_tb.png similarity index 100% rename from homedecor_misc/textures/homedecor_cardbox_big_tb.png rename to mods/homedecor_misc/textures/homedecor_cardbox_big_tb.png diff --git a/homedecor_misc/textures/homedecor_cardbox_sides.png b/mods/homedecor_misc/textures/homedecor_cardbox_sides.png similarity index 100% rename from homedecor_misc/textures/homedecor_cardbox_sides.png rename to mods/homedecor_misc/textures/homedecor_cardbox_sides.png diff --git a/homedecor_misc/textures/homedecor_cardbox_tb.png b/mods/homedecor_misc/textures/homedecor_cardbox_tb.png similarity index 100% rename from homedecor_misc/textures/homedecor_cardbox_tb.png rename to mods/homedecor_misc/textures/homedecor_cardbox_tb.png diff --git a/homedecor_misc/textures/homedecor_ceiling_paint.png b/mods/homedecor_misc/textures/homedecor_ceiling_paint.png similarity index 100% rename from homedecor_misc/textures/homedecor_ceiling_paint.png rename to mods/homedecor_misc/textures/homedecor_ceiling_paint.png diff --git a/homedecor_misc/textures/homedecor_ceiling_paint_roller.png b/mods/homedecor_misc/textures/homedecor_ceiling_paint_roller.png similarity index 100% rename from homedecor_misc/textures/homedecor_ceiling_paint_roller.png rename to mods/homedecor_misc/textures/homedecor_ceiling_paint_roller.png diff --git a/homedecor_misc/textures/homedecor_ceiling_tile.png b/mods/homedecor_misc/textures/homedecor_ceiling_tile.png similarity index 100% rename from homedecor_misc/textures/homedecor_ceiling_tile.png rename to mods/homedecor_misc/textures/homedecor_ceiling_tile.png diff --git a/homedecor_misc/textures/homedecor_dartboard.png b/mods/homedecor_misc/textures/homedecor_dartboard.png similarity index 100% rename from homedecor_misc/textures/homedecor_dartboard.png rename to mods/homedecor_misc/textures/homedecor_dartboard.png diff --git a/homedecor_misc/textures/homedecor_dartboard_inv.png b/mods/homedecor_misc/textures/homedecor_dartboard_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_dartboard_inv.png rename to mods/homedecor_misc/textures/homedecor_dartboard_inv.png diff --git a/homedecor_misc/textures/homedecor_dvdcd_cabinet_back.png b/mods/homedecor_misc/textures/homedecor_dvdcd_cabinet_back.png similarity index 100% rename from homedecor_misc/textures/homedecor_dvdcd_cabinet_back.png rename to mods/homedecor_misc/textures/homedecor_dvdcd_cabinet_back.png diff --git a/homedecor_misc/textures/homedecor_dvdcd_cabinet_front.png b/mods/homedecor_misc/textures/homedecor_dvdcd_cabinet_front.png similarity index 100% rename from homedecor_misc/textures/homedecor_dvdcd_cabinet_front.png rename to mods/homedecor_misc/textures/homedecor_dvdcd_cabinet_front.png diff --git a/homedecor_misc/textures/homedecor_fishtank_filter.png b/mods/homedecor_misc/textures/homedecor_fishtank_filter.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_filter.png rename to mods/homedecor_misc/textures/homedecor_fishtank_filter.png diff --git a/homedecor_misc/textures/homedecor_fishtank_fishes.png b/mods/homedecor_misc/textures/homedecor_fishtank_fishes.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_fishes.png rename to mods/homedecor_misc/textures/homedecor_fishtank_fishes.png diff --git a/homedecor_misc/textures/homedecor_fishtank_fishes_lighted.png b/mods/homedecor_misc/textures/homedecor_fishtank_fishes_lighted.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_fishes_lighted.png rename to mods/homedecor_misc/textures/homedecor_fishtank_fishes_lighted.png diff --git a/homedecor_misc/textures/homedecor_fishtank_gravel.png b/mods/homedecor_misc/textures/homedecor_fishtank_gravel.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_gravel.png rename to mods/homedecor_misc/textures/homedecor_fishtank_gravel.png diff --git a/homedecor_misc/textures/homedecor_fishtank_gravel_lighted.png b/mods/homedecor_misc/textures/homedecor_fishtank_gravel_lighted.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_gravel_lighted.png rename to mods/homedecor_misc/textures/homedecor_fishtank_gravel_lighted.png diff --git a/homedecor_misc/textures/homedecor_fishtank_sides.png b/mods/homedecor_misc/textures/homedecor_fishtank_sides.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_sides.png rename to mods/homedecor_misc/textures/homedecor_fishtank_sides.png diff --git a/homedecor_misc/textures/homedecor_fishtank_sides_lighted.png b/mods/homedecor_misc/textures/homedecor_fishtank_sides_lighted.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_sides_lighted.png rename to mods/homedecor_misc/textures/homedecor_fishtank_sides_lighted.png diff --git a/homedecor_misc/textures/homedecor_fishtank_water_top.png b/mods/homedecor_misc/textures/homedecor_fishtank_water_top.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_water_top.png rename to mods/homedecor_misc/textures/homedecor_fishtank_water_top.png diff --git a/homedecor_misc/textures/homedecor_fishtank_water_top_lighted.png b/mods/homedecor_misc/textures/homedecor_fishtank_water_top_lighted.png similarity index 100% rename from homedecor_misc/textures/homedecor_fishtank_water_top_lighted.png rename to mods/homedecor_misc/textures/homedecor_fishtank_water_top_lighted.png diff --git a/homedecor_misc/textures/homedecor_flower_pot_black.png b/mods/homedecor_misc/textures/homedecor_flower_pot_black.png similarity index 100% rename from homedecor_misc/textures/homedecor_flower_pot_black.png rename to mods/homedecor_misc/textures/homedecor_flower_pot_black.png diff --git a/homedecor_misc/textures/homedecor_flower_pot_green.png b/mods/homedecor_misc/textures/homedecor_flower_pot_green.png similarity index 100% rename from homedecor_misc/textures/homedecor_flower_pot_green.png rename to mods/homedecor_misc/textures/homedecor_flower_pot_green.png diff --git a/homedecor_misc/textures/homedecor_flower_pot_terracotta.png b/mods/homedecor_misc/textures/homedecor_flower_pot_terracotta.png similarity index 100% rename from homedecor_misc/textures/homedecor_flower_pot_terracotta.png rename to mods/homedecor_misc/textures/homedecor_flower_pot_terracotta.png diff --git a/homedecor_misc/textures/homedecor_flowerpot_small_inv.png b/mods/homedecor_misc/textures/homedecor_flowerpot_small_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_flowerpot_small_inv.png rename to mods/homedecor_misc/textures/homedecor_flowerpot_small_inv.png diff --git a/homedecor_misc/textures/homedecor_piano_inv.png b/mods/homedecor_misc/textures/homedecor_piano_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_piano_inv.png rename to mods/homedecor_misc/textures/homedecor_piano_inv.png diff --git a/homedecor_misc/textures/homedecor_piano_keys.png b/mods/homedecor_misc/textures/homedecor_piano_keys.png similarity index 100% rename from homedecor_misc/textures/homedecor_piano_keys.png rename to mods/homedecor_misc/textures/homedecor_piano_keys.png diff --git a/homedecor_misc/textures/homedecor_pole_brass_inv.png b/mods/homedecor_misc/textures/homedecor_pole_brass_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_pole_brass_inv.png rename to mods/homedecor_misc/textures/homedecor_pole_brass_inv.png diff --git a/homedecor_misc/textures/homedecor_pole_wrought_iron_inv.png b/mods/homedecor_misc/textures/homedecor_pole_wrought_iron_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_pole_wrought_iron_inv.png rename to mods/homedecor_misc/textures/homedecor_pole_wrought_iron_inv.png diff --git a/homedecor_misc/textures/homedecor_pool_table_baize.png b/mods/homedecor_misc/textures/homedecor_pool_table_baize.png similarity index 100% rename from homedecor_misc/textures/homedecor_pool_table_baize.png rename to mods/homedecor_misc/textures/homedecor_pool_table_baize.png diff --git a/homedecor_misc/textures/homedecor_pool_table_balls.png b/mods/homedecor_misc/textures/homedecor_pool_table_balls.png similarity index 100% rename from homedecor_misc/textures/homedecor_pool_table_balls.png rename to mods/homedecor_misc/textures/homedecor_pool_table_balls.png diff --git a/homedecor_misc/textures/homedecor_pool_table_cue.png b/mods/homedecor_misc/textures/homedecor_pool_table_cue.png similarity index 100% rename from homedecor_misc/textures/homedecor_pool_table_cue.png rename to mods/homedecor_misc/textures/homedecor_pool_table_cue.png diff --git a/homedecor_misc/textures/homedecor_pool_table_inv.png b/mods/homedecor_misc/textures/homedecor_pool_table_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_pool_table_inv.png rename to mods/homedecor_misc/textures/homedecor_pool_table_inv.png diff --git a/homedecor_misc/textures/homedecor_pool_table_pockets.png b/mods/homedecor_misc/textures/homedecor_pool_table_pockets.png similarity index 100% rename from homedecor_misc/textures/homedecor_pool_table_pockets.png rename to mods/homedecor_misc/textures/homedecor_pool_table_pockets.png diff --git a/homedecor_misc/textures/homedecor_rug_large.png b/mods/homedecor_misc/textures/homedecor_rug_large.png similarity index 100% rename from homedecor_misc/textures/homedecor_rug_large.png rename to mods/homedecor_misc/textures/homedecor_rug_large.png diff --git a/homedecor_misc/textures/homedecor_rug_persian.png b/mods/homedecor_misc/textures/homedecor_rug_persian.png similarity index 100% rename from homedecor_misc/textures/homedecor_rug_persian.png rename to mods/homedecor_misc/textures/homedecor_rug_persian.png diff --git a/homedecor_misc/textures/homedecor_rug_small.png b/mods/homedecor_misc/textures/homedecor_rug_small.png similarity index 100% rename from homedecor_misc/textures/homedecor_rug_small.png rename to mods/homedecor_misc/textures/homedecor_rug_small.png diff --git a/homedecor_misc/textures/homedecor_skateboard.png b/mods/homedecor_misc/textures/homedecor_skateboard.png similarity index 100% rename from homedecor_misc/textures/homedecor_skateboard.png rename to mods/homedecor_misc/textures/homedecor_skateboard.png diff --git a/homedecor_misc/textures/homedecor_skateboard_inv.png b/mods/homedecor_misc/textures/homedecor_skateboard_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_skateboard_inv.png rename to mods/homedecor_misc/textures/homedecor_skateboard_inv.png diff --git a/homedecor_misc/textures/homedecor_sport_bench_inv.png b/mods/homedecor_misc/textures/homedecor_sport_bench_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_sport_bench_inv.png rename to mods/homedecor_misc/textures/homedecor_sport_bench_inv.png diff --git a/homedecor_misc/textures/homedecor_tatami.png b/mods/homedecor_misc/textures/homedecor_tatami.png similarity index 100% rename from homedecor_misc/textures/homedecor_tatami.png rename to mods/homedecor_misc/textures/homedecor_tatami.png diff --git a/homedecor_misc/textures/homedecor_tool_cabinet_drawers.png b/mods/homedecor_misc/textures/homedecor_tool_cabinet_drawers.png similarity index 100% rename from homedecor_misc/textures/homedecor_tool_cabinet_drawers.png rename to mods/homedecor_misc/textures/homedecor_tool_cabinet_drawers.png diff --git a/homedecor_misc/textures/homedecor_tool_cabinet_inv.png b/mods/homedecor_misc/textures/homedecor_tool_cabinet_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_tool_cabinet_inv.png rename to mods/homedecor_misc/textures/homedecor_tool_cabinet_inv.png diff --git a/homedecor_misc/textures/homedecor_tool_cabinet_misc.png b/mods/homedecor_misc/textures/homedecor_tool_cabinet_misc.png similarity index 100% rename from homedecor_misc/textures/homedecor_tool_cabinet_misc.png rename to mods/homedecor_misc/textures/homedecor_tool_cabinet_misc.png diff --git a/homedecor_misc/textures/homedecor_trophy_inv.png b/mods/homedecor_misc/textures/homedecor_trophy_inv.png similarity index 100% rename from homedecor_misc/textures/homedecor_trophy_inv.png rename to mods/homedecor_misc/textures/homedecor_trophy_inv.png diff --git a/homedecor_misc/textures/top_chain_brass_inv.png b/mods/homedecor_misc/textures/top_chain_brass_inv.png similarity index 100% rename from homedecor_misc/textures/top_chain_brass_inv.png rename to mods/homedecor_misc/textures/top_chain_brass_inv.png diff --git a/homedecor_misc/textures/top_chain_wrought_iron_inv.png b/mods/homedecor_misc/textures/top_chain_wrought_iron_inv.png similarity index 100% rename from homedecor_misc/textures/top_chain_wrought_iron_inv.png rename to mods/homedecor_misc/textures/top_chain_wrought_iron_inv.png diff --git a/homedecor_office/.luacheckrc b/mods/homedecor_office/.luacheckrc similarity index 100% rename from homedecor_office/.luacheckrc rename to mods/homedecor_office/.luacheckrc diff --git a/homedecor_office/init.lua b/mods/homedecor_office/init.lua similarity index 100% rename from homedecor_office/init.lua rename to mods/homedecor_office/init.lua diff --git a/homedecor_office/locale/homedecor_office.de.tr b/mods/homedecor_office/locale/homedecor_office.de.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.de.tr rename to mods/homedecor_office/locale/homedecor_office.de.tr diff --git a/homedecor_office/locale/homedecor_office.es.tr b/mods/homedecor_office/locale/homedecor_office.es.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.es.tr rename to mods/homedecor_office/locale/homedecor_office.es.tr diff --git a/homedecor_office/locale/homedecor_office.fr.tr b/mods/homedecor_office/locale/homedecor_office.fr.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.fr.tr rename to mods/homedecor_office/locale/homedecor_office.fr.tr diff --git a/homedecor_office/locale/homedecor_office.ms.tr b/mods/homedecor_office/locale/homedecor_office.ms.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.ms.tr rename to mods/homedecor_office/locale/homedecor_office.ms.tr diff --git a/homedecor_office/locale/homedecor_office.pt.tr b/mods/homedecor_office/locale/homedecor_office.pt.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.pt.tr rename to mods/homedecor_office/locale/homedecor_office.pt.tr diff --git a/homedecor_office/locale/homedecor_office.pt_BR.tr b/mods/homedecor_office/locale/homedecor_office.pt_BR.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.pt_BR.tr rename to mods/homedecor_office/locale/homedecor_office.pt_BR.tr diff --git a/homedecor_office/locale/homedecor_office.ru.tr b/mods/homedecor_office/locale/homedecor_office.ru.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.ru.tr rename to mods/homedecor_office/locale/homedecor_office.ru.tr diff --git a/homedecor_office/locale/homedecor_office.zh_CN.tr b/mods/homedecor_office/locale/homedecor_office.zh_CN.tr similarity index 100% rename from homedecor_office/locale/homedecor_office.zh_CN.tr rename to mods/homedecor_office/locale/homedecor_office.zh_CN.tr diff --git a/homedecor_office/locale/template.txt b/mods/homedecor_office/locale/template.txt similarity index 100% rename from homedecor_office/locale/template.txt rename to mods/homedecor_office/locale/template.txt diff --git a/homedecor_office/mod.conf b/mods/homedecor_office/mod.conf similarity index 100% rename from homedecor_office/mod.conf rename to mods/homedecor_office/mod.conf diff --git a/homedecor_office/models/homedecor_calendar.obj b/mods/homedecor_office/models/homedecor_calendar.obj similarity index 100% rename from homedecor_office/models/homedecor_calendar.obj rename to mods/homedecor_office/models/homedecor_calendar.obj diff --git a/homedecor_office/models/homedecor_desk.obj b/mods/homedecor_office/models/homedecor_desk.obj similarity index 100% rename from homedecor_office/models/homedecor_desk.obj rename to mods/homedecor_office/models/homedecor_desk.obj diff --git a/homedecor_office/models/homedecor_desk_globe.obj b/mods/homedecor_office/models/homedecor_desk_globe.obj similarity index 100% rename from homedecor_office/models/homedecor_desk_globe.obj rename to mods/homedecor_office/models/homedecor_desk_globe.obj diff --git a/homedecor_office/models/homedecor_filing_cabinet.obj b/mods/homedecor_office/models/homedecor_filing_cabinet.obj similarity index 100% rename from homedecor_office/models/homedecor_filing_cabinet.obj rename to mods/homedecor_office/models/homedecor_filing_cabinet.obj diff --git a/homedecor_office/textures/homedecor_calendar.png b/mods/homedecor_office/textures/homedecor_calendar.png similarity index 100% rename from homedecor_office/textures/homedecor_calendar.png rename to mods/homedecor_office/textures/homedecor_calendar.png diff --git a/homedecor_office/textures/homedecor_calendar_inv.png b/mods/homedecor_office/textures/homedecor_calendar_inv.png similarity index 100% rename from homedecor_office/textures/homedecor_calendar_inv.png rename to mods/homedecor_office/textures/homedecor_calendar_inv.png diff --git a/homedecor_office/textures/homedecor_desk_drawers.png b/mods/homedecor_office/textures/homedecor_desk_drawers.png similarity index 100% rename from homedecor_office/textures/homedecor_desk_drawers.png rename to mods/homedecor_office/textures/homedecor_desk_drawers.png diff --git a/homedecor_office/textures/homedecor_desk_globe_inv.png b/mods/homedecor_office/textures/homedecor_desk_globe_inv.png similarity index 100% rename from homedecor_office/textures/homedecor_desk_globe_inv.png rename to mods/homedecor_office/textures/homedecor_desk_globe_inv.png diff --git a/homedecor_office/textures/homedecor_desk_inv.png b/mods/homedecor_office/textures/homedecor_desk_inv.png similarity index 100% rename from homedecor_office/textures/homedecor_desk_inv.png rename to mods/homedecor_office/textures/homedecor_desk_inv.png diff --git a/homedecor_office/textures/homedecor_earth.png b/mods/homedecor_office/textures/homedecor_earth.png similarity index 100% rename from homedecor_office/textures/homedecor_earth.png rename to mods/homedecor_office/textures/homedecor_earth.png diff --git a/homedecor_office/textures/homedecor_filing_cabinet_bottom.png b/mods/homedecor_office/textures/homedecor_filing_cabinet_bottom.png similarity index 100% rename from homedecor_office/textures/homedecor_filing_cabinet_bottom.png rename to mods/homedecor_office/textures/homedecor_filing_cabinet_bottom.png diff --git a/homedecor_office/textures/homedecor_filing_cabinet_front.png b/mods/homedecor_office/textures/homedecor_filing_cabinet_front.png similarity index 100% rename from homedecor_office/textures/homedecor_filing_cabinet_front.png rename to mods/homedecor_office/textures/homedecor_filing_cabinet_front.png diff --git a/homedecor_pictures_and_paintings/.luacheckrc b/mods/homedecor_pictures_and_paintings/.luacheckrc similarity index 100% rename from homedecor_pictures_and_paintings/.luacheckrc rename to mods/homedecor_pictures_and_paintings/.luacheckrc diff --git a/homedecor_pictures_and_paintings/init.lua b/mods/homedecor_pictures_and_paintings/init.lua similarity index 100% rename from homedecor_pictures_and_paintings/init.lua rename to mods/homedecor_pictures_and_paintings/init.lua diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.de.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.de.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.de.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.de.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.es.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.es.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.es.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.es.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.fr.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.fr.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.fr.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.fr.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ms.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ms.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ms.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ms.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt_BR.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt_BR.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt_BR.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.pt_BR.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ru.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ru.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ru.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.ru.tr diff --git a/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.zh_CN.tr b/mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.zh_CN.tr similarity index 100% rename from homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.zh_CN.tr rename to mods/homedecor_pictures_and_paintings/locale/homedecor_pictures_and_paintings.zh_CN.tr diff --git a/homedecor_pictures_and_paintings/locale/template.txt b/mods/homedecor_pictures_and_paintings/locale/template.txt similarity index 100% rename from homedecor_pictures_and_paintings/locale/template.txt rename to mods/homedecor_pictures_and_paintings/locale/template.txt diff --git a/homedecor_pictures_and_paintings/mod.conf b/mods/homedecor_pictures_and_paintings/mod.conf similarity index 100% rename from homedecor_pictures_and_paintings/mod.conf rename to mods/homedecor_pictures_and_paintings/mod.conf diff --git a/homedecor_pictures_and_paintings/models/homedecor_painting.obj b/mods/homedecor_pictures_and_paintings/models/homedecor_painting.obj similarity index 100% rename from homedecor_pictures_and_paintings/models/homedecor_painting.obj rename to mods/homedecor_pictures_and_paintings/models/homedecor_painting.obj diff --git a/homedecor_pictures_and_paintings/models/homedecor_picture_frame.obj b/mods/homedecor_pictures_and_paintings/models/homedecor_picture_frame.obj similarity index 100% rename from homedecor_pictures_and_paintings/models/homedecor_picture_frame.obj rename to mods/homedecor_pictures_and_paintings/models/homedecor_picture_frame.obj diff --git a/homedecor_pictures_and_paintings/textures/homedecor_blank_canvas.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_blank_canvas.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_blank_canvas.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_blank_canvas.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting1.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting1.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting1.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting1.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting10.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting10.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting10.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting10.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting11.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting11.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting11.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting11.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting12.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting12.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting12.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting12.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting13.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting13.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting13.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting13.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting14.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting14.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting14.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting14.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting15.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting15.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting15.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting15.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting16.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting16.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting16.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting16.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting17.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting17.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting17.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting17.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting18.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting18.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting18.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting18.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting19.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting19.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting19.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting19.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting2.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting2.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting2.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting2.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting20.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting20.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting20.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting20.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting3.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting3.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting3.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting3.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting4.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting4.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting4.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting4.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting5.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting5.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting5.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting5.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting6.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting6.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting6.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting6.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting7.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting7.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting7.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting7.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting8.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting8.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting8.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting8.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting9.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting9.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting9.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting9.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_painting_back.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_painting_back.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_painting_back.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_painting_back.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_picture_frame1_inv.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame1_inv.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_picture_frame1_inv.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame1_inv.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_picture_frame2_inv.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame2_inv.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_picture_frame2_inv.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame2_inv.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_back.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_back.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_picture_frame_back.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_back.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image1.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image1.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image1.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image1.png diff --git a/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image2.png b/mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image2.png similarity index 100% rename from homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image2.png rename to mods/homedecor_pictures_and_paintings/textures/homedecor_picture_frame_image2.png diff --git a/homedecor_roofing/.luacheckrc b/mods/homedecor_roofing/.luacheckrc similarity index 100% rename from homedecor_roofing/.luacheckrc rename to mods/homedecor_roofing/.luacheckrc diff --git a/homedecor_roofing/init.lua b/mods/homedecor_roofing/init.lua similarity index 100% rename from homedecor_roofing/init.lua rename to mods/homedecor_roofing/init.lua diff --git a/homedecor_roofing/locale/homedecor_roofing.de.tr b/mods/homedecor_roofing/locale/homedecor_roofing.de.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.de.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.de.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.es.tr b/mods/homedecor_roofing/locale/homedecor_roofing.es.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.es.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.es.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.fr.tr b/mods/homedecor_roofing/locale/homedecor_roofing.fr.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.fr.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.fr.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.it.tr b/mods/homedecor_roofing/locale/homedecor_roofing.it.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.it.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.it.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.ms.tr b/mods/homedecor_roofing/locale/homedecor_roofing.ms.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.ms.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.ms.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.pt.tr b/mods/homedecor_roofing/locale/homedecor_roofing.pt.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.pt.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.pt.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.pt_BR.tr b/mods/homedecor_roofing/locale/homedecor_roofing.pt_BR.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.pt_BR.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.pt_BR.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.ru.tr b/mods/homedecor_roofing/locale/homedecor_roofing.ru.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.ru.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.ru.tr diff --git a/homedecor_roofing/locale/homedecor_roofing.zh_CN.tr b/mods/homedecor_roofing/locale/homedecor_roofing.zh_CN.tr similarity index 100% rename from homedecor_roofing/locale/homedecor_roofing.zh_CN.tr rename to mods/homedecor_roofing/locale/homedecor_roofing.zh_CN.tr diff --git a/homedecor_roofing/locale/template.txt b/mods/homedecor_roofing/locale/template.txt similarity index 100% rename from homedecor_roofing/locale/template.txt rename to mods/homedecor_roofing/locale/template.txt diff --git a/homedecor_roofing/mod.conf b/mods/homedecor_roofing/mod.conf similarity index 100% rename from homedecor_roofing/mod.conf rename to mods/homedecor_roofing/mod.conf diff --git a/homedecor_roofing/textures/homedecor_shingles_asphalt_inv.png b/mods/homedecor_roofing/textures/homedecor_shingles_asphalt_inv.png similarity index 100% rename from homedecor_roofing/textures/homedecor_shingles_asphalt_inv.png rename to mods/homedecor_roofing/textures/homedecor_shingles_asphalt_inv.png diff --git a/homedecor_roofing/textures/homedecor_shingles_glass.png b/mods/homedecor_roofing/textures/homedecor_shingles_glass.png similarity index 100% rename from homedecor_roofing/textures/homedecor_shingles_glass.png rename to mods/homedecor_roofing/textures/homedecor_shingles_glass.png diff --git a/homedecor_roofing/textures/homedecor_shingles_wood_inv.png b/mods/homedecor_roofing/textures/homedecor_shingles_wood_inv.png similarity index 100% rename from homedecor_roofing/textures/homedecor_shingles_wood_inv.png rename to mods/homedecor_roofing/textures/homedecor_shingles_wood_inv.png diff --git a/homedecor_roofing/textures/homedecor_skylight_frosted.png b/mods/homedecor_roofing/textures/homedecor_skylight_frosted.png similarity index 100% rename from homedecor_roofing/textures/homedecor_skylight_frosted.png rename to mods/homedecor_roofing/textures/homedecor_skylight_frosted.png diff --git a/homedecor_roofing/textures/homedecor_skylight_frosted_inv.png b/mods/homedecor_roofing/textures/homedecor_skylight_frosted_inv.png similarity index 100% rename from homedecor_roofing/textures/homedecor_skylight_frosted_inv.png rename to mods/homedecor_roofing/textures/homedecor_skylight_frosted_inv.png diff --git a/homedecor_roofing/textures/homedecor_skylight_inv.png b/mods/homedecor_roofing/textures/homedecor_skylight_inv.png similarity index 100% rename from homedecor_roofing/textures/homedecor_skylight_inv.png rename to mods/homedecor_roofing/textures/homedecor_skylight_inv.png diff --git a/homedecor_seating/.luacheckrc b/mods/homedecor_seating/.luacheckrc similarity index 100% rename from homedecor_seating/.luacheckrc rename to mods/homedecor_seating/.luacheckrc diff --git a/homedecor_seating/README.txt b/mods/homedecor_seating/README.txt similarity index 100% rename from homedecor_seating/README.txt rename to mods/homedecor_seating/README.txt diff --git a/homedecor_seating/armchairs.lua b/mods/homedecor_seating/armchairs.lua similarity index 100% rename from homedecor_seating/armchairs.lua rename to mods/homedecor_seating/armchairs.lua diff --git a/homedecor_seating/init.lua b/mods/homedecor_seating/init.lua similarity index 100% rename from homedecor_seating/init.lua rename to mods/homedecor_seating/init.lua diff --git a/homedecor_seating/locale/homedecor_seating.de.tr b/mods/homedecor_seating/locale/homedecor_seating.de.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.de.tr rename to mods/homedecor_seating/locale/homedecor_seating.de.tr diff --git a/homedecor_seating/locale/homedecor_seating.es.tr b/mods/homedecor_seating/locale/homedecor_seating.es.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.es.tr rename to mods/homedecor_seating/locale/homedecor_seating.es.tr diff --git a/homedecor_seating/locale/homedecor_seating.fr.tr b/mods/homedecor_seating/locale/homedecor_seating.fr.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.fr.tr rename to mods/homedecor_seating/locale/homedecor_seating.fr.tr diff --git a/homedecor_seating/locale/homedecor_seating.it.tr b/mods/homedecor_seating/locale/homedecor_seating.it.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.it.tr rename to mods/homedecor_seating/locale/homedecor_seating.it.tr diff --git a/homedecor_seating/locale/homedecor_seating.ms.tr b/mods/homedecor_seating/locale/homedecor_seating.ms.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.ms.tr rename to mods/homedecor_seating/locale/homedecor_seating.ms.tr diff --git a/homedecor_seating/locale/homedecor_seating.pt.tr b/mods/homedecor_seating/locale/homedecor_seating.pt.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.pt.tr rename to mods/homedecor_seating/locale/homedecor_seating.pt.tr diff --git a/homedecor_seating/locale/homedecor_seating.pt_BR.tr b/mods/homedecor_seating/locale/homedecor_seating.pt_BR.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.pt_BR.tr rename to mods/homedecor_seating/locale/homedecor_seating.pt_BR.tr diff --git a/homedecor_seating/locale/homedecor_seating.ru.tr b/mods/homedecor_seating/locale/homedecor_seating.ru.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.ru.tr rename to mods/homedecor_seating/locale/homedecor_seating.ru.tr diff --git a/homedecor_seating/locale/homedecor_seating.zh_CN.tr b/mods/homedecor_seating/locale/homedecor_seating.zh_CN.tr similarity index 100% rename from homedecor_seating/locale/homedecor_seating.zh_CN.tr rename to mods/homedecor_seating/locale/homedecor_seating.zh_CN.tr diff --git a/homedecor_seating/locale/template.txt b/mods/homedecor_seating/locale/template.txt similarity index 100% rename from homedecor_seating/locale/template.txt rename to mods/homedecor_seating/locale/template.txt diff --git a/homedecor_seating/longsofas.lua b/mods/homedecor_seating/longsofas.lua similarity index 100% rename from homedecor_seating/longsofas.lua rename to mods/homedecor_seating/longsofas.lua diff --git a/homedecor_seating/misc.lua b/mods/homedecor_seating/misc.lua similarity index 100% rename from homedecor_seating/misc.lua rename to mods/homedecor_seating/misc.lua diff --git a/homedecor_seating/mod.conf b/mods/homedecor_seating/mod.conf similarity index 100% rename from homedecor_seating/mod.conf rename to mods/homedecor_seating/mod.conf diff --git a/homedecor_seating/models/forniture_armchair.obj b/mods/homedecor_seating/models/forniture_armchair.obj similarity index 100% rename from homedecor_seating/models/forniture_armchair.obj rename to mods/homedecor_seating/models/forniture_armchair.obj diff --git a/homedecor_seating/models/homedecor_bench_large_1.obj b/mods/homedecor_seating/models/homedecor_bench_large_1.obj similarity index 100% rename from homedecor_seating/models/homedecor_bench_large_1.obj rename to mods/homedecor_seating/models/homedecor_bench_large_1.obj diff --git a/homedecor_seating/models/homedecor_bench_large_2.obj b/mods/homedecor_seating/models/homedecor_bench_large_2.obj similarity index 100% rename from homedecor_seating/models/homedecor_bench_large_2.obj rename to mods/homedecor_seating/models/homedecor_bench_large_2.obj diff --git a/homedecor_seating/models/homedecor_deckchair.obj b/mods/homedecor_seating/models/homedecor_deckchair.obj similarity index 100% rename from homedecor_seating/models/homedecor_deckchair.obj rename to mods/homedecor_seating/models/homedecor_deckchair.obj diff --git a/homedecor_seating/models/homedecor_kitchen_chair.obj b/mods/homedecor_seating/models/homedecor_kitchen_chair.obj similarity index 100% rename from homedecor_seating/models/homedecor_kitchen_chair.obj rename to mods/homedecor_seating/models/homedecor_kitchen_chair.obj diff --git a/homedecor_seating/models/homedecor_office_chair_basic.obj b/mods/homedecor_seating/models/homedecor_office_chair_basic.obj similarity index 100% rename from homedecor_seating/models/homedecor_office_chair_basic.obj rename to mods/homedecor_seating/models/homedecor_office_chair_basic.obj diff --git a/homedecor_seating/models/homedecor_office_chair_upscale.obj b/mods/homedecor_seating/models/homedecor_office_chair_upscale.obj similarity index 100% rename from homedecor_seating/models/homedecor_office_chair_upscale.obj rename to mods/homedecor_seating/models/homedecor_office_chair_upscale.obj diff --git a/homedecor_seating/models/lrfurn_armchair.obj b/mods/homedecor_seating/models/lrfurn_armchair.obj similarity index 100% rename from homedecor_seating/models/lrfurn_armchair.obj rename to mods/homedecor_seating/models/lrfurn_armchair.obj diff --git a/homedecor_seating/models/lrfurn_sofa_long.obj b/mods/homedecor_seating/models/lrfurn_sofa_long.obj similarity index 100% rename from homedecor_seating/models/lrfurn_sofa_long.obj rename to mods/homedecor_seating/models/lrfurn_sofa_long.obj diff --git a/homedecor_seating/models/lrfurn_sofa_short.obj b/mods/homedecor_seating/models/lrfurn_sofa_short.obj similarity index 100% rename from homedecor_seating/models/lrfurn_sofa_short.obj rename to mods/homedecor_seating/models/lrfurn_sofa_short.obj diff --git a/homedecor_seating/sofas.lua b/mods/homedecor_seating/sofas.lua similarity index 100% rename from homedecor_seating/sofas.lua rename to mods/homedecor_seating/sofas.lua diff --git a/homedecor_seating/textures/homedecor_armchair_inv.png b/mods/homedecor_seating/textures/homedecor_armchair_inv.png similarity index 100% rename from homedecor_seating/textures/homedecor_armchair_inv.png rename to mods/homedecor_seating/textures/homedecor_armchair_inv.png diff --git a/homedecor_seating/textures/homedecor_bench_large_1_inv.png b/mods/homedecor_seating/textures/homedecor_bench_large_1_inv.png similarity index 100% rename from homedecor_seating/textures/homedecor_bench_large_1_inv.png rename to mods/homedecor_seating/textures/homedecor_bench_large_1_inv.png diff --git a/homedecor_seating/textures/homedecor_bench_large_2_inv.png b/mods/homedecor_seating/textures/homedecor_bench_large_2_inv.png similarity index 100% rename from homedecor_seating/textures/homedecor_bench_large_2_inv.png rename to mods/homedecor_seating/textures/homedecor_bench_large_2_inv.png diff --git a/homedecor_seating/textures/homedecor_chair_padded_inv.png b/mods/homedecor_seating/textures/homedecor_chair_padded_inv.png similarity index 100% rename from homedecor_seating/textures/homedecor_chair_padded_inv.png rename to mods/homedecor_seating/textures/homedecor_chair_padded_inv.png diff --git a/homedecor_seating/textures/homedecor_chair_wood_inv.png b/mods/homedecor_seating/textures/homedecor_chair_wood_inv.png similarity index 100% rename from homedecor_seating/textures/homedecor_chair_wood_inv.png rename to mods/homedecor_seating/textures/homedecor_chair_wood_inv.png diff --git a/homedecor_seating/textures/homedecor_deckchair.png b/mods/homedecor_seating/textures/homedecor_deckchair.png similarity index 100% rename from homedecor_seating/textures/homedecor_deckchair.png rename to mods/homedecor_seating/textures/homedecor_deckchair.png diff --git a/homedecor_seating/textures/homedecor_deckchair_striped_blue.png b/mods/homedecor_seating/textures/homedecor_deckchair_striped_blue.png similarity index 100% rename from homedecor_seating/textures/homedecor_deckchair_striped_blue.png rename to mods/homedecor_seating/textures/homedecor_deckchair_striped_blue.png diff --git a/homedecor_seating/textures/homedecor_office_chair_basic.png b/mods/homedecor_seating/textures/homedecor_office_chair_basic.png similarity index 100% rename from homedecor_seating/textures/homedecor_office_chair_basic.png rename to mods/homedecor_seating/textures/homedecor_office_chair_basic.png diff --git a/homedecor_seating/textures/homedecor_office_chair_upscale.png b/mods/homedecor_seating/textures/homedecor_office_chair_upscale.png similarity index 100% rename from homedecor_seating/textures/homedecor_office_chair_upscale.png rename to mods/homedecor_seating/textures/homedecor_office_chair_upscale.png diff --git a/homedecor_seating/textures/lrfurn_armchair_inv.png b/mods/homedecor_seating/textures/lrfurn_armchair_inv.png similarity index 100% rename from homedecor_seating/textures/lrfurn_armchair_inv.png rename to mods/homedecor_seating/textures/lrfurn_armchair_inv.png diff --git a/homedecor_seating/textures/lrfurn_longsofa_inv.png b/mods/homedecor_seating/textures/lrfurn_longsofa_inv.png similarity index 100% rename from homedecor_seating/textures/lrfurn_longsofa_inv.png rename to mods/homedecor_seating/textures/lrfurn_longsofa_inv.png diff --git a/homedecor_seating/textures/lrfurn_sofa_bottom.png b/mods/homedecor_seating/textures/lrfurn_sofa_bottom.png similarity index 100% rename from homedecor_seating/textures/lrfurn_sofa_bottom.png rename to mods/homedecor_seating/textures/lrfurn_sofa_bottom.png diff --git a/homedecor_seating/textures/lrfurn_sofa_inv.png b/mods/homedecor_seating/textures/lrfurn_sofa_inv.png similarity index 100% rename from homedecor_seating/textures/lrfurn_sofa_inv.png rename to mods/homedecor_seating/textures/lrfurn_sofa_inv.png diff --git a/homedecor_seating/textures/lrfurn_upholstery.png b/mods/homedecor_seating/textures/lrfurn_upholstery.png similarity index 100% rename from homedecor_seating/textures/lrfurn_upholstery.png rename to mods/homedecor_seating/textures/lrfurn_upholstery.png diff --git a/homedecor_tables/.luacheckrc b/mods/homedecor_tables/.luacheckrc similarity index 100% rename from homedecor_tables/.luacheckrc rename to mods/homedecor_tables/.luacheckrc diff --git a/homedecor_tables/coffeetable.lua b/mods/homedecor_tables/coffeetable.lua similarity index 100% rename from homedecor_tables/coffeetable.lua rename to mods/homedecor_tables/coffeetable.lua diff --git a/homedecor_tables/endtable.lua b/mods/homedecor_tables/endtable.lua similarity index 100% rename from homedecor_tables/endtable.lua rename to mods/homedecor_tables/endtable.lua diff --git a/homedecor_tables/init.lua b/mods/homedecor_tables/init.lua similarity index 100% rename from homedecor_tables/init.lua rename to mods/homedecor_tables/init.lua diff --git a/homedecor_tables/locale/homedecor_tables.de.tr b/mods/homedecor_tables/locale/homedecor_tables.de.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.de.tr rename to mods/homedecor_tables/locale/homedecor_tables.de.tr diff --git a/homedecor_tables/locale/homedecor_tables.es.tr b/mods/homedecor_tables/locale/homedecor_tables.es.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.es.tr rename to mods/homedecor_tables/locale/homedecor_tables.es.tr diff --git a/homedecor_tables/locale/homedecor_tables.fr.tr b/mods/homedecor_tables/locale/homedecor_tables.fr.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.fr.tr rename to mods/homedecor_tables/locale/homedecor_tables.fr.tr diff --git a/homedecor_tables/locale/homedecor_tables.it.tr b/mods/homedecor_tables/locale/homedecor_tables.it.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.it.tr rename to mods/homedecor_tables/locale/homedecor_tables.it.tr diff --git a/homedecor_tables/locale/homedecor_tables.ms.tr b/mods/homedecor_tables/locale/homedecor_tables.ms.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.ms.tr rename to mods/homedecor_tables/locale/homedecor_tables.ms.tr diff --git a/homedecor_tables/locale/homedecor_tables.pt.tr b/mods/homedecor_tables/locale/homedecor_tables.pt.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.pt.tr rename to mods/homedecor_tables/locale/homedecor_tables.pt.tr diff --git a/homedecor_tables/locale/homedecor_tables.pt_BR.tr b/mods/homedecor_tables/locale/homedecor_tables.pt_BR.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.pt_BR.tr rename to mods/homedecor_tables/locale/homedecor_tables.pt_BR.tr diff --git a/homedecor_tables/locale/homedecor_tables.ru.tr b/mods/homedecor_tables/locale/homedecor_tables.ru.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.ru.tr rename to mods/homedecor_tables/locale/homedecor_tables.ru.tr diff --git a/homedecor_tables/locale/homedecor_tables.zh_CN.tr b/mods/homedecor_tables/locale/homedecor_tables.zh_CN.tr similarity index 100% rename from homedecor_tables/locale/homedecor_tables.zh_CN.tr rename to mods/homedecor_tables/locale/homedecor_tables.zh_CN.tr diff --git a/homedecor_tables/locale/template.txt b/mods/homedecor_tables/locale/template.txt similarity index 100% rename from homedecor_tables/locale/template.txt rename to mods/homedecor_tables/locale/template.txt diff --git a/homedecor_tables/misc.lua b/mods/homedecor_tables/misc.lua similarity index 100% rename from homedecor_tables/misc.lua rename to mods/homedecor_tables/misc.lua diff --git a/homedecor_tables/mod.conf b/mods/homedecor_tables/mod.conf similarity index 100% rename from homedecor_tables/mod.conf rename to mods/homedecor_tables/mod.conf diff --git a/homedecor_tables/models/homedecor_table_small_round.obj b/mods/homedecor_tables/models/homedecor_table_small_round.obj similarity index 100% rename from homedecor_tables/models/homedecor_table_small_round.obj rename to mods/homedecor_tables/models/homedecor_table_small_round.obj diff --git a/homedecor_tables/models/homedecor_table_small_square.obj b/mods/homedecor_tables/models/homedecor_table_small_square.obj similarity index 100% rename from homedecor_tables/models/homedecor_table_small_square.obj rename to mods/homedecor_tables/models/homedecor_table_small_square.obj diff --git a/homedecor_tables/textures/homedecor_glass_face_clean.png b/mods/homedecor_tables/textures/homedecor_glass_face_clean.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_face_clean.png rename to mods/homedecor_tables/textures/homedecor_glass_face_clean.png diff --git a/homedecor_tables/textures/homedecor_glass_table_large_edges.png b/mods/homedecor_tables/textures/homedecor_glass_table_large_edges.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_large_edges.png rename to mods/homedecor_tables/textures/homedecor_glass_table_large_edges.png diff --git a/homedecor_tables/textures/homedecor_glass_table_large_inv.png b/mods/homedecor_tables/textures/homedecor_glass_table_large_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_large_inv.png rename to mods/homedecor_tables/textures/homedecor_glass_table_large_inv.png diff --git a/homedecor_tables/textures/homedecor_glass_table_large_tb.png b/mods/homedecor_tables/textures/homedecor_glass_table_large_tb.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_large_tb.png rename to mods/homedecor_tables/textures/homedecor_glass_table_large_tb.png diff --git a/homedecor_tables/textures/homedecor_glass_table_small_round.png b/mods/homedecor_tables/textures/homedecor_glass_table_small_round.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_small_round.png rename to mods/homedecor_tables/textures/homedecor_glass_table_small_round.png diff --git a/homedecor_tables/textures/homedecor_glass_table_small_round_inv.png b/mods/homedecor_tables/textures/homedecor_glass_table_small_round_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_small_round_inv.png rename to mods/homedecor_tables/textures/homedecor_glass_table_small_round_inv.png diff --git a/homedecor_tables/textures/homedecor_glass_table_small_square.png b/mods/homedecor_tables/textures/homedecor_glass_table_small_square.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_small_square.png rename to mods/homedecor_tables/textures/homedecor_glass_table_small_square.png diff --git a/homedecor_tables/textures/homedecor_glass_table_small_square_inv.png b/mods/homedecor_tables/textures/homedecor_glass_table_small_square_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_glass_table_small_square_inv.png rename to mods/homedecor_tables/textures/homedecor_glass_table_small_square_inv.png diff --git a/homedecor_tables/textures/homedecor_table_legs_brass.png b/mods/homedecor_tables/textures/homedecor_table_legs_brass.png similarity index 100% rename from homedecor_tables/textures/homedecor_table_legs_brass.png rename to mods/homedecor_tables/textures/homedecor_table_legs_brass.png diff --git a/homedecor_tables/textures/homedecor_table_legs_wrought_iron.png b/mods/homedecor_tables/textures/homedecor_table_legs_wrought_iron.png similarity index 100% rename from homedecor_tables/textures/homedecor_table_legs_wrought_iron.png rename to mods/homedecor_tables/textures/homedecor_table_legs_wrought_iron.png diff --git a/homedecor_tables/textures/homedecor_utility_table_edges.png b/mods/homedecor_tables/textures/homedecor_utility_table_edges.png similarity index 100% rename from homedecor_tables/textures/homedecor_utility_table_edges.png rename to mods/homedecor_tables/textures/homedecor_utility_table_edges.png diff --git a/homedecor_tables/textures/homedecor_utility_table_legs.png b/mods/homedecor_tables/textures/homedecor_utility_table_legs.png similarity index 100% rename from homedecor_tables/textures/homedecor_utility_table_legs.png rename to mods/homedecor_tables/textures/homedecor_utility_table_legs.png diff --git a/homedecor_tables/textures/homedecor_utility_table_legs_inv.png b/mods/homedecor_tables/textures/homedecor_utility_table_legs_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_utility_table_legs_inv.png rename to mods/homedecor_tables/textures/homedecor_utility_table_legs_inv.png diff --git a/homedecor_tables/textures/homedecor_utility_table_tb.png b/mods/homedecor_tables/textures/homedecor_utility_table_tb.png similarity index 100% rename from homedecor_tables/textures/homedecor_utility_table_tb.png rename to mods/homedecor_tables/textures/homedecor_utility_table_tb.png diff --git a/homedecor_tables/textures/homedecor_wood_table_large_edges.png b/mods/homedecor_tables/textures/homedecor_wood_table_large_edges.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_large_edges.png rename to mods/homedecor_tables/textures/homedecor_wood_table_large_edges.png diff --git a/homedecor_tables/textures/homedecor_wood_table_large_inv.png b/mods/homedecor_tables/textures/homedecor_wood_table_large_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_large_inv.png rename to mods/homedecor_tables/textures/homedecor_wood_table_large_inv.png diff --git a/homedecor_tables/textures/homedecor_wood_table_large_tb.png b/mods/homedecor_tables/textures/homedecor_wood_table_large_tb.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_large_tb.png rename to mods/homedecor_tables/textures/homedecor_wood_table_large_tb.png diff --git a/homedecor_tables/textures/homedecor_wood_table_small_round.png b/mods/homedecor_tables/textures/homedecor_wood_table_small_round.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_small_round.png rename to mods/homedecor_tables/textures/homedecor_wood_table_small_round.png diff --git a/homedecor_tables/textures/homedecor_wood_table_small_round_inv.png b/mods/homedecor_tables/textures/homedecor_wood_table_small_round_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_small_round_inv.png rename to mods/homedecor_tables/textures/homedecor_wood_table_small_round_inv.png diff --git a/homedecor_tables/textures/homedecor_wood_table_small_square.png b/mods/homedecor_tables/textures/homedecor_wood_table_small_square.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_small_square.png rename to mods/homedecor_tables/textures/homedecor_wood_table_small_square.png diff --git a/homedecor_tables/textures/homedecor_wood_table_small_square_inv.png b/mods/homedecor_tables/textures/homedecor_wood_table_small_square_inv.png similarity index 100% rename from homedecor_tables/textures/homedecor_wood_table_small_square_inv.png rename to mods/homedecor_tables/textures/homedecor_wood_table_small_square_inv.png diff --git a/homedecor_tables/textures/lrfurn_coffeetable_back.png b/mods/homedecor_tables/textures/lrfurn_coffeetable_back.png similarity index 100% rename from homedecor_tables/textures/lrfurn_coffeetable_back.png rename to mods/homedecor_tables/textures/lrfurn_coffeetable_back.png diff --git a/homedecor_tables/textures/lrfurn_coffeetable_front.png b/mods/homedecor_tables/textures/lrfurn_coffeetable_front.png similarity index 100% rename from homedecor_tables/textures/lrfurn_coffeetable_front.png rename to mods/homedecor_tables/textures/lrfurn_coffeetable_front.png diff --git a/homedecor_trash_cans/.luacheckrc b/mods/homedecor_trash_cans/.luacheckrc similarity index 100% rename from homedecor_trash_cans/.luacheckrc rename to mods/homedecor_trash_cans/.luacheckrc diff --git a/homedecor_trash_cans/init.lua b/mods/homedecor_trash_cans/init.lua similarity index 100% rename from homedecor_trash_cans/init.lua rename to mods/homedecor_trash_cans/init.lua diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.de.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.de.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.de.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.de.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.es.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.es.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.es.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.es.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.fr.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.fr.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.fr.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.fr.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.ms.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.ms.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.ms.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.ms.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.pt.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.pt.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.pt.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.pt.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.pt_BR.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.pt_BR.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.pt_BR.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.pt_BR.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.ru.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.ru.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.ru.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.ru.tr diff --git a/homedecor_trash_cans/locale/homedecor_trash_cans.zh_CN.tr b/mods/homedecor_trash_cans/locale/homedecor_trash_cans.zh_CN.tr similarity index 100% rename from homedecor_trash_cans/locale/homedecor_trash_cans.zh_CN.tr rename to mods/homedecor_trash_cans/locale/homedecor_trash_cans.zh_CN.tr diff --git a/homedecor_trash_cans/locale/template.txt b/mods/homedecor_trash_cans/locale/template.txt similarity index 100% rename from homedecor_trash_cans/locale/template.txt rename to mods/homedecor_trash_cans/locale/template.txt diff --git a/homedecor_trash_cans/mod.conf b/mods/homedecor_trash_cans/mod.conf similarity index 100% rename from homedecor_trash_cans/mod.conf rename to mods/homedecor_trash_cans/mod.conf diff --git a/homedecor_trash_cans/models/homedecor_trash_can.obj b/mods/homedecor_trash_cans/models/homedecor_trash_can.obj similarity index 100% rename from homedecor_trash_cans/models/homedecor_trash_can.obj rename to mods/homedecor_trash_cans/models/homedecor_trash_can.obj diff --git a/homedecor_trash_cans/models/homedecor_trash_can_green.obj b/mods/homedecor_trash_cans/models/homedecor_trash_can_green.obj similarity index 100% rename from homedecor_trash_cans/models/homedecor_trash_can_green.obj rename to mods/homedecor_trash_cans/models/homedecor_trash_can_green.obj diff --git a/homedecor_trash_cans/models/homedecor_trash_can_green_open.obj b/mods/homedecor_trash_cans/models/homedecor_trash_can_green_open.obj similarity index 100% rename from homedecor_trash_cans/models/homedecor_trash_can_green_open.obj rename to mods/homedecor_trash_cans/models/homedecor_trash_can_green_open.obj diff --git a/homedecor_trash_cans/sounds/homedecor_trash_all.ogg b/mods/homedecor_trash_cans/sounds/homedecor_trash_all.ogg similarity index 100% rename from homedecor_trash_cans/sounds/homedecor_trash_all.ogg rename to mods/homedecor_trash_cans/sounds/homedecor_trash_all.ogg diff --git a/homedecor_trash_cans/textures/homedecor_trash_can.png b/mods/homedecor_trash_cans/textures/homedecor_trash_can.png similarity index 100% rename from homedecor_trash_cans/textures/homedecor_trash_can.png rename to mods/homedecor_trash_cans/textures/homedecor_trash_can.png diff --git a/homedecor_trash_cans/textures/homedecor_trash_can_green_inv.png b/mods/homedecor_trash_cans/textures/homedecor_trash_can_green_inv.png similarity index 100% rename from homedecor_trash_cans/textures/homedecor_trash_can_green_inv.png rename to mods/homedecor_trash_cans/textures/homedecor_trash_can_green_inv.png diff --git a/homedecor_trash_cans/textures/homedecor_trash_can_inv.png b/mods/homedecor_trash_cans/textures/homedecor_trash_can_inv.png similarity index 100% rename from homedecor_trash_cans/textures/homedecor_trash_can_inv.png rename to mods/homedecor_trash_cans/textures/homedecor_trash_can_inv.png diff --git a/homedecor_wardrobe/.luacheckrc b/mods/homedecor_wardrobe/.luacheckrc similarity index 100% rename from homedecor_wardrobe/.luacheckrc rename to mods/homedecor_wardrobe/.luacheckrc diff --git a/homedecor_wardrobe/init.lua b/mods/homedecor_wardrobe/init.lua similarity index 100% rename from homedecor_wardrobe/init.lua rename to mods/homedecor_wardrobe/init.lua diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.de.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.de.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.de.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.de.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.es.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.es.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.es.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.es.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.fr.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.fr.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.fr.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.fr.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.it.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.it.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.it.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.it.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.ms.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.ms.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.ms.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.ms.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.pt.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.pt.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.pt.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.pt.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.pt_BR.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.pt_BR.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.pt_BR.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.pt_BR.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.ru.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.ru.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.ru.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.ru.tr diff --git a/homedecor_wardrobe/locale/homedecor_wardrobe.zh_CN.tr b/mods/homedecor_wardrobe/locale/homedecor_wardrobe.zh_CN.tr similarity index 100% rename from homedecor_wardrobe/locale/homedecor_wardrobe.zh_CN.tr rename to mods/homedecor_wardrobe/locale/homedecor_wardrobe.zh_CN.tr diff --git a/homedecor_wardrobe/locale/template.txt b/mods/homedecor_wardrobe/locale/template.txt similarity index 100% rename from homedecor_wardrobe/locale/template.txt rename to mods/homedecor_wardrobe/locale/template.txt diff --git a/homedecor_wardrobe/mod.conf b/mods/homedecor_wardrobe/mod.conf similarity index 100% rename from homedecor_wardrobe/mod.conf rename to mods/homedecor_wardrobe/mod.conf diff --git a/homedecor_wardrobe/models/homedecor_bedroom_wardrobe.obj b/mods/homedecor_wardrobe/models/homedecor_bedroom_wardrobe.obj similarity index 100% rename from homedecor_wardrobe/models/homedecor_bedroom_wardrobe.obj rename to mods/homedecor_wardrobe/models/homedecor_bedroom_wardrobe.obj diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female1.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female1.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female1.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female1.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female1_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female1_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female1_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female1_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female2.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female2.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female2.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female2.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female2_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female2_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female2_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female2_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female3.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female3.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female3.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female3.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female3_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female3_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female3_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female3_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female4.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female4.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female4.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female4.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female4_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female4_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female4_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female4_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female5.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female5.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female5.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female5.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_female5_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_female5_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_female5_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_female5_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male1.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male1.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male1.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male1.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male1_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male1_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male1_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male1_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male2.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male2.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male2.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male2.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male2_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male2_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male2_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male2_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male3.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male3.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male3.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male3.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male3_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male3_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male3_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male3_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male4.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male4.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male4.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male4.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male4_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male4_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male4_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male4_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male5.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male5.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male5.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male5.png diff --git a/homedecor_wardrobe/textures/homedecor_clothes_male5_preview.png b/mods/homedecor_wardrobe/textures/homedecor_clothes_male5_preview.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_clothes_male5_preview.png rename to mods/homedecor_wardrobe/textures/homedecor_clothes_male5_preview.png diff --git a/homedecor_wardrobe/textures/homedecor_generic_wood_plain.png b/mods/homedecor_wardrobe/textures/homedecor_generic_wood_plain.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_generic_wood_plain.png rename to mods/homedecor_wardrobe/textures/homedecor_generic_wood_plain.png diff --git a/homedecor_wardrobe/textures/homedecor_wardrobe_doors.png b/mods/homedecor_wardrobe/textures/homedecor_wardrobe_doors.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_wardrobe_doors.png rename to mods/homedecor_wardrobe/textures/homedecor_wardrobe_doors.png diff --git a/homedecor_wardrobe/textures/homedecor_wardrobe_drawers.png b/mods/homedecor_wardrobe/textures/homedecor_wardrobe_drawers.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_wardrobe_drawers.png rename to mods/homedecor_wardrobe/textures/homedecor_wardrobe_drawers.png diff --git a/homedecor_wardrobe/textures/homedecor_wardrobe_inv.png b/mods/homedecor_wardrobe/textures/homedecor_wardrobe_inv.png similarity index 100% rename from homedecor_wardrobe/textures/homedecor_wardrobe_inv.png rename to mods/homedecor_wardrobe/textures/homedecor_wardrobe_inv.png diff --git a/homedecor_windows_and_treatments/.luacheckrc b/mods/homedecor_windows_and_treatments/.luacheckrc similarity index 100% rename from homedecor_windows_and_treatments/.luacheckrc rename to mods/homedecor_windows_and_treatments/.luacheckrc diff --git a/homedecor_windows_and_treatments/init.lua b/mods/homedecor_windows_and_treatments/init.lua similarity index 100% rename from homedecor_windows_and_treatments/init.lua rename to mods/homedecor_windows_and_treatments/init.lua diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.de.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.de.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.de.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.de.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.es.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.es.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.es.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.es.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.fr.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.fr.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.fr.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.fr.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.it.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.it.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.it.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.it.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ms.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ms.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ms.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ms.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt_BR.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt_BR.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt_BR.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.pt_BR.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ru.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ru.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ru.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.ru.tr diff --git a/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.zh_CN.tr b/mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.zh_CN.tr similarity index 100% rename from homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.zh_CN.tr rename to mods/homedecor_windows_and_treatments/locale/homedecor_windows_and_treatments.zh_CN.tr diff --git a/homedecor_windows_and_treatments/locale/template.txt b/mods/homedecor_windows_and_treatments/locale/template.txt similarity index 100% rename from homedecor_windows_and_treatments/locale/template.txt rename to mods/homedecor_windows_and_treatments/locale/template.txt diff --git a/homedecor_windows_and_treatments/mod.conf b/mods/homedecor_windows_and_treatments/mod.conf similarity index 100% rename from homedecor_windows_and_treatments/mod.conf rename to mods/homedecor_windows_and_treatments/mod.conf diff --git a/homedecor_windows_and_treatments/models/homedecor_window_shutter.obj b/mods/homedecor_windows_and_treatments/models/homedecor_window_shutter.obj similarity index 100% rename from homedecor_windows_and_treatments/models/homedecor_window_shutter.obj rename to mods/homedecor_windows_and_treatments/models/homedecor_window_shutter.obj diff --git a/homedecor_windows_and_treatments/models/homedecor_windowblind_thick.obj b/mods/homedecor_windows_and_treatments/models/homedecor_windowblind_thick.obj similarity index 100% rename from homedecor_windows_and_treatments/models/homedecor_windowblind_thick.obj rename to mods/homedecor_windows_and_treatments/models/homedecor_windowblind_thick.obj diff --git a/homedecor_windows_and_treatments/models/homedecor_windowblind_thin.obj b/mods/homedecor_windows_and_treatments/models/homedecor_windowblind_thin.obj similarity index 100% rename from homedecor_windows_and_treatments/models/homedecor_windowblind_thin.obj rename to mods/homedecor_windows_and_treatments/models/homedecor_windowblind_thin.obj diff --git a/homedecor_windows_and_treatments/textures/homedecor_curtain.png b/mods/homedecor_windows_and_treatments/textures/homedecor_curtain.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_curtain.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_curtain.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_curtain_open.png b/mods/homedecor_windows_and_treatments/textures/homedecor_curtain_open.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_curtain_open.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_curtain_open.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_curtainrod_brass_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_curtainrod_brass_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_curtainrod_brass_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_curtainrod_brass_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_curtainrod_wood_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_curtainrod_wood_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_curtainrod_wood_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_curtainrod_wood_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_curtainrod_wrought_iron_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_curtainrod_wrought_iron_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_curtainrod_wrought_iron_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_curtainrod_wrought_iron_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_flowerbox_bottom.png b/mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_bottom.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_flowerbox_bottom.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_bottom.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_flowerbox_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_flowerbox_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_flowerbox_sides.png b/mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_sides.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_flowerbox_sides.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_sides.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_flowerbox_top.png b/mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_top.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_flowerbox_top.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_flowerbox_top.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_stained_glass.png b/mods/homedecor_windows_and_treatments/textures/homedecor_stained_glass.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_stained_glass.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_stained_glass.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_window_frame.png b/mods/homedecor_windows_and_treatments/textures/homedecor_window_frame.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_window_frame.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_window_frame.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_window_quartered.png b/mods/homedecor_windows_and_treatments/textures/homedecor_window_quartered.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_window_quartered.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_window_quartered.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_window_shutter.png b/mods/homedecor_windows_and_treatments/textures/homedecor_window_shutter.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_window_shutter.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_window_shutter.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_window_shutter_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_window_shutter_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_window_shutter_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_window_shutter_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_window_sides.png b/mods/homedecor_windows_and_treatments/textures/homedecor_window_sides.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_window_sides.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_window_sides.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_windowblind_strings.png b/mods/homedecor_windows_and_treatments/textures/homedecor_windowblind_strings.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_windowblind_strings.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_windowblind_strings.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_windowblind_thick_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_windowblind_thick_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_windowblind_thick_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_windowblind_thick_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_windowblind_thin_inv.png b/mods/homedecor_windows_and_treatments/textures/homedecor_windowblind_thin_inv.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_windowblind_thin_inv.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_windowblind_thin_inv.png diff --git a/homedecor_windows_and_treatments/textures/homedecor_windowblinds.png b/mods/homedecor_windows_and_treatments/textures/homedecor_windowblinds.png similarity index 100% rename from homedecor_windows_and_treatments/textures/homedecor_windowblinds.png rename to mods/homedecor_windows_and_treatments/textures/homedecor_windowblinds.png diff --git a/ilights/LICENSE b/mods/ilights/LICENSE similarity index 100% rename from ilights/LICENSE rename to mods/ilights/LICENSE diff --git a/ilights/README.md b/mods/ilights/README.md similarity index 100% rename from ilights/README.md rename to mods/ilights/README.md diff --git a/ilights/depends.txt b/mods/ilights/depends.txt similarity index 100% rename from ilights/depends.txt rename to mods/ilights/depends.txt diff --git a/ilights/description.txt b/mods/ilights/description.txt similarity index 100% rename from ilights/description.txt rename to mods/ilights/description.txt diff --git a/ilights/init.lua b/mods/ilights/init.lua similarity index 100% rename from ilights/init.lua rename to mods/ilights/init.lua diff --git a/ilights/mod.conf b/mods/ilights/mod.conf similarity index 100% rename from ilights/mod.conf rename to mods/ilights/mod.conf diff --git a/ilights/models/ilights_lamp.obj b/mods/ilights/models/ilights_lamp.obj similarity index 100% rename from ilights/models/ilights_lamp.obj rename to mods/ilights/models/ilights_lamp.obj diff --git a/ilights/textures/ilights_lamp_base.png b/mods/ilights/textures/ilights_lamp_base.png similarity index 100% rename from ilights/textures/ilights_lamp_base.png rename to mods/ilights/textures/ilights_lamp_base.png diff --git a/ilights/textures/ilights_lamp_bulb_base.png b/mods/ilights/textures/ilights_lamp_bulb_base.png similarity index 100% rename from ilights/textures/ilights_lamp_bulb_base.png rename to mods/ilights/textures/ilights_lamp_bulb_base.png diff --git a/ilights/textures/ilights_lamp_bulb_off.png b/mods/ilights/textures/ilights_lamp_bulb_off.png similarity index 100% rename from ilights/textures/ilights_lamp_bulb_off.png rename to mods/ilights/textures/ilights_lamp_bulb_off.png diff --git a/ilights/textures/ilights_lamp_bulb_on.png b/mods/ilights/textures/ilights_lamp_bulb_on.png similarity index 100% rename from ilights/textures/ilights_lamp_bulb_on.png rename to mods/ilights/textures/ilights_lamp_bulb_on.png diff --git a/ilights/textures/ilights_lamp_cage.png b/mods/ilights/textures/ilights_lamp_cage.png similarity index 100% rename from ilights/textures/ilights_lamp_cage.png rename to mods/ilights/textures/ilights_lamp_cage.png diff --git a/ilights/textures/ilights_lamp_lens_off.png b/mods/ilights/textures/ilights_lamp_lens_off.png similarity index 100% rename from ilights/textures/ilights_lamp_lens_off.png rename to mods/ilights/textures/ilights_lamp_lens_off.png diff --git a/ilights/textures/ilights_lamp_lens_on.png b/mods/ilights/textures/ilights_lamp_lens_on.png similarity index 100% rename from ilights/textures/ilights_lamp_lens_on.png rename to mods/ilights/textures/ilights_lamp_lens_on.png diff --git a/inbox/.luacheckrc b/mods/inbox/.luacheckrc similarity index 100% rename from inbox/.luacheckrc rename to mods/inbox/.luacheckrc diff --git a/inbox/init.lua b/mods/inbox/init.lua similarity index 100% rename from inbox/init.lua rename to mods/inbox/init.lua diff --git a/inbox/locale/inbox.de.tr b/mods/inbox/locale/inbox.de.tr similarity index 100% rename from inbox/locale/inbox.de.tr rename to mods/inbox/locale/inbox.de.tr diff --git a/inbox/locale/inbox.es.tr b/mods/inbox/locale/inbox.es.tr similarity index 100% rename from inbox/locale/inbox.es.tr rename to mods/inbox/locale/inbox.es.tr diff --git a/inbox/locale/inbox.fr.tr b/mods/inbox/locale/inbox.fr.tr similarity index 100% rename from inbox/locale/inbox.fr.tr rename to mods/inbox/locale/inbox.fr.tr diff --git a/inbox/locale/inbox.ms.tr b/mods/inbox/locale/inbox.ms.tr similarity index 100% rename from inbox/locale/inbox.ms.tr rename to mods/inbox/locale/inbox.ms.tr diff --git a/inbox/locale/inbox.pt.tr b/mods/inbox/locale/inbox.pt.tr similarity index 100% rename from inbox/locale/inbox.pt.tr rename to mods/inbox/locale/inbox.pt.tr diff --git a/inbox/locale/inbox.pt_BR.tr b/mods/inbox/locale/inbox.pt_BR.tr similarity index 100% rename from inbox/locale/inbox.pt_BR.tr rename to mods/inbox/locale/inbox.pt_BR.tr diff --git a/inbox/locale/inbox.ru.tr b/mods/inbox/locale/inbox.ru.tr similarity index 100% rename from inbox/locale/inbox.ru.tr rename to mods/inbox/locale/inbox.ru.tr diff --git a/inbox/locale/inbox.zh_CN.tr b/mods/inbox/locale/inbox.zh_CN.tr similarity index 100% rename from inbox/locale/inbox.zh_CN.tr rename to mods/inbox/locale/inbox.zh_CN.tr diff --git a/inbox/locale/template.txt b/mods/inbox/locale/template.txt similarity index 100% rename from inbox/locale/template.txt rename to mods/inbox/locale/template.txt diff --git a/inbox/mod.conf b/mods/inbox/mod.conf similarity index 100% rename from inbox/mod.conf rename to mods/inbox/mod.conf diff --git a/inbox/models/inbox_mailbox.obj b/mods/inbox/models/inbox_mailbox.obj similarity index 100% rename from inbox/models/inbox_mailbox.obj rename to mods/inbox/models/inbox_mailbox.obj diff --git a/inbox/textures/inbox_grey_metal.png b/mods/inbox/textures/inbox_grey_metal.png similarity index 100% rename from inbox/textures/inbox_grey_metal.png rename to mods/inbox/textures/inbox_grey_metal.png diff --git a/inbox/textures/inbox_red_metal.png b/mods/inbox/textures/inbox_red_metal.png similarity index 100% rename from inbox/textures/inbox_red_metal.png rename to mods/inbox/textures/inbox_red_metal.png diff --git a/inbox/textures/inbox_white_metal.png b/mods/inbox/textures/inbox_white_metal.png similarity index 100% rename from inbox/textures/inbox_white_metal.png rename to mods/inbox/textures/inbox_white_metal.png diff --git a/inbox/textures/mailbox_inv.png b/mods/inbox/textures/mailbox_inv.png similarity index 100% rename from inbox/textures/mailbox_inv.png rename to mods/inbox/textures/mailbox_inv.png diff --git a/infrastructure/advanced_aircraft_warning_light.lua b/mods/infrastructure/advanced_aircraft_warning_light.lua similarity index 100% rename from infrastructure/advanced_aircraft_warning_light.lua rename to mods/infrastructure/advanced_aircraft_warning_light.lua diff --git a/infrastructure/advanced_automatic_warning_device.lua b/mods/infrastructure/advanced_automatic_warning_device.lua similarity index 100% rename from infrastructure/advanced_automatic_warning_device.lua rename to mods/infrastructure/advanced_automatic_warning_device.lua diff --git a/infrastructure/advanced_boom_barrier.lua b/mods/infrastructure/advanced_boom_barrier.lua similarity index 100% rename from infrastructure/advanced_boom_barrier.lua rename to mods/infrastructure/advanced_boom_barrier.lua diff --git a/infrastructure/advanced_crosswalk_lighting.lua b/mods/infrastructure/advanced_crosswalk_lighting.lua similarity index 100% rename from infrastructure/advanced_crosswalk_lighting.lua rename to mods/infrastructure/advanced_crosswalk_lighting.lua diff --git a/infrastructure/advanced_crosswalk_safety_sign.lua b/mods/infrastructure/advanced_crosswalk_safety_sign.lua similarity index 100% rename from infrastructure/advanced_crosswalk_safety_sign.lua rename to mods/infrastructure/advanced_crosswalk_safety_sign.lua diff --git a/infrastructure/advanced_crosswalk_warning_light.lua b/mods/infrastructure/advanced_crosswalk_warning_light.lua similarity index 100% rename from infrastructure/advanced_crosswalk_warning_light.lua rename to mods/infrastructure/advanced_crosswalk_warning_light.lua diff --git a/infrastructure/advanced_curve_chevron.lua b/mods/infrastructure/advanced_curve_chevron.lua similarity index 100% rename from infrastructure/advanced_curve_chevron.lua rename to mods/infrastructure/advanced_curve_chevron.lua diff --git a/infrastructure/advanced_emergency_phone.lua b/mods/infrastructure/advanced_emergency_phone.lua similarity index 100% rename from infrastructure/advanced_emergency_phone.lua rename to mods/infrastructure/advanced_emergency_phone.lua diff --git a/infrastructure/advanced_lane_control_lights.lua b/mods/infrastructure/advanced_lane_control_lights.lua similarity index 100% rename from infrastructure/advanced_lane_control_lights.lua rename to mods/infrastructure/advanced_lane_control_lights.lua diff --git a/infrastructure/advanced_road_signs.lua b/mods/infrastructure/advanced_road_signs.lua similarity index 100% rename from infrastructure/advanced_road_signs.lua rename to mods/infrastructure/advanced_road_signs.lua diff --git a/infrastructure/advanced_traffic_lights_pedestrians.lua b/mods/infrastructure/advanced_traffic_lights_pedestrians.lua similarity index 100% rename from infrastructure/advanced_traffic_lights_pedestrians.lua rename to mods/infrastructure/advanced_traffic_lights_pedestrians.lua diff --git a/infrastructure/advanced_warning_light.lua b/mods/infrastructure/advanced_warning_light.lua similarity index 100% rename from infrastructure/advanced_warning_light.lua rename to mods/infrastructure/advanced_warning_light.lua diff --git a/infrastructure/crafts.lua b/mods/infrastructure/crafts.lua similarity index 100% rename from infrastructure/crafts.lua rename to mods/infrastructure/crafts.lua diff --git a/infrastructure/depends.txt b/mods/infrastructure/depends.txt similarity index 100% rename from infrastructure/depends.txt rename to mods/infrastructure/depends.txt diff --git a/infrastructure/init.lua b/mods/infrastructure/init.lua similarity index 100% rename from infrastructure/init.lua rename to mods/infrastructure/init.lua diff --git a/infrastructure/models/infrastructure_traffic_cone.obj b/mods/infrastructure/models/infrastructure_traffic_cone.obj similarity index 100% rename from infrastructure/models/infrastructure_traffic_cone.obj rename to mods/infrastructure/models/infrastructure_traffic_cone.obj diff --git a/infrastructure/models/infrastructure_traffic_cone_i1.obj b/mods/infrastructure/models/infrastructure_traffic_cone_i1.obj similarity index 100% rename from infrastructure/models/infrastructure_traffic_cone_i1.obj rename to mods/infrastructure/models/infrastructure_traffic_cone_i1.obj diff --git a/infrastructure/models/infrastructure_traffic_cone_i2.obj b/mods/infrastructure/models/infrastructure_traffic_cone_i2.obj similarity index 100% rename from infrastructure/models/infrastructure_traffic_cone_i2.obj rename to mods/infrastructure/models/infrastructure_traffic_cone_i2.obj diff --git a/infrastructure/models/infrastructure_traffic_cone_i3.obj b/mods/infrastructure/models/infrastructure_traffic_cone_i3.obj similarity index 100% rename from infrastructure/models/infrastructure_traffic_cone_i3.obj rename to mods/infrastructure/models/infrastructure_traffic_cone_i3.obj diff --git a/infrastructure/nodes.lua b/mods/infrastructure/nodes.lua similarity index 100% rename from infrastructure/nodes.lua rename to mods/infrastructure/nodes.lua diff --git a/infrastructure/nodes_extension.lua b/mods/infrastructure/nodes_extension.lua similarity index 100% rename from infrastructure/nodes_extension.lua rename to mods/infrastructure/nodes_extension.lua diff --git a/infrastructure/settings.lua b/mods/infrastructure/settings.lua similarity index 100% rename from infrastructure/settings.lua rename to mods/infrastructure/settings.lua diff --git a/infrastructure/sounds/infrastructure_automatic_warning_device.ogg b/mods/infrastructure/sounds/infrastructure_automatic_warning_device.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_automatic_warning_device.ogg rename to mods/infrastructure/sounds/infrastructure_automatic_warning_device.ogg diff --git a/infrastructure/sounds/infrastructure_boom_barrier.ogg b/mods/infrastructure/sounds/infrastructure_boom_barrier.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_boom_barrier.ogg rename to mods/infrastructure/sounds/infrastructure_boom_barrier.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_de.ogg b/mods/infrastructure/sounds/infrastructure_ebell_de.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_de.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_de.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_gstype2.ogg b/mods/infrastructure/sounds/infrastructure_ebell_gstype2.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_gstype2.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_gstype2.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_nl.ogg b/mods/infrastructure/sounds/infrastructure_ebell_nl.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_nl.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_nl.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_safetrantype1.ogg b/mods/infrastructure/sounds/infrastructure_ebell_safetrantype1.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_safetrantype1.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_safetrantype1.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_safetrantype3.ogg b/mods/infrastructure/sounds/infrastructure_ebell_safetrantype3.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_safetrantype3.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_safetrantype3.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_uk.ogg b/mods/infrastructure/sounds/infrastructure_ebell_uk.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_uk.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_uk.ogg diff --git a/infrastructure/sounds/infrastructure_ebell_wch.ogg b/mods/infrastructure/sounds/infrastructure_ebell_wch.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_ebell_wch.ogg rename to mods/infrastructure/sounds/infrastructure_ebell_wch.ogg diff --git a/infrastructure/sounds/infrastructure_emergency_phone.ogg b/mods/infrastructure/sounds/infrastructure_emergency_phone.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_emergency_phone.ogg rename to mods/infrastructure/sounds/infrastructure_emergency_phone.ogg diff --git a/infrastructure/sounds/infrastructure_traffic_lights_1.ogg b/mods/infrastructure/sounds/infrastructure_traffic_lights_1.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_traffic_lights_1.ogg rename to mods/infrastructure/sounds/infrastructure_traffic_lights_1.ogg diff --git a/infrastructure/sounds/infrastructure_traffic_lights_2.ogg b/mods/infrastructure/sounds/infrastructure_traffic_lights_2.ogg similarity index 100% rename from infrastructure/sounds/infrastructure_traffic_lights_2.ogg rename to mods/infrastructure/sounds/infrastructure_traffic_lights_2.ogg diff --git a/infrastructure/textures/infrastructure_aircraft_warning_light_side_anim.png b/mods/infrastructure/textures/infrastructure_aircraft_warning_light_side_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_aircraft_warning_light_side_anim.png rename to mods/infrastructure/textures/infrastructure_aircraft_warning_light_side_anim.png diff --git a/infrastructure/textures/infrastructure_aircraft_warning_light_top_anim.png b/mods/infrastructure/textures/infrastructure_aircraft_warning_light_top_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_aircraft_warning_light_top_anim.png rename to mods/infrastructure/textures/infrastructure_aircraft_warning_light_top_anim.png diff --git a/infrastructure/textures/infrastructure_anti_dazzling_panel_side.png b/mods/infrastructure/textures/infrastructure_anti_dazzling_panel_side.png similarity index 100% rename from infrastructure/textures/infrastructure_anti_dazzling_panel_side.png rename to mods/infrastructure/textures/infrastructure_anti_dazzling_panel_side.png diff --git a/infrastructure/textures/infrastructure_anti_dazzling_panel_top_bottom.png b/mods/infrastructure/textures/infrastructure_anti_dazzling_panel_top_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_anti_dazzling_panel_top_bottom.png rename to mods/infrastructure/textures/infrastructure_anti_dazzling_panel_top_bottom.png diff --git a/infrastructure/textures/infrastructure_asphalt.png b/mods/infrastructure/textures/infrastructure_asphalt.png similarity index 100% rename from infrastructure/textures/infrastructure_asphalt.png rename to mods/infrastructure/textures/infrastructure_asphalt.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_bottom.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_bottom.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_bottom.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_anim.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_center_anim.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_anim.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_off.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_off.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_center_off.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_off.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_side.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_side.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_center_side.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_center_side.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_anim.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_left_anim.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_anim.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_off.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_off.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_left_off.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_off.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_side.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_side.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_left_side.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_left_side.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_anim.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_right_anim.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_anim.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_off.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_off.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_right_off.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_off.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_side.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_side.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_right_side.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_right_side.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_middle_side.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_side.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_middle_side.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_middle_side.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_top.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_top.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_top.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_top.png diff --git a/infrastructure/textures/infrastructure_automatic_warning_device_top_side.png b/mods/infrastructure/textures/infrastructure_automatic_warning_device_top_side.png similarity index 100% rename from infrastructure/textures/infrastructure_automatic_warning_device_top_side.png rename to mods/infrastructure/textures/infrastructure_automatic_warning_device_top_side.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_darkfirst.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_darkfirst.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_darkfirst.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_darkfirst.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_lightfirst.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_lightfirst.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_lightfirst.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_anim_lightfirst.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_h_bottom_front_back.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_bottom_front_back.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_h_bottom_front_back.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_bottom_front_back.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_h_left_right_bright.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_left_right_bright.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_h_left_right_bright.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_left_right_bright.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_h_top.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_top.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_h_top.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_h_top.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_v_left.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_v_left.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_v_left.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_v_left.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_arm_v_right.png b/mods/infrastructure/textures/infrastructure_boom_barrier_arm_v_right.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_arm_v_right.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_arm_v_right.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_h_bottom.png b/mods/infrastructure/textures/infrastructure_boom_barrier_h_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_h_bottom.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_h_bottom.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_h_front_back.png b/mods/infrastructure/textures/infrastructure_boom_barrier_h_front_back.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_h_front_back.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_h_front_back.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_h_left.png b/mods/infrastructure/textures/infrastructure_boom_barrier_h_left.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_h_left.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_h_left.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_h_right.png b/mods/infrastructure/textures/infrastructure_boom_barrier_h_right.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_h_right.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_h_right.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_h_top.png b/mods/infrastructure/textures/infrastructure_boom_barrier_h_top.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_h_top.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_h_top.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_v_bottom.png b/mods/infrastructure/textures/infrastructure_boom_barrier_v_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_v_bottom.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_v_bottom.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_v_front_back.png b/mods/infrastructure/textures/infrastructure_boom_barrier_v_front_back.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_v_front_back.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_v_front_back.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_v_left.png b/mods/infrastructure/textures/infrastructure_boom_barrier_v_left.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_v_left.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_v_left.png diff --git a/infrastructure/textures/infrastructure_boom_barrier_v_right.png b/mods/infrastructure/textures/infrastructure_boom_barrier_v_right.png similarity index 100% rename from infrastructure/textures/infrastructure_boom_barrier_v_right.png rename to mods/infrastructure/textures/infrastructure_boom_barrier_v_right.png diff --git a/infrastructure/textures/infrastructure_cable_barrier_terminal_back.png b/mods/infrastructure/textures/infrastructure_cable_barrier_terminal_back.png similarity index 100% rename from infrastructure/textures/infrastructure_cable_barrier_terminal_back.png rename to mods/infrastructure/textures/infrastructure_cable_barrier_terminal_back.png diff --git a/infrastructure/textures/infrastructure_cable_barrier_terminal_front.png b/mods/infrastructure/textures/infrastructure_cable_barrier_terminal_front.png similarity index 100% rename from infrastructure/textures/infrastructure_cable_barrier_terminal_front.png rename to mods/infrastructure/textures/infrastructure_cable_barrier_terminal_front.png diff --git a/infrastructure/textures/infrastructure_concrete.png b/mods/infrastructure/textures/infrastructure_concrete.png similarity index 100% rename from infrastructure/textures/infrastructure_concrete.png rename to mods/infrastructure/textures/infrastructure_concrete.png diff --git a/infrastructure/textures/infrastructure_corrugated_guide_rail_back.png b/mods/infrastructure/textures/infrastructure_corrugated_guide_rail_back.png similarity index 100% rename from infrastructure/textures/infrastructure_corrugated_guide_rail_back.png rename to mods/infrastructure/textures/infrastructure_corrugated_guide_rail_back.png diff --git a/infrastructure/textures/infrastructure_corrugated_guide_rail_front.png b/mods/infrastructure/textures/infrastructure_corrugated_guide_rail_front.png similarity index 100% rename from infrastructure/textures/infrastructure_corrugated_guide_rail_front.png rename to mods/infrastructure/textures/infrastructure_corrugated_guide_rail_front.png diff --git a/infrastructure/textures/infrastructure_corrugated_guide_rail_side.png b/mods/infrastructure/textures/infrastructure_corrugated_guide_rail_side.png similarity index 100% rename from infrastructure/textures/infrastructure_corrugated_guide_rail_side.png rename to mods/infrastructure/textures/infrastructure_corrugated_guide_rail_side.png diff --git a/infrastructure/textures/infrastructure_corrugated_sheet.png b/mods/infrastructure/textures/infrastructure_corrugated_sheet.png similarity index 100% rename from infrastructure/textures/infrastructure_corrugated_sheet.png rename to mods/infrastructure/textures/infrastructure_corrugated_sheet.png diff --git a/infrastructure/textures/infrastructure_crosswalk_lighting_back.png b/mods/infrastructure/textures/infrastructure_crosswalk_lighting_back.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_lighting_back.png rename to mods/infrastructure/textures/infrastructure_crosswalk_lighting_back.png diff --git a/infrastructure/textures/infrastructure_crosswalk_lighting_bottom.png b/mods/infrastructure/textures/infrastructure_crosswalk_lighting_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_lighting_bottom.png rename to mods/infrastructure/textures/infrastructure_crosswalk_lighting_bottom.png diff --git a/infrastructure/textures/infrastructure_crosswalk_lighting_front.png b/mods/infrastructure/textures/infrastructure_crosswalk_lighting_front.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_lighting_front.png rename to mods/infrastructure/textures/infrastructure_crosswalk_lighting_front.png diff --git a/infrastructure/textures/infrastructure_crosswalk_safety_sign.png b/mods/infrastructure/textures/infrastructure_crosswalk_safety_sign.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_safety_sign.png rename to mods/infrastructure/textures/infrastructure_crosswalk_safety_sign.png diff --git a/infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_front_back.png b/mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_front_back.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_front_back.png rename to mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_front_back.png diff --git a/infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_side.png b/mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_side.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_side.png rename to mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_bottom_side.png diff --git a/infrastructure/textures/infrastructure_crosswalk_safety_sign_top.png b/mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_top.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_safety_sign_top.png rename to mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_top.png diff --git a/infrastructure/textures/infrastructure_crosswalk_safety_sign_top_front_back.png b/mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_top_front_back.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_safety_sign_top_front_back.png rename to mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_top_front_back.png diff --git a/infrastructure/textures/infrastructure_crosswalk_safety_sign_top_side.png b/mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_top_side.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_safety_sign_top_side.png rename to mods/infrastructure/textures/infrastructure_crosswalk_safety_sign_top_side.png diff --git a/infrastructure/textures/infrastructure_crosswalk_warning_light_back.png b/mods/infrastructure/textures/infrastructure_crosswalk_warning_light_back.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_warning_light_back.png rename to mods/infrastructure/textures/infrastructure_crosswalk_warning_light_back.png diff --git a/infrastructure/textures/infrastructure_crosswalk_warning_light_front_anim.png b/mods/infrastructure/textures/infrastructure_crosswalk_warning_light_front_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_warning_light_front_anim.png rename to mods/infrastructure/textures/infrastructure_crosswalk_warning_light_front_anim.png diff --git a/infrastructure/textures/infrastructure_crosswalk_warning_light_front_bright.png b/mods/infrastructure/textures/infrastructure_crosswalk_warning_light_front_bright.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_warning_light_front_bright.png rename to mods/infrastructure/textures/infrastructure_crosswalk_warning_light_front_bright.png diff --git a/infrastructure/textures/infrastructure_crosswalk_warning_light_front_dark.png b/mods/infrastructure/textures/infrastructure_crosswalk_warning_light_front_dark.png similarity index 100% rename from infrastructure/textures/infrastructure_crosswalk_warning_light_front_dark.png rename to mods/infrastructure/textures/infrastructure_crosswalk_warning_light_front_dark.png diff --git a/infrastructure/textures/infrastructure_crowd_control_barricade_back.png b/mods/infrastructure/textures/infrastructure_crowd_control_barricade_back.png similarity index 100% rename from infrastructure/textures/infrastructure_crowd_control_barricade_back.png rename to mods/infrastructure/textures/infrastructure_crowd_control_barricade_back.png diff --git a/infrastructure/textures/infrastructure_crowd_control_barricade_front.png b/mods/infrastructure/textures/infrastructure_crowd_control_barricade_front.png similarity index 100% rename from infrastructure/textures/infrastructure_crowd_control_barricade_front.png rename to mods/infrastructure/textures/infrastructure_crowd_control_barricade_front.png diff --git a/infrastructure/textures/infrastructure_curve_chevron_left_bright.png b/mods/infrastructure/textures/infrastructure_curve_chevron_left_bright.png similarity index 100% rename from infrastructure/textures/infrastructure_curve_chevron_left_bright.png rename to mods/infrastructure/textures/infrastructure_curve_chevron_left_bright.png diff --git a/infrastructure/textures/infrastructure_curve_chevron_left_dark.png b/mods/infrastructure/textures/infrastructure_curve_chevron_left_dark.png similarity index 100% rename from infrastructure/textures/infrastructure_curve_chevron_left_dark.png rename to mods/infrastructure/textures/infrastructure_curve_chevron_left_dark.png diff --git a/infrastructure/textures/infrastructure_curve_chevron_right_bright.png b/mods/infrastructure/textures/infrastructure_curve_chevron_right_bright.png similarity index 100% rename from infrastructure/textures/infrastructure_curve_chevron_right_bright.png rename to mods/infrastructure/textures/infrastructure_curve_chevron_right_bright.png diff --git a/infrastructure/textures/infrastructure_curve_chevron_right_dark.png b/mods/infrastructure/textures/infrastructure_curve_chevron_right_dark.png similarity index 100% rename from infrastructure/textures/infrastructure_curve_chevron_right_dark.png rename to mods/infrastructure/textures/infrastructure_curve_chevron_right_dark.png diff --git a/infrastructure/textures/infrastructure_delineator_retroreflector_red.png b/mods/infrastructure/textures/infrastructure_delineator_retroreflector_red.png similarity index 100% rename from infrastructure/textures/infrastructure_delineator_retroreflector_red.png rename to mods/infrastructure/textures/infrastructure_delineator_retroreflector_red.png diff --git a/infrastructure/textures/infrastructure_delineator_retroreflector_yellow.png b/mods/infrastructure/textures/infrastructure_delineator_retroreflector_yellow.png similarity index 100% rename from infrastructure/textures/infrastructure_delineator_retroreflector_yellow.png rename to mods/infrastructure/textures/infrastructure_delineator_retroreflector_yellow.png diff --git a/infrastructure/textures/infrastructure_delineator_wrapper_left.png b/mods/infrastructure/textures/infrastructure_delineator_wrapper_left.png similarity index 100% rename from infrastructure/textures/infrastructure_delineator_wrapper_left.png rename to mods/infrastructure/textures/infrastructure_delineator_wrapper_left.png diff --git a/infrastructure/textures/infrastructure_delineator_wrapper_right.png b/mods/infrastructure/textures/infrastructure_delineator_wrapper_right.png similarity index 100% rename from infrastructure/textures/infrastructure_delineator_wrapper_right.png rename to mods/infrastructure/textures/infrastructure_delineator_wrapper_right.png diff --git a/infrastructure/textures/infrastructure_drainage_channel_grating.png b/mods/infrastructure/textures/infrastructure_drainage_channel_grating.png similarity index 100% rename from infrastructure/textures/infrastructure_drainage_channel_grating.png rename to mods/infrastructure/textures/infrastructure_drainage_channel_grating.png diff --git a/infrastructure/textures/infrastructure_ebell_sides.png b/mods/infrastructure/textures/infrastructure_ebell_sides.png similarity index 100% rename from infrastructure/textures/infrastructure_ebell_sides.png rename to mods/infrastructure/textures/infrastructure_ebell_sides.png diff --git a/infrastructure/textures/infrastructure_emergency_phone_bottom.png b/mods/infrastructure/textures/infrastructure_emergency_phone_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_emergency_phone_bottom.png rename to mods/infrastructure/textures/infrastructure_emergency_phone_bottom.png diff --git a/infrastructure/textures/infrastructure_emergency_phone_front.png b/mods/infrastructure/textures/infrastructure_emergency_phone_front.png similarity index 100% rename from infrastructure/textures/infrastructure_emergency_phone_front.png rename to mods/infrastructure/textures/infrastructure_emergency_phone_front.png diff --git a/infrastructure/textures/infrastructure_emergency_phone_side.png b/mods/infrastructure/textures/infrastructure_emergency_phone_side.png similarity index 100% rename from infrastructure/textures/infrastructure_emergency_phone_side.png rename to mods/infrastructure/textures/infrastructure_emergency_phone_side.png diff --git a/infrastructure/textures/infrastructure_emergency_phone_top.png b/mods/infrastructure/textures/infrastructure_emergency_phone_top.png similarity index 100% rename from infrastructure/textures/infrastructure_emergency_phone_top.png rename to mods/infrastructure/textures/infrastructure_emergency_phone_top.png diff --git a/infrastructure/textures/infrastructure_energy_absorbing_terminal_back.png b/mods/infrastructure/textures/infrastructure_energy_absorbing_terminal_back.png similarity index 100% rename from infrastructure/textures/infrastructure_energy_absorbing_terminal_back.png rename to mods/infrastructure/textures/infrastructure_energy_absorbing_terminal_back.png diff --git a/infrastructure/textures/infrastructure_energy_absorbing_terminal_front.png b/mods/infrastructure/textures/infrastructure_energy_absorbing_terminal_front.png similarity index 100% rename from infrastructure/textures/infrastructure_energy_absorbing_terminal_front.png rename to mods/infrastructure/textures/infrastructure_energy_absorbing_terminal_front.png diff --git a/infrastructure/textures/infrastructure_fitch_barrel_bottom.png b/mods/infrastructure/textures/infrastructure_fitch_barrel_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_fitch_barrel_bottom.png rename to mods/infrastructure/textures/infrastructure_fitch_barrel_bottom.png diff --git a/infrastructure/textures/infrastructure_fitch_barrel_side.png b/mods/infrastructure/textures/infrastructure_fitch_barrel_side.png similarity index 100% rename from infrastructure/textures/infrastructure_fitch_barrel_side.png rename to mods/infrastructure/textures/infrastructure_fitch_barrel_side.png diff --git a/infrastructure/textures/infrastructure_fitch_barrel_top.png b/mods/infrastructure/textures/infrastructure_fitch_barrel_top.png similarity index 100% rename from infrastructure/textures/infrastructure_fitch_barrel_top.png rename to mods/infrastructure/textures/infrastructure_fitch_barrel_top.png diff --git a/infrastructure/textures/infrastructure_galvanized_steel.png b/mods/infrastructure/textures/infrastructure_galvanized_steel.png similarity index 100% rename from infrastructure/textures/infrastructure_galvanized_steel.png rename to mods/infrastructure/textures/infrastructure_galvanized_steel.png diff --git a/infrastructure/textures/infrastructure_grid_paver_bottom.png b/mods/infrastructure/textures/infrastructure_grid_paver_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_grid_paver_bottom.png rename to mods/infrastructure/textures/infrastructure_grid_paver_bottom.png diff --git a/infrastructure/textures/infrastructure_grid_paver_grass.png b/mods/infrastructure/textures/infrastructure_grid_paver_grass.png similarity index 100% rename from infrastructure/textures/infrastructure_grid_paver_grass.png rename to mods/infrastructure/textures/infrastructure_grid_paver_grass.png diff --git a/infrastructure/textures/infrastructure_grid_paver_top.png b/mods/infrastructure/textures/infrastructure_grid_paver_top.png similarity index 100% rename from infrastructure/textures/infrastructure_grid_paver_top.png rename to mods/infrastructure/textures/infrastructure_grid_paver_top.png diff --git a/infrastructure/textures/infrastructure_lane_control_lights_1.png b/mods/infrastructure/textures/infrastructure_lane_control_lights_1.png similarity index 100% rename from infrastructure/textures/infrastructure_lane_control_lights_1.png rename to mods/infrastructure/textures/infrastructure_lane_control_lights_1.png diff --git a/infrastructure/textures/infrastructure_lane_control_lights_2.png b/mods/infrastructure/textures/infrastructure_lane_control_lights_2.png similarity index 100% rename from infrastructure/textures/infrastructure_lane_control_lights_2.png rename to mods/infrastructure/textures/infrastructure_lane_control_lights_2.png diff --git a/infrastructure/textures/infrastructure_lane_control_lights_3.png b/mods/infrastructure/textures/infrastructure_lane_control_lights_3.png similarity index 100% rename from infrastructure/textures/infrastructure_lane_control_lights_3.png rename to mods/infrastructure/textures/infrastructure_lane_control_lights_3.png diff --git a/infrastructure/textures/infrastructure_lane_control_lights_4.png b/mods/infrastructure/textures/infrastructure_lane_control_lights_4.png similarity index 100% rename from infrastructure/textures/infrastructure_lane_control_lights_4.png rename to mods/infrastructure/textures/infrastructure_lane_control_lights_4.png diff --git a/infrastructure/textures/infrastructure_lane_control_lights_5.png b/mods/infrastructure/textures/infrastructure_lane_control_lights_5.png similarity index 100% rename from infrastructure/textures/infrastructure_lane_control_lights_5.png rename to mods/infrastructure/textures/infrastructure_lane_control_lights_5.png diff --git a/infrastructure/textures/infrastructure_lane_control_lights_6.png b/mods/infrastructure/textures/infrastructure_lane_control_lights_6.png similarity index 100% rename from infrastructure/textures/infrastructure_lane_control_lights_6.png rename to mods/infrastructure/textures/infrastructure_lane_control_lights_6.png diff --git a/infrastructure/textures/infrastructure_manhole_cover_side.png b/mods/infrastructure/textures/infrastructure_manhole_cover_side.png similarity index 100% rename from infrastructure/textures/infrastructure_manhole_cover_side.png rename to mods/infrastructure/textures/infrastructure_manhole_cover_side.png diff --git a/infrastructure/textures/infrastructure_manhole_cover_top_bottom.png b/mods/infrastructure/textures/infrastructure_manhole_cover_top_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_manhole_cover_top_bottom.png rename to mods/infrastructure/textures/infrastructure_manhole_cover_top_bottom.png diff --git a/infrastructure/textures/infrastructure_marker_bottom_side.png b/mods/infrastructure/textures/infrastructure_marker_bottom_side.png similarity index 100% rename from infrastructure/textures/infrastructure_marker_bottom_side.png rename to mods/infrastructure/textures/infrastructure_marker_bottom_side.png diff --git a/infrastructure/textures/infrastructure_marker_side_red.png b/mods/infrastructure/textures/infrastructure_marker_side_red.png similarity index 100% rename from infrastructure/textures/infrastructure_marker_side_red.png rename to mods/infrastructure/textures/infrastructure_marker_side_red.png diff --git a/infrastructure/textures/infrastructure_marker_side_yellow.png b/mods/infrastructure/textures/infrastructure_marker_side_yellow.png similarity index 100% rename from infrastructure/textures/infrastructure_marker_side_yellow.png rename to mods/infrastructure/textures/infrastructure_marker_side_yellow.png diff --git a/infrastructure/textures/infrastructure_marker_top_red_yellow.png b/mods/infrastructure/textures/infrastructure_marker_top_red_yellow.png similarity index 100% rename from infrastructure/textures/infrastructure_marker_top_red_yellow.png rename to mods/infrastructure/textures/infrastructure_marker_top_red_yellow.png diff --git a/infrastructure/textures/infrastructure_marker_top_yellow_yellow.png b/mods/infrastructure/textures/infrastructure_marker_top_yellow_yellow.png similarity index 100% rename from infrastructure/textures/infrastructure_marker_top_yellow_yellow.png rename to mods/infrastructure/textures/infrastructure_marker_top_yellow_yellow.png diff --git a/infrastructure/textures/infrastructure_noise_barrier.png b/mods/infrastructure/textures/infrastructure_noise_barrier.png similarity index 100% rename from infrastructure/textures/infrastructure_noise_barrier.png rename to mods/infrastructure/textures/infrastructure_noise_barrier.png diff --git a/infrastructure/textures/infrastructure_razor_wire.png b/mods/infrastructure/textures/infrastructure_razor_wire.png similarity index 100% rename from infrastructure/textures/infrastructure_razor_wire.png rename to mods/infrastructure/textures/infrastructure_razor_wire.png diff --git a/infrastructure/textures/infrastructure_riffled_sheet.png b/mods/infrastructure/textures/infrastructure_riffled_sheet.png similarity index 100% rename from infrastructure/textures/infrastructure_riffled_sheet.png rename to mods/infrastructure/textures/infrastructure_riffled_sheet.png diff --git a/infrastructure/textures/infrastructure_road_sign_crosswalk_back.png b/mods/infrastructure/textures/infrastructure_road_sign_crosswalk_back.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_crosswalk_back.png rename to mods/infrastructure/textures/infrastructure_road_sign_crosswalk_back.png diff --git a/infrastructure/textures/infrastructure_road_sign_crosswalk_front.png b/mods/infrastructure/textures/infrastructure_road_sign_crosswalk_front.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_crosswalk_front.png rename to mods/infrastructure/textures/infrastructure_road_sign_crosswalk_front.png diff --git a/infrastructure/textures/infrastructure_road_sign_retroreflective_surface.png b/mods/infrastructure/textures/infrastructure_road_sign_retroreflective_surface.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_retroreflective_surface.png rename to mods/infrastructure/textures/infrastructure_road_sign_retroreflective_surface.png diff --git a/infrastructure/textures/infrastructure_road_sign_right_of_way_back.png b/mods/infrastructure/textures/infrastructure_road_sign_right_of_way_back.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_right_of_way_back.png rename to mods/infrastructure/textures/infrastructure_road_sign_right_of_way_back.png diff --git a/infrastructure/textures/infrastructure_road_sign_right_of_way_front.png b/mods/infrastructure/textures/infrastructure_road_sign_right_of_way_front.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_right_of_way_front.png rename to mods/infrastructure/textures/infrastructure_road_sign_right_of_way_front.png diff --git a/infrastructure/textures/infrastructure_road_sign_stop_back.png b/mods/infrastructure/textures/infrastructure_road_sign_stop_back.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_stop_back.png rename to mods/infrastructure/textures/infrastructure_road_sign_stop_back.png diff --git a/infrastructure/textures/infrastructure_road_sign_stop_front.png b/mods/infrastructure/textures/infrastructure_road_sign_stop_front.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_stop_front.png rename to mods/infrastructure/textures/infrastructure_road_sign_stop_front.png diff --git a/infrastructure/textures/infrastructure_road_sign_yield_back.png b/mods/infrastructure/textures/infrastructure_road_sign_yield_back.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_yield_back.png rename to mods/infrastructure/textures/infrastructure_road_sign_yield_back.png diff --git a/infrastructure/textures/infrastructure_road_sign_yield_front.png b/mods/infrastructure/textures/infrastructure_road_sign_yield_front.png similarity index 100% rename from infrastructure/textures/infrastructure_road_sign_yield_front.png rename to mods/infrastructure/textures/infrastructure_road_sign_yield_front.png diff --git a/infrastructure/textures/infrastructure_traffic_cone.png b/mods/infrastructure/textures/infrastructure_traffic_cone.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_cone.png rename to mods/infrastructure/textures/infrastructure_traffic_cone.png diff --git a/infrastructure/textures/infrastructure_traffic_cone_bottom.png b/mods/infrastructure/textures/infrastructure_traffic_cone_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_cone_bottom.png rename to mods/infrastructure/textures/infrastructure_traffic_cone_bottom.png diff --git a/infrastructure/textures/infrastructure_traffic_cone_side.png b/mods/infrastructure/textures/infrastructure_traffic_cone_side.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_cone_side.png rename to mods/infrastructure/textures/infrastructure_traffic_cone_side.png diff --git a/infrastructure/textures/infrastructure_traffic_cone_top.png b/mods/infrastructure/textures/infrastructure_traffic_cone_top.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_cone_top.png rename to mods/infrastructure/textures/infrastructure_traffic_cone_top.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_back.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_back.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_back.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_back.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_1.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_1.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_1.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_1.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_2.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_2.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_2.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_2.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_3.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_3.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_3.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_3.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_4.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_4.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_4.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_bottom_front_4.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_back.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_back.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_back.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_back.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_1.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_1.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_1.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_1.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_2.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_2.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_2.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_2.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_3.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_3.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_3.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_3.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_4.png b/mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_4.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_4.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_pedestrians_top_front_4.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_side.png b/mods/infrastructure/textures/infrastructure_traffic_lights_side.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_side.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_side.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_1.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_1.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_1.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_1.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_2.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_2.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_2.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_2.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_3.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_3.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_3.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_3.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_4.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_4.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_4.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_bottom_4.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_1.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_1.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_top_1.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_1.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_2.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_2.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_top_2.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_2.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_3.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_3.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_top_3.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_3.png diff --git a/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_4.png b/mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_4.png similarity index 100% rename from infrastructure/textures/infrastructure_traffic_lights_vehicles_top_4.png rename to mods/infrastructure/textures/infrastructure_traffic_lights_vehicles_top_4.png diff --git a/infrastructure/textures/infrastructure_truss.png b/mods/infrastructure/textures/infrastructure_truss.png similarity index 100% rename from infrastructure/textures/infrastructure_truss.png rename to mods/infrastructure/textures/infrastructure_truss.png diff --git a/infrastructure/textures/infrastructure_warning_light_back.png b/mods/infrastructure/textures/infrastructure_warning_light_back.png similarity index 100% rename from infrastructure/textures/infrastructure_warning_light_back.png rename to mods/infrastructure/textures/infrastructure_warning_light_back.png diff --git a/infrastructure/textures/infrastructure_warning_light_bottom.png b/mods/infrastructure/textures/infrastructure_warning_light_bottom.png similarity index 100% rename from infrastructure/textures/infrastructure_warning_light_bottom.png rename to mods/infrastructure/textures/infrastructure_warning_light_bottom.png diff --git a/infrastructure/textures/infrastructure_warning_light_front_anim.png b/mods/infrastructure/textures/infrastructure_warning_light_front_anim.png similarity index 100% rename from infrastructure/textures/infrastructure_warning_light_front_anim.png rename to mods/infrastructure/textures/infrastructure_warning_light_front_anim.png diff --git a/infrastructure/textures/infrastructure_warning_light_left.png b/mods/infrastructure/textures/infrastructure_warning_light_left.png similarity index 100% rename from infrastructure/textures/infrastructure_warning_light_left.png rename to mods/infrastructure/textures/infrastructure_warning_light_left.png diff --git a/infrastructure/textures/infrastructure_warning_light_right.png b/mods/infrastructure/textures/infrastructure_warning_light_right.png similarity index 100% rename from infrastructure/textures/infrastructure_warning_light_right.png rename to mods/infrastructure/textures/infrastructure_warning_light_right.png diff --git a/infrastructure/textures/infrastructure_warning_light_top.png b/mods/infrastructure/textures/infrastructure_warning_light_top.png similarity index 100% rename from infrastructure/textures/infrastructure_warning_light_top.png rename to mods/infrastructure/textures/infrastructure_warning_light_top.png diff --git a/infrastructure/textures/infrastructure_wire_netting.png b/mods/infrastructure/textures/infrastructure_wire_netting.png similarity index 100% rename from infrastructure/textures/infrastructure_wire_netting.png rename to mods/infrastructure/textures/infrastructure_wire_netting.png diff --git a/infrastructure/textures/infrastructure_wire_rope_safety_barrier_back.png b/mods/infrastructure/textures/infrastructure_wire_rope_safety_barrier_back.png similarity index 100% rename from infrastructure/textures/infrastructure_wire_rope_safety_barrier_back.png rename to mods/infrastructure/textures/infrastructure_wire_rope_safety_barrier_back.png diff --git a/infrastructure/textures/infrastructure_wire_rope_safety_barrier_front.png b/mods/infrastructure/textures/infrastructure_wire_rope_safety_barrier_front.png similarity index 100% rename from infrastructure/textures/infrastructure_wire_rope_safety_barrier_front.png rename to mods/infrastructure/textures/infrastructure_wire_rope_safety_barrier_front.png diff --git a/invsaw/README b/mods/invsaw/README similarity index 100% rename from invsaw/README rename to mods/invsaw/README diff --git a/invsaw/depends.txt b/mods/invsaw/depends.txt similarity index 100% rename from invsaw/depends.txt rename to mods/invsaw/depends.txt diff --git a/invsaw/init.lua b/mods/invsaw/init.lua similarity index 100% rename from invsaw/init.lua rename to mods/invsaw/init.lua diff --git a/invsaw/textures/invsaw_button.png b/mods/invsaw/textures/invsaw_button.png similarity index 100% rename from invsaw/textures/invsaw_button.png rename to mods/invsaw/textures/invsaw_button.png diff --git a/item_drop/.luacheckrc b/mods/item_drop/.luacheckrc similarity index 100% rename from item_drop/.luacheckrc rename to mods/item_drop/.luacheckrc diff --git a/item_drop/CONTRIBUTING.md b/mods/item_drop/CONTRIBUTING.md similarity index 100% rename from item_drop/CONTRIBUTING.md rename to mods/item_drop/CONTRIBUTING.md diff --git a/item_drop/LICENSE b/mods/item_drop/LICENSE similarity index 100% rename from item_drop/LICENSE rename to mods/item_drop/LICENSE diff --git a/item_drop/README.md b/mods/item_drop/README.md similarity index 100% rename from item_drop/README.md rename to mods/item_drop/README.md diff --git a/item_drop/description.txt b/mods/item_drop/description.txt similarity index 100% rename from item_drop/description.txt rename to mods/item_drop/description.txt diff --git a/item_drop/init.lua b/mods/item_drop/init.lua similarity index 100% rename from item_drop/init.lua rename to mods/item_drop/init.lua diff --git a/item_drop/mod.conf b/mods/item_drop/mod.conf similarity index 100% rename from item_drop/mod.conf rename to mods/item_drop/mod.conf diff --git a/item_drop/screenshot.png b/mods/item_drop/screenshot.png similarity index 100% rename from item_drop/screenshot.png rename to mods/item_drop/screenshot.png diff --git a/item_drop/settingtypes.txt b/mods/item_drop/settingtypes.txt similarity index 100% rename from item_drop/settingtypes.txt rename to mods/item_drop/settingtypes.txt diff --git a/item_drop/sounds/item_drop_pickup.1.ogg b/mods/item_drop/sounds/item_drop_pickup.1.ogg similarity index 100% rename from item_drop/sounds/item_drop_pickup.1.ogg rename to mods/item_drop/sounds/item_drop_pickup.1.ogg diff --git a/item_drop/sounds/item_drop_pickup.2.ogg b/mods/item_drop/sounds/item_drop_pickup.2.ogg similarity index 100% rename from item_drop/sounds/item_drop_pickup.2.ogg rename to mods/item_drop/sounds/item_drop_pickup.2.ogg diff --git a/item_drop/sounds/item_drop_pickup.3.ogg b/mods/item_drop/sounds/item_drop_pickup.3.ogg similarity index 100% rename from item_drop/sounds/item_drop_pickup.3.ogg rename to mods/item_drop/sounds/item_drop_pickup.3.ogg diff --git a/item_drop/sounds/item_drop_pickup.4.ogg b/mods/item_drop/sounds/item_drop_pickup.4.ogg similarity index 100% rename from item_drop/sounds/item_drop_pickup.4.ogg rename to mods/item_drop/sounds/item_drop_pickup.4.ogg diff --git a/itemframes/.luacheckrc b/mods/itemframes/.luacheckrc similarity index 100% rename from itemframes/.luacheckrc rename to mods/itemframes/.luacheckrc diff --git a/itemframes/init.lua b/mods/itemframes/init.lua similarity index 100% rename from itemframes/init.lua rename to mods/itemframes/init.lua diff --git a/itemframes/locale/itemframes.de.tr b/mods/itemframes/locale/itemframes.de.tr similarity index 100% rename from itemframes/locale/itemframes.de.tr rename to mods/itemframes/locale/itemframes.de.tr diff --git a/itemframes/locale/itemframes.es.tr b/mods/itemframes/locale/itemframes.es.tr similarity index 100% rename from itemframes/locale/itemframes.es.tr rename to mods/itemframes/locale/itemframes.es.tr diff --git a/itemframes/locale/itemframes.fr.tr b/mods/itemframes/locale/itemframes.fr.tr similarity index 100% rename from itemframes/locale/itemframes.fr.tr rename to mods/itemframes/locale/itemframes.fr.tr diff --git a/itemframes/locale/itemframes.it.tr b/mods/itemframes/locale/itemframes.it.tr similarity index 100% rename from itemframes/locale/itemframes.it.tr rename to mods/itemframes/locale/itemframes.it.tr diff --git a/itemframes/locale/itemframes.ms.tr b/mods/itemframes/locale/itemframes.ms.tr similarity index 100% rename from itemframes/locale/itemframes.ms.tr rename to mods/itemframes/locale/itemframes.ms.tr diff --git a/itemframes/locale/itemframes.pt.tr b/mods/itemframes/locale/itemframes.pt.tr similarity index 100% rename from itemframes/locale/itemframes.pt.tr rename to mods/itemframes/locale/itemframes.pt.tr diff --git a/itemframes/locale/itemframes.pt_BR.tr b/mods/itemframes/locale/itemframes.pt_BR.tr similarity index 100% rename from itemframes/locale/itemframes.pt_BR.tr rename to mods/itemframes/locale/itemframes.pt_BR.tr diff --git a/itemframes/locale/itemframes.ru.tr b/mods/itemframes/locale/itemframes.ru.tr similarity index 100% rename from itemframes/locale/itemframes.ru.tr rename to mods/itemframes/locale/itemframes.ru.tr diff --git a/itemframes/locale/itemframes.zh_CN.tr b/mods/itemframes/locale/itemframes.zh_CN.tr similarity index 100% rename from itemframes/locale/itemframes.zh_CN.tr rename to mods/itemframes/locale/itemframes.zh_CN.tr diff --git a/itemframes/locale/template.txt b/mods/itemframes/locale/template.txt similarity index 100% rename from itemframes/locale/template.txt rename to mods/itemframes/locale/template.txt diff --git a/itemframes/mod.conf b/mods/itemframes/mod.conf similarity index 100% rename from itemframes/mod.conf rename to mods/itemframes/mod.conf diff --git a/itemframes/textures/itemframes_frame.png b/mods/itemframes/textures/itemframes_frame.png similarity index 100% rename from itemframes/textures/itemframes_frame.png rename to mods/itemframes/textures/itemframes_frame.png diff --git a/itemframes/textures/itemframes_pedestal.png b/mods/itemframes/textures/itemframes_pedestal.png similarity index 100% rename from itemframes/textures/itemframes_pedestal.png rename to mods/itemframes/textures/itemframes_pedestal.png diff --git a/jacaranda/init.lua b/mods/jacaranda/init.lua similarity index 100% rename from jacaranda/init.lua rename to mods/jacaranda/init.lua diff --git a/jacaranda/locale/jacaranda.es.tr b/mods/jacaranda/locale/jacaranda.es.tr similarity index 100% rename from jacaranda/locale/jacaranda.es.tr rename to mods/jacaranda/locale/jacaranda.es.tr diff --git a/jacaranda/mod.conf b/mods/jacaranda/mod.conf similarity index 100% rename from jacaranda/mod.conf rename to mods/jacaranda/mod.conf diff --git a/jacaranda/schematics/jacaranda.lua b/mods/jacaranda/schematics/jacaranda.lua similarity index 100% rename from jacaranda/schematics/jacaranda.lua rename to mods/jacaranda/schematics/jacaranda.lua diff --git a/jacaranda/schematics/jacaranda.mts b/mods/jacaranda/schematics/jacaranda.mts similarity index 100% rename from jacaranda/schematics/jacaranda.mts rename to mods/jacaranda/schematics/jacaranda.mts diff --git a/jacaranda/textures/jacaranda_blossom_leaves.png b/mods/jacaranda/textures/jacaranda_blossom_leaves.png similarity index 100% rename from jacaranda/textures/jacaranda_blossom_leaves.png rename to mods/jacaranda/textures/jacaranda_blossom_leaves.png diff --git a/jacaranda/textures/jacaranda_sapling.png b/mods/jacaranda/textures/jacaranda_sapling.png similarity index 100% rename from jacaranda/textures/jacaranda_sapling.png rename to mods/jacaranda/textures/jacaranda_sapling.png diff --git a/jacaranda/textures/jacaranda_trunk.png b/mods/jacaranda/textures/jacaranda_trunk.png similarity index 100% rename from jacaranda/textures/jacaranda_trunk.png rename to mods/jacaranda/textures/jacaranda_trunk.png diff --git a/jacaranda/textures/jacaranda_trunk_top.png b/mods/jacaranda/textures/jacaranda_trunk_top.png similarity index 100% rename from jacaranda/textures/jacaranda_trunk_top.png rename to mods/jacaranda/textures/jacaranda_trunk_top.png diff --git a/jacaranda/textures/jacaranda_wood.png b/mods/jacaranda/textures/jacaranda_wood.png similarity index 100% rename from jacaranda/textures/jacaranda_wood.png rename to mods/jacaranda/textures/jacaranda_wood.png diff --git a/jumping/README.md b/mods/jumping/README.md similarity index 100% rename from jumping/README.md rename to mods/jumping/README.md diff --git a/jumping/depends.txt b/mods/jumping/depends.txt similarity index 100% rename from jumping/depends.txt rename to mods/jumping/depends.txt diff --git a/jumping/description.txt b/mods/jumping/description.txt similarity index 100% rename from jumping/description.txt rename to mods/jumping/description.txt diff --git a/jumping/init.lua b/mods/jumping/init.lua similarity index 100% rename from jumping/init.lua rename to mods/jumping/init.lua diff --git a/jumping/mod.conf b/mods/jumping/mod.conf similarity index 100% rename from jumping/mod.conf rename to mods/jumping/mod.conf diff --git a/jumping/textures/jumping_cushion_sides.png b/mods/jumping/textures/jumping_cushion_sides.png similarity index 100% rename from jumping/textures/jumping_cushion_sides.png rename to mods/jumping/textures/jumping_cushion_sides.png diff --git a/jumping/textures/jumping_cushion_tb.png b/mods/jumping/textures/jumping_cushion_tb.png similarity index 100% rename from jumping/textures/jumping_cushion_tb.png rename to mods/jumping/textures/jumping_cushion_tb.png diff --git a/jumping/textures/jumping_trampoline_bottom.png b/mods/jumping/textures/jumping_trampoline_bottom.png similarity index 100% rename from jumping/textures/jumping_trampoline_bottom.png rename to mods/jumping/textures/jumping_trampoline_bottom.png diff --git a/jumping/textures/jumping_trampoline_sides.png b/mods/jumping/textures/jumping_trampoline_sides.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides.png rename to mods/jumping/textures/jumping_trampoline_sides.png diff --git a/jumping/textures/jumping_trampoline_sides_overlay1.png b/mods/jumping/textures/jumping_trampoline_sides_overlay1.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides_overlay1.png rename to mods/jumping/textures/jumping_trampoline_sides_overlay1.png diff --git a/jumping/textures/jumping_trampoline_sides_overlay2.png b/mods/jumping/textures/jumping_trampoline_sides_overlay2.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides_overlay2.png rename to mods/jumping/textures/jumping_trampoline_sides_overlay2.png diff --git a/jumping/textures/jumping_trampoline_sides_overlay3.png b/mods/jumping/textures/jumping_trampoline_sides_overlay3.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides_overlay3.png rename to mods/jumping/textures/jumping_trampoline_sides_overlay3.png diff --git a/jumping/textures/jumping_trampoline_sides_overlay4.png b/mods/jumping/textures/jumping_trampoline_sides_overlay4.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides_overlay4.png rename to mods/jumping/textures/jumping_trampoline_sides_overlay4.png diff --git a/jumping/textures/jumping_trampoline_sides_overlay5.png b/mods/jumping/textures/jumping_trampoline_sides_overlay5.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides_overlay5.png rename to mods/jumping/textures/jumping_trampoline_sides_overlay5.png diff --git a/jumping/textures/jumping_trampoline_sides_overlay6.png b/mods/jumping/textures/jumping_trampoline_sides_overlay6.png similarity index 100% rename from jumping/textures/jumping_trampoline_sides_overlay6.png rename to mods/jumping/textures/jumping_trampoline_sides_overlay6.png diff --git a/jumping/textures/jumping_trampoline_top.png b/mods/jumping/textures/jumping_trampoline_top.png similarity index 100% rename from jumping/textures/jumping_trampoline_top.png rename to mods/jumping/textures/jumping_trampoline_top.png diff --git a/junglegrass/init.lua b/mods/junglegrass/init.lua similarity index 100% rename from junglegrass/init.lua rename to mods/junglegrass/init.lua diff --git a/junglegrass/mod.conf b/mods/junglegrass/mod.conf similarity index 100% rename from junglegrass/mod.conf rename to mods/junglegrass/mod.conf diff --git a/labels/depends.txt b/mods/labels/depends.txt similarity index 100% rename from labels/depends.txt rename to mods/labels/depends.txt diff --git a/labels/init.lua b/mods/labels/init.lua similarity index 100% rename from labels/init.lua rename to mods/labels/init.lua diff --git a/labels/textures/infrastructure_double_yellow_line.png b/mods/labels/textures/infrastructure_double_yellow_line.png similarity index 100% rename from labels/textures/infrastructure_double_yellow_line.png rename to mods/labels/textures/infrastructure_double_yellow_line.png diff --git a/labels/textures/infrastructure_single_yellow_line.png b/mods/labels/textures/infrastructure_single_yellow_line.png similarity index 100% rename from labels/textures/infrastructure_single_yellow_line.png rename to mods/labels/textures/infrastructure_single_yellow_line.png diff --git a/labels/textures/infrastructure_single_yellow_line_corner.png b/mods/labels/textures/infrastructure_single_yellow_line_corner.png similarity index 100% rename from labels/textures/infrastructure_single_yellow_line_corner.png rename to mods/labels/textures/infrastructure_single_yellow_line_corner.png diff --git a/labels/textures/infrastructure_solid_double_yellow_line_corner.png b/mods/labels/textures/infrastructure_solid_double_yellow_line_corner.png similarity index 100% rename from labels/textures/infrastructure_solid_double_yellow_line_corner.png rename to mods/labels/textures/infrastructure_solid_double_yellow_line_corner.png diff --git a/labels/textures/infrastructure_solid_yellow_line_one_side.png b/mods/labels/textures/infrastructure_solid_yellow_line_one_side.png similarity index 100% rename from labels/textures/infrastructure_solid_yellow_line_one_side.png rename to mods/labels/textures/infrastructure_solid_yellow_line_one_side.png diff --git a/labels/textures/streets_all_white.png b/mods/labels/textures/streets_all_white.png similarity index 100% rename from labels/textures/streets_all_white.png rename to mods/labels/textures/streets_all_white.png diff --git a/labels/textures/streets_arrow_alldirs.png b/mods/labels/textures/streets_arrow_alldirs.png similarity index 100% rename from labels/textures/streets_arrow_alldirs.png rename to mods/labels/textures/streets_arrow_alldirs.png diff --git a/labels/textures/streets_arrow_left.png b/mods/labels/textures/streets_arrow_left.png similarity index 100% rename from labels/textures/streets_arrow_left.png rename to mods/labels/textures/streets_arrow_left.png diff --git a/labels/textures/streets_arrow_right.png b/mods/labels/textures/streets_arrow_right.png similarity index 100% rename from labels/textures/streets_arrow_right.png rename to mods/labels/textures/streets_arrow_right.png diff --git a/labels/textures/streets_arrow_straight.png b/mods/labels/textures/streets_arrow_straight.png similarity index 100% rename from labels/textures/streets_arrow_straight.png rename to mods/labels/textures/streets_arrow_straight.png diff --git a/labels/textures/streets_arrow_straight_left.png b/mods/labels/textures/streets_arrow_straight_left.png similarity index 100% rename from labels/textures/streets_arrow_straight_left.png rename to mods/labels/textures/streets_arrow_straight_left.png diff --git a/labels/textures/streets_arrow_straight_right.png b/mods/labels/textures/streets_arrow_straight_right.png similarity index 100% rename from labels/textures/streets_arrow_straight_right.png rename to mods/labels/textures/streets_arrow_straight_right.png diff --git a/labels/textures/streets_asphalt_dashed_line.png b/mods/labels/textures/streets_asphalt_dashed_line.png similarity index 100% rename from labels/textures/streets_asphalt_dashed_line.png rename to mods/labels/textures/streets_asphalt_dashed_line.png diff --git a/labels/textures/streets_asphalt_outer_edge.png b/mods/labels/textures/streets_asphalt_outer_edge.png similarity index 100% rename from labels/textures/streets_asphalt_outer_edge.png rename to mods/labels/textures/streets_asphalt_outer_edge.png diff --git a/labels/textures/streets_asphalt_side.png b/mods/labels/textures/streets_asphalt_side.png similarity index 100% rename from labels/textures/streets_asphalt_side.png rename to mods/labels/textures/streets_asphalt_side.png diff --git a/labels/textures/streets_asphalt_side_r.png b/mods/labels/textures/streets_asphalt_side_r.png similarity index 100% rename from labels/textures/streets_asphalt_side_r.png rename to mods/labels/textures/streets_asphalt_side_r.png diff --git a/labels/textures/streets_asphalt_solid_line.png b/mods/labels/textures/streets_asphalt_solid_line.png similarity index 100% rename from labels/textures/streets_asphalt_solid_line.png rename to mods/labels/textures/streets_asphalt_solid_line.png diff --git a/labels/textures/streets_parking.png b/mods/labels/textures/streets_parking.png similarity index 100% rename from labels/textures/streets_parking.png rename to mods/labels/textures/streets_parking.png diff --git a/labels/textures/streets_printer_b.png b/mods/labels/textures/streets_printer_b.png similarity index 100% rename from labels/textures/streets_printer_b.png rename to mods/labels/textures/streets_printer_b.png diff --git a/labels/textures/streets_printer_bt.png b/mods/labels/textures/streets_printer_bt.png similarity index 100% rename from labels/textures/streets_printer_bt.png rename to mods/labels/textures/streets_printer_bt.png diff --git a/labels/textures/streets_printer_f.png b/mods/labels/textures/streets_printer_f.png similarity index 100% rename from labels/textures/streets_printer_f.png rename to mods/labels/textures/streets_printer_f.png diff --git a/labels/textures/streets_printer_inv.png b/mods/labels/textures/streets_printer_inv.png similarity index 100% rename from labels/textures/streets_printer_inv.png rename to mods/labels/textures/streets_printer_inv.png diff --git a/labels/textures/streets_printer_l.png b/mods/labels/textures/streets_printer_l.png similarity index 100% rename from labels/textures/streets_printer_l.png rename to mods/labels/textures/streets_printer_l.png diff --git a/labels/textures/streets_printer_r.png b/mods/labels/textures/streets_printer_r.png similarity index 100% rename from labels/textures/streets_printer_r.png rename to mods/labels/textures/streets_printer_r.png diff --git a/labels/textures/streets_printer_t.png b/mods/labels/textures/streets_printer_t.png similarity index 100% rename from labels/textures/streets_printer_t.png rename to mods/labels/textures/streets_printer_t.png diff --git a/labels/textures/streets_rw_arrow_left.png b/mods/labels/textures/streets_rw_arrow_left.png similarity index 100% rename from labels/textures/streets_rw_arrow_left.png rename to mods/labels/textures/streets_rw_arrow_left.png diff --git a/labels/textures/streets_rw_arrow_right.png b/mods/labels/textures/streets_rw_arrow_right.png similarity index 100% rename from labels/textures/streets_rw_arrow_right.png rename to mods/labels/textures/streets_rw_arrow_right.png diff --git a/labels/textures/streets_rw_arrow_straight.png b/mods/labels/textures/streets_rw_arrow_straight.png similarity index 100% rename from labels/textures/streets_rw_arrow_straight.png rename to mods/labels/textures/streets_rw_arrow_straight.png diff --git a/labels/textures/streets_rw_arrow_straight_left.png b/mods/labels/textures/streets_rw_arrow_straight_left.png similarity index 100% rename from labels/textures/streets_rw_arrow_straight_left.png rename to mods/labels/textures/streets_rw_arrow_straight_left.png diff --git a/labels/textures/streets_rw_arrow_straight_right.png b/mods/labels/textures/streets_rw_arrow_straight_right.png similarity index 100% rename from labels/textures/streets_rw_arrow_straight_right.png rename to mods/labels/textures/streets_rw_arrow_straight_right.png diff --git a/labels/textures/streets_rw_asphalt_side.png b/mods/labels/textures/streets_rw_asphalt_side.png similarity index 100% rename from labels/textures/streets_rw_asphalt_side.png rename to mods/labels/textures/streets_rw_asphalt_side.png diff --git a/labels/textures/streets_rw_cross.png b/mods/labels/textures/streets_rw_cross.png similarity index 100% rename from labels/textures/streets_rw_cross.png rename to mods/labels/textures/streets_rw_cross.png diff --git a/labels/textures/streets_rw_dashed_line.png b/mods/labels/textures/streets_rw_dashed_line.png similarity index 100% rename from labels/textures/streets_rw_dashed_line.png rename to mods/labels/textures/streets_rw_dashed_line.png diff --git a/labels/textures/streets_rw_dashed_line_crossing.png b/mods/labels/textures/streets_rw_dashed_line_crossing.png similarity index 100% rename from labels/textures/streets_rw_dashed_line_crossing.png rename to mods/labels/textures/streets_rw_dashed_line_crossing.png diff --git a/labels/textures/streets_rw_dashed_line_curve.png b/mods/labels/textures/streets_rw_dashed_line_curve.png similarity index 100% rename from labels/textures/streets_rw_dashed_line_curve.png rename to mods/labels/textures/streets_rw_dashed_line_curve.png diff --git a/labels/textures/streets_rw_dashed_line_tjunction.png b/mods/labels/textures/streets_rw_dashed_line_tjunction.png similarity index 100% rename from labels/textures/streets_rw_dashed_line_tjunction.png rename to mods/labels/textures/streets_rw_dashed_line_tjunction.png diff --git a/labels/textures/streets_rw_outer_edge.png b/mods/labels/textures/streets_rw_outer_edge.png similarity index 100% rename from labels/textures/streets_rw_outer_edge.png rename to mods/labels/textures/streets_rw_outer_edge.png diff --git a/labels/textures/streets_rw_parking.png b/mods/labels/textures/streets_rw_parking.png similarity index 100% rename from labels/textures/streets_rw_parking.png rename to mods/labels/textures/streets_rw_parking.png diff --git a/labels/textures/streets_rw_solid_line.png b/mods/labels/textures/streets_rw_solid_line.png similarity index 100% rename from labels/textures/streets_rw_solid_line.png rename to mods/labels/textures/streets_rw_solid_line.png diff --git a/labels/textures/streets_rw_solid_line_crossing.png b/mods/labels/textures/streets_rw_solid_line_crossing.png similarity index 100% rename from labels/textures/streets_rw_solid_line_crossing.png rename to mods/labels/textures/streets_rw_solid_line_crossing.png diff --git a/labels/textures/streets_rw_solid_line_curve.png b/mods/labels/textures/streets_rw_solid_line_curve.png similarity index 100% rename from labels/textures/streets_rw_solid_line_curve.png rename to mods/labels/textures/streets_rw_solid_line_curve.png diff --git a/labels/textures/streets_rw_solid_line_tjunction.png b/mods/labels/textures/streets_rw_solid_line_tjunction.png similarity index 100% rename from labels/textures/streets_rw_solid_line_tjunction.png rename to mods/labels/textures/streets_rw_solid_line_tjunction.png diff --git a/labels/textures/streets_rw_transparent.png b/mods/labels/textures/streets_rw_transparent.png similarity index 100% rename from labels/textures/streets_rw_transparent.png rename to mods/labels/textures/streets_rw_transparent.png diff --git a/labels/textures/streets_white_cartridge.png b/mods/labels/textures/streets_white_cartridge.png similarity index 100% rename from labels/textures/streets_white_cartridge.png rename to mods/labels/textures/streets_white_cartridge.png diff --git a/labels/textures/streets_yellow_cartridge.png b/mods/labels/textures/streets_yellow_cartridge.png similarity index 100% rename from labels/textures/streets_yellow_cartridge.png rename to mods/labels/textures/streets_yellow_cartridge.png diff --git a/labels/textures/streets_yellow_diagonal_lines.png b/mods/labels/textures/streets_yellow_diagonal_lines.png similarity index 100% rename from labels/textures/streets_yellow_diagonal_lines.png rename to mods/labels/textures/streets_yellow_diagonal_lines.png diff --git a/larch/init.lua b/mods/larch/init.lua similarity index 100% rename from larch/init.lua rename to mods/larch/init.lua diff --git a/larch/locale/larch.es.tr b/mods/larch/locale/larch.es.tr similarity index 100% rename from larch/locale/larch.es.tr rename to mods/larch/locale/larch.es.tr diff --git a/larch/mod.conf b/mods/larch/mod.conf similarity index 100% rename from larch/mod.conf rename to mods/larch/mod.conf diff --git a/larch/schematics/larch.lua b/mods/larch/schematics/larch.lua similarity index 100% rename from larch/schematics/larch.lua rename to mods/larch/schematics/larch.lua diff --git a/larch/schematics/larch.mts b/mods/larch/schematics/larch.mts similarity index 100% rename from larch/schematics/larch.mts rename to mods/larch/schematics/larch.mts diff --git a/larch/textures/larch_door_wood.png b/mods/larch/textures/larch_door_wood.png similarity index 100% rename from larch/textures/larch_door_wood.png rename to mods/larch/textures/larch_door_wood.png diff --git a/larch/textures/larch_item_wood.png b/mods/larch/textures/larch_item_wood.png similarity index 100% rename from larch/textures/larch_item_wood.png rename to mods/larch/textures/larch_item_wood.png diff --git a/larch/textures/larch_leaves.png b/mods/larch/textures/larch_leaves.png similarity index 100% rename from larch/textures/larch_leaves.png rename to mods/larch/textures/larch_leaves.png diff --git a/larch/textures/larch_moss.png b/mods/larch/textures/larch_moss.png similarity index 100% rename from larch/textures/larch_moss.png rename to mods/larch/textures/larch_moss.png diff --git a/larch/textures/larch_sapling.png b/mods/larch/textures/larch_sapling.png similarity index 100% rename from larch/textures/larch_sapling.png rename to mods/larch/textures/larch_sapling.png diff --git a/larch/textures/larch_trunk.png b/mods/larch/textures/larch_trunk.png similarity index 100% rename from larch/textures/larch_trunk.png rename to mods/larch/textures/larch_trunk.png diff --git a/larch/textures/larch_trunk_top.png b/mods/larch/textures/larch_trunk_top.png similarity index 100% rename from larch/textures/larch_trunk_top.png rename to mods/larch/textures/larch_trunk_top.png diff --git a/larch/textures/larch_wood.png b/mods/larch/textures/larch_wood.png similarity index 100% rename from larch/textures/larch_wood.png rename to mods/larch/textures/larch_wood.png diff --git a/lavalamp/.luacheckrc b/mods/lavalamp/.luacheckrc similarity index 100% rename from lavalamp/.luacheckrc rename to mods/lavalamp/.luacheckrc diff --git a/lavalamp/README.txt b/mods/lavalamp/README.txt similarity index 100% rename from lavalamp/README.txt rename to mods/lavalamp/README.txt diff --git a/lavalamp/init.lua b/mods/lavalamp/init.lua similarity index 100% rename from lavalamp/init.lua rename to mods/lavalamp/init.lua diff --git a/lavalamp/locale/lavalamp.de.tr b/mods/lavalamp/locale/lavalamp.de.tr similarity index 100% rename from lavalamp/locale/lavalamp.de.tr rename to mods/lavalamp/locale/lavalamp.de.tr diff --git a/lavalamp/locale/lavalamp.es.tr b/mods/lavalamp/locale/lavalamp.es.tr similarity index 100% rename from lavalamp/locale/lavalamp.es.tr rename to mods/lavalamp/locale/lavalamp.es.tr diff --git a/lavalamp/locale/lavalamp.fr.tr b/mods/lavalamp/locale/lavalamp.fr.tr similarity index 100% rename from lavalamp/locale/lavalamp.fr.tr rename to mods/lavalamp/locale/lavalamp.fr.tr diff --git a/lavalamp/locale/lavalamp.it.tr b/mods/lavalamp/locale/lavalamp.it.tr similarity index 100% rename from lavalamp/locale/lavalamp.it.tr rename to mods/lavalamp/locale/lavalamp.it.tr diff --git a/lavalamp/locale/lavalamp.ms.tr b/mods/lavalamp/locale/lavalamp.ms.tr similarity index 100% rename from lavalamp/locale/lavalamp.ms.tr rename to mods/lavalamp/locale/lavalamp.ms.tr diff --git a/lavalamp/locale/lavalamp.pt.tr b/mods/lavalamp/locale/lavalamp.pt.tr similarity index 100% rename from lavalamp/locale/lavalamp.pt.tr rename to mods/lavalamp/locale/lavalamp.pt.tr diff --git a/lavalamp/locale/lavalamp.pt_BR.tr b/mods/lavalamp/locale/lavalamp.pt_BR.tr similarity index 100% rename from lavalamp/locale/lavalamp.pt_BR.tr rename to mods/lavalamp/locale/lavalamp.pt_BR.tr diff --git a/lavalamp/locale/lavalamp.ru.tr b/mods/lavalamp/locale/lavalamp.ru.tr similarity index 100% rename from lavalamp/locale/lavalamp.ru.tr rename to mods/lavalamp/locale/lavalamp.ru.tr diff --git a/lavalamp/locale/lavalamp.zh_CN.tr b/mods/lavalamp/locale/lavalamp.zh_CN.tr similarity index 100% rename from lavalamp/locale/lavalamp.zh_CN.tr rename to mods/lavalamp/locale/lavalamp.zh_CN.tr diff --git a/lavalamp/locale/template.txt b/mods/lavalamp/locale/template.txt similarity index 100% rename from lavalamp/locale/template.txt rename to mods/lavalamp/locale/template.txt diff --git a/lavalamp/mod.conf b/mods/lavalamp/mod.conf similarity index 100% rename from lavalamp/mod.conf rename to mods/lavalamp/mod.conf diff --git a/lavalamp/models/lavalamp.obj b/mods/lavalamp/models/lavalamp.obj similarity index 100% rename from lavalamp/models/lavalamp.obj rename to mods/lavalamp/models/lavalamp.obj diff --git a/lavalamp/textures/lavalamp_lamp_anim.png b/mods/lavalamp/textures/lavalamp_lamp_anim.png similarity index 100% rename from lavalamp/textures/lavalamp_lamp_anim.png rename to mods/lavalamp/textures/lavalamp_lamp_anim.png diff --git a/lavalamp/textures/lavalamp_lamp_inv.png b/mods/lavalamp/textures/lavalamp_lamp_inv.png similarity index 100% rename from lavalamp/textures/lavalamp_lamp_inv.png rename to mods/lavalamp/textures/lavalamp_lamp_inv.png diff --git a/lavalamp/textures/lavalamp_lamp_liquid.png b/mods/lavalamp/textures/lavalamp_lamp_liquid.png similarity index 100% rename from lavalamp/textures/lavalamp_lamp_liquid.png rename to mods/lavalamp/textures/lavalamp_lamp_liquid.png diff --git a/lavalamp/textures/lavalamp_lamp_off.png b/mods/lavalamp/textures/lavalamp_lamp_off.png similarity index 100% rename from lavalamp/textures/lavalamp_lamp_off.png rename to mods/lavalamp/textures/lavalamp_lamp_off.png diff --git a/lavalamp/textures/lavalamp_metal.png b/mods/lavalamp/textures/lavalamp_metal.png similarity index 100% rename from lavalamp/textures/lavalamp_metal.png rename to mods/lavalamp/textures/lavalamp_metal.png diff --git a/led_marquee/LICENSE b/mods/led_marquee/LICENSE similarity index 100% rename from led_marquee/LICENSE rename to mods/led_marquee/LICENSE diff --git a/led_marquee/README.md b/mods/led_marquee/README.md similarity index 100% rename from led_marquee/README.md rename to mods/led_marquee/README.md diff --git a/led_marquee/depends.txt b/mods/led_marquee/depends.txt similarity index 100% rename from led_marquee/depends.txt rename to mods/led_marquee/depends.txt diff --git a/led_marquee/description.txt b/mods/led_marquee/description.txt similarity index 100% rename from led_marquee/description.txt rename to mods/led_marquee/description.txt diff --git a/led_marquee/init.lua b/mods/led_marquee/init.lua similarity index 100% rename from led_marquee/init.lua rename to mods/led_marquee/init.lua diff --git a/led_marquee/mod.conf b/mods/led_marquee/mod.conf similarity index 100% rename from led_marquee/mod.conf rename to mods/led_marquee/mod.conf diff --git a/led_marquee/models/LED marquee.blend b/mods/led_marquee/models/LED marquee.blend similarity index 100% rename from led_marquee/models/LED marquee.blend rename to mods/led_marquee/models/LED marquee.blend diff --git a/led_marquee/models/led_marquee.obj b/mods/led_marquee/models/led_marquee.obj similarity index 100% rename from led_marquee/models/led_marquee.obj rename to mods/led_marquee/models/led_marquee.obj diff --git a/led_marquee/screenshot.png b/mods/led_marquee/screenshot.png similarity index 100% rename from led_marquee/screenshot.png rename to mods/led_marquee/screenshot.png diff --git a/led_marquee/screenshot_20180816_234431.png b/mods/led_marquee/screenshot_20180816_234431.png similarity index 100% rename from led_marquee/screenshot_20180816_234431.png rename to mods/led_marquee/screenshot_20180816_234431.png diff --git a/led_marquee/screenshot_20180816_234431_1.png b/mods/led_marquee/screenshot_20180816_234431_1.png similarity index 100% rename from led_marquee/screenshot_20180816_234431_1.png rename to mods/led_marquee/screenshot_20180816_234431_1.png diff --git a/led_marquee/textures/led_marquee_base.png b/mods/led_marquee/textures/led_marquee_base.png similarity index 100% rename from led_marquee/textures/led_marquee_base.png rename to mods/led_marquee/textures/led_marquee_base.png diff --git a/led_marquee/textures/led_marquee_char_100.png b/mods/led_marquee/textures/led_marquee_char_100.png similarity index 100% rename from led_marquee/textures/led_marquee_char_100.png rename to mods/led_marquee/textures/led_marquee_char_100.png diff --git a/led_marquee/textures/led_marquee_char_101.png b/mods/led_marquee/textures/led_marquee_char_101.png similarity index 100% rename from led_marquee/textures/led_marquee_char_101.png rename to mods/led_marquee/textures/led_marquee_char_101.png diff --git a/led_marquee/textures/led_marquee_char_102.png b/mods/led_marquee/textures/led_marquee_char_102.png similarity index 100% rename from led_marquee/textures/led_marquee_char_102.png rename to mods/led_marquee/textures/led_marquee_char_102.png diff --git a/led_marquee/textures/led_marquee_char_103.png b/mods/led_marquee/textures/led_marquee_char_103.png similarity index 100% rename from led_marquee/textures/led_marquee_char_103.png rename to mods/led_marquee/textures/led_marquee_char_103.png diff --git a/led_marquee/textures/led_marquee_char_104.png b/mods/led_marquee/textures/led_marquee_char_104.png similarity index 100% rename from led_marquee/textures/led_marquee_char_104.png rename to mods/led_marquee/textures/led_marquee_char_104.png diff --git a/led_marquee/textures/led_marquee_char_105.png b/mods/led_marquee/textures/led_marquee_char_105.png similarity index 100% rename from led_marquee/textures/led_marquee_char_105.png rename to mods/led_marquee/textures/led_marquee_char_105.png diff --git a/led_marquee/textures/led_marquee_char_106.png b/mods/led_marquee/textures/led_marquee_char_106.png similarity index 100% rename from led_marquee/textures/led_marquee_char_106.png rename to mods/led_marquee/textures/led_marquee_char_106.png diff --git a/led_marquee/textures/led_marquee_char_107.png b/mods/led_marquee/textures/led_marquee_char_107.png similarity index 100% rename from led_marquee/textures/led_marquee_char_107.png rename to mods/led_marquee/textures/led_marquee_char_107.png diff --git a/led_marquee/textures/led_marquee_char_108.png b/mods/led_marquee/textures/led_marquee_char_108.png similarity index 100% rename from led_marquee/textures/led_marquee_char_108.png rename to mods/led_marquee/textures/led_marquee_char_108.png diff --git a/led_marquee/textures/led_marquee_char_109.png b/mods/led_marquee/textures/led_marquee_char_109.png similarity index 100% rename from led_marquee/textures/led_marquee_char_109.png rename to mods/led_marquee/textures/led_marquee_char_109.png diff --git a/led_marquee/textures/led_marquee_char_110.png b/mods/led_marquee/textures/led_marquee_char_110.png similarity index 100% rename from led_marquee/textures/led_marquee_char_110.png rename to mods/led_marquee/textures/led_marquee_char_110.png diff --git a/led_marquee/textures/led_marquee_char_111.png b/mods/led_marquee/textures/led_marquee_char_111.png similarity index 100% rename from led_marquee/textures/led_marquee_char_111.png rename to mods/led_marquee/textures/led_marquee_char_111.png diff --git a/led_marquee/textures/led_marquee_char_112.png b/mods/led_marquee/textures/led_marquee_char_112.png similarity index 100% rename from led_marquee/textures/led_marquee_char_112.png rename to mods/led_marquee/textures/led_marquee_char_112.png diff --git a/led_marquee/textures/led_marquee_char_113.png b/mods/led_marquee/textures/led_marquee_char_113.png similarity index 100% rename from led_marquee/textures/led_marquee_char_113.png rename to mods/led_marquee/textures/led_marquee_char_113.png diff --git a/led_marquee/textures/led_marquee_char_114.png b/mods/led_marquee/textures/led_marquee_char_114.png similarity index 100% rename from led_marquee/textures/led_marquee_char_114.png rename to mods/led_marquee/textures/led_marquee_char_114.png diff --git a/led_marquee/textures/led_marquee_char_115.png b/mods/led_marquee/textures/led_marquee_char_115.png similarity index 100% rename from led_marquee/textures/led_marquee_char_115.png rename to mods/led_marquee/textures/led_marquee_char_115.png diff --git a/led_marquee/textures/led_marquee_char_116.png b/mods/led_marquee/textures/led_marquee_char_116.png similarity index 100% rename from led_marquee/textures/led_marquee_char_116.png rename to mods/led_marquee/textures/led_marquee_char_116.png diff --git a/led_marquee/textures/led_marquee_char_117.png b/mods/led_marquee/textures/led_marquee_char_117.png similarity index 100% rename from led_marquee/textures/led_marquee_char_117.png rename to mods/led_marquee/textures/led_marquee_char_117.png diff --git a/led_marquee/textures/led_marquee_char_118.png b/mods/led_marquee/textures/led_marquee_char_118.png similarity index 100% rename from led_marquee/textures/led_marquee_char_118.png rename to mods/led_marquee/textures/led_marquee_char_118.png diff --git a/led_marquee/textures/led_marquee_char_119.png b/mods/led_marquee/textures/led_marquee_char_119.png similarity index 100% rename from led_marquee/textures/led_marquee_char_119.png rename to mods/led_marquee/textures/led_marquee_char_119.png diff --git a/led_marquee/textures/led_marquee_char_120.png b/mods/led_marquee/textures/led_marquee_char_120.png similarity index 100% rename from led_marquee/textures/led_marquee_char_120.png rename to mods/led_marquee/textures/led_marquee_char_120.png diff --git a/led_marquee/textures/led_marquee_char_121.png b/mods/led_marquee/textures/led_marquee_char_121.png similarity index 100% rename from led_marquee/textures/led_marquee_char_121.png rename to mods/led_marquee/textures/led_marquee_char_121.png diff --git a/led_marquee/textures/led_marquee_char_122.png b/mods/led_marquee/textures/led_marquee_char_122.png similarity index 100% rename from led_marquee/textures/led_marquee_char_122.png rename to mods/led_marquee/textures/led_marquee_char_122.png diff --git a/led_marquee/textures/led_marquee_char_123.png b/mods/led_marquee/textures/led_marquee_char_123.png similarity index 100% rename from led_marquee/textures/led_marquee_char_123.png rename to mods/led_marquee/textures/led_marquee_char_123.png diff --git a/led_marquee/textures/led_marquee_char_124.png b/mods/led_marquee/textures/led_marquee_char_124.png similarity index 100% rename from led_marquee/textures/led_marquee_char_124.png rename to mods/led_marquee/textures/led_marquee_char_124.png diff --git a/led_marquee/textures/led_marquee_char_125.png b/mods/led_marquee/textures/led_marquee_char_125.png similarity index 100% rename from led_marquee/textures/led_marquee_char_125.png rename to mods/led_marquee/textures/led_marquee_char_125.png diff --git a/led_marquee/textures/led_marquee_char_126.png b/mods/led_marquee/textures/led_marquee_char_126.png similarity index 100% rename from led_marquee/textures/led_marquee_char_126.png rename to mods/led_marquee/textures/led_marquee_char_126.png diff --git a/led_marquee/textures/led_marquee_char_127.png b/mods/led_marquee/textures/led_marquee_char_127.png similarity index 100% rename from led_marquee/textures/led_marquee_char_127.png rename to mods/led_marquee/textures/led_marquee_char_127.png diff --git a/led_marquee/textures/led_marquee_char_128.png b/mods/led_marquee/textures/led_marquee_char_128.png similarity index 100% rename from led_marquee/textures/led_marquee_char_128.png rename to mods/led_marquee/textures/led_marquee_char_128.png diff --git a/led_marquee/textures/led_marquee_char_129.png b/mods/led_marquee/textures/led_marquee_char_129.png similarity index 100% rename from led_marquee/textures/led_marquee_char_129.png rename to mods/led_marquee/textures/led_marquee_char_129.png diff --git a/led_marquee/textures/led_marquee_char_130.png b/mods/led_marquee/textures/led_marquee_char_130.png similarity index 100% rename from led_marquee/textures/led_marquee_char_130.png rename to mods/led_marquee/textures/led_marquee_char_130.png diff --git a/led_marquee/textures/led_marquee_char_131.png b/mods/led_marquee/textures/led_marquee_char_131.png similarity index 100% rename from led_marquee/textures/led_marquee_char_131.png rename to mods/led_marquee/textures/led_marquee_char_131.png diff --git a/led_marquee/textures/led_marquee_char_132.png b/mods/led_marquee/textures/led_marquee_char_132.png similarity index 100% rename from led_marquee/textures/led_marquee_char_132.png rename to mods/led_marquee/textures/led_marquee_char_132.png diff --git a/led_marquee/textures/led_marquee_char_133.png b/mods/led_marquee/textures/led_marquee_char_133.png similarity index 100% rename from led_marquee/textures/led_marquee_char_133.png rename to mods/led_marquee/textures/led_marquee_char_133.png diff --git a/led_marquee/textures/led_marquee_char_134.png b/mods/led_marquee/textures/led_marquee_char_134.png similarity index 100% rename from led_marquee/textures/led_marquee_char_134.png rename to mods/led_marquee/textures/led_marquee_char_134.png diff --git a/led_marquee/textures/led_marquee_char_135.png b/mods/led_marquee/textures/led_marquee_char_135.png similarity index 100% rename from led_marquee/textures/led_marquee_char_135.png rename to mods/led_marquee/textures/led_marquee_char_135.png diff --git a/led_marquee/textures/led_marquee_char_136.png b/mods/led_marquee/textures/led_marquee_char_136.png similarity index 100% rename from led_marquee/textures/led_marquee_char_136.png rename to mods/led_marquee/textures/led_marquee_char_136.png diff --git a/led_marquee/textures/led_marquee_char_137.png b/mods/led_marquee/textures/led_marquee_char_137.png similarity index 100% rename from led_marquee/textures/led_marquee_char_137.png rename to mods/led_marquee/textures/led_marquee_char_137.png diff --git a/led_marquee/textures/led_marquee_char_138.png b/mods/led_marquee/textures/led_marquee_char_138.png similarity index 100% rename from led_marquee/textures/led_marquee_char_138.png rename to mods/led_marquee/textures/led_marquee_char_138.png diff --git a/led_marquee/textures/led_marquee_char_139.png b/mods/led_marquee/textures/led_marquee_char_139.png similarity index 100% rename from led_marquee/textures/led_marquee_char_139.png rename to mods/led_marquee/textures/led_marquee_char_139.png diff --git a/led_marquee/textures/led_marquee_char_140.png b/mods/led_marquee/textures/led_marquee_char_140.png similarity index 100% rename from led_marquee/textures/led_marquee_char_140.png rename to mods/led_marquee/textures/led_marquee_char_140.png diff --git a/led_marquee/textures/led_marquee_char_141.png b/mods/led_marquee/textures/led_marquee_char_141.png similarity index 100% rename from led_marquee/textures/led_marquee_char_141.png rename to mods/led_marquee/textures/led_marquee_char_141.png diff --git a/led_marquee/textures/led_marquee_char_142.png b/mods/led_marquee/textures/led_marquee_char_142.png similarity index 100% rename from led_marquee/textures/led_marquee_char_142.png rename to mods/led_marquee/textures/led_marquee_char_142.png diff --git a/led_marquee/textures/led_marquee_char_143.png b/mods/led_marquee/textures/led_marquee_char_143.png similarity index 100% rename from led_marquee/textures/led_marquee_char_143.png rename to mods/led_marquee/textures/led_marquee_char_143.png diff --git a/led_marquee/textures/led_marquee_char_144.png b/mods/led_marquee/textures/led_marquee_char_144.png similarity index 100% rename from led_marquee/textures/led_marquee_char_144.png rename to mods/led_marquee/textures/led_marquee_char_144.png diff --git a/led_marquee/textures/led_marquee_char_145.png b/mods/led_marquee/textures/led_marquee_char_145.png similarity index 100% rename from led_marquee/textures/led_marquee_char_145.png rename to mods/led_marquee/textures/led_marquee_char_145.png diff --git a/led_marquee/textures/led_marquee_char_146.png b/mods/led_marquee/textures/led_marquee_char_146.png similarity index 100% rename from led_marquee/textures/led_marquee_char_146.png rename to mods/led_marquee/textures/led_marquee_char_146.png diff --git a/led_marquee/textures/led_marquee_char_147.png b/mods/led_marquee/textures/led_marquee_char_147.png similarity index 100% rename from led_marquee/textures/led_marquee_char_147.png rename to mods/led_marquee/textures/led_marquee_char_147.png diff --git a/led_marquee/textures/led_marquee_char_148.png b/mods/led_marquee/textures/led_marquee_char_148.png similarity index 100% rename from led_marquee/textures/led_marquee_char_148.png rename to mods/led_marquee/textures/led_marquee_char_148.png diff --git a/led_marquee/textures/led_marquee_char_149.png b/mods/led_marquee/textures/led_marquee_char_149.png similarity index 100% rename from led_marquee/textures/led_marquee_char_149.png rename to mods/led_marquee/textures/led_marquee_char_149.png diff --git a/led_marquee/textures/led_marquee_char_150.png b/mods/led_marquee/textures/led_marquee_char_150.png similarity index 100% rename from led_marquee/textures/led_marquee_char_150.png rename to mods/led_marquee/textures/led_marquee_char_150.png diff --git a/led_marquee/textures/led_marquee_char_151.png b/mods/led_marquee/textures/led_marquee_char_151.png similarity index 100% rename from led_marquee/textures/led_marquee_char_151.png rename to mods/led_marquee/textures/led_marquee_char_151.png diff --git a/led_marquee/textures/led_marquee_char_152.png b/mods/led_marquee/textures/led_marquee_char_152.png similarity index 100% rename from led_marquee/textures/led_marquee_char_152.png rename to mods/led_marquee/textures/led_marquee_char_152.png diff --git a/led_marquee/textures/led_marquee_char_153.png b/mods/led_marquee/textures/led_marquee_char_153.png similarity index 100% rename from led_marquee/textures/led_marquee_char_153.png rename to mods/led_marquee/textures/led_marquee_char_153.png diff --git a/led_marquee/textures/led_marquee_char_154.png b/mods/led_marquee/textures/led_marquee_char_154.png similarity index 100% rename from led_marquee/textures/led_marquee_char_154.png rename to mods/led_marquee/textures/led_marquee_char_154.png diff --git a/led_marquee/textures/led_marquee_char_155.png b/mods/led_marquee/textures/led_marquee_char_155.png similarity index 100% rename from led_marquee/textures/led_marquee_char_155.png rename to mods/led_marquee/textures/led_marquee_char_155.png diff --git a/led_marquee/textures/led_marquee_char_156.png b/mods/led_marquee/textures/led_marquee_char_156.png similarity index 100% rename from led_marquee/textures/led_marquee_char_156.png rename to mods/led_marquee/textures/led_marquee_char_156.png diff --git a/led_marquee/textures/led_marquee_char_157.png b/mods/led_marquee/textures/led_marquee_char_157.png similarity index 100% rename from led_marquee/textures/led_marquee_char_157.png rename to mods/led_marquee/textures/led_marquee_char_157.png diff --git a/led_marquee/textures/led_marquee_char_158.png b/mods/led_marquee/textures/led_marquee_char_158.png similarity index 100% rename from led_marquee/textures/led_marquee_char_158.png rename to mods/led_marquee/textures/led_marquee_char_158.png diff --git a/led_marquee/textures/led_marquee_char_159.png b/mods/led_marquee/textures/led_marquee_char_159.png similarity index 100% rename from led_marquee/textures/led_marquee_char_159.png rename to mods/led_marquee/textures/led_marquee_char_159.png diff --git a/led_marquee/textures/led_marquee_char_160.png b/mods/led_marquee/textures/led_marquee_char_160.png similarity index 100% rename from led_marquee/textures/led_marquee_char_160.png rename to mods/led_marquee/textures/led_marquee_char_160.png diff --git a/led_marquee/textures/led_marquee_char_161.png b/mods/led_marquee/textures/led_marquee_char_161.png similarity index 100% rename from led_marquee/textures/led_marquee_char_161.png rename to mods/led_marquee/textures/led_marquee_char_161.png diff --git a/led_marquee/textures/led_marquee_char_162.png b/mods/led_marquee/textures/led_marquee_char_162.png similarity index 100% rename from led_marquee/textures/led_marquee_char_162.png rename to mods/led_marquee/textures/led_marquee_char_162.png diff --git a/led_marquee/textures/led_marquee_char_163.png b/mods/led_marquee/textures/led_marquee_char_163.png similarity index 100% rename from led_marquee/textures/led_marquee_char_163.png rename to mods/led_marquee/textures/led_marquee_char_163.png diff --git a/led_marquee/textures/led_marquee_char_164.png b/mods/led_marquee/textures/led_marquee_char_164.png similarity index 100% rename from led_marquee/textures/led_marquee_char_164.png rename to mods/led_marquee/textures/led_marquee_char_164.png diff --git a/led_marquee/textures/led_marquee_char_165.png b/mods/led_marquee/textures/led_marquee_char_165.png similarity index 100% rename from led_marquee/textures/led_marquee_char_165.png rename to mods/led_marquee/textures/led_marquee_char_165.png diff --git a/led_marquee/textures/led_marquee_char_166.png b/mods/led_marquee/textures/led_marquee_char_166.png similarity index 100% rename from led_marquee/textures/led_marquee_char_166.png rename to mods/led_marquee/textures/led_marquee_char_166.png diff --git a/led_marquee/textures/led_marquee_char_167.png b/mods/led_marquee/textures/led_marquee_char_167.png similarity index 100% rename from led_marquee/textures/led_marquee_char_167.png rename to mods/led_marquee/textures/led_marquee_char_167.png diff --git a/led_marquee/textures/led_marquee_char_168.png b/mods/led_marquee/textures/led_marquee_char_168.png similarity index 100% rename from led_marquee/textures/led_marquee_char_168.png rename to mods/led_marquee/textures/led_marquee_char_168.png diff --git a/led_marquee/textures/led_marquee_char_169.png b/mods/led_marquee/textures/led_marquee_char_169.png similarity index 100% rename from led_marquee/textures/led_marquee_char_169.png rename to mods/led_marquee/textures/led_marquee_char_169.png diff --git a/led_marquee/textures/led_marquee_char_170.png b/mods/led_marquee/textures/led_marquee_char_170.png similarity index 100% rename from led_marquee/textures/led_marquee_char_170.png rename to mods/led_marquee/textures/led_marquee_char_170.png diff --git a/led_marquee/textures/led_marquee_char_171.png b/mods/led_marquee/textures/led_marquee_char_171.png similarity index 100% rename from led_marquee/textures/led_marquee_char_171.png rename to mods/led_marquee/textures/led_marquee_char_171.png diff --git a/led_marquee/textures/led_marquee_char_172.png b/mods/led_marquee/textures/led_marquee_char_172.png similarity index 100% rename from led_marquee/textures/led_marquee_char_172.png rename to mods/led_marquee/textures/led_marquee_char_172.png diff --git a/led_marquee/textures/led_marquee_char_173.png b/mods/led_marquee/textures/led_marquee_char_173.png similarity index 100% rename from led_marquee/textures/led_marquee_char_173.png rename to mods/led_marquee/textures/led_marquee_char_173.png diff --git a/led_marquee/textures/led_marquee_char_174.png b/mods/led_marquee/textures/led_marquee_char_174.png similarity index 100% rename from led_marquee/textures/led_marquee_char_174.png rename to mods/led_marquee/textures/led_marquee_char_174.png diff --git a/led_marquee/textures/led_marquee_char_175.png b/mods/led_marquee/textures/led_marquee_char_175.png similarity index 100% rename from led_marquee/textures/led_marquee_char_175.png rename to mods/led_marquee/textures/led_marquee_char_175.png diff --git a/led_marquee/textures/led_marquee_char_176.png b/mods/led_marquee/textures/led_marquee_char_176.png similarity index 100% rename from led_marquee/textures/led_marquee_char_176.png rename to mods/led_marquee/textures/led_marquee_char_176.png diff --git a/led_marquee/textures/led_marquee_char_177.png b/mods/led_marquee/textures/led_marquee_char_177.png similarity index 100% rename from led_marquee/textures/led_marquee_char_177.png rename to mods/led_marquee/textures/led_marquee_char_177.png diff --git a/led_marquee/textures/led_marquee_char_178.png b/mods/led_marquee/textures/led_marquee_char_178.png similarity index 100% rename from led_marquee/textures/led_marquee_char_178.png rename to mods/led_marquee/textures/led_marquee_char_178.png diff --git a/led_marquee/textures/led_marquee_char_179.png b/mods/led_marquee/textures/led_marquee_char_179.png similarity index 100% rename from led_marquee/textures/led_marquee_char_179.png rename to mods/led_marquee/textures/led_marquee_char_179.png diff --git a/led_marquee/textures/led_marquee_char_180.png b/mods/led_marquee/textures/led_marquee_char_180.png similarity index 100% rename from led_marquee/textures/led_marquee_char_180.png rename to mods/led_marquee/textures/led_marquee_char_180.png diff --git a/led_marquee/textures/led_marquee_char_181.png b/mods/led_marquee/textures/led_marquee_char_181.png similarity index 100% rename from led_marquee/textures/led_marquee_char_181.png rename to mods/led_marquee/textures/led_marquee_char_181.png diff --git a/led_marquee/textures/led_marquee_char_182.png b/mods/led_marquee/textures/led_marquee_char_182.png similarity index 100% rename from led_marquee/textures/led_marquee_char_182.png rename to mods/led_marquee/textures/led_marquee_char_182.png diff --git a/led_marquee/textures/led_marquee_char_183.png b/mods/led_marquee/textures/led_marquee_char_183.png similarity index 100% rename from led_marquee/textures/led_marquee_char_183.png rename to mods/led_marquee/textures/led_marquee_char_183.png diff --git a/led_marquee/textures/led_marquee_char_184.png b/mods/led_marquee/textures/led_marquee_char_184.png similarity index 100% rename from led_marquee/textures/led_marquee_char_184.png rename to mods/led_marquee/textures/led_marquee_char_184.png diff --git a/led_marquee/textures/led_marquee_char_185.png b/mods/led_marquee/textures/led_marquee_char_185.png similarity index 100% rename from led_marquee/textures/led_marquee_char_185.png rename to mods/led_marquee/textures/led_marquee_char_185.png diff --git a/led_marquee/textures/led_marquee_char_186.png b/mods/led_marquee/textures/led_marquee_char_186.png similarity index 100% rename from led_marquee/textures/led_marquee_char_186.png rename to mods/led_marquee/textures/led_marquee_char_186.png diff --git a/led_marquee/textures/led_marquee_char_187.png b/mods/led_marquee/textures/led_marquee_char_187.png similarity index 100% rename from led_marquee/textures/led_marquee_char_187.png rename to mods/led_marquee/textures/led_marquee_char_187.png diff --git a/led_marquee/textures/led_marquee_char_188.png b/mods/led_marquee/textures/led_marquee_char_188.png similarity index 100% rename from led_marquee/textures/led_marquee_char_188.png rename to mods/led_marquee/textures/led_marquee_char_188.png diff --git a/led_marquee/textures/led_marquee_char_189.png b/mods/led_marquee/textures/led_marquee_char_189.png similarity index 100% rename from led_marquee/textures/led_marquee_char_189.png rename to mods/led_marquee/textures/led_marquee_char_189.png diff --git a/led_marquee/textures/led_marquee_char_190.png b/mods/led_marquee/textures/led_marquee_char_190.png similarity index 100% rename from led_marquee/textures/led_marquee_char_190.png rename to mods/led_marquee/textures/led_marquee_char_190.png diff --git a/led_marquee/textures/led_marquee_char_191.png b/mods/led_marquee/textures/led_marquee_char_191.png similarity index 100% rename from led_marquee/textures/led_marquee_char_191.png rename to mods/led_marquee/textures/led_marquee_char_191.png diff --git a/led_marquee/textures/led_marquee_char_192.png b/mods/led_marquee/textures/led_marquee_char_192.png similarity index 100% rename from led_marquee/textures/led_marquee_char_192.png rename to mods/led_marquee/textures/led_marquee_char_192.png diff --git a/led_marquee/textures/led_marquee_char_193.png b/mods/led_marquee/textures/led_marquee_char_193.png similarity index 100% rename from led_marquee/textures/led_marquee_char_193.png rename to mods/led_marquee/textures/led_marquee_char_193.png diff --git a/led_marquee/textures/led_marquee_char_194.png b/mods/led_marquee/textures/led_marquee_char_194.png similarity index 100% rename from led_marquee/textures/led_marquee_char_194.png rename to mods/led_marquee/textures/led_marquee_char_194.png diff --git a/led_marquee/textures/led_marquee_char_195.png b/mods/led_marquee/textures/led_marquee_char_195.png similarity index 100% rename from led_marquee/textures/led_marquee_char_195.png rename to mods/led_marquee/textures/led_marquee_char_195.png diff --git a/led_marquee/textures/led_marquee_char_196.png b/mods/led_marquee/textures/led_marquee_char_196.png similarity index 100% rename from led_marquee/textures/led_marquee_char_196.png rename to mods/led_marquee/textures/led_marquee_char_196.png diff --git a/led_marquee/textures/led_marquee_char_197.png b/mods/led_marquee/textures/led_marquee_char_197.png similarity index 100% rename from led_marquee/textures/led_marquee_char_197.png rename to mods/led_marquee/textures/led_marquee_char_197.png diff --git a/led_marquee/textures/led_marquee_char_198.png b/mods/led_marquee/textures/led_marquee_char_198.png similarity index 100% rename from led_marquee/textures/led_marquee_char_198.png rename to mods/led_marquee/textures/led_marquee_char_198.png diff --git a/led_marquee/textures/led_marquee_char_199.png b/mods/led_marquee/textures/led_marquee_char_199.png similarity index 100% rename from led_marquee/textures/led_marquee_char_199.png rename to mods/led_marquee/textures/led_marquee_char_199.png diff --git a/led_marquee/textures/led_marquee_char_200.png b/mods/led_marquee/textures/led_marquee_char_200.png similarity index 100% rename from led_marquee/textures/led_marquee_char_200.png rename to mods/led_marquee/textures/led_marquee_char_200.png diff --git a/led_marquee/textures/led_marquee_char_201.png b/mods/led_marquee/textures/led_marquee_char_201.png similarity index 100% rename from led_marquee/textures/led_marquee_char_201.png rename to mods/led_marquee/textures/led_marquee_char_201.png diff --git a/led_marquee/textures/led_marquee_char_202.png b/mods/led_marquee/textures/led_marquee_char_202.png similarity index 100% rename from led_marquee/textures/led_marquee_char_202.png rename to mods/led_marquee/textures/led_marquee_char_202.png diff --git a/led_marquee/textures/led_marquee_char_203.png b/mods/led_marquee/textures/led_marquee_char_203.png similarity index 100% rename from led_marquee/textures/led_marquee_char_203.png rename to mods/led_marquee/textures/led_marquee_char_203.png diff --git a/led_marquee/textures/led_marquee_char_204.png b/mods/led_marquee/textures/led_marquee_char_204.png similarity index 100% rename from led_marquee/textures/led_marquee_char_204.png rename to mods/led_marquee/textures/led_marquee_char_204.png diff --git a/led_marquee/textures/led_marquee_char_205.png b/mods/led_marquee/textures/led_marquee_char_205.png similarity index 100% rename from led_marquee/textures/led_marquee_char_205.png rename to mods/led_marquee/textures/led_marquee_char_205.png diff --git a/led_marquee/textures/led_marquee_char_206.png b/mods/led_marquee/textures/led_marquee_char_206.png similarity index 100% rename from led_marquee/textures/led_marquee_char_206.png rename to mods/led_marquee/textures/led_marquee_char_206.png diff --git a/led_marquee/textures/led_marquee_char_207.png b/mods/led_marquee/textures/led_marquee_char_207.png similarity index 100% rename from led_marquee/textures/led_marquee_char_207.png rename to mods/led_marquee/textures/led_marquee_char_207.png diff --git a/led_marquee/textures/led_marquee_char_208.png b/mods/led_marquee/textures/led_marquee_char_208.png similarity index 100% rename from led_marquee/textures/led_marquee_char_208.png rename to mods/led_marquee/textures/led_marquee_char_208.png diff --git a/led_marquee/textures/led_marquee_char_209.png b/mods/led_marquee/textures/led_marquee_char_209.png similarity index 100% rename from led_marquee/textures/led_marquee_char_209.png rename to mods/led_marquee/textures/led_marquee_char_209.png diff --git a/led_marquee/textures/led_marquee_char_210.png b/mods/led_marquee/textures/led_marquee_char_210.png similarity index 100% rename from led_marquee/textures/led_marquee_char_210.png rename to mods/led_marquee/textures/led_marquee_char_210.png diff --git a/led_marquee/textures/led_marquee_char_211.png b/mods/led_marquee/textures/led_marquee_char_211.png similarity index 100% rename from led_marquee/textures/led_marquee_char_211.png rename to mods/led_marquee/textures/led_marquee_char_211.png diff --git a/led_marquee/textures/led_marquee_char_212.png b/mods/led_marquee/textures/led_marquee_char_212.png similarity index 100% rename from led_marquee/textures/led_marquee_char_212.png rename to mods/led_marquee/textures/led_marquee_char_212.png diff --git a/led_marquee/textures/led_marquee_char_213.png b/mods/led_marquee/textures/led_marquee_char_213.png similarity index 100% rename from led_marquee/textures/led_marquee_char_213.png rename to mods/led_marquee/textures/led_marquee_char_213.png diff --git a/led_marquee/textures/led_marquee_char_214.png b/mods/led_marquee/textures/led_marquee_char_214.png similarity index 100% rename from led_marquee/textures/led_marquee_char_214.png rename to mods/led_marquee/textures/led_marquee_char_214.png diff --git a/led_marquee/textures/led_marquee_char_215.png b/mods/led_marquee/textures/led_marquee_char_215.png similarity index 100% rename from led_marquee/textures/led_marquee_char_215.png rename to mods/led_marquee/textures/led_marquee_char_215.png diff --git a/led_marquee/textures/led_marquee_char_216.png b/mods/led_marquee/textures/led_marquee_char_216.png similarity index 100% rename from led_marquee/textures/led_marquee_char_216.png rename to mods/led_marquee/textures/led_marquee_char_216.png diff --git a/led_marquee/textures/led_marquee_char_217.png b/mods/led_marquee/textures/led_marquee_char_217.png similarity index 100% rename from led_marquee/textures/led_marquee_char_217.png rename to mods/led_marquee/textures/led_marquee_char_217.png diff --git a/led_marquee/textures/led_marquee_char_218.png b/mods/led_marquee/textures/led_marquee_char_218.png similarity index 100% rename from led_marquee/textures/led_marquee_char_218.png rename to mods/led_marquee/textures/led_marquee_char_218.png diff --git a/led_marquee/textures/led_marquee_char_219.png b/mods/led_marquee/textures/led_marquee_char_219.png similarity index 100% rename from led_marquee/textures/led_marquee_char_219.png rename to mods/led_marquee/textures/led_marquee_char_219.png diff --git a/led_marquee/textures/led_marquee_char_220.png b/mods/led_marquee/textures/led_marquee_char_220.png similarity index 100% rename from led_marquee/textures/led_marquee_char_220.png rename to mods/led_marquee/textures/led_marquee_char_220.png diff --git a/led_marquee/textures/led_marquee_char_221.png b/mods/led_marquee/textures/led_marquee_char_221.png similarity index 100% rename from led_marquee/textures/led_marquee_char_221.png rename to mods/led_marquee/textures/led_marquee_char_221.png diff --git a/led_marquee/textures/led_marquee_char_222.png b/mods/led_marquee/textures/led_marquee_char_222.png similarity index 100% rename from led_marquee/textures/led_marquee_char_222.png rename to mods/led_marquee/textures/led_marquee_char_222.png diff --git a/led_marquee/textures/led_marquee_char_223.png b/mods/led_marquee/textures/led_marquee_char_223.png similarity index 100% rename from led_marquee/textures/led_marquee_char_223.png rename to mods/led_marquee/textures/led_marquee_char_223.png diff --git a/led_marquee/textures/led_marquee_char_224.png b/mods/led_marquee/textures/led_marquee_char_224.png similarity index 100% rename from led_marquee/textures/led_marquee_char_224.png rename to mods/led_marquee/textures/led_marquee_char_224.png diff --git a/led_marquee/textures/led_marquee_char_225.png b/mods/led_marquee/textures/led_marquee_char_225.png similarity index 100% rename from led_marquee/textures/led_marquee_char_225.png rename to mods/led_marquee/textures/led_marquee_char_225.png diff --git a/led_marquee/textures/led_marquee_char_226.png b/mods/led_marquee/textures/led_marquee_char_226.png similarity index 100% rename from led_marquee/textures/led_marquee_char_226.png rename to mods/led_marquee/textures/led_marquee_char_226.png diff --git a/led_marquee/textures/led_marquee_char_227.png b/mods/led_marquee/textures/led_marquee_char_227.png similarity index 100% rename from led_marquee/textures/led_marquee_char_227.png rename to mods/led_marquee/textures/led_marquee_char_227.png diff --git a/led_marquee/textures/led_marquee_char_228.png b/mods/led_marquee/textures/led_marquee_char_228.png similarity index 100% rename from led_marquee/textures/led_marquee_char_228.png rename to mods/led_marquee/textures/led_marquee_char_228.png diff --git a/led_marquee/textures/led_marquee_char_229.png b/mods/led_marquee/textures/led_marquee_char_229.png similarity index 100% rename from led_marquee/textures/led_marquee_char_229.png rename to mods/led_marquee/textures/led_marquee_char_229.png diff --git a/led_marquee/textures/led_marquee_char_230.png b/mods/led_marquee/textures/led_marquee_char_230.png similarity index 100% rename from led_marquee/textures/led_marquee_char_230.png rename to mods/led_marquee/textures/led_marquee_char_230.png diff --git a/led_marquee/textures/led_marquee_char_231.png b/mods/led_marquee/textures/led_marquee_char_231.png similarity index 100% rename from led_marquee/textures/led_marquee_char_231.png rename to mods/led_marquee/textures/led_marquee_char_231.png diff --git a/led_marquee/textures/led_marquee_char_232.png b/mods/led_marquee/textures/led_marquee_char_232.png similarity index 100% rename from led_marquee/textures/led_marquee_char_232.png rename to mods/led_marquee/textures/led_marquee_char_232.png diff --git a/led_marquee/textures/led_marquee_char_233.png b/mods/led_marquee/textures/led_marquee_char_233.png similarity index 100% rename from led_marquee/textures/led_marquee_char_233.png rename to mods/led_marquee/textures/led_marquee_char_233.png diff --git a/led_marquee/textures/led_marquee_char_234.png b/mods/led_marquee/textures/led_marquee_char_234.png similarity index 100% rename from led_marquee/textures/led_marquee_char_234.png rename to mods/led_marquee/textures/led_marquee_char_234.png diff --git a/led_marquee/textures/led_marquee_char_235.png b/mods/led_marquee/textures/led_marquee_char_235.png similarity index 100% rename from led_marquee/textures/led_marquee_char_235.png rename to mods/led_marquee/textures/led_marquee_char_235.png diff --git a/led_marquee/textures/led_marquee_char_236.png b/mods/led_marquee/textures/led_marquee_char_236.png similarity index 100% rename from led_marquee/textures/led_marquee_char_236.png rename to mods/led_marquee/textures/led_marquee_char_236.png diff --git a/led_marquee/textures/led_marquee_char_237.png b/mods/led_marquee/textures/led_marquee_char_237.png similarity index 100% rename from led_marquee/textures/led_marquee_char_237.png rename to mods/led_marquee/textures/led_marquee_char_237.png diff --git a/led_marquee/textures/led_marquee_char_238.png b/mods/led_marquee/textures/led_marquee_char_238.png similarity index 100% rename from led_marquee/textures/led_marquee_char_238.png rename to mods/led_marquee/textures/led_marquee_char_238.png diff --git a/led_marquee/textures/led_marquee_char_239.png b/mods/led_marquee/textures/led_marquee_char_239.png similarity index 100% rename from led_marquee/textures/led_marquee_char_239.png rename to mods/led_marquee/textures/led_marquee_char_239.png diff --git a/led_marquee/textures/led_marquee_char_240.png b/mods/led_marquee/textures/led_marquee_char_240.png similarity index 100% rename from led_marquee/textures/led_marquee_char_240.png rename to mods/led_marquee/textures/led_marquee_char_240.png diff --git a/led_marquee/textures/led_marquee_char_241.png b/mods/led_marquee/textures/led_marquee_char_241.png similarity index 100% rename from led_marquee/textures/led_marquee_char_241.png rename to mods/led_marquee/textures/led_marquee_char_241.png diff --git a/led_marquee/textures/led_marquee_char_242.png b/mods/led_marquee/textures/led_marquee_char_242.png similarity index 100% rename from led_marquee/textures/led_marquee_char_242.png rename to mods/led_marquee/textures/led_marquee_char_242.png diff --git a/led_marquee/textures/led_marquee_char_243.png b/mods/led_marquee/textures/led_marquee_char_243.png similarity index 100% rename from led_marquee/textures/led_marquee_char_243.png rename to mods/led_marquee/textures/led_marquee_char_243.png diff --git a/led_marquee/textures/led_marquee_char_244.png b/mods/led_marquee/textures/led_marquee_char_244.png similarity index 100% rename from led_marquee/textures/led_marquee_char_244.png rename to mods/led_marquee/textures/led_marquee_char_244.png diff --git a/led_marquee/textures/led_marquee_char_245.png b/mods/led_marquee/textures/led_marquee_char_245.png similarity index 100% rename from led_marquee/textures/led_marquee_char_245.png rename to mods/led_marquee/textures/led_marquee_char_245.png diff --git a/led_marquee/textures/led_marquee_char_246.png b/mods/led_marquee/textures/led_marquee_char_246.png similarity index 100% rename from led_marquee/textures/led_marquee_char_246.png rename to mods/led_marquee/textures/led_marquee_char_246.png diff --git a/led_marquee/textures/led_marquee_char_247.png b/mods/led_marquee/textures/led_marquee_char_247.png similarity index 100% rename from led_marquee/textures/led_marquee_char_247.png rename to mods/led_marquee/textures/led_marquee_char_247.png diff --git a/led_marquee/textures/led_marquee_char_248.png b/mods/led_marquee/textures/led_marquee_char_248.png similarity index 100% rename from led_marquee/textures/led_marquee_char_248.png rename to mods/led_marquee/textures/led_marquee_char_248.png diff --git a/led_marquee/textures/led_marquee_char_249.png b/mods/led_marquee/textures/led_marquee_char_249.png similarity index 100% rename from led_marquee/textures/led_marquee_char_249.png rename to mods/led_marquee/textures/led_marquee_char_249.png diff --git a/led_marquee/textures/led_marquee_char_250.png b/mods/led_marquee/textures/led_marquee_char_250.png similarity index 100% rename from led_marquee/textures/led_marquee_char_250.png rename to mods/led_marquee/textures/led_marquee_char_250.png diff --git a/led_marquee/textures/led_marquee_char_251.png b/mods/led_marquee/textures/led_marquee_char_251.png similarity index 100% rename from led_marquee/textures/led_marquee_char_251.png rename to mods/led_marquee/textures/led_marquee_char_251.png diff --git a/led_marquee/textures/led_marquee_char_252.png b/mods/led_marquee/textures/led_marquee_char_252.png similarity index 100% rename from led_marquee/textures/led_marquee_char_252.png rename to mods/led_marquee/textures/led_marquee_char_252.png diff --git a/led_marquee/textures/led_marquee_char_253.png b/mods/led_marquee/textures/led_marquee_char_253.png similarity index 100% rename from led_marquee/textures/led_marquee_char_253.png rename to mods/led_marquee/textures/led_marquee_char_253.png diff --git a/led_marquee/textures/led_marquee_char_254.png b/mods/led_marquee/textures/led_marquee_char_254.png similarity index 100% rename from led_marquee/textures/led_marquee_char_254.png rename to mods/led_marquee/textures/led_marquee_char_254.png diff --git a/led_marquee/textures/led_marquee_char_255.png b/mods/led_marquee/textures/led_marquee_char_255.png similarity index 100% rename from led_marquee/textures/led_marquee_char_255.png rename to mods/led_marquee/textures/led_marquee_char_255.png diff --git a/led_marquee/textures/led_marquee_char_31.png b/mods/led_marquee/textures/led_marquee_char_31.png similarity index 100% rename from led_marquee/textures/led_marquee_char_31.png rename to mods/led_marquee/textures/led_marquee_char_31.png diff --git a/led_marquee/textures/led_marquee_char_32.png b/mods/led_marquee/textures/led_marquee_char_32.png similarity index 100% rename from led_marquee/textures/led_marquee_char_32.png rename to mods/led_marquee/textures/led_marquee_char_32.png diff --git a/led_marquee/textures/led_marquee_char_33.png b/mods/led_marquee/textures/led_marquee_char_33.png similarity index 100% rename from led_marquee/textures/led_marquee_char_33.png rename to mods/led_marquee/textures/led_marquee_char_33.png diff --git a/led_marquee/textures/led_marquee_char_34.png b/mods/led_marquee/textures/led_marquee_char_34.png similarity index 100% rename from led_marquee/textures/led_marquee_char_34.png rename to mods/led_marquee/textures/led_marquee_char_34.png diff --git a/led_marquee/textures/led_marquee_char_35.png b/mods/led_marquee/textures/led_marquee_char_35.png similarity index 100% rename from led_marquee/textures/led_marquee_char_35.png rename to mods/led_marquee/textures/led_marquee_char_35.png diff --git a/led_marquee/textures/led_marquee_char_36.png b/mods/led_marquee/textures/led_marquee_char_36.png similarity index 100% rename from led_marquee/textures/led_marquee_char_36.png rename to mods/led_marquee/textures/led_marquee_char_36.png diff --git a/led_marquee/textures/led_marquee_char_37.png b/mods/led_marquee/textures/led_marquee_char_37.png similarity index 100% rename from led_marquee/textures/led_marquee_char_37.png rename to mods/led_marquee/textures/led_marquee_char_37.png diff --git a/led_marquee/textures/led_marquee_char_38.png b/mods/led_marquee/textures/led_marquee_char_38.png similarity index 100% rename from led_marquee/textures/led_marquee_char_38.png rename to mods/led_marquee/textures/led_marquee_char_38.png diff --git a/led_marquee/textures/led_marquee_char_39.png b/mods/led_marquee/textures/led_marquee_char_39.png similarity index 100% rename from led_marquee/textures/led_marquee_char_39.png rename to mods/led_marquee/textures/led_marquee_char_39.png diff --git a/led_marquee/textures/led_marquee_char_40.png b/mods/led_marquee/textures/led_marquee_char_40.png similarity index 100% rename from led_marquee/textures/led_marquee_char_40.png rename to mods/led_marquee/textures/led_marquee_char_40.png diff --git a/led_marquee/textures/led_marquee_char_41.png b/mods/led_marquee/textures/led_marquee_char_41.png similarity index 100% rename from led_marquee/textures/led_marquee_char_41.png rename to mods/led_marquee/textures/led_marquee_char_41.png diff --git a/led_marquee/textures/led_marquee_char_42.png b/mods/led_marquee/textures/led_marquee_char_42.png similarity index 100% rename from led_marquee/textures/led_marquee_char_42.png rename to mods/led_marquee/textures/led_marquee_char_42.png diff --git a/led_marquee/textures/led_marquee_char_43.png b/mods/led_marquee/textures/led_marquee_char_43.png similarity index 100% rename from led_marquee/textures/led_marquee_char_43.png rename to mods/led_marquee/textures/led_marquee_char_43.png diff --git a/led_marquee/textures/led_marquee_char_44.png b/mods/led_marquee/textures/led_marquee_char_44.png similarity index 100% rename from led_marquee/textures/led_marquee_char_44.png rename to mods/led_marquee/textures/led_marquee_char_44.png diff --git a/led_marquee/textures/led_marquee_char_45.png b/mods/led_marquee/textures/led_marquee_char_45.png similarity index 100% rename from led_marquee/textures/led_marquee_char_45.png rename to mods/led_marquee/textures/led_marquee_char_45.png diff --git a/led_marquee/textures/led_marquee_char_46.png b/mods/led_marquee/textures/led_marquee_char_46.png similarity index 100% rename from led_marquee/textures/led_marquee_char_46.png rename to mods/led_marquee/textures/led_marquee_char_46.png diff --git a/led_marquee/textures/led_marquee_char_47.png b/mods/led_marquee/textures/led_marquee_char_47.png similarity index 100% rename from led_marquee/textures/led_marquee_char_47.png rename to mods/led_marquee/textures/led_marquee_char_47.png diff --git a/led_marquee/textures/led_marquee_char_48.png b/mods/led_marquee/textures/led_marquee_char_48.png similarity index 100% rename from led_marquee/textures/led_marquee_char_48.png rename to mods/led_marquee/textures/led_marquee_char_48.png diff --git a/led_marquee/textures/led_marquee_char_49.png b/mods/led_marquee/textures/led_marquee_char_49.png similarity index 100% rename from led_marquee/textures/led_marquee_char_49.png rename to mods/led_marquee/textures/led_marquee_char_49.png diff --git a/led_marquee/textures/led_marquee_char_50.png b/mods/led_marquee/textures/led_marquee_char_50.png similarity index 100% rename from led_marquee/textures/led_marquee_char_50.png rename to mods/led_marquee/textures/led_marquee_char_50.png diff --git a/led_marquee/textures/led_marquee_char_51.png b/mods/led_marquee/textures/led_marquee_char_51.png similarity index 100% rename from led_marquee/textures/led_marquee_char_51.png rename to mods/led_marquee/textures/led_marquee_char_51.png diff --git a/led_marquee/textures/led_marquee_char_52.png b/mods/led_marquee/textures/led_marquee_char_52.png similarity index 100% rename from led_marquee/textures/led_marquee_char_52.png rename to mods/led_marquee/textures/led_marquee_char_52.png diff --git a/led_marquee/textures/led_marquee_char_53.png b/mods/led_marquee/textures/led_marquee_char_53.png similarity index 100% rename from led_marquee/textures/led_marquee_char_53.png rename to mods/led_marquee/textures/led_marquee_char_53.png diff --git a/led_marquee/textures/led_marquee_char_54.png b/mods/led_marquee/textures/led_marquee_char_54.png similarity index 100% rename from led_marquee/textures/led_marquee_char_54.png rename to mods/led_marquee/textures/led_marquee_char_54.png diff --git a/led_marquee/textures/led_marquee_char_55.png b/mods/led_marquee/textures/led_marquee_char_55.png similarity index 100% rename from led_marquee/textures/led_marquee_char_55.png rename to mods/led_marquee/textures/led_marquee_char_55.png diff --git a/led_marquee/textures/led_marquee_char_56.png b/mods/led_marquee/textures/led_marquee_char_56.png similarity index 100% rename from led_marquee/textures/led_marquee_char_56.png rename to mods/led_marquee/textures/led_marquee_char_56.png diff --git a/led_marquee/textures/led_marquee_char_57.png b/mods/led_marquee/textures/led_marquee_char_57.png similarity index 100% rename from led_marquee/textures/led_marquee_char_57.png rename to mods/led_marquee/textures/led_marquee_char_57.png diff --git a/led_marquee/textures/led_marquee_char_58.png b/mods/led_marquee/textures/led_marquee_char_58.png similarity index 100% rename from led_marquee/textures/led_marquee_char_58.png rename to mods/led_marquee/textures/led_marquee_char_58.png diff --git a/led_marquee/textures/led_marquee_char_59.png b/mods/led_marquee/textures/led_marquee_char_59.png similarity index 100% rename from led_marquee/textures/led_marquee_char_59.png rename to mods/led_marquee/textures/led_marquee_char_59.png diff --git a/led_marquee/textures/led_marquee_char_60.png b/mods/led_marquee/textures/led_marquee_char_60.png similarity index 100% rename from led_marquee/textures/led_marquee_char_60.png rename to mods/led_marquee/textures/led_marquee_char_60.png diff --git a/led_marquee/textures/led_marquee_char_61.png b/mods/led_marquee/textures/led_marquee_char_61.png similarity index 100% rename from led_marquee/textures/led_marquee_char_61.png rename to mods/led_marquee/textures/led_marquee_char_61.png diff --git a/led_marquee/textures/led_marquee_char_62.png b/mods/led_marquee/textures/led_marquee_char_62.png similarity index 100% rename from led_marquee/textures/led_marquee_char_62.png rename to mods/led_marquee/textures/led_marquee_char_62.png diff --git a/led_marquee/textures/led_marquee_char_63.png b/mods/led_marquee/textures/led_marquee_char_63.png similarity index 100% rename from led_marquee/textures/led_marquee_char_63.png rename to mods/led_marquee/textures/led_marquee_char_63.png diff --git a/led_marquee/textures/led_marquee_char_64.png b/mods/led_marquee/textures/led_marquee_char_64.png similarity index 100% rename from led_marquee/textures/led_marquee_char_64.png rename to mods/led_marquee/textures/led_marquee_char_64.png diff --git a/led_marquee/textures/led_marquee_char_65.png b/mods/led_marquee/textures/led_marquee_char_65.png similarity index 100% rename from led_marquee/textures/led_marquee_char_65.png rename to mods/led_marquee/textures/led_marquee_char_65.png diff --git a/led_marquee/textures/led_marquee_char_66.png b/mods/led_marquee/textures/led_marquee_char_66.png similarity index 100% rename from led_marquee/textures/led_marquee_char_66.png rename to mods/led_marquee/textures/led_marquee_char_66.png diff --git a/led_marquee/textures/led_marquee_char_67.png b/mods/led_marquee/textures/led_marquee_char_67.png similarity index 100% rename from led_marquee/textures/led_marquee_char_67.png rename to mods/led_marquee/textures/led_marquee_char_67.png diff --git a/led_marquee/textures/led_marquee_char_68.png b/mods/led_marquee/textures/led_marquee_char_68.png similarity index 100% rename from led_marquee/textures/led_marquee_char_68.png rename to mods/led_marquee/textures/led_marquee_char_68.png diff --git a/led_marquee/textures/led_marquee_char_69.png b/mods/led_marquee/textures/led_marquee_char_69.png similarity index 100% rename from led_marquee/textures/led_marquee_char_69.png rename to mods/led_marquee/textures/led_marquee_char_69.png diff --git a/led_marquee/textures/led_marquee_char_70.png b/mods/led_marquee/textures/led_marquee_char_70.png similarity index 100% rename from led_marquee/textures/led_marquee_char_70.png rename to mods/led_marquee/textures/led_marquee_char_70.png diff --git a/led_marquee/textures/led_marquee_char_71.png b/mods/led_marquee/textures/led_marquee_char_71.png similarity index 100% rename from led_marquee/textures/led_marquee_char_71.png rename to mods/led_marquee/textures/led_marquee_char_71.png diff --git a/led_marquee/textures/led_marquee_char_72.png b/mods/led_marquee/textures/led_marquee_char_72.png similarity index 100% rename from led_marquee/textures/led_marquee_char_72.png rename to mods/led_marquee/textures/led_marquee_char_72.png diff --git a/led_marquee/textures/led_marquee_char_73.png b/mods/led_marquee/textures/led_marquee_char_73.png similarity index 100% rename from led_marquee/textures/led_marquee_char_73.png rename to mods/led_marquee/textures/led_marquee_char_73.png diff --git a/led_marquee/textures/led_marquee_char_74.png b/mods/led_marquee/textures/led_marquee_char_74.png similarity index 100% rename from led_marquee/textures/led_marquee_char_74.png rename to mods/led_marquee/textures/led_marquee_char_74.png diff --git a/led_marquee/textures/led_marquee_char_75.png b/mods/led_marquee/textures/led_marquee_char_75.png similarity index 100% rename from led_marquee/textures/led_marquee_char_75.png rename to mods/led_marquee/textures/led_marquee_char_75.png diff --git a/led_marquee/textures/led_marquee_char_76.png b/mods/led_marquee/textures/led_marquee_char_76.png similarity index 100% rename from led_marquee/textures/led_marquee_char_76.png rename to mods/led_marquee/textures/led_marquee_char_76.png diff --git a/led_marquee/textures/led_marquee_char_77.png b/mods/led_marquee/textures/led_marquee_char_77.png similarity index 100% rename from led_marquee/textures/led_marquee_char_77.png rename to mods/led_marquee/textures/led_marquee_char_77.png diff --git a/led_marquee/textures/led_marquee_char_78.png b/mods/led_marquee/textures/led_marquee_char_78.png similarity index 100% rename from led_marquee/textures/led_marquee_char_78.png rename to mods/led_marquee/textures/led_marquee_char_78.png diff --git a/led_marquee/textures/led_marquee_char_79.png b/mods/led_marquee/textures/led_marquee_char_79.png similarity index 100% rename from led_marquee/textures/led_marquee_char_79.png rename to mods/led_marquee/textures/led_marquee_char_79.png diff --git a/led_marquee/textures/led_marquee_char_80.png b/mods/led_marquee/textures/led_marquee_char_80.png similarity index 100% rename from led_marquee/textures/led_marquee_char_80.png rename to mods/led_marquee/textures/led_marquee_char_80.png diff --git a/led_marquee/textures/led_marquee_char_81.png b/mods/led_marquee/textures/led_marquee_char_81.png similarity index 100% rename from led_marquee/textures/led_marquee_char_81.png rename to mods/led_marquee/textures/led_marquee_char_81.png diff --git a/led_marquee/textures/led_marquee_char_82.png b/mods/led_marquee/textures/led_marquee_char_82.png similarity index 100% rename from led_marquee/textures/led_marquee_char_82.png rename to mods/led_marquee/textures/led_marquee_char_82.png diff --git a/led_marquee/textures/led_marquee_char_83.png b/mods/led_marquee/textures/led_marquee_char_83.png similarity index 100% rename from led_marquee/textures/led_marquee_char_83.png rename to mods/led_marquee/textures/led_marquee_char_83.png diff --git a/led_marquee/textures/led_marquee_char_84.png b/mods/led_marquee/textures/led_marquee_char_84.png similarity index 100% rename from led_marquee/textures/led_marquee_char_84.png rename to mods/led_marquee/textures/led_marquee_char_84.png diff --git a/led_marquee/textures/led_marquee_char_85.png b/mods/led_marquee/textures/led_marquee_char_85.png similarity index 100% rename from led_marquee/textures/led_marquee_char_85.png rename to mods/led_marquee/textures/led_marquee_char_85.png diff --git a/led_marquee/textures/led_marquee_char_86.png b/mods/led_marquee/textures/led_marquee_char_86.png similarity index 100% rename from led_marquee/textures/led_marquee_char_86.png rename to mods/led_marquee/textures/led_marquee_char_86.png diff --git a/led_marquee/textures/led_marquee_char_87.png b/mods/led_marquee/textures/led_marquee_char_87.png similarity index 100% rename from led_marquee/textures/led_marquee_char_87.png rename to mods/led_marquee/textures/led_marquee_char_87.png diff --git a/led_marquee/textures/led_marquee_char_88.png b/mods/led_marquee/textures/led_marquee_char_88.png similarity index 100% rename from led_marquee/textures/led_marquee_char_88.png rename to mods/led_marquee/textures/led_marquee_char_88.png diff --git a/led_marquee/textures/led_marquee_char_89.png b/mods/led_marquee/textures/led_marquee_char_89.png similarity index 100% rename from led_marquee/textures/led_marquee_char_89.png rename to mods/led_marquee/textures/led_marquee_char_89.png diff --git a/led_marquee/textures/led_marquee_char_90.png b/mods/led_marquee/textures/led_marquee_char_90.png similarity index 100% rename from led_marquee/textures/led_marquee_char_90.png rename to mods/led_marquee/textures/led_marquee_char_90.png diff --git a/led_marquee/textures/led_marquee_char_91.png b/mods/led_marquee/textures/led_marquee_char_91.png similarity index 100% rename from led_marquee/textures/led_marquee_char_91.png rename to mods/led_marquee/textures/led_marquee_char_91.png diff --git a/led_marquee/textures/led_marquee_char_92.png b/mods/led_marquee/textures/led_marquee_char_92.png similarity index 100% rename from led_marquee/textures/led_marquee_char_92.png rename to mods/led_marquee/textures/led_marquee_char_92.png diff --git a/led_marquee/textures/led_marquee_char_93.png b/mods/led_marquee/textures/led_marquee_char_93.png similarity index 100% rename from led_marquee/textures/led_marquee_char_93.png rename to mods/led_marquee/textures/led_marquee_char_93.png diff --git a/led_marquee/textures/led_marquee_char_94.png b/mods/led_marquee/textures/led_marquee_char_94.png similarity index 100% rename from led_marquee/textures/led_marquee_char_94.png rename to mods/led_marquee/textures/led_marquee_char_94.png diff --git a/led_marquee/textures/led_marquee_char_95.png b/mods/led_marquee/textures/led_marquee_char_95.png similarity index 100% rename from led_marquee/textures/led_marquee_char_95.png rename to mods/led_marquee/textures/led_marquee_char_95.png diff --git a/led_marquee/textures/led_marquee_char_96.png b/mods/led_marquee/textures/led_marquee_char_96.png similarity index 100% rename from led_marquee/textures/led_marquee_char_96.png rename to mods/led_marquee/textures/led_marquee_char_96.png diff --git a/led_marquee/textures/led_marquee_char_97.png b/mods/led_marquee/textures/led_marquee_char_97.png similarity index 100% rename from led_marquee/textures/led_marquee_char_97.png rename to mods/led_marquee/textures/led_marquee_char_97.png diff --git a/led_marquee/textures/led_marquee_char_98.png b/mods/led_marquee/textures/led_marquee_char_98.png similarity index 100% rename from led_marquee/textures/led_marquee_char_98.png rename to mods/led_marquee/textures/led_marquee_char_98.png diff --git a/led_marquee/textures/led_marquee_char_99.png b/mods/led_marquee/textures/led_marquee_char_99.png similarity index 100% rename from led_marquee/textures/led_marquee_char_99.png rename to mods/led_marquee/textures/led_marquee_char_99.png diff --git a/led_marquee/textures/led_marquee_leds_off.png b/mods/led_marquee/textures/led_marquee_leds_off.png similarity index 100% rename from led_marquee/textures/led_marquee_leds_off.png rename to mods/led_marquee/textures/led_marquee_leds_off.png diff --git a/led_marquee/textures/led_marquee_leds_on.png b/mods/led_marquee/textures/led_marquee_leds_on.png similarity index 100% rename from led_marquee/textures/led_marquee_leds_on.png rename to mods/led_marquee/textures/led_marquee_leds_on.png diff --git a/led_marquee/textures/led_marquee_leds_on_cursor.png b/mods/led_marquee/textures/led_marquee_leds_on_cursor.png similarity index 100% rename from led_marquee/textures/led_marquee_leds_on_cursor.png rename to mods/led_marquee/textures/led_marquee_leds_on_cursor.png diff --git a/led_marquee/textures/led_marquee_palette.png b/mods/led_marquee/textures/led_marquee_palette.png similarity index 100% rename from led_marquee/textures/led_marquee_palette.png rename to mods/led_marquee/textures/led_marquee_palette.png diff --git a/led_marquee/textures/led_marquee_single_led_on.png b/mods/led_marquee/textures/led_marquee_single_led_on.png similarity index 100% rename from led_marquee/textures/led_marquee_single_led_on.png rename to mods/led_marquee/textures/led_marquee_single_led_on.png diff --git a/lemontree/init.lua b/mods/lemontree/init.lua similarity index 100% rename from lemontree/init.lua rename to mods/lemontree/init.lua diff --git a/lemontree/locale/lemontree.es.tr b/mods/lemontree/locale/lemontree.es.tr similarity index 100% rename from lemontree/locale/lemontree.es.tr rename to mods/lemontree/locale/lemontree.es.tr diff --git a/lemontree/mod.conf b/mods/lemontree/mod.conf similarity index 100% rename from lemontree/mod.conf rename to mods/lemontree/mod.conf diff --git a/lemontree/schematics/lemontree.lua b/mods/lemontree/schematics/lemontree.lua similarity index 100% rename from lemontree/schematics/lemontree.lua rename to mods/lemontree/schematics/lemontree.lua diff --git a/lemontree/schematics/lemontree.mts b/mods/lemontree/schematics/lemontree.mts similarity index 100% rename from lemontree/schematics/lemontree.mts rename to mods/lemontree/schematics/lemontree.mts diff --git a/lemontree/textures/lemontree_leaves.png b/mods/lemontree/textures/lemontree_leaves.png similarity index 100% rename from lemontree/textures/lemontree_leaves.png rename to mods/lemontree/textures/lemontree_leaves.png diff --git a/lemontree/textures/lemontree_lemon.png b/mods/lemontree/textures/lemontree_lemon.png similarity index 100% rename from lemontree/textures/lemontree_lemon.png rename to mods/lemontree/textures/lemontree_lemon.png diff --git a/lemontree/textures/lemontree_sapling.png b/mods/lemontree/textures/lemontree_sapling.png similarity index 100% rename from lemontree/textures/lemontree_sapling.png rename to mods/lemontree/textures/lemontree_sapling.png diff --git a/lemontree/textures/lemontree_trunk.png b/mods/lemontree/textures/lemontree_trunk.png similarity index 100% rename from lemontree/textures/lemontree_trunk.png rename to mods/lemontree/textures/lemontree_trunk.png diff --git a/lemontree/textures/lemontree_trunk_nobark.png b/mods/lemontree/textures/lemontree_trunk_nobark.png similarity index 100% rename from lemontree/textures/lemontree_trunk_nobark.png rename to mods/lemontree/textures/lemontree_trunk_nobark.png diff --git a/lemontree/textures/lemontree_trunk_top.png b/mods/lemontree/textures/lemontree_trunk_top.png similarity index 100% rename from lemontree/textures/lemontree_trunk_top.png rename to mods/lemontree/textures/lemontree_trunk_top.png diff --git a/lemontree/textures/lemontree_wood.png b/mods/lemontree/textures/lemontree_wood.png similarity index 100% rename from lemontree/textures/lemontree_wood.png rename to mods/lemontree/textures/lemontree_wood.png diff --git a/lemontree/textures/ts_lemontree_front.png b/mods/lemontree/textures/ts_lemontree_front.png similarity index 100% rename from lemontree/textures/ts_lemontree_front.png rename to mods/lemontree/textures/ts_lemontree_front.png diff --git a/lemontree/textures/ts_lemontree_front_right.png b/mods/lemontree/textures/ts_lemontree_front_right.png similarity index 100% rename from lemontree/textures/ts_lemontree_front_right.png rename to mods/lemontree/textures/ts_lemontree_front_right.png diff --git a/locks/README.md b/mods/locks/README.md similarity index 100% rename from locks/README.md rename to mods/locks/README.md diff --git a/locks/depends.txt b/mods/locks/depends.txt similarity index 100% rename from locks/depends.txt rename to mods/locks/depends.txt diff --git a/locks/init.lua b/mods/locks/init.lua similarity index 100% rename from locks/init.lua rename to mods/locks/init.lua diff --git a/locks/liscence.txt b/mods/locks/liscence.txt similarity index 100% rename from locks/liscence.txt rename to mods/locks/liscence.txt diff --git a/locks/shared_locked_chest.lua b/mods/locks/shared_locked_chest.lua similarity index 100% rename from locks/shared_locked_chest.lua rename to mods/locks/shared_locked_chest.lua diff --git a/locks/shared_locked_furnace.lua b/mods/locks/shared_locked_furnace.lua similarity index 100% rename from locks/shared_locked_furnace.lua rename to mods/locks/shared_locked_furnace.lua diff --git a/locks/shared_locked_sign_wall.lua b/mods/locks/shared_locked_sign_wall.lua similarity index 100% rename from locks/shared_locked_sign_wall.lua rename to mods/locks/shared_locked_sign_wall.lua diff --git a/locks/shared_locked_xdoors2.lua b/mods/locks/shared_locked_xdoors2.lua similarity index 100% rename from locks/shared_locked_xdoors2.lua rename to mods/locks/shared_locked_xdoors2.lua diff --git a/locks/textures/bg_shared_locked_chest.jpg b/mods/locks/textures/bg_shared_locked_chest.jpg similarity index 100% rename from locks/textures/bg_shared_locked_chest.jpg rename to mods/locks/textures/bg_shared_locked_chest.jpg diff --git a/locks/textures/bg_shared_locked_furnace.jpg b/mods/locks/textures/bg_shared_locked_furnace.jpg similarity index 100% rename from locks/textures/bg_shared_locked_furnace.jpg rename to mods/locks/textures/bg_shared_locked_furnace.jpg diff --git a/locks/textures/bg_shared_locked_sign.jpg b/mods/locks/textures/bg_shared_locked_sign.jpg similarity index 100% rename from locks/textures/bg_shared_locked_sign.jpg rename to mods/locks/textures/bg_shared_locked_sign.jpg diff --git a/locks/textures/licence.txt b/mods/locks/textures/licence.txt similarity index 100% rename from locks/textures/licence.txt rename to mods/locks/textures/licence.txt diff --git a/locks/textures/locks_key16.png b/mods/locks/textures/locks_key16.png similarity index 100% rename from locks/textures/locks_key16.png rename to mods/locks/textures/locks_key16.png diff --git a/locks/textures/locks_key32.png b/mods/locks/textures/locks_key32.png similarity index 100% rename from locks/textures/locks_key32.png rename to mods/locks/textures/locks_key32.png diff --git a/locks/textures/locks_keychain16.png b/mods/locks/textures/locks_keychain16.png similarity index 100% rename from locks/textures/locks_keychain16.png rename to mods/locks/textures/locks_keychain16.png diff --git a/locks/textures/locks_keychain32.png b/mods/locks/textures/locks_keychain32.png similarity index 100% rename from locks/textures/locks_keychain32.png rename to mods/locks/textures/locks_keychain32.png diff --git a/locks/textures/locks_lock16.png b/mods/locks/textures/locks_lock16.png similarity index 100% rename from locks/textures/locks_lock16.png rename to mods/locks/textures/locks_lock16.png diff --git a/locks/textures/locks_lock32.png b/mods/locks/textures/locks_lock32.png similarity index 100% rename from locks/textures/locks_lock32.png rename to mods/locks/textures/locks_lock32.png diff --git a/locks/textures/locks_xdoors2_bottom_1.png b/mods/locks/textures/locks_xdoors2_bottom_1.png similarity index 100% rename from locks/textures/locks_xdoors2_bottom_1.png rename to mods/locks/textures/locks_xdoors2_bottom_1.png diff --git a/locks/textures/locks_xdoors2_bottom_2.png b/mods/locks/textures/locks_xdoors2_bottom_2.png similarity index 100% rename from locks/textures/locks_xdoors2_bottom_2.png rename to mods/locks/textures/locks_xdoors2_bottom_2.png diff --git a/locks/textures/locks_xdoors2_door.png b/mods/locks/textures/locks_xdoors2_door.png similarity index 100% rename from locks/textures/locks_xdoors2_door.png rename to mods/locks/textures/locks_xdoors2_door.png diff --git a/locks/textures/xdoors2_bottom.png b/mods/locks/textures/xdoors2_bottom.png similarity index 100% rename from locks/textures/xdoors2_bottom.png rename to mods/locks/textures/xdoors2_bottom.png diff --git a/locks/textures/xdoors2_side.png b/mods/locks/textures/xdoors2_side.png similarity index 100% rename from locks/textures/xdoors2_side.png rename to mods/locks/textures/xdoors2_side.png diff --git a/locks/textures/xdoors2_top.png b/mods/locks/textures/xdoors2_top.png similarity index 100% rename from locks/textures/xdoors2_top.png rename to mods/locks/textures/xdoors2_top.png diff --git a/locks/textures/xdoors2_top_1.png b/mods/locks/textures/xdoors2_top_1.png similarity index 100% rename from locks/textures/xdoors2_top_1.png rename to mods/locks/textures/xdoors2_top_1.png diff --git a/locks/textures/xdoors2_top_2.png b/mods/locks/textures/xdoors2_top_2.png similarity index 100% rename from locks/textures/xdoors2_top_2.png rename to mods/locks/textures/xdoors2_top_2.png diff --git a/locks/textures/xdoors2locked_bottom_1.png b/mods/locks/textures/xdoors2locked_bottom_1.png similarity index 100% rename from locks/textures/xdoors2locked_bottom_1.png rename to mods/locks/textures/xdoors2locked_bottom_1.png diff --git a/locks/textures/xdoors2locked_bottom_2.png b/mods/locks/textures/xdoors2locked_bottom_2.png similarity index 100% rename from locks/textures/xdoors2locked_bottom_2.png rename to mods/locks/textures/xdoors2locked_bottom_2.png diff --git a/locks/textures/xdoors2locked_door.png b/mods/locks/textures/xdoors2locked_door.png similarity index 100% rename from locks/textures/xdoors2locked_door.png rename to mods/locks/textures/xdoors2locked_door.png diff --git a/mahogany/init.lua b/mods/mahogany/init.lua similarity index 100% rename from mahogany/init.lua rename to mods/mahogany/init.lua diff --git a/mahogany/locale/mahogany.es.tr b/mods/mahogany/locale/mahogany.es.tr similarity index 100% rename from mahogany/locale/mahogany.es.tr rename to mods/mahogany/locale/mahogany.es.tr diff --git a/mahogany/mod.conf b/mods/mahogany/mod.conf similarity index 100% rename from mahogany/mod.conf rename to mods/mahogany/mod.conf diff --git a/mahogany/schematics/mahogany.lua b/mods/mahogany/schematics/mahogany.lua similarity index 100% rename from mahogany/schematics/mahogany.lua rename to mods/mahogany/schematics/mahogany.lua diff --git a/mahogany/schematics/mahogany.mts b/mods/mahogany/schematics/mahogany.mts similarity index 100% rename from mahogany/schematics/mahogany.mts rename to mods/mahogany/schematics/mahogany.mts diff --git a/mahogany/textures/mahogany_creeper.png b/mods/mahogany/textures/mahogany_creeper.png similarity index 100% rename from mahogany/textures/mahogany_creeper.png rename to mods/mahogany/textures/mahogany_creeper.png diff --git a/mahogany/textures/mahogany_flower_creeper.png b/mods/mahogany/textures/mahogany_flower_creeper.png similarity index 100% rename from mahogany/textures/mahogany_flower_creeper.png rename to mods/mahogany/textures/mahogany_flower_creeper.png diff --git a/mahogany/textures/mahogany_hanging_creeper.png b/mods/mahogany/textures/mahogany_hanging_creeper.png similarity index 100% rename from mahogany/textures/mahogany_hanging_creeper.png rename to mods/mahogany/textures/mahogany_hanging_creeper.png diff --git a/mahogany/textures/mahogany_leaves.png b/mods/mahogany/textures/mahogany_leaves.png similarity index 100% rename from mahogany/textures/mahogany_leaves.png rename to mods/mahogany/textures/mahogany_leaves.png diff --git a/mahogany/textures/mahogany_sapling.png b/mods/mahogany/textures/mahogany_sapling.png similarity index 100% rename from mahogany/textures/mahogany_sapling.png rename to mods/mahogany/textures/mahogany_sapling.png diff --git a/mahogany/textures/mahogany_trunk.png b/mods/mahogany/textures/mahogany_trunk.png similarity index 100% rename from mahogany/textures/mahogany_trunk.png rename to mods/mahogany/textures/mahogany_trunk.png diff --git a/mahogany/textures/mahogany_trunk_top.png b/mods/mahogany/textures/mahogany_trunk_top.png similarity index 100% rename from mahogany/textures/mahogany_trunk_top.png rename to mods/mahogany/textures/mahogany_trunk_top.png diff --git a/mahogany/textures/mahogany_wood.png b/mods/mahogany/textures/mahogany_wood.png similarity index 100% rename from mahogany/textures/mahogany_wood.png rename to mods/mahogany/textures/mahogany_wood.png diff --git a/manholes/depends.txt b/mods/manholes/depends.txt similarity index 100% rename from manholes/depends.txt rename to mods/manholes/depends.txt diff --git a/manholes/init.lua b/mods/manholes/init.lua similarity index 100% rename from manholes/init.lua rename to mods/manholes/init.lua diff --git a/mods/map/README.txt b/mods/map/README.txt new file mode 100644 index 00000000..068439a9 --- /dev/null +++ b/mods/map/README.txt @@ -0,0 +1,44 @@ +Minetest Game mod: map +====================== +See license.txt for license information. + +Authors of source code +---------------------- +paramat (MIT) + +Authors of media (textures) +--------------------------- +TumeniNodes (CC BY-SA 3.0): + map_mapping_kit.png (map) + +paramat (CC BY-SA 3.0): + map_mapping_kit.png (compass and pen) + +Crafting +-------- +map:mapping_kit + +default:glass G +default:paper P +group:stick S +default:steel_ingot I +group:wood W +dye:black D + +GPS +IPI +WPD + +Usage +----- +In survival mode, use of the minimap requires the mapping kit item in your +inventory. It can take up to 5 seconds for adding to or removal from inventory +to have an effect, however to instantly allow the use of the minimap 'use' +(leftclick) the item. +Minimap radar mode is always disallowed in survival mode. + +Minimap and minimap radar mode are automatically allowed in creative mode and +for any player with the 'creative' privilege. + +The 'map.update_hud_flags()' function is global so can be redefined by a mod for +alternative behaviour. diff --git a/mods/map/init.lua b/mods/map/init.lua new file mode 100644 index 00000000..227d65a7 --- /dev/null +++ b/mods/map/init.lua @@ -0,0 +1,80 @@ +-- map/init.lua + +-- Mod global namespace + +map = {} + + +-- Load support for MT game translation. +local S = minetest.get_translator("map") + + +-- Update HUD flags +-- Global to allow overriding + +function map.update_hud_flags(player) + local creative_enabled = minetest.is_creative_enabled(player:get_player_name()) + + local minimap_enabled = creative_enabled or + player:get_inventory():contains_item("main", "map:mapping_kit") + local radar_enabled = creative_enabled + + player:hud_set_flags({ + minimap = minimap_enabled, + minimap_radar = radar_enabled + }) +end + + +-- Set HUD flags 'on joinplayer' + +minetest.register_on_joinplayer(function(player) + map.update_hud_flags(player) +end) + + +-- Cyclic update of HUD flags + +local function cyclic_update() + for _, player in ipairs(minetest.get_connected_players()) do + map.update_hud_flags(player) + end + minetest.after(5.3, cyclic_update) +end + +minetest.after(5.3, cyclic_update) + + +-- Mapping kit item + +minetest.register_craftitem("map:mapping_kit", { + description = S("Mapping Kit") .. "\n" .. S("Use with 'Minimap' key"), + inventory_image = "map_mapping_kit.png", + stack_max = 1, + groups = {flammable = 3}, + + on_use = function(itemstack, user, pointed_thing) + map.update_hud_flags(user) + end, +}) + + +-- Crafting + +minetest.register_craft({ + output = "map:mapping_kit", + recipe = { + {"default:glass", "default:paper", "group:stick"}, + {"default:steel_ingot", "default:paper", "default:steel_ingot"}, + {"group:wood", "default:paper", "dye:black"}, + } +}) + + +-- Fuel + +minetest.register_craft({ + type = "fuel", + recipe = "map:mapping_kit", + burntime = 5, +}) diff --git a/mods/map/license.txt b/mods/map/license.txt new file mode 100644 index 00000000..a89f59c4 --- /dev/null +++ b/mods/map/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2017 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2017 TumeniNodes +Copyright (C) 2017 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/map/locale/map.de.tr b/mods/map/locale/map.de.tr new file mode 100644 index 00000000..1a784abf --- /dev/null +++ b/mods/map/locale/map.de.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kartenset +Use with 'Minimap' key=Mit „Karte an/aus“-Taste benutzen diff --git a/mods/map/locale/map.es.tr b/mods/map/locale/map.es.tr new file mode 100644 index 00000000..0faed529 --- /dev/null +++ b/mods/map/locale/map.es.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit de cartografía +Use with 'Minimap' key=Usar con la tecla 'Minimapa' diff --git a/mods/map/locale/map.fr.tr b/mods/map/locale/map.fr.tr new file mode 100644 index 00000000..29f8e208 --- /dev/null +++ b/mods/map/locale/map.fr.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit de carthographie +Use with 'Minimap' key=Utiliser avec le bouton « Minimap » diff --git a/mods/map/locale/map.id.tr b/mods/map/locale/map.id.tr new file mode 100644 index 00000000..cb31d0f7 --- /dev/null +++ b/mods/map/locale/map.id.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Alat Pemetaan +Use with 'Minimap' key=Pakai dengan tombol 'Peta Mini' diff --git a/mods/map/locale/map.it.tr b/mods/map/locale/map.it.tr new file mode 100644 index 00000000..59885e98 --- /dev/null +++ b/mods/map/locale/map.it.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit di mappatura +Use with 'Minimap' key=Usalo col tasto 'Minimappa' diff --git a/mods/map/locale/map.jbo.tr b/mods/map/locale/map.jbo.tr new file mode 100644 index 00000000..8f37c188 --- /dev/null +++ b/mods/map/locale/map.jbo.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=lo cartu ke sidju bakfu +Use with 'Minimap' key=.i tu'a le cmalu cartu batke cu tadji lo nu pilno diff --git a/mods/map/locale/map.ms.tr b/mods/map/locale/map.ms.tr new file mode 100644 index 00000000..8564f910 --- /dev/null +++ b/mods/map/locale/map.ms.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Alat Pemetaan +Use with 'Minimap' key=Guna dengan kekunci 'Peta Mini' diff --git a/mods/map/locale/map.pt_BR.tr b/mods/map/locale/map.pt_BR.tr new file mode 100644 index 00000000..0095c395 --- /dev/null +++ b/mods/map/locale/map.pt_BR.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit de mapeamento +Use with 'Minimap' key=Use com a tecla do 'mini-mapa' diff --git a/mods/map/locale/map.ru.tr b/mods/map/locale/map.ru.tr new file mode 100644 index 00000000..73120b62 --- /dev/null +++ b/mods/map/locale/map.ru.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Картографический комплект +Use with 'Minimap' key=Используйте с ключом 'Minimap' diff --git a/mods/map/locale/map.se.tr b/mods/map/locale/map.se.tr new file mode 100644 index 00000000..de6ac361 --- /dev/null +++ b/mods/map/locale/map.se.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kartläggningssats +Use with 'Minimap' key=Använd med 'Minimap' tangent diff --git a/mods/map/locale/map.sk.tr b/mods/map/locale/map.sk.tr new file mode 100644 index 00000000..2016c85f --- /dev/null +++ b/mods/map/locale/map.sk.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kartografická súprava +Use with 'Minimap' key=Použi klávesou 'Prepni minimpu' diff --git a/mods/map/locale/map.zh_CN.tr b/mods/map/locale/map.zh_CN.tr new file mode 100644 index 00000000..cec95bb7 --- /dev/null +++ b/mods/map/locale/map.zh_CN.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=地图绘制工具包 +Use with 'Minimap' key=与“迷你地图”键一起使用 diff --git a/mods/map/locale/map.zh_TW.tr b/mods/map/locale/map.zh_TW.tr new file mode 100644 index 00000000..a0981245 --- /dev/null +++ b/mods/map/locale/map.zh_TW.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=地圖繪製工具包 +Use with 'Minimap' key=與“迷你地圖”鍵一起使用 diff --git a/mods/map/locale/template.txt b/mods/map/locale/template.txt new file mode 100644 index 00000000..2dbe2eea --- /dev/null +++ b/mods/map/locale/template.txt @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit= +Use with 'Minimap' key= diff --git a/mods/map/mod.conf b/mods/map/mod.conf new file mode 100644 index 00000000..bb045c77 --- /dev/null +++ b/mods/map/mod.conf @@ -0,0 +1,3 @@ +name = map +description = Minetest Game mod: map +depends = default, dye diff --git a/mods/map/textures/map_mapping_kit.png b/mods/map/textures/map_mapping_kit.png new file mode 100644 index 00000000..015b878a Binary files /dev/null and b/mods/map/textures/map_mapping_kit.png differ diff --git a/maple/init.lua b/mods/maple/init.lua similarity index 100% rename from maple/init.lua rename to mods/maple/init.lua diff --git a/maple/locale/maple.es.tr b/mods/maple/locale/maple.es.tr similarity index 100% rename from maple/locale/maple.es.tr rename to mods/maple/locale/maple.es.tr diff --git a/maple/mod.conf b/mods/maple/mod.conf similarity index 100% rename from maple/mod.conf rename to mods/maple/mod.conf diff --git a/maple/schematics/maple.lua b/mods/maple/schematics/maple.lua similarity index 100% rename from maple/schematics/maple.lua rename to mods/maple/schematics/maple.lua diff --git a/maple/schematics/maple.mts b/mods/maple/schematics/maple.mts similarity index 100% rename from maple/schematics/maple.mts rename to mods/maple/schematics/maple.mts diff --git a/maple/textures/maple_door_wood.png b/mods/maple/textures/maple_door_wood.png similarity index 100% rename from maple/textures/maple_door_wood.png rename to mods/maple/textures/maple_door_wood.png diff --git a/maple/textures/maple_item_wood.png b/mods/maple/textures/maple_item_wood.png similarity index 100% rename from maple/textures/maple_item_wood.png rename to mods/maple/textures/maple_item_wood.png diff --git a/maple/textures/maple_leaves.png b/mods/maple/textures/maple_leaves.png similarity index 100% rename from maple/textures/maple_leaves.png rename to mods/maple/textures/maple_leaves.png diff --git a/maple/textures/maple_sapling.png b/mods/maple/textures/maple_sapling.png similarity index 100% rename from maple/textures/maple_sapling.png rename to mods/maple/textures/maple_sapling.png diff --git a/maple/textures/maple_trunk.png b/mods/maple/textures/maple_trunk.png similarity index 100% rename from maple/textures/maple_trunk.png rename to mods/maple/textures/maple_trunk.png diff --git a/maple/textures/maple_trunk_top.png b/mods/maple/textures/maple_trunk_top.png similarity index 100% rename from maple/textures/maple_trunk_top.png rename to mods/maple/textures/maple_trunk_top.png diff --git a/maple/textures/maple_wood.png b/mods/maple/textures/maple_wood.png similarity index 100% rename from maple/textures/maple_wood.png rename to mods/maple/textures/maple_wood.png diff --git a/maptools/.editorconfig b/mods/maptools/.editorconfig similarity index 100% rename from maptools/.editorconfig rename to mods/maptools/.editorconfig diff --git a/maptools/.luacheckrc b/mods/maptools/.luacheckrc similarity index 100% rename from maptools/.luacheckrc rename to mods/maptools/.luacheckrc diff --git a/maptools/.pre-commit-config.yaml b/mods/maptools/.pre-commit-config.yaml similarity index 100% rename from maptools/.pre-commit-config.yaml rename to mods/maptools/.pre-commit-config.yaml diff --git a/maptools/LICENSE.md b/mods/maptools/LICENSE.md similarity index 100% rename from maptools/LICENSE.md rename to mods/maptools/LICENSE.md diff --git a/maptools/README.md b/mods/maptools/README.md similarity index 100% rename from maptools/README.md rename to mods/maptools/README.md diff --git a/maptools/aliases.lua b/mods/maptools/aliases.lua similarity index 100% rename from maptools/aliases.lua rename to mods/maptools/aliases.lua diff --git a/maptools/config.lua b/mods/maptools/config.lua similarity index 100% rename from maptools/config.lua rename to mods/maptools/config.lua diff --git a/maptools/craftitems.lua b/mods/maptools/craftitems.lua similarity index 100% rename from maptools/craftitems.lua rename to mods/maptools/craftitems.lua diff --git a/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua similarity index 100% rename from maptools/default_nodes.lua rename to mods/maptools/default_nodes.lua diff --git a/maptools/docs/CHANGELOG.md b/mods/maptools/docs/CHANGELOG.md similarity index 100% rename from maptools/docs/CHANGELOG.md rename to mods/maptools/docs/CHANGELOG.md diff --git a/maptools/docs/NODES_ITEMS.md b/mods/maptools/docs/NODES_ITEMS.md similarity index 100% rename from maptools/docs/NODES_ITEMS.md rename to mods/maptools/docs/NODES_ITEMS.md diff --git a/maptools/init.lua b/mods/maptools/init.lua similarity index 100% rename from maptools/init.lua rename to mods/maptools/init.lua diff --git a/maptools/locale/maptools.es.tr b/mods/maptools/locale/maptools.es.tr similarity index 100% rename from maptools/locale/maptools.es.tr rename to mods/maptools/locale/maptools.es.tr diff --git a/maptools/locale/maptools.fr.tr b/mods/maptools/locale/maptools.fr.tr similarity index 100% rename from maptools/locale/maptools.fr.tr rename to mods/maptools/locale/maptools.fr.tr diff --git a/maptools/locale/maptools.it.tr b/mods/maptools/locale/maptools.it.tr similarity index 100% rename from maptools/locale/maptools.it.tr rename to mods/maptools/locale/maptools.it.tr diff --git a/maptools/locale/maptools.template.tr b/mods/maptools/locale/maptools.template.tr similarity index 100% rename from maptools/locale/maptools.template.tr rename to mods/maptools/locale/maptools.template.tr diff --git a/maptools/mod.conf b/mods/maptools/mod.conf similarity index 100% rename from maptools/mod.conf rename to mods/maptools/mod.conf diff --git a/maptools/nodes.lua b/mods/maptools/nodes.lua similarity index 100% rename from maptools/nodes.lua rename to mods/maptools/nodes.lua diff --git a/maptools/textures/black.png b/mods/maptools/textures/black.png similarity index 100% rename from maptools/textures/black.png rename to mods/maptools/textures/black.png diff --git a/maptools/textures/fire_basic_flame.png b/mods/maptools/textures/fire_basic_flame.png similarity index 100% rename from maptools/textures/fire_basic_flame.png rename to mods/maptools/textures/fire_basic_flame.png diff --git a/maptools/textures/fire_basic_flame_animated.png b/mods/maptools/textures/fire_basic_flame_animated.png similarity index 100% rename from maptools/textures/fire_basic_flame_animated.png rename to mods/maptools/textures/fire_basic_flame_animated.png diff --git a/maptools/textures/invisible.png b/mods/maptools/textures/invisible.png similarity index 100% rename from maptools/textures/invisible.png rename to mods/maptools/textures/invisible.png diff --git a/maptools/textures/maptools_adminpick.png b/mods/maptools/textures/maptools_adminpick.png similarity index 100% rename from maptools/textures/maptools_adminpick.png rename to mods/maptools/textures/maptools_adminpick.png diff --git a/maptools/textures/maptools_adminpick_with_drops.png b/mods/maptools/textures/maptools_adminpick_with_drops.png similarity index 100% rename from maptools/textures/maptools_adminpick_with_drops.png rename to mods/maptools/textures/maptools_adminpick_with_drops.png diff --git a/maptools/textures/maptools_copper_coin.png b/mods/maptools/textures/maptools_copper_coin.png similarity index 100% rename from maptools/textures/maptools_copper_coin.png rename to mods/maptools/textures/maptools_copper_coin.png diff --git a/maptools/textures/maptools_gold_coin.png b/mods/maptools/textures/maptools_gold_coin.png similarity index 100% rename from maptools/textures/maptools_gold_coin.png rename to mods/maptools/textures/maptools_gold_coin.png diff --git a/maptools/textures/maptools_grass_side_12.png b/mods/maptools/textures/maptools_grass_side_12.png similarity index 100% rename from maptools/textures/maptools_grass_side_12.png rename to mods/maptools/textures/maptools_grass_side_12.png diff --git a/maptools/textures/maptools_grass_side_4.png b/mods/maptools/textures/maptools_grass_side_4.png similarity index 100% rename from maptools/textures/maptools_grass_side_4.png rename to mods/maptools/textures/maptools_grass_side_4.png diff --git a/maptools/textures/maptools_grass_side_8.png b/mods/maptools/textures/maptools_grass_side_8.png similarity index 100% rename from maptools/textures/maptools_grass_side_8.png rename to mods/maptools/textures/maptools_grass_side_8.png diff --git a/maptools/textures/maptools_infinitefuel.png b/mods/maptools/textures/maptools_infinitefuel.png similarity index 100% rename from maptools/textures/maptools_infinitefuel.png rename to mods/maptools/textures/maptools_infinitefuel.png diff --git a/maptools/textures/maptools_silver_coin.png b/mods/maptools/textures/maptools_silver_coin.png similarity index 100% rename from maptools/textures/maptools_silver_coin.png rename to mods/maptools/textures/maptools_silver_coin.png diff --git a/maptools/textures/maptools_smoke.png b/mods/maptools/textures/maptools_smoke.png similarity index 100% rename from maptools/textures/maptools_smoke.png rename to mods/maptools/textures/maptools_smoke.png diff --git a/maptools/textures/maptools_superapple.png b/mods/maptools/textures/maptools_superapple.png similarity index 100% rename from maptools/textures/maptools_superapple.png rename to mods/maptools/textures/maptools_superapple.png diff --git a/maptools/textures/white.png b/mods/maptools/textures/white.png similarity index 100% rename from maptools/textures/white.png rename to mods/maptools/textures/white.png diff --git a/maptools/tools.lua b/mods/maptools/tools.lua similarity index 100% rename from maptools/tools.lua rename to mods/maptools/tools.lua diff --git a/memorandum/depends.txt b/mods/memorandum/depends.txt similarity index 100% rename from memorandum/depends.txt rename to mods/memorandum/depends.txt diff --git a/memorandum/init.lua b/mods/memorandum/init.lua similarity index 100% rename from memorandum/init.lua rename to mods/memorandum/init.lua diff --git a/memorandum/textures/alternates/memorandum_eraser.png b/mods/memorandum/textures/alternates/memorandum_eraser.png similarity index 100% rename from memorandum/textures/alternates/memorandum_eraser.png rename to mods/memorandum/textures/alternates/memorandum_eraser.png diff --git a/memorandum/textures/memorandum_eraser.png b/mods/memorandum/textures/memorandum_eraser.png similarity index 100% rename from memorandum/textures/memorandum_eraser.png rename to mods/memorandum/textures/memorandum_eraser.png diff --git a/memorandum/textures/memorandum_letter_empty.png b/mods/memorandum/textures/memorandum_letter_empty.png similarity index 100% rename from memorandum/textures/memorandum_letter_empty.png rename to mods/memorandum/textures/memorandum_letter_empty.png diff --git a/memorandum/textures/memorandum_letter_text.png b/mods/memorandum/textures/memorandum_letter_text.png similarity index 100% rename from memorandum/textures/memorandum_letter_text.png rename to mods/memorandum/textures/memorandum_letter_text.png diff --git a/memorandum/textures/memorandum_letters.png b/mods/memorandum/textures/memorandum_letters.png similarity index 100% rename from memorandum/textures/memorandum_letters.png rename to mods/memorandum/textures/memorandum_letters.png diff --git a/memorandum/textures/memorandum_message.png b/mods/memorandum/textures/memorandum_message.png similarity index 100% rename from memorandum/textures/memorandum_message.png rename to mods/memorandum/textures/memorandum_message.png diff --git a/mesecons/actionqueue.lua b/mods/mesecons/actionqueue.lua similarity index 100% rename from mesecons/actionqueue.lua rename to mods/mesecons/actionqueue.lua diff --git a/mesecons/init.lua b/mods/mesecons/init.lua similarity index 100% rename from mesecons/init.lua rename to mods/mesecons/init.lua diff --git a/mesecons/internal.lua b/mods/mesecons/internal.lua similarity index 100% rename from mesecons/internal.lua rename to mods/mesecons/internal.lua diff --git a/mesecons/legacy.lua b/mods/mesecons/legacy.lua similarity index 100% rename from mesecons/legacy.lua rename to mods/mesecons/legacy.lua diff --git a/mesecons/mod.conf b/mods/mesecons/mod.conf similarity index 100% rename from mesecons/mod.conf rename to mods/mesecons/mod.conf diff --git a/mesecons/oldwires.lua b/mods/mesecons/oldwires.lua similarity index 100% rename from mesecons/oldwires.lua rename to mods/mesecons/oldwires.lua diff --git a/mesecons/presets.lua b/mods/mesecons/presets.lua similarity index 100% rename from mesecons/presets.lua rename to mods/mesecons/presets.lua diff --git a/mesecons/services.lua b/mods/mesecons/services.lua similarity index 100% rename from mesecons/services.lua rename to mods/mesecons/services.lua diff --git a/mesecons/settings.lua b/mods/mesecons/settings.lua similarity index 100% rename from mesecons/settings.lua rename to mods/mesecons/settings.lua diff --git a/mesecons/textures/jeija_close_window.png b/mods/mesecons/textures/jeija_close_window.png similarity index 100% rename from mesecons/textures/jeija_close_window.png rename to mods/mesecons/textures/jeija_close_window.png diff --git a/mesecons/textures/jeija_microcontroller_LED_A.png b/mods/mesecons/textures/jeija_microcontroller_LED_A.png similarity index 100% rename from mesecons/textures/jeija_microcontroller_LED_A.png rename to mods/mesecons/textures/jeija_microcontroller_LED_A.png diff --git a/mesecons/textures/jeija_microcontroller_LED_B.png b/mods/mesecons/textures/jeija_microcontroller_LED_B.png similarity index 100% rename from mesecons/textures/jeija_microcontroller_LED_B.png rename to mods/mesecons/textures/jeija_microcontroller_LED_B.png diff --git a/mesecons/textures/jeija_microcontroller_LED_C.png b/mods/mesecons/textures/jeija_microcontroller_LED_C.png similarity index 100% rename from mesecons/textures/jeija_microcontroller_LED_C.png rename to mods/mesecons/textures/jeija_microcontroller_LED_C.png diff --git a/mesecons/textures/jeija_microcontroller_LED_D.png b/mods/mesecons/textures/jeija_microcontroller_LED_D.png similarity index 100% rename from mesecons/textures/jeija_microcontroller_LED_D.png rename to mods/mesecons/textures/jeija_microcontroller_LED_D.png diff --git a/mesecons/textures/jeija_microcontroller_bottom.png b/mods/mesecons/textures/jeija_microcontroller_bottom.png similarity index 100% rename from mesecons/textures/jeija_microcontroller_bottom.png rename to mods/mesecons/textures/jeija_microcontroller_bottom.png diff --git a/mesecons/textures/jeija_microcontroller_sides.png b/mods/mesecons/textures/jeija_microcontroller_sides.png similarity index 100% rename from mesecons/textures/jeija_microcontroller_sides.png rename to mods/mesecons/textures/jeija_microcontroller_sides.png diff --git a/mesecons/textures/mesecons_wire_inv.png b/mods/mesecons/textures/mesecons_wire_inv.png similarity index 100% rename from mesecons/textures/mesecons_wire_inv.png rename to mods/mesecons/textures/mesecons_wire_inv.png diff --git a/mesecons/textures/mesecons_wire_off.png b/mods/mesecons/textures/mesecons_wire_off.png similarity index 100% rename from mesecons/textures/mesecons_wire_off.png rename to mods/mesecons/textures/mesecons_wire_off.png diff --git a/mesecons/textures/mesecons_wire_on.png b/mods/mesecons/textures/mesecons_wire_on.png similarity index 100% rename from mesecons/textures/mesecons_wire_on.png rename to mods/mesecons/textures/mesecons_wire_on.png diff --git a/mesecons/util.lua b/mods/mesecons/util.lua similarity index 100% rename from mesecons/util.lua rename to mods/mesecons/util.lua diff --git a/mesecons_alias/init.lua b/mods/mesecons_alias/init.lua similarity index 100% rename from mesecons_alias/init.lua rename to mods/mesecons_alias/init.lua diff --git a/mesecons_alias/mod.conf b/mods/mesecons_alias/mod.conf similarity index 100% rename from mesecons_alias/mod.conf rename to mods/mesecons_alias/mod.conf diff --git a/mesecons_blinkyplant/doc/blinkyplant/description.html b/mods/mesecons_blinkyplant/doc/blinkyplant/description.html similarity index 100% rename from mesecons_blinkyplant/doc/blinkyplant/description.html rename to mods/mesecons_blinkyplant/doc/blinkyplant/description.html diff --git a/mesecons_blinkyplant/doc/blinkyplant/preview.png b/mods/mesecons_blinkyplant/doc/blinkyplant/preview.png similarity index 100% rename from mesecons_blinkyplant/doc/blinkyplant/preview.png rename to mods/mesecons_blinkyplant/doc/blinkyplant/preview.png diff --git a/mesecons_blinkyplant/doc/blinkyplant/recipe.png b/mods/mesecons_blinkyplant/doc/blinkyplant/recipe.png similarity index 100% rename from mesecons_blinkyplant/doc/blinkyplant/recipe.png rename to mods/mesecons_blinkyplant/doc/blinkyplant/recipe.png diff --git a/mesecons_blinkyplant/init.lua b/mods/mesecons_blinkyplant/init.lua similarity index 100% rename from mesecons_blinkyplant/init.lua rename to mods/mesecons_blinkyplant/init.lua diff --git a/mesecons_blinkyplant/mod.conf b/mods/mesecons_blinkyplant/mod.conf similarity index 100% rename from mesecons_blinkyplant/mod.conf rename to mods/mesecons_blinkyplant/mod.conf diff --git a/mesecons_blinkyplant/textures/jeija_blinky_plant_off.png b/mods/mesecons_blinkyplant/textures/jeija_blinky_plant_off.png similarity index 100% rename from mesecons_blinkyplant/textures/jeija_blinky_plant_off.png rename to mods/mesecons_blinkyplant/textures/jeija_blinky_plant_off.png diff --git a/mesecons_blinkyplant/textures/jeija_blinky_plant_on.png b/mods/mesecons_blinkyplant/textures/jeija_blinky_plant_on.png similarity index 100% rename from mesecons_blinkyplant/textures/jeija_blinky_plant_on.png rename to mods/mesecons_blinkyplant/textures/jeija_blinky_plant_on.png diff --git a/mesecons_button/doc/button/description.html b/mods/mesecons_button/doc/button/description.html similarity index 100% rename from mesecons_button/doc/button/description.html rename to mods/mesecons_button/doc/button/description.html diff --git a/mesecons_button/doc/button/preview.png b/mods/mesecons_button/doc/button/preview.png similarity index 100% rename from mesecons_button/doc/button/preview.png rename to mods/mesecons_button/doc/button/preview.png diff --git a/mesecons_button/doc/button/recipe.png b/mods/mesecons_button/doc/button/recipe.png similarity index 100% rename from mesecons_button/doc/button/recipe.png rename to mods/mesecons_button/doc/button/recipe.png diff --git a/mesecons_button/init.lua b/mods/mesecons_button/init.lua similarity index 100% rename from mesecons_button/init.lua rename to mods/mesecons_button/init.lua diff --git a/mesecons_button/mod.conf b/mods/mesecons_button/mod.conf similarity index 100% rename from mesecons_button/mod.conf rename to mods/mesecons_button/mod.conf diff --git a/mesecons_button/sounds/mesecons_button_pop.ogg b/mods/mesecons_button/sounds/mesecons_button_pop.ogg similarity index 100% rename from mesecons_button/sounds/mesecons_button_pop.ogg rename to mods/mesecons_button/sounds/mesecons_button_pop.ogg diff --git a/mesecons_button/sounds/mesecons_button_push.ogg b/mods/mesecons_button/sounds/mesecons_button_push.ogg similarity index 100% rename from mesecons_button/sounds/mesecons_button_push.ogg rename to mods/mesecons_button/sounds/mesecons_button_push.ogg diff --git a/mesecons_button/textures/jeija_wall_button_off.png b/mods/mesecons_button/textures/jeija_wall_button_off.png similarity index 100% rename from mesecons_button/textures/jeija_wall_button_off.png rename to mods/mesecons_button/textures/jeija_wall_button_off.png diff --git a/mesecons_button/textures/jeija_wall_button_on.png b/mods/mesecons_button/textures/jeija_wall_button_on.png similarity index 100% rename from mesecons_button/textures/jeija_wall_button_on.png rename to mods/mesecons_button/textures/jeija_wall_button_on.png diff --git a/mesecons_button/textures/jeija_wall_button_sides.png b/mods/mesecons_button/textures/jeija_wall_button_sides.png similarity index 100% rename from mesecons_button/textures/jeija_wall_button_sides.png rename to mods/mesecons_button/textures/jeija_wall_button_sides.png diff --git a/mesecons_commandblock/doc/commandblock/description.html b/mods/mesecons_commandblock/doc/commandblock/description.html similarity index 100% rename from mesecons_commandblock/doc/commandblock/description.html rename to mods/mesecons_commandblock/doc/commandblock/description.html diff --git a/mesecons_commandblock/doc/commandblock/preview.png b/mods/mesecons_commandblock/doc/commandblock/preview.png similarity index 100% rename from mesecons_commandblock/doc/commandblock/preview.png rename to mods/mesecons_commandblock/doc/commandblock/preview.png diff --git a/mesecons_commandblock/init.lua b/mods/mesecons_commandblock/init.lua similarity index 100% rename from mesecons_commandblock/init.lua rename to mods/mesecons_commandblock/init.lua diff --git a/mesecons_commandblock/mod.conf b/mods/mesecons_commandblock/mod.conf similarity index 100% rename from mesecons_commandblock/mod.conf rename to mods/mesecons_commandblock/mod.conf diff --git a/mesecons_commandblock/textures/jeija_commandblock_off.png b/mods/mesecons_commandblock/textures/jeija_commandblock_off.png similarity index 100% rename from mesecons_commandblock/textures/jeija_commandblock_off.png rename to mods/mesecons_commandblock/textures/jeija_commandblock_off.png diff --git a/mesecons_commandblock/textures/jeija_commandblock_on.png b/mods/mesecons_commandblock/textures/jeija_commandblock_on.png similarity index 100% rename from mesecons_commandblock/textures/jeija_commandblock_on.png rename to mods/mesecons_commandblock/textures/jeija_commandblock_on.png diff --git a/mesecons_delayer/doc/delayer/description.html b/mods/mesecons_delayer/doc/delayer/description.html similarity index 100% rename from mesecons_delayer/doc/delayer/description.html rename to mods/mesecons_delayer/doc/delayer/description.html diff --git a/mesecons_delayer/doc/delayer/preview.png b/mods/mesecons_delayer/doc/delayer/preview.png similarity index 100% rename from mesecons_delayer/doc/delayer/preview.png rename to mods/mesecons_delayer/doc/delayer/preview.png diff --git a/mesecons_delayer/doc/delayer/recipe.png b/mods/mesecons_delayer/doc/delayer/recipe.png similarity index 100% rename from mesecons_delayer/doc/delayer/recipe.png rename to mods/mesecons_delayer/doc/delayer/recipe.png diff --git a/mesecons_delayer/init.lua b/mods/mesecons_delayer/init.lua similarity index 100% rename from mesecons_delayer/init.lua rename to mods/mesecons_delayer/init.lua diff --git a/mesecons_delayer/mod.conf b/mods/mesecons_delayer/mod.conf similarity index 100% rename from mesecons_delayer/mod.conf rename to mods/mesecons_delayer/mod.conf diff --git a/mesecons_delayer/textures/mesecons_delayer_bottom.png b/mods/mesecons_delayer/textures/mesecons_delayer_bottom.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_bottom.png rename to mods/mesecons_delayer/textures/mesecons_delayer_bottom.png diff --git a/mesecons_delayer/textures/mesecons_delayer_ends_off.png b/mods/mesecons_delayer/textures/mesecons_delayer_ends_off.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_ends_off.png rename to mods/mesecons_delayer/textures/mesecons_delayer_ends_off.png diff --git a/mesecons_delayer/textures/mesecons_delayer_ends_on.png b/mods/mesecons_delayer/textures/mesecons_delayer_ends_on.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_ends_on.png rename to mods/mesecons_delayer/textures/mesecons_delayer_ends_on.png diff --git a/mesecons_delayer/textures/mesecons_delayer_off_1.png b/mods/mesecons_delayer/textures/mesecons_delayer_off_1.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_off_1.png rename to mods/mesecons_delayer/textures/mesecons_delayer_off_1.png diff --git a/mesecons_delayer/textures/mesecons_delayer_off_2.png b/mods/mesecons_delayer/textures/mesecons_delayer_off_2.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_off_2.png rename to mods/mesecons_delayer/textures/mesecons_delayer_off_2.png diff --git a/mesecons_delayer/textures/mesecons_delayer_off_3.png b/mods/mesecons_delayer/textures/mesecons_delayer_off_3.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_off_3.png rename to mods/mesecons_delayer/textures/mesecons_delayer_off_3.png diff --git a/mesecons_delayer/textures/mesecons_delayer_off_4.png b/mods/mesecons_delayer/textures/mesecons_delayer_off_4.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_off_4.png rename to mods/mesecons_delayer/textures/mesecons_delayer_off_4.png diff --git a/mesecons_delayer/textures/mesecons_delayer_on_1.png b/mods/mesecons_delayer/textures/mesecons_delayer_on_1.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_on_1.png rename to mods/mesecons_delayer/textures/mesecons_delayer_on_1.png diff --git a/mesecons_delayer/textures/mesecons_delayer_on_2.png b/mods/mesecons_delayer/textures/mesecons_delayer_on_2.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_on_2.png rename to mods/mesecons_delayer/textures/mesecons_delayer_on_2.png diff --git a/mesecons_delayer/textures/mesecons_delayer_on_3.png b/mods/mesecons_delayer/textures/mesecons_delayer_on_3.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_on_3.png rename to mods/mesecons_delayer/textures/mesecons_delayer_on_3.png diff --git a/mesecons_delayer/textures/mesecons_delayer_on_4.png b/mods/mesecons_delayer/textures/mesecons_delayer_on_4.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_on_4.png rename to mods/mesecons_delayer/textures/mesecons_delayer_on_4.png diff --git a/mesecons_delayer/textures/mesecons_delayer_sides_off.png b/mods/mesecons_delayer/textures/mesecons_delayer_sides_off.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_sides_off.png rename to mods/mesecons_delayer/textures/mesecons_delayer_sides_off.png diff --git a/mesecons_delayer/textures/mesecons_delayer_sides_on.png b/mods/mesecons_delayer/textures/mesecons_delayer_sides_on.png similarity index 100% rename from mesecons_delayer/textures/mesecons_delayer_sides_on.png rename to mods/mesecons_delayer/textures/mesecons_delayer_sides_on.png diff --git a/mesecons_detector/doc/nodedetector/description.html b/mods/mesecons_detector/doc/nodedetector/description.html similarity index 100% rename from mesecons_detector/doc/nodedetector/description.html rename to mods/mesecons_detector/doc/nodedetector/description.html diff --git a/mesecons_detector/doc/nodedetector/preview.png b/mods/mesecons_detector/doc/nodedetector/preview.png similarity index 100% rename from mesecons_detector/doc/nodedetector/preview.png rename to mods/mesecons_detector/doc/nodedetector/preview.png diff --git a/mesecons_detector/doc/nodedetector/recipe.png b/mods/mesecons_detector/doc/nodedetector/recipe.png similarity index 100% rename from mesecons_detector/doc/nodedetector/recipe.png rename to mods/mesecons_detector/doc/nodedetector/recipe.png diff --git a/mesecons_detector/doc/objectdetector/description.html b/mods/mesecons_detector/doc/objectdetector/description.html similarity index 100% rename from mesecons_detector/doc/objectdetector/description.html rename to mods/mesecons_detector/doc/objectdetector/description.html diff --git a/mesecons_detector/doc/objectdetector/preview.png b/mods/mesecons_detector/doc/objectdetector/preview.png similarity index 100% rename from mesecons_detector/doc/objectdetector/preview.png rename to mods/mesecons_detector/doc/objectdetector/preview.png diff --git a/mesecons_detector/doc/objectdetector/recipe.png b/mods/mesecons_detector/doc/objectdetector/recipe.png similarity index 100% rename from mesecons_detector/doc/objectdetector/recipe.png rename to mods/mesecons_detector/doc/objectdetector/recipe.png diff --git a/mesecons_detector/init.lua b/mods/mesecons_detector/init.lua similarity index 100% rename from mesecons_detector/init.lua rename to mods/mesecons_detector/init.lua diff --git a/mesecons_detector/mod.conf b/mods/mesecons_detector/mod.conf similarity index 100% rename from mesecons_detector/mod.conf rename to mods/mesecons_detector/mod.conf diff --git a/mesecons_detector/textures/jeija_node_detector_off.png b/mods/mesecons_detector/textures/jeija_node_detector_off.png similarity index 100% rename from mesecons_detector/textures/jeija_node_detector_off.png rename to mods/mesecons_detector/textures/jeija_node_detector_off.png diff --git a/mesecons_detector/textures/jeija_node_detector_on.png b/mods/mesecons_detector/textures/jeija_node_detector_on.png similarity index 100% rename from mesecons_detector/textures/jeija_node_detector_on.png rename to mods/mesecons_detector/textures/jeija_node_detector_on.png diff --git a/mesecons_detector/textures/jeija_object_detector_off.png b/mods/mesecons_detector/textures/jeija_object_detector_off.png similarity index 100% rename from mesecons_detector/textures/jeija_object_detector_off.png rename to mods/mesecons_detector/textures/jeija_object_detector_off.png diff --git a/mesecons_detector/textures/jeija_object_detector_on.png b/mods/mesecons_detector/textures/jeija_object_detector_on.png similarity index 100% rename from mesecons_detector/textures/jeija_object_detector_on.png rename to mods/mesecons_detector/textures/jeija_object_detector_on.png diff --git a/mesecons_doors/init.lua b/mods/mesecons_doors/init.lua similarity index 100% rename from mesecons_doors/init.lua rename to mods/mesecons_doors/init.lua diff --git a/mesecons_doors/mod.conf b/mods/mesecons_doors/mod.conf similarity index 100% rename from mesecons_doors/mod.conf rename to mods/mesecons_doors/mod.conf diff --git a/mesecons_extrawires/corner.lua b/mods/mesecons_extrawires/corner.lua similarity index 100% rename from mesecons_extrawires/corner.lua rename to mods/mesecons_extrawires/corner.lua diff --git a/mesecons_extrawires/crossover.lua b/mods/mesecons_extrawires/crossover.lua similarity index 100% rename from mesecons_extrawires/crossover.lua rename to mods/mesecons_extrawires/crossover.lua diff --git a/mesecons_extrawires/doc/corner/description.html b/mods/mesecons_extrawires/doc/corner/description.html similarity index 100% rename from mesecons_extrawires/doc/corner/description.html rename to mods/mesecons_extrawires/doc/corner/description.html diff --git a/mesecons_extrawires/doc/corner/preview.png b/mods/mesecons_extrawires/doc/corner/preview.png similarity index 100% rename from mesecons_extrawires/doc/corner/preview.png rename to mods/mesecons_extrawires/doc/corner/preview.png diff --git a/mesecons_extrawires/doc/corner/recipe.png b/mods/mesecons_extrawires/doc/corner/recipe.png similarity index 100% rename from mesecons_extrawires/doc/corner/recipe.png rename to mods/mesecons_extrawires/doc/corner/recipe.png diff --git a/mesecons_extrawires/doc/crossing/description.html b/mods/mesecons_extrawires/doc/crossing/description.html similarity index 100% rename from mesecons_extrawires/doc/crossing/description.html rename to mods/mesecons_extrawires/doc/crossing/description.html diff --git a/mesecons_extrawires/doc/crossing/preview.png b/mods/mesecons_extrawires/doc/crossing/preview.png similarity index 100% rename from mesecons_extrawires/doc/crossing/preview.png rename to mods/mesecons_extrawires/doc/crossing/preview.png diff --git a/mesecons_extrawires/doc/crossing/recipe.png b/mods/mesecons_extrawires/doc/crossing/recipe.png similarity index 100% rename from mesecons_extrawires/doc/crossing/recipe.png rename to mods/mesecons_extrawires/doc/crossing/recipe.png diff --git a/mesecons_extrawires/doc/mese/description.html b/mods/mesecons_extrawires/doc/mese/description.html similarity index 100% rename from mesecons_extrawires/doc/mese/description.html rename to mods/mesecons_extrawires/doc/mese/description.html diff --git a/mesecons_extrawires/doc/mese/preview.png b/mods/mesecons_extrawires/doc/mese/preview.png similarity index 100% rename from mesecons_extrawires/doc/mese/preview.png rename to mods/mesecons_extrawires/doc/mese/preview.png diff --git a/mesecons_extrawires/doc/mese/recipe.png b/mods/mesecons_extrawires/doc/mese/recipe.png similarity index 100% rename from mesecons_extrawires/doc/mese/recipe.png rename to mods/mesecons_extrawires/doc/mese/recipe.png diff --git a/mesecons_extrawires/doc/tjunction/description.html b/mods/mesecons_extrawires/doc/tjunction/description.html similarity index 100% rename from mesecons_extrawires/doc/tjunction/description.html rename to mods/mesecons_extrawires/doc/tjunction/description.html diff --git a/mesecons_extrawires/doc/tjunction/preview.png b/mods/mesecons_extrawires/doc/tjunction/preview.png similarity index 100% rename from mesecons_extrawires/doc/tjunction/preview.png rename to mods/mesecons_extrawires/doc/tjunction/preview.png diff --git a/mesecons_extrawires/doc/tjunction/recipe.png b/mods/mesecons_extrawires/doc/tjunction/recipe.png similarity index 100% rename from mesecons_extrawires/doc/tjunction/recipe.png rename to mods/mesecons_extrawires/doc/tjunction/recipe.png diff --git a/mesecons_extrawires/doc/vertical/description.html b/mods/mesecons_extrawires/doc/vertical/description.html similarity index 100% rename from mesecons_extrawires/doc/vertical/description.html rename to mods/mesecons_extrawires/doc/vertical/description.html diff --git a/mesecons_extrawires/doc/vertical/preview.png b/mods/mesecons_extrawires/doc/vertical/preview.png similarity index 100% rename from mesecons_extrawires/doc/vertical/preview.png rename to mods/mesecons_extrawires/doc/vertical/preview.png diff --git a/mesecons_extrawires/doc/vertical/recipe.png b/mods/mesecons_extrawires/doc/vertical/recipe.png similarity index 100% rename from mesecons_extrawires/doc/vertical/recipe.png rename to mods/mesecons_extrawires/doc/vertical/recipe.png diff --git a/mesecons_extrawires/doublecorner.lua b/mods/mesecons_extrawires/doublecorner.lua similarity index 100% rename from mesecons_extrawires/doublecorner.lua rename to mods/mesecons_extrawires/doublecorner.lua diff --git a/mesecons_extrawires/init.lua b/mods/mesecons_extrawires/init.lua similarity index 100% rename from mesecons_extrawires/init.lua rename to mods/mesecons_extrawires/init.lua diff --git a/mesecons_extrawires/mesewire.lua b/mods/mesecons_extrawires/mesewire.lua similarity index 100% rename from mesecons_extrawires/mesewire.lua rename to mods/mesecons_extrawires/mesewire.lua diff --git a/mesecons_extrawires/mod.conf b/mods/mesecons_extrawires/mod.conf similarity index 100% rename from mesecons_extrawires/mod.conf rename to mods/mesecons_extrawires/mod.conf diff --git a/mesecons_extrawires/models/mesecons_extrawires_corner.obj b/mods/mesecons_extrawires/models/mesecons_extrawires_corner.obj similarity index 100% rename from mesecons_extrawires/models/mesecons_extrawires_corner.obj rename to mods/mesecons_extrawires/models/mesecons_extrawires_corner.obj diff --git a/mesecons_extrawires/models/mesecons_extrawires_crossover.b3d b/mods/mesecons_extrawires/models/mesecons_extrawires_crossover.b3d similarity index 100% rename from mesecons_extrawires/models/mesecons_extrawires_crossover.b3d rename to mods/mesecons_extrawires/models/mesecons_extrawires_crossover.b3d diff --git a/mesecons_extrawires/models/mesecons_extrawires_doublecorner.obj b/mods/mesecons_extrawires/models/mesecons_extrawires_doublecorner.obj similarity index 100% rename from mesecons_extrawires/models/mesecons_extrawires_doublecorner.obj rename to mods/mesecons_extrawires/models/mesecons_extrawires_doublecorner.obj diff --git a/mesecons_extrawires/src/mesecons_extrawires_crossover.blend b/mods/mesecons_extrawires/src/mesecons_extrawires_crossover.blend similarity index 100% rename from mesecons_extrawires/src/mesecons_extrawires_crossover.blend rename to mods/mesecons_extrawires/src/mesecons_extrawires_crossover.blend diff --git a/mesecons_extrawires/tjunction.lua b/mods/mesecons_extrawires/tjunction.lua similarity index 100% rename from mesecons_extrawires/tjunction.lua rename to mods/mesecons_extrawires/tjunction.lua diff --git a/mesecons_extrawires/vertical.lua b/mods/mesecons_extrawires/vertical.lua similarity index 100% rename from mesecons_extrawires/vertical.lua rename to mods/mesecons_extrawires/vertical.lua diff --git a/mesecons_fpga/doc/fpga/description.html b/mods/mesecons_fpga/doc/fpga/description.html similarity index 100% rename from mesecons_fpga/doc/fpga/description.html rename to mods/mesecons_fpga/doc/fpga/description.html diff --git a/mesecons_fpga/doc/fpga/preview.png b/mods/mesecons_fpga/doc/fpga/preview.png similarity index 100% rename from mesecons_fpga/doc/fpga/preview.png rename to mods/mesecons_fpga/doc/fpga/preview.png diff --git a/mesecons_fpga/doc/fpga/recipe.png b/mods/mesecons_fpga/doc/fpga/recipe.png similarity index 100% rename from mesecons_fpga/doc/fpga/recipe.png rename to mods/mesecons_fpga/doc/fpga/recipe.png diff --git a/mesecons_fpga/doc/programmer/description.html b/mods/mesecons_fpga/doc/programmer/description.html similarity index 100% rename from mesecons_fpga/doc/programmer/description.html rename to mods/mesecons_fpga/doc/programmer/description.html diff --git a/mesecons_fpga/doc/programmer/preview.png b/mods/mesecons_fpga/doc/programmer/preview.png similarity index 100% rename from mesecons_fpga/doc/programmer/preview.png rename to mods/mesecons_fpga/doc/programmer/preview.png diff --git a/mesecons_fpga/doc/programmer/recipe.png b/mods/mesecons_fpga/doc/programmer/recipe.png similarity index 100% rename from mesecons_fpga/doc/programmer/recipe.png rename to mods/mesecons_fpga/doc/programmer/recipe.png diff --git a/mesecons_fpga/init.lua b/mods/mesecons_fpga/init.lua similarity index 100% rename from mesecons_fpga/init.lua rename to mods/mesecons_fpga/init.lua diff --git a/mesecons_fpga/logic.lua b/mods/mesecons_fpga/logic.lua similarity index 100% rename from mesecons_fpga/logic.lua rename to mods/mesecons_fpga/logic.lua diff --git a/mesecons_fpga/mod.conf b/mods/mesecons_fpga/mod.conf similarity index 100% rename from mesecons_fpga/mod.conf rename to mods/mesecons_fpga/mod.conf diff --git a/mesecons_fpga/sounds/mesecons_fpga_copy.ogg b/mods/mesecons_fpga/sounds/mesecons_fpga_copy.ogg similarity index 100% rename from mesecons_fpga/sounds/mesecons_fpga_copy.ogg rename to mods/mesecons_fpga/sounds/mesecons_fpga_copy.ogg diff --git a/mesecons_fpga/sounds/mesecons_fpga_fail.ogg b/mods/mesecons_fpga/sounds/mesecons_fpga_fail.ogg similarity index 100% rename from mesecons_fpga/sounds/mesecons_fpga_fail.ogg rename to mods/mesecons_fpga/sounds/mesecons_fpga_fail.ogg diff --git a/mesecons_fpga/sounds/mesecons_fpga_write.ogg b/mods/mesecons_fpga/sounds/mesecons_fpga_write.ogg similarity index 100% rename from mesecons_fpga/sounds/mesecons_fpga_write.ogg rename to mods/mesecons_fpga/sounds/mesecons_fpga_write.ogg diff --git a/mesecons_fpga/textures/jeija_fpga_programmer.png b/mods/mesecons_fpga/textures/jeija_fpga_programmer.png similarity index 100% rename from mesecons_fpga/textures/jeija_fpga_programmer.png rename to mods/mesecons_fpga/textures/jeija_fpga_programmer.png diff --git a/mesecons_fpga/textures/jeija_fpga_sides.png b/mods/mesecons_fpga/textures/jeija_fpga_sides.png similarity index 100% rename from mesecons_fpga/textures/jeija_fpga_sides.png rename to mods/mesecons_fpga/textures/jeija_fpga_sides.png diff --git a/mesecons_fpga/textures/jeija_fpga_top.png b/mods/mesecons_fpga/textures/jeija_fpga_top.png similarity index 100% rename from mesecons_fpga/textures/jeija_fpga_top.png rename to mods/mesecons_fpga/textures/jeija_fpga_top.png diff --git a/mesecons_fpga/tool.lua b/mods/mesecons_fpga/tool.lua similarity index 100% rename from mesecons_fpga/tool.lua rename to mods/mesecons_fpga/tool.lua diff --git a/mesecons_gates/doc/and/description.html b/mods/mesecons_gates/doc/and/description.html similarity index 100% rename from mesecons_gates/doc/and/description.html rename to mods/mesecons_gates/doc/and/description.html diff --git a/mesecons_gates/doc/and/preview.png b/mods/mesecons_gates/doc/and/preview.png similarity index 100% rename from mesecons_gates/doc/and/preview.png rename to mods/mesecons_gates/doc/and/preview.png diff --git a/mesecons_gates/doc/and/recipe.png b/mods/mesecons_gates/doc/and/recipe.png similarity index 100% rename from mesecons_gates/doc/and/recipe.png rename to mods/mesecons_gates/doc/and/recipe.png diff --git a/mesecons_gates/doc/diode/description.html b/mods/mesecons_gates/doc/diode/description.html similarity index 100% rename from mesecons_gates/doc/diode/description.html rename to mods/mesecons_gates/doc/diode/description.html diff --git a/mesecons_gates/doc/diode/preview.png b/mods/mesecons_gates/doc/diode/preview.png similarity index 100% rename from mesecons_gates/doc/diode/preview.png rename to mods/mesecons_gates/doc/diode/preview.png diff --git a/mesecons_gates/doc/diode/recipe.png b/mods/mesecons_gates/doc/diode/recipe.png similarity index 100% rename from mesecons_gates/doc/diode/recipe.png rename to mods/mesecons_gates/doc/diode/recipe.png diff --git a/mesecons_gates/doc/nand/description.html b/mods/mesecons_gates/doc/nand/description.html similarity index 100% rename from mesecons_gates/doc/nand/description.html rename to mods/mesecons_gates/doc/nand/description.html diff --git a/mesecons_gates/doc/nand/preview.png b/mods/mesecons_gates/doc/nand/preview.png similarity index 100% rename from mesecons_gates/doc/nand/preview.png rename to mods/mesecons_gates/doc/nand/preview.png diff --git a/mesecons_gates/doc/nand/recipe.png b/mods/mesecons_gates/doc/nand/recipe.png similarity index 100% rename from mesecons_gates/doc/nand/recipe.png rename to mods/mesecons_gates/doc/nand/recipe.png diff --git a/mesecons_gates/doc/nor/description.html b/mods/mesecons_gates/doc/nor/description.html similarity index 100% rename from mesecons_gates/doc/nor/description.html rename to mods/mesecons_gates/doc/nor/description.html diff --git a/mesecons_gates/doc/nor/preview.png b/mods/mesecons_gates/doc/nor/preview.png similarity index 100% rename from mesecons_gates/doc/nor/preview.png rename to mods/mesecons_gates/doc/nor/preview.png diff --git a/mesecons_gates/doc/nor/recipe.png b/mods/mesecons_gates/doc/nor/recipe.png similarity index 100% rename from mesecons_gates/doc/nor/recipe.png rename to mods/mesecons_gates/doc/nor/recipe.png diff --git a/mesecons_gates/doc/not/description.html b/mods/mesecons_gates/doc/not/description.html similarity index 100% rename from mesecons_gates/doc/not/description.html rename to mods/mesecons_gates/doc/not/description.html diff --git a/mesecons_gates/doc/not/preview.png b/mods/mesecons_gates/doc/not/preview.png similarity index 100% rename from mesecons_gates/doc/not/preview.png rename to mods/mesecons_gates/doc/not/preview.png diff --git a/mesecons_gates/doc/not/recipe.png b/mods/mesecons_gates/doc/not/recipe.png similarity index 100% rename from mesecons_gates/doc/not/recipe.png rename to mods/mesecons_gates/doc/not/recipe.png diff --git a/mesecons_gates/doc/or/description.html b/mods/mesecons_gates/doc/or/description.html similarity index 100% rename from mesecons_gates/doc/or/description.html rename to mods/mesecons_gates/doc/or/description.html diff --git a/mesecons_gates/doc/or/preview.png b/mods/mesecons_gates/doc/or/preview.png similarity index 100% rename from mesecons_gates/doc/or/preview.png rename to mods/mesecons_gates/doc/or/preview.png diff --git a/mesecons_gates/doc/or/recipe.png b/mods/mesecons_gates/doc/or/recipe.png similarity index 100% rename from mesecons_gates/doc/or/recipe.png rename to mods/mesecons_gates/doc/or/recipe.png diff --git a/mesecons_gates/doc/xor/description.html b/mods/mesecons_gates/doc/xor/description.html similarity index 100% rename from mesecons_gates/doc/xor/description.html rename to mods/mesecons_gates/doc/xor/description.html diff --git a/mesecons_gates/doc/xor/preview.png b/mods/mesecons_gates/doc/xor/preview.png similarity index 100% rename from mesecons_gates/doc/xor/preview.png rename to mods/mesecons_gates/doc/xor/preview.png diff --git a/mesecons_gates/doc/xor/recipe.png b/mods/mesecons_gates/doc/xor/recipe.png similarity index 100% rename from mesecons_gates/doc/xor/recipe.png rename to mods/mesecons_gates/doc/xor/recipe.png diff --git a/mesecons_gates/init.lua b/mods/mesecons_gates/init.lua similarity index 100% rename from mesecons_gates/init.lua rename to mods/mesecons_gates/init.lua diff --git a/mesecons_gates/mod.conf b/mods/mesecons_gates/mod.conf similarity index 100% rename from mesecons_gates/mod.conf rename to mods/mesecons_gates/mod.conf diff --git a/mesecons_gates/textures/jeija_gate_and.png b/mods/mesecons_gates/textures/jeija_gate_and.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_and.png rename to mods/mesecons_gates/textures/jeija_gate_and.png diff --git a/mesecons_gates/textures/jeija_gate_diode.png b/mods/mesecons_gates/textures/jeija_gate_diode.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_diode.png rename to mods/mesecons_gates/textures/jeija_gate_diode.png diff --git a/mesecons_gates/textures/jeija_gate_nand.png b/mods/mesecons_gates/textures/jeija_gate_nand.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_nand.png rename to mods/mesecons_gates/textures/jeija_gate_nand.png diff --git a/mesecons_gates/textures/jeija_gate_nor.png b/mods/mesecons_gates/textures/jeija_gate_nor.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_nor.png rename to mods/mesecons_gates/textures/jeija_gate_nor.png diff --git a/mesecons_gates/textures/jeija_gate_not.png b/mods/mesecons_gates/textures/jeija_gate_not.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_not.png rename to mods/mesecons_gates/textures/jeija_gate_not.png diff --git a/mesecons_gates/textures/jeija_gate_off.png b/mods/mesecons_gates/textures/jeija_gate_off.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_off.png rename to mods/mesecons_gates/textures/jeija_gate_off.png diff --git a/mesecons_gates/textures/jeija_gate_on.png b/mods/mesecons_gates/textures/jeija_gate_on.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_on.png rename to mods/mesecons_gates/textures/jeija_gate_on.png diff --git a/mesecons_gates/textures/jeija_gate_or.png b/mods/mesecons_gates/textures/jeija_gate_or.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_or.png rename to mods/mesecons_gates/textures/jeija_gate_or.png diff --git a/mesecons_gates/textures/jeija_gate_output_off.png b/mods/mesecons_gates/textures/jeija_gate_output_off.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_output_off.png rename to mods/mesecons_gates/textures/jeija_gate_output_off.png diff --git a/mesecons_gates/textures/jeija_gate_output_on.png b/mods/mesecons_gates/textures/jeija_gate_output_on.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_output_on.png rename to mods/mesecons_gates/textures/jeija_gate_output_on.png diff --git a/mesecons_gates/textures/jeija_gate_side.png b/mods/mesecons_gates/textures/jeija_gate_side.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_side.png rename to mods/mesecons_gates/textures/jeija_gate_side.png diff --git a/mesecons_gates/textures/jeija_gate_side_output_off.png b/mods/mesecons_gates/textures/jeija_gate_side_output_off.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_side_output_off.png rename to mods/mesecons_gates/textures/jeija_gate_side_output_off.png diff --git a/mesecons_gates/textures/jeija_gate_side_output_on.png b/mods/mesecons_gates/textures/jeija_gate_side_output_on.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_side_output_on.png rename to mods/mesecons_gates/textures/jeija_gate_side_output_on.png diff --git a/mesecons_gates/textures/jeija_gate_xor.png b/mods/mesecons_gates/textures/jeija_gate_xor.png similarity index 100% rename from mesecons_gates/textures/jeija_gate_xor.png rename to mods/mesecons_gates/textures/jeija_gate_xor.png diff --git a/mesecons_hydroturbine/doc/waterturbine/description.html b/mods/mesecons_hydroturbine/doc/waterturbine/description.html similarity index 100% rename from mesecons_hydroturbine/doc/waterturbine/description.html rename to mods/mesecons_hydroturbine/doc/waterturbine/description.html diff --git a/mesecons_hydroturbine/doc/waterturbine/preview.png b/mods/mesecons_hydroturbine/doc/waterturbine/preview.png similarity index 100% rename from mesecons_hydroturbine/doc/waterturbine/preview.png rename to mods/mesecons_hydroturbine/doc/waterturbine/preview.png diff --git a/mesecons_hydroturbine/doc/waterturbine/recipe.png b/mods/mesecons_hydroturbine/doc/waterturbine/recipe.png similarity index 100% rename from mesecons_hydroturbine/doc/waterturbine/recipe.png rename to mods/mesecons_hydroturbine/doc/waterturbine/recipe.png diff --git a/mesecons_hydroturbine/init.lua b/mods/mesecons_hydroturbine/init.lua similarity index 100% rename from mesecons_hydroturbine/init.lua rename to mods/mesecons_hydroturbine/init.lua diff --git a/mesecons_hydroturbine/mod.conf b/mods/mesecons_hydroturbine/mod.conf similarity index 100% rename from mesecons_hydroturbine/mod.conf rename to mods/mesecons_hydroturbine/mod.conf diff --git a/mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj b/mods/mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj similarity index 100% rename from mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj rename to mods/mesecons_hydroturbine/models/jeija_hydro_turbine_off.obj diff --git a/mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj b/mods/mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj similarity index 100% rename from mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj rename to mods/mesecons_hydroturbine/models/jeija_hydro_turbine_on.obj diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_inv.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_inv.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_inv.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_inv.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_off.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_off.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_off.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_off.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_on.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_on.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_on.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_sides_on.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_top_bottom.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_top_bottom.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_top_bottom.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_top_bottom.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_off.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_misc_on.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_off.png diff --git a/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png b/mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png similarity index 100% rename from mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png rename to mods/mesecons_hydroturbine/textures/jeija_hydro_turbine_turbine_top_bottom_on.png diff --git a/mesecons_insulated/doc/insulated/description.html b/mods/mesecons_insulated/doc/insulated/description.html similarity index 100% rename from mesecons_insulated/doc/insulated/description.html rename to mods/mesecons_insulated/doc/insulated/description.html diff --git a/mesecons_insulated/doc/insulated/preview.png b/mods/mesecons_insulated/doc/insulated/preview.png similarity index 100% rename from mesecons_insulated/doc/insulated/preview.png rename to mods/mesecons_insulated/doc/insulated/preview.png diff --git a/mesecons_insulated/doc/insulated/recipe.png b/mods/mesecons_insulated/doc/insulated/recipe.png similarity index 100% rename from mesecons_insulated/doc/insulated/recipe.png rename to mods/mesecons_insulated/doc/insulated/recipe.png diff --git a/mesecons_insulated/init.lua b/mods/mesecons_insulated/init.lua similarity index 100% rename from mesecons_insulated/init.lua rename to mods/mesecons_insulated/init.lua diff --git a/mesecons_insulated/mod.conf b/mods/mesecons_insulated/mod.conf similarity index 100% rename from mesecons_insulated/mod.conf rename to mods/mesecons_insulated/mod.conf diff --git a/mesecons_insulated/textures/jeija_insulated_wire_ends_off.png b/mods/mesecons_insulated/textures/jeija_insulated_wire_ends_off.png similarity index 100% rename from mesecons_insulated/textures/jeija_insulated_wire_ends_off.png rename to mods/mesecons_insulated/textures/jeija_insulated_wire_ends_off.png diff --git a/mesecons_insulated/textures/jeija_insulated_wire_ends_on.png b/mods/mesecons_insulated/textures/jeija_insulated_wire_ends_on.png similarity index 100% rename from mesecons_insulated/textures/jeija_insulated_wire_ends_on.png rename to mods/mesecons_insulated/textures/jeija_insulated_wire_ends_on.png diff --git a/mesecons_insulated/textures/jeija_insulated_wire_sides_off.png b/mods/mesecons_insulated/textures/jeija_insulated_wire_sides_off.png similarity index 100% rename from mesecons_insulated/textures/jeija_insulated_wire_sides_off.png rename to mods/mesecons_insulated/textures/jeija_insulated_wire_sides_off.png diff --git a/mesecons_insulated/textures/jeija_insulated_wire_sides_on.png b/mods/mesecons_insulated/textures/jeija_insulated_wire_sides_on.png similarity index 100% rename from mesecons_insulated/textures/jeija_insulated_wire_sides_on.png rename to mods/mesecons_insulated/textures/jeija_insulated_wire_sides_on.png diff --git a/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png b/mods/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png similarity index 100% rename from mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png rename to mods/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_off.png diff --git a/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png b/mods/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png similarity index 100% rename from mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png rename to mods/mesecons_insulated/textures/jeija_insulated_wire_tjunction_tb_on.png diff --git a/mesecons_lamp/doc/lamp/description.html b/mods/mesecons_lamp/doc/lamp/description.html similarity index 100% rename from mesecons_lamp/doc/lamp/description.html rename to mods/mesecons_lamp/doc/lamp/description.html diff --git a/mesecons_lamp/doc/lamp/preview.png b/mods/mesecons_lamp/doc/lamp/preview.png similarity index 100% rename from mesecons_lamp/doc/lamp/preview.png rename to mods/mesecons_lamp/doc/lamp/preview.png diff --git a/mesecons_lamp/doc/lamp/recipe.png b/mods/mesecons_lamp/doc/lamp/recipe.png similarity index 100% rename from mesecons_lamp/doc/lamp/recipe.png rename to mods/mesecons_lamp/doc/lamp/recipe.png diff --git a/mesecons_lamp/init.lua b/mods/mesecons_lamp/init.lua similarity index 100% rename from mesecons_lamp/init.lua rename to mods/mesecons_lamp/init.lua diff --git a/mesecons_lamp/mod.conf b/mods/mesecons_lamp/mod.conf similarity index 100% rename from mesecons_lamp/mod.conf rename to mods/mesecons_lamp/mod.conf diff --git a/mesecons_lamp/textures/jeija_meselamp.png b/mods/mesecons_lamp/textures/jeija_meselamp.png similarity index 100% rename from mesecons_lamp/textures/jeija_meselamp.png rename to mods/mesecons_lamp/textures/jeija_meselamp.png diff --git a/mesecons_lamp/textures/jeija_meselamp_off.png b/mods/mesecons_lamp/textures/jeija_meselamp_off.png similarity index 100% rename from mesecons_lamp/textures/jeija_meselamp_off.png rename to mods/mesecons_lamp/textures/jeija_meselamp_off.png diff --git a/mesecons_lamp/textures/jeija_meselamp_on.png b/mods/mesecons_lamp/textures/jeija_meselamp_on.png similarity index 100% rename from mesecons_lamp/textures/jeija_meselamp_on.png rename to mods/mesecons_lamp/textures/jeija_meselamp_on.png diff --git a/mesecons_lightstone/doc/lightstone_blue/description.html b/mods/mesecons_lightstone/doc/lightstone_blue/description.html similarity index 100% rename from mesecons_lightstone/doc/lightstone_blue/description.html rename to mods/mesecons_lightstone/doc/lightstone_blue/description.html diff --git a/mesecons_lightstone/doc/lightstone_blue/preview.png b/mods/mesecons_lightstone/doc/lightstone_blue/preview.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_blue/preview.png rename to mods/mesecons_lightstone/doc/lightstone_blue/preview.png diff --git a/mesecons_lightstone/doc/lightstone_blue/recipe.png b/mods/mesecons_lightstone/doc/lightstone_blue/recipe.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_blue/recipe.png rename to mods/mesecons_lightstone/doc/lightstone_blue/recipe.png diff --git a/mesecons_lightstone/doc/lightstone_darkgrey/description.html b/mods/mesecons_lightstone/doc/lightstone_darkgrey/description.html similarity index 100% rename from mesecons_lightstone/doc/lightstone_darkgrey/description.html rename to mods/mesecons_lightstone/doc/lightstone_darkgrey/description.html diff --git a/mesecons_lightstone/doc/lightstone_darkgrey/preview.png b/mods/mesecons_lightstone/doc/lightstone_darkgrey/preview.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_darkgrey/preview.png rename to mods/mesecons_lightstone/doc/lightstone_darkgrey/preview.png diff --git a/mesecons_lightstone/doc/lightstone_darkgrey/recipe.png b/mods/mesecons_lightstone/doc/lightstone_darkgrey/recipe.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_darkgrey/recipe.png rename to mods/mesecons_lightstone/doc/lightstone_darkgrey/recipe.png diff --git a/mesecons_lightstone/doc/lightstone_green/description.html b/mods/mesecons_lightstone/doc/lightstone_green/description.html similarity index 100% rename from mesecons_lightstone/doc/lightstone_green/description.html rename to mods/mesecons_lightstone/doc/lightstone_green/description.html diff --git a/mesecons_lightstone/doc/lightstone_green/preview.png b/mods/mesecons_lightstone/doc/lightstone_green/preview.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_green/preview.png rename to mods/mesecons_lightstone/doc/lightstone_green/preview.png diff --git a/mesecons_lightstone/doc/lightstone_green/recipe.png b/mods/mesecons_lightstone/doc/lightstone_green/recipe.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_green/recipe.png rename to mods/mesecons_lightstone/doc/lightstone_green/recipe.png diff --git a/mesecons_lightstone/doc/lightstone_lightgrey/description.html b/mods/mesecons_lightstone/doc/lightstone_lightgrey/description.html similarity index 100% rename from mesecons_lightstone/doc/lightstone_lightgrey/description.html rename to mods/mesecons_lightstone/doc/lightstone_lightgrey/description.html diff --git a/mesecons_lightstone/doc/lightstone_lightgrey/preview.png b/mods/mesecons_lightstone/doc/lightstone_lightgrey/preview.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_lightgrey/preview.png rename to mods/mesecons_lightstone/doc/lightstone_lightgrey/preview.png diff --git a/mesecons_lightstone/doc/lightstone_lightgrey/recipe.png b/mods/mesecons_lightstone/doc/lightstone_lightgrey/recipe.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_lightgrey/recipe.png rename to mods/mesecons_lightstone/doc/lightstone_lightgrey/recipe.png diff --git a/mesecons_lightstone/doc/lightstone_red/description.html b/mods/mesecons_lightstone/doc/lightstone_red/description.html similarity index 100% rename from mesecons_lightstone/doc/lightstone_red/description.html rename to mods/mesecons_lightstone/doc/lightstone_red/description.html diff --git a/mesecons_lightstone/doc/lightstone_red/preview.png b/mods/mesecons_lightstone/doc/lightstone_red/preview.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_red/preview.png rename to mods/mesecons_lightstone/doc/lightstone_red/preview.png diff --git a/mesecons_lightstone/doc/lightstone_red/recipe.png b/mods/mesecons_lightstone/doc/lightstone_red/recipe.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_red/recipe.png rename to mods/mesecons_lightstone/doc/lightstone_red/recipe.png diff --git a/mesecons_lightstone/doc/lightstone_yellow/description.html b/mods/mesecons_lightstone/doc/lightstone_yellow/description.html similarity index 100% rename from mesecons_lightstone/doc/lightstone_yellow/description.html rename to mods/mesecons_lightstone/doc/lightstone_yellow/description.html diff --git a/mesecons_lightstone/doc/lightstone_yellow/preview.png b/mods/mesecons_lightstone/doc/lightstone_yellow/preview.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_yellow/preview.png rename to mods/mesecons_lightstone/doc/lightstone_yellow/preview.png diff --git a/mesecons_lightstone/doc/lightstone_yellow/recipe.png b/mods/mesecons_lightstone/doc/lightstone_yellow/recipe.png similarity index 100% rename from mesecons_lightstone/doc/lightstone_yellow/recipe.png rename to mods/mesecons_lightstone/doc/lightstone_yellow/recipe.png diff --git a/mesecons_lightstone/init.lua b/mods/mesecons_lightstone/init.lua similarity index 100% rename from mesecons_lightstone/init.lua rename to mods/mesecons_lightstone/init.lua diff --git a/mesecons_lightstone/mod.conf b/mods/mesecons_lightstone/mod.conf similarity index 100% rename from mesecons_lightstone/mod.conf rename to mods/mesecons_lightstone/mod.conf diff --git a/mesecons_lightstone/textures/jeija_lightstone_blue_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_blue_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_blue_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_blue_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_blue_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_blue_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_blue_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_blue_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_cyan_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_cyan_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_cyan_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_cyan_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_cyan_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_cyan_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_cyan_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_cyan_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_darkgray_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_darkgray_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_gray_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_gray_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_gray_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_gray_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_gray_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_gray_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_gray_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_gray_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_green_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_green_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_green_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_green_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_green_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_green_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_green_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_green_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_magenta_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_magenta_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_magenta_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_magenta_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_magenta_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_magenta_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_magenta_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_magenta_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_orange_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_orange_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_orange_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_orange_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_orange_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_orange_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_orange_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_orange_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_pink_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_pink_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_pink_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_pink_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_pink_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_pink_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_pink_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_pink_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_red_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_red_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_red_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_red_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_red_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_red_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_red_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_red_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_violet_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_violet_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_violet_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_violet_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_violet_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_violet_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_violet_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_violet_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_white_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_white_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_white_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_white_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_white_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_white_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_white_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_white_on.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_yellow_off.png b/mods/mesecons_lightstone/textures/jeija_lightstone_yellow_off.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_yellow_off.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_yellow_off.png diff --git a/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png b/mods/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png similarity index 100% rename from mesecons_lightstone/textures/jeija_lightstone_yellow_on.png rename to mods/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png diff --git a/mesecons_luacontroller/doc/luacontroller/description.html b/mods/mesecons_luacontroller/doc/luacontroller/description.html similarity index 100% rename from mesecons_luacontroller/doc/luacontroller/description.html rename to mods/mesecons_luacontroller/doc/luacontroller/description.html diff --git a/mesecons_luacontroller/doc/luacontroller/preview.png b/mods/mesecons_luacontroller/doc/luacontroller/preview.png similarity index 100% rename from mesecons_luacontroller/doc/luacontroller/preview.png rename to mods/mesecons_luacontroller/doc/luacontroller/preview.png diff --git a/mesecons_luacontroller/doc/luacontroller/recipe.png b/mods/mesecons_luacontroller/doc/luacontroller/recipe.png similarity index 100% rename from mesecons_luacontroller/doc/luacontroller/recipe.png rename to mods/mesecons_luacontroller/doc/luacontroller/recipe.png diff --git a/mesecons_luacontroller/init.lua b/mods/mesecons_luacontroller/init.lua similarity index 100% rename from mesecons_luacontroller/init.lua rename to mods/mesecons_luacontroller/init.lua diff --git a/mesecons_luacontroller/mod.conf b/mods/mesecons_luacontroller/mod.conf similarity index 100% rename from mesecons_luacontroller/mod.conf rename to mods/mesecons_luacontroller/mod.conf diff --git a/mesecons_luacontroller/textures/jeija_luac_background.png b/mods/mesecons_luacontroller/textures/jeija_luac_background.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luac_background.png rename to mods/mesecons_luacontroller/textures/jeija_luac_background.png diff --git a/mesecons_luacontroller/textures/jeija_luac_runbutton.png b/mods/mesecons_luacontroller/textures/jeija_luac_runbutton.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luac_runbutton.png rename to mods/mesecons_luacontroller/textures/jeija_luac_runbutton.png diff --git a/mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png b/mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png rename to mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_A.png diff --git a/mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png b/mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png rename to mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_B.png diff --git a/mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png b/mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png rename to mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_C.png diff --git a/mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png b/mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png rename to mods/mesecons_luacontroller/textures/jeija_luacontroller_LED_D.png diff --git a/mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png b/mods/mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png rename to mods/mesecons_luacontroller/textures/jeija_luacontroller_burnt_top.png diff --git a/mesecons_luacontroller/textures/jeija_luacontroller_top.png b/mods/mesecons_luacontroller/textures/jeija_luacontroller_top.png similarity index 100% rename from mesecons_luacontroller/textures/jeija_luacontroller_top.png rename to mods/mesecons_luacontroller/textures/jeija_luacontroller_top.png diff --git a/mesecons_materials/doc/fiber/description.html b/mods/mesecons_materials/doc/fiber/description.html similarity index 100% rename from mesecons_materials/doc/fiber/description.html rename to mods/mesecons_materials/doc/fiber/description.html diff --git a/mesecons_materials/doc/fiber/preview.png b/mods/mesecons_materials/doc/fiber/preview.png similarity index 100% rename from mesecons_materials/doc/fiber/preview.png rename to mods/mesecons_materials/doc/fiber/preview.png diff --git a/mesecons_materials/doc/fiber/recipe.png b/mods/mesecons_materials/doc/fiber/recipe.png similarity index 100% rename from mesecons_materials/doc/fiber/recipe.png rename to mods/mesecons_materials/doc/fiber/recipe.png diff --git a/mesecons_materials/doc/glue/description.html b/mods/mesecons_materials/doc/glue/description.html similarity index 100% rename from mesecons_materials/doc/glue/description.html rename to mods/mesecons_materials/doc/glue/description.html diff --git a/mesecons_materials/doc/glue/preview.png b/mods/mesecons_materials/doc/glue/preview.png similarity index 100% rename from mesecons_materials/doc/glue/preview.png rename to mods/mesecons_materials/doc/glue/preview.png diff --git a/mesecons_materials/doc/glue/recipe.png b/mods/mesecons_materials/doc/glue/recipe.png similarity index 100% rename from mesecons_materials/doc/glue/recipe.png rename to mods/mesecons_materials/doc/glue/recipe.png diff --git a/mesecons_materials/doc/silicon/description.html b/mods/mesecons_materials/doc/silicon/description.html similarity index 100% rename from mesecons_materials/doc/silicon/description.html rename to mods/mesecons_materials/doc/silicon/description.html diff --git a/mesecons_materials/doc/silicon/preview.png b/mods/mesecons_materials/doc/silicon/preview.png similarity index 100% rename from mesecons_materials/doc/silicon/preview.png rename to mods/mesecons_materials/doc/silicon/preview.png diff --git a/mesecons_materials/doc/silicon/recipe.png b/mods/mesecons_materials/doc/silicon/recipe.png similarity index 100% rename from mesecons_materials/doc/silicon/recipe.png rename to mods/mesecons_materials/doc/silicon/recipe.png diff --git a/mesecons_materials/init.lua b/mods/mesecons_materials/init.lua similarity index 100% rename from mesecons_materials/init.lua rename to mods/mesecons_materials/init.lua diff --git a/mesecons_materials/mod.conf b/mods/mesecons_materials/mod.conf similarity index 100% rename from mesecons_materials/mod.conf rename to mods/mesecons_materials/mod.conf diff --git a/mesecons_materials/textures/mesecons_fiber.png b/mods/mesecons_materials/textures/mesecons_fiber.png similarity index 100% rename from mesecons_materials/textures/mesecons_fiber.png rename to mods/mesecons_materials/textures/mesecons_fiber.png diff --git a/mesecons_materials/textures/mesecons_glue.png b/mods/mesecons_materials/textures/mesecons_glue.png similarity index 100% rename from mesecons_materials/textures/mesecons_glue.png rename to mods/mesecons_materials/textures/mesecons_glue.png diff --git a/mesecons_materials/textures/mesecons_silicon.png b/mods/mesecons_materials/textures/mesecons_silicon.png similarity index 100% rename from mesecons_materials/textures/mesecons_silicon.png rename to mods/mesecons_materials/textures/mesecons_silicon.png diff --git a/mesecons_microcontroller/init.lua b/mods/mesecons_microcontroller/init.lua similarity index 100% rename from mesecons_microcontroller/init.lua rename to mods/mesecons_microcontroller/init.lua diff --git a/mesecons_microcontroller/mod.conf b/mods/mesecons_microcontroller/mod.conf similarity index 100% rename from mesecons_microcontroller/mod.conf rename to mods/mesecons_microcontroller/mod.conf diff --git a/mesecons_microcontroller/textures/jeija_microcontroller_top.png b/mods/mesecons_microcontroller/textures/jeija_microcontroller_top.png similarity index 100% rename from mesecons_microcontroller/textures/jeija_microcontroller_top.png rename to mods/mesecons_microcontroller/textures/jeija_microcontroller_top.png diff --git a/mesecons_movestones/doc/movestone/description.html b/mods/mesecons_movestones/doc/movestone/description.html similarity index 100% rename from mesecons_movestones/doc/movestone/description.html rename to mods/mesecons_movestones/doc/movestone/description.html diff --git a/mesecons_movestones/doc/movestone/preview.png b/mods/mesecons_movestones/doc/movestone/preview.png similarity index 100% rename from mesecons_movestones/doc/movestone/preview.png rename to mods/mesecons_movestones/doc/movestone/preview.png diff --git a/mesecons_movestones/doc/movestone/recipe.png b/mods/mesecons_movestones/doc/movestone/recipe.png similarity index 100% rename from mesecons_movestones/doc/movestone/recipe.png rename to mods/mesecons_movestones/doc/movestone/recipe.png diff --git a/mesecons_movestones/doc/movestone_sticky/description.html b/mods/mesecons_movestones/doc/movestone_sticky/description.html similarity index 100% rename from mesecons_movestones/doc/movestone_sticky/description.html rename to mods/mesecons_movestones/doc/movestone_sticky/description.html diff --git a/mesecons_movestones/doc/movestone_sticky/preview.png b/mods/mesecons_movestones/doc/movestone_sticky/preview.png similarity index 100% rename from mesecons_movestones/doc/movestone_sticky/preview.png rename to mods/mesecons_movestones/doc/movestone_sticky/preview.png diff --git a/mesecons_movestones/doc/movestone_sticky/recipe.png b/mods/mesecons_movestones/doc/movestone_sticky/recipe.png similarity index 100% rename from mesecons_movestones/doc/movestone_sticky/recipe.png rename to mods/mesecons_movestones/doc/movestone_sticky/recipe.png diff --git a/mesecons_movestones/init.lua b/mods/mesecons_movestones/init.lua similarity index 100% rename from mesecons_movestones/init.lua rename to mods/mesecons_movestones/init.lua diff --git a/mesecons_movestones/mod.conf b/mods/mesecons_movestones/mod.conf similarity index 100% rename from mesecons_movestones/mod.conf rename to mods/mesecons_movestones/mod.conf diff --git a/mesecons_movestones/sounds/movestone.ogg b/mods/mesecons_movestones/sounds/movestone.ogg similarity index 100% rename from mesecons_movestones/sounds/movestone.ogg rename to mods/mesecons_movestones/sounds/movestone.ogg diff --git a/mesecons_movestones/textures/jeija_movestone_arrows.png b/mods/mesecons_movestones/textures/jeija_movestone_arrows.png similarity index 100% rename from mesecons_movestones/textures/jeija_movestone_arrows.png rename to mods/mesecons_movestones/textures/jeija_movestone_arrows.png diff --git a/mesecons_movestones/textures/jeija_movestone_side.png b/mods/mesecons_movestones/textures/jeija_movestone_side.png similarity index 100% rename from mesecons_movestones/textures/jeija_movestone_side.png rename to mods/mesecons_movestones/textures/jeija_movestone_side.png diff --git a/mesecons_movestones/textures/jeija_sticky_movestone.png b/mods/mesecons_movestones/textures/jeija_sticky_movestone.png similarity index 100% rename from mesecons_movestones/textures/jeija_sticky_movestone.png rename to mods/mesecons_movestones/textures/jeija_sticky_movestone.png diff --git a/mesecons_mvps/init.lua b/mods/mesecons_mvps/init.lua similarity index 100% rename from mesecons_mvps/init.lua rename to mods/mesecons_mvps/init.lua diff --git a/mesecons_mvps/mod.conf b/mods/mesecons_mvps/mod.conf similarity index 100% rename from mesecons_mvps/mod.conf rename to mods/mesecons_mvps/mod.conf diff --git a/mesecons_noteblock/doc/noteblock/description.html b/mods/mesecons_noteblock/doc/noteblock/description.html similarity index 100% rename from mesecons_noteblock/doc/noteblock/description.html rename to mods/mesecons_noteblock/doc/noteblock/description.html diff --git a/mesecons_noteblock/doc/noteblock/preview.png b/mods/mesecons_noteblock/doc/noteblock/preview.png similarity index 100% rename from mesecons_noteblock/doc/noteblock/preview.png rename to mods/mesecons_noteblock/doc/noteblock/preview.png diff --git a/mesecons_noteblock/doc/noteblock/recipe.png b/mods/mesecons_noteblock/doc/noteblock/recipe.png similarity index 100% rename from mesecons_noteblock/doc/noteblock/recipe.png rename to mods/mesecons_noteblock/doc/noteblock/recipe.png diff --git a/mesecons_noteblock/init.lua b/mods/mesecons_noteblock/init.lua similarity index 100% rename from mesecons_noteblock/init.lua rename to mods/mesecons_noteblock/init.lua diff --git a/mesecons_noteblock/mod.conf b/mods/mesecons_noteblock/mod.conf similarity index 100% rename from mesecons_noteblock/mod.conf rename to mods/mesecons_noteblock/mod.conf diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_a.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_a.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_a2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_asharp.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_asharp2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_b.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_b.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_b2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_c.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_c.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_c2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_crash.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_csharp.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_csharp2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_d.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_d.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_d2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_dsharp.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_dsharp2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_e.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_e.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_e2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_f.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_f.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_f2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_fsharp.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_fsharp2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_g.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_g.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_g2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_gsharp.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_gsharp2.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_hihat.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_kick.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_litecrash.ogg diff --git a/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg b/mods/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg similarity index 100% rename from mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg rename to mods/mesecons_noteblock/sounds/mesecons_noteblock_snare.ogg diff --git a/mesecons_noteblock/textures/mesecons_noteblock.png b/mods/mesecons_noteblock/textures/mesecons_noteblock.png similarity index 100% rename from mesecons_noteblock/textures/mesecons_noteblock.png rename to mods/mesecons_noteblock/textures/mesecons_noteblock.png diff --git a/mesecons_pistons/doc/piston/description.html b/mods/mesecons_pistons/doc/piston/description.html similarity index 100% rename from mesecons_pistons/doc/piston/description.html rename to mods/mesecons_pistons/doc/piston/description.html diff --git a/mesecons_pistons/doc/piston/preview.png b/mods/mesecons_pistons/doc/piston/preview.png similarity index 100% rename from mesecons_pistons/doc/piston/preview.png rename to mods/mesecons_pistons/doc/piston/preview.png diff --git a/mesecons_pistons/doc/piston/recipe.png b/mods/mesecons_pistons/doc/piston/recipe.png similarity index 100% rename from mesecons_pistons/doc/piston/recipe.png rename to mods/mesecons_pistons/doc/piston/recipe.png diff --git a/mesecons_pistons/doc/piston_sticky/description.html b/mods/mesecons_pistons/doc/piston_sticky/description.html similarity index 100% rename from mesecons_pistons/doc/piston_sticky/description.html rename to mods/mesecons_pistons/doc/piston_sticky/description.html diff --git a/mesecons_pistons/doc/piston_sticky/preview.png b/mods/mesecons_pistons/doc/piston_sticky/preview.png similarity index 100% rename from mesecons_pistons/doc/piston_sticky/preview.png rename to mods/mesecons_pistons/doc/piston_sticky/preview.png diff --git a/mesecons_pistons/doc/piston_sticky/recipe.png b/mods/mesecons_pistons/doc/piston_sticky/recipe.png similarity index 100% rename from mesecons_pistons/doc/piston_sticky/recipe.png rename to mods/mesecons_pistons/doc/piston_sticky/recipe.png diff --git a/mesecons_pistons/init.lua b/mods/mesecons_pistons/init.lua similarity index 100% rename from mesecons_pistons/init.lua rename to mods/mesecons_pistons/init.lua diff --git a/mesecons_pistons/legacy.lua b/mods/mesecons_pistons/legacy.lua similarity index 100% rename from mesecons_pistons/legacy.lua rename to mods/mesecons_pistons/legacy.lua diff --git a/mesecons_pistons/mod.conf b/mods/mesecons_pistons/mod.conf similarity index 100% rename from mesecons_pistons/mod.conf rename to mods/mesecons_pistons/mod.conf diff --git a/mesecons_pistons/sounds/piston_extend.ogg b/mods/mesecons_pistons/sounds/piston_extend.ogg similarity index 100% rename from mesecons_pistons/sounds/piston_extend.ogg rename to mods/mesecons_pistons/sounds/piston_extend.ogg diff --git a/mesecons_pistons/sounds/piston_retract.ogg b/mods/mesecons_pistons/sounds/piston_retract.ogg similarity index 100% rename from mesecons_pistons/sounds/piston_retract.ogg rename to mods/mesecons_pistons/sounds/piston_retract.ogg diff --git a/mesecons_pistons/textures/mesecons_piston_back.png b/mods/mesecons_pistons/textures/mesecons_piston_back.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_back.png rename to mods/mesecons_pistons/textures/mesecons_piston_back.png diff --git a/mesecons_pistons/textures/mesecons_piston_bottom.png b/mods/mesecons_pistons/textures/mesecons_piston_bottom.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_bottom.png rename to mods/mesecons_pistons/textures/mesecons_piston_bottom.png diff --git a/mesecons_pistons/textures/mesecons_piston_left.png b/mods/mesecons_pistons/textures/mesecons_piston_left.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_left.png rename to mods/mesecons_pistons/textures/mesecons_piston_left.png diff --git a/mesecons_pistons/textures/mesecons_piston_on_front.png b/mods/mesecons_pistons/textures/mesecons_piston_on_front.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_on_front.png rename to mods/mesecons_pistons/textures/mesecons_piston_on_front.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_back.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_back.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_back.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_back.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_bottom.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_bottom.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_bottom.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_bottom.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_front.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_front.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_front.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_front.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_front_sticky.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_left.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_left.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_left.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_left.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_right.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_right.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_right.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_right.png diff --git a/mesecons_pistons/textures/mesecons_piston_pusher_top.png b/mods/mesecons_pistons/textures/mesecons_piston_pusher_top.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_pusher_top.png rename to mods/mesecons_pistons/textures/mesecons_piston_pusher_top.png diff --git a/mesecons_pistons/textures/mesecons_piston_right.png b/mods/mesecons_pistons/textures/mesecons_piston_right.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_right.png rename to mods/mesecons_pistons/textures/mesecons_piston_right.png diff --git a/mesecons_pistons/textures/mesecons_piston_top.png b/mods/mesecons_pistons/textures/mesecons_piston_top.png similarity index 100% rename from mesecons_pistons/textures/mesecons_piston_top.png rename to mods/mesecons_pistons/textures/mesecons_piston_top.png diff --git a/mesecons_powerplant/doc/powerplant/description.html b/mods/mesecons_powerplant/doc/powerplant/description.html similarity index 100% rename from mesecons_powerplant/doc/powerplant/description.html rename to mods/mesecons_powerplant/doc/powerplant/description.html diff --git a/mesecons_powerplant/doc/powerplant/preview.png b/mods/mesecons_powerplant/doc/powerplant/preview.png similarity index 100% rename from mesecons_powerplant/doc/powerplant/preview.png rename to mods/mesecons_powerplant/doc/powerplant/preview.png diff --git a/mesecons_powerplant/doc/powerplant/recipe.png b/mods/mesecons_powerplant/doc/powerplant/recipe.png similarity index 100% rename from mesecons_powerplant/doc/powerplant/recipe.png rename to mods/mesecons_powerplant/doc/powerplant/recipe.png diff --git a/mesecons_powerplant/init.lua b/mods/mesecons_powerplant/init.lua similarity index 100% rename from mesecons_powerplant/init.lua rename to mods/mesecons_powerplant/init.lua diff --git a/mesecons_powerplant/mod.conf b/mods/mesecons_powerplant/mod.conf similarity index 100% rename from mesecons_powerplant/mod.conf rename to mods/mesecons_powerplant/mod.conf diff --git a/mesecons_powerplant/textures/jeija_power_plant.png b/mods/mesecons_powerplant/textures/jeija_power_plant.png similarity index 100% rename from mesecons_powerplant/textures/jeija_power_plant.png rename to mods/mesecons_powerplant/textures/jeija_power_plant.png diff --git a/mesecons_pressureplates/doc/pressureplate_stone/description.html b/mods/mesecons_pressureplates/doc/pressureplate_stone/description.html similarity index 100% rename from mesecons_pressureplates/doc/pressureplate_stone/description.html rename to mods/mesecons_pressureplates/doc/pressureplate_stone/description.html diff --git a/mesecons_pressureplates/doc/pressureplate_stone/preview.png b/mods/mesecons_pressureplates/doc/pressureplate_stone/preview.png similarity index 100% rename from mesecons_pressureplates/doc/pressureplate_stone/preview.png rename to mods/mesecons_pressureplates/doc/pressureplate_stone/preview.png diff --git a/mesecons_pressureplates/doc/pressureplate_stone/recipe.png b/mods/mesecons_pressureplates/doc/pressureplate_stone/recipe.png similarity index 100% rename from mesecons_pressureplates/doc/pressureplate_stone/recipe.png rename to mods/mesecons_pressureplates/doc/pressureplate_stone/recipe.png diff --git a/mesecons_pressureplates/doc/pressureplate_wood/description.html b/mods/mesecons_pressureplates/doc/pressureplate_wood/description.html similarity index 100% rename from mesecons_pressureplates/doc/pressureplate_wood/description.html rename to mods/mesecons_pressureplates/doc/pressureplate_wood/description.html diff --git a/mesecons_pressureplates/doc/pressureplate_wood/preview.png b/mods/mesecons_pressureplates/doc/pressureplate_wood/preview.png similarity index 100% rename from mesecons_pressureplates/doc/pressureplate_wood/preview.png rename to mods/mesecons_pressureplates/doc/pressureplate_wood/preview.png diff --git a/mesecons_pressureplates/doc/pressureplate_wood/recipe.png b/mods/mesecons_pressureplates/doc/pressureplate_wood/recipe.png similarity index 100% rename from mesecons_pressureplates/doc/pressureplate_wood/recipe.png rename to mods/mesecons_pressureplates/doc/pressureplate_wood/recipe.png diff --git a/mesecons_pressureplates/init.lua b/mods/mesecons_pressureplates/init.lua similarity index 100% rename from mesecons_pressureplates/init.lua rename to mods/mesecons_pressureplates/init.lua diff --git a/mesecons_pressureplates/mod.conf b/mods/mesecons_pressureplates/mod.conf similarity index 100% rename from mesecons_pressureplates/mod.conf rename to mods/mesecons_pressureplates/mod.conf diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_inv.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_off_edges.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_on_edges.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_stone_wield.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_inv.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_off_edges.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_on_edges.png diff --git a/mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png b/mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png similarity index 100% rename from mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png rename to mods/mesecons_pressureplates/textures/jeija_pressure_plate_wood_wield.png diff --git a/mesecons_random/doc/ghoststone/description.html b/mods/mesecons_random/doc/ghoststone/description.html similarity index 100% rename from mesecons_random/doc/ghoststone/description.html rename to mods/mesecons_random/doc/ghoststone/description.html diff --git a/mesecons_random/doc/ghoststone/preview.png b/mods/mesecons_random/doc/ghoststone/preview.png similarity index 100% rename from mesecons_random/doc/ghoststone/preview.png rename to mods/mesecons_random/doc/ghoststone/preview.png diff --git a/mesecons_random/doc/ghoststone/recipe.png b/mods/mesecons_random/doc/ghoststone/recipe.png similarity index 100% rename from mesecons_random/doc/ghoststone/recipe.png rename to mods/mesecons_random/doc/ghoststone/recipe.png diff --git a/mesecons_random/doc/removestone/description.html b/mods/mesecons_random/doc/removestone/description.html similarity index 100% rename from mesecons_random/doc/removestone/description.html rename to mods/mesecons_random/doc/removestone/description.html diff --git a/mesecons_random/doc/removestone/preview.png b/mods/mesecons_random/doc/removestone/preview.png similarity index 100% rename from mesecons_random/doc/removestone/preview.png rename to mods/mesecons_random/doc/removestone/preview.png diff --git a/mesecons_random/doc/removestone/recipe.png b/mods/mesecons_random/doc/removestone/recipe.png similarity index 100% rename from mesecons_random/doc/removestone/recipe.png rename to mods/mesecons_random/doc/removestone/recipe.png diff --git a/mesecons_random/init.lua b/mods/mesecons_random/init.lua similarity index 100% rename from mesecons_random/init.lua rename to mods/mesecons_random/init.lua diff --git a/mesecons_random/mod.conf b/mods/mesecons_random/mod.conf similarity index 100% rename from mesecons_random/mod.conf rename to mods/mesecons_random/mod.conf diff --git a/mesecons_random/textures/jeija_ghoststone.png b/mods/mesecons_random/textures/jeija_ghoststone.png similarity index 100% rename from mesecons_random/textures/jeija_ghoststone.png rename to mods/mesecons_random/textures/jeija_ghoststone.png diff --git a/mesecons_random/textures/jeija_ghoststone_inv.png b/mods/mesecons_random/textures/jeija_ghoststone_inv.png similarity index 100% rename from mesecons_random/textures/jeija_ghoststone_inv.png rename to mods/mesecons_random/textures/jeija_ghoststone_inv.png diff --git a/mesecons_random/textures/jeija_removestone.png b/mods/mesecons_random/textures/jeija_removestone.png similarity index 100% rename from mesecons_random/textures/jeija_removestone.png rename to mods/mesecons_random/textures/jeija_removestone.png diff --git a/mesecons_random/textures/jeija_removestone_inv.png b/mods/mesecons_random/textures/jeija_removestone_inv.png similarity index 100% rename from mesecons_random/textures/jeija_removestone_inv.png rename to mods/mesecons_random/textures/jeija_removestone_inv.png diff --git a/mesecons_receiver/init.lua b/mods/mesecons_receiver/init.lua similarity index 100% rename from mesecons_receiver/init.lua rename to mods/mesecons_receiver/init.lua diff --git a/mesecons_receiver/mod.conf b/mods/mesecons_receiver/mod.conf similarity index 100% rename from mesecons_receiver/mod.conf rename to mods/mesecons_receiver/mod.conf diff --git a/mesecons_receiver/textures/receiver_bottom_off.png b/mods/mesecons_receiver/textures/receiver_bottom_off.png similarity index 100% rename from mesecons_receiver/textures/receiver_bottom_off.png rename to mods/mesecons_receiver/textures/receiver_bottom_off.png diff --git a/mesecons_receiver/textures/receiver_bottom_on.png b/mods/mesecons_receiver/textures/receiver_bottom_on.png similarity index 100% rename from mesecons_receiver/textures/receiver_bottom_on.png rename to mods/mesecons_receiver/textures/receiver_bottom_on.png diff --git a/mesecons_receiver/textures/receiver_fb_off.png b/mods/mesecons_receiver/textures/receiver_fb_off.png similarity index 100% rename from mesecons_receiver/textures/receiver_fb_off.png rename to mods/mesecons_receiver/textures/receiver_fb_off.png diff --git a/mesecons_receiver/textures/receiver_fb_on.png b/mods/mesecons_receiver/textures/receiver_fb_on.png similarity index 100% rename from mesecons_receiver/textures/receiver_fb_on.png rename to mods/mesecons_receiver/textures/receiver_fb_on.png diff --git a/mesecons_receiver/textures/receiver_lr_off.png b/mods/mesecons_receiver/textures/receiver_lr_off.png similarity index 100% rename from mesecons_receiver/textures/receiver_lr_off.png rename to mods/mesecons_receiver/textures/receiver_lr_off.png diff --git a/mesecons_receiver/textures/receiver_lr_on.png b/mods/mesecons_receiver/textures/receiver_lr_on.png similarity index 100% rename from mesecons_receiver/textures/receiver_lr_on.png rename to mods/mesecons_receiver/textures/receiver_lr_on.png diff --git a/mesecons_receiver/textures/receiver_top_off.png b/mods/mesecons_receiver/textures/receiver_top_off.png similarity index 100% rename from mesecons_receiver/textures/receiver_top_off.png rename to mods/mesecons_receiver/textures/receiver_top_off.png diff --git a/mesecons_receiver/textures/receiver_top_on.png b/mods/mesecons_receiver/textures/receiver_top_on.png similarity index 100% rename from mesecons_receiver/textures/receiver_top_on.png rename to mods/mesecons_receiver/textures/receiver_top_on.png diff --git a/mesecons_solarpanel/doc/solarpanel/description.html b/mods/mesecons_solarpanel/doc/solarpanel/description.html similarity index 100% rename from mesecons_solarpanel/doc/solarpanel/description.html rename to mods/mesecons_solarpanel/doc/solarpanel/description.html diff --git a/mesecons_solarpanel/doc/solarpanel/preview.png b/mods/mesecons_solarpanel/doc/solarpanel/preview.png similarity index 100% rename from mesecons_solarpanel/doc/solarpanel/preview.png rename to mods/mesecons_solarpanel/doc/solarpanel/preview.png diff --git a/mesecons_solarpanel/doc/solarpanel/recipe.png b/mods/mesecons_solarpanel/doc/solarpanel/recipe.png similarity index 100% rename from mesecons_solarpanel/doc/solarpanel/recipe.png rename to mods/mesecons_solarpanel/doc/solarpanel/recipe.png diff --git a/mesecons_solarpanel/init.lua b/mods/mesecons_solarpanel/init.lua similarity index 100% rename from mesecons_solarpanel/init.lua rename to mods/mesecons_solarpanel/init.lua diff --git a/mesecons_solarpanel/mod.conf b/mods/mesecons_solarpanel/mod.conf similarity index 100% rename from mesecons_solarpanel/mod.conf rename to mods/mesecons_solarpanel/mod.conf diff --git a/mesecons_solarpanel/textures/mesecons_solarpanel.png b/mods/mesecons_solarpanel/textures/mesecons_solarpanel.png similarity index 100% rename from mesecons_solarpanel/textures/mesecons_solarpanel.png rename to mods/mesecons_solarpanel/textures/mesecons_solarpanel.png diff --git a/mesecons_stickyblocks/init.lua b/mods/mesecons_stickyblocks/init.lua similarity index 100% rename from mesecons_stickyblocks/init.lua rename to mods/mesecons_stickyblocks/init.lua diff --git a/mesecons_stickyblocks/mod.conf b/mods/mesecons_stickyblocks/mod.conf similarity index 100% rename from mesecons_stickyblocks/mod.conf rename to mods/mesecons_stickyblocks/mod.conf diff --git a/mesecons_stickyblocks/textures/mesecons_stickyblocks_sticky.png b/mods/mesecons_stickyblocks/textures/mesecons_stickyblocks_sticky.png similarity index 100% rename from mesecons_stickyblocks/textures/mesecons_stickyblocks_sticky.png rename to mods/mesecons_stickyblocks/textures/mesecons_stickyblocks_sticky.png diff --git a/mesecons_switch/doc/switch/description.html b/mods/mesecons_switch/doc/switch/description.html similarity index 100% rename from mesecons_switch/doc/switch/description.html rename to mods/mesecons_switch/doc/switch/description.html diff --git a/mesecons_switch/doc/switch/preview.png b/mods/mesecons_switch/doc/switch/preview.png similarity index 100% rename from mesecons_switch/doc/switch/preview.png rename to mods/mesecons_switch/doc/switch/preview.png diff --git a/mesecons_switch/doc/switch/recipe.png b/mods/mesecons_switch/doc/switch/recipe.png similarity index 100% rename from mesecons_switch/doc/switch/recipe.png rename to mods/mesecons_switch/doc/switch/recipe.png diff --git a/mesecons_switch/init.lua b/mods/mesecons_switch/init.lua similarity index 100% rename from mesecons_switch/init.lua rename to mods/mesecons_switch/init.lua diff --git a/mesecons_switch/mod.conf b/mods/mesecons_switch/mod.conf similarity index 100% rename from mesecons_switch/mod.conf rename to mods/mesecons_switch/mod.conf diff --git a/mesecons_switch/sounds/mesecons_switch.ogg b/mods/mesecons_switch/sounds/mesecons_switch.ogg similarity index 100% rename from mesecons_switch/sounds/mesecons_switch.ogg rename to mods/mesecons_switch/sounds/mesecons_switch.ogg diff --git a/mesecons_switch/textures/mesecons_switch_off.png b/mods/mesecons_switch/textures/mesecons_switch_off.png similarity index 100% rename from mesecons_switch/textures/mesecons_switch_off.png rename to mods/mesecons_switch/textures/mesecons_switch_off.png diff --git a/mesecons_switch/textures/mesecons_switch_on.png b/mods/mesecons_switch/textures/mesecons_switch_on.png similarity index 100% rename from mesecons_switch/textures/mesecons_switch_on.png rename to mods/mesecons_switch/textures/mesecons_switch_on.png diff --git a/mesecons_switch/textures/mesecons_switch_side.png b/mods/mesecons_switch/textures/mesecons_switch_side.png similarity index 100% rename from mesecons_switch/textures/mesecons_switch_side.png rename to mods/mesecons_switch/textures/mesecons_switch_side.png diff --git a/mesecons_torch/doc/torch/description.html b/mods/mesecons_torch/doc/torch/description.html similarity index 100% rename from mesecons_torch/doc/torch/description.html rename to mods/mesecons_torch/doc/torch/description.html diff --git a/mesecons_torch/doc/torch/preview.png b/mods/mesecons_torch/doc/torch/preview.png similarity index 100% rename from mesecons_torch/doc/torch/preview.png rename to mods/mesecons_torch/doc/torch/preview.png diff --git a/mesecons_torch/doc/torch/recipe.png b/mods/mesecons_torch/doc/torch/recipe.png similarity index 100% rename from mesecons_torch/doc/torch/recipe.png rename to mods/mesecons_torch/doc/torch/recipe.png diff --git a/mesecons_torch/init.lua b/mods/mesecons_torch/init.lua similarity index 100% rename from mesecons_torch/init.lua rename to mods/mesecons_torch/init.lua diff --git a/mesecons_torch/mod.conf b/mods/mesecons_torch/mod.conf similarity index 100% rename from mesecons_torch/mod.conf rename to mods/mesecons_torch/mod.conf diff --git a/mesecons_torch/textures/jeija_torches_off.png b/mods/mesecons_torch/textures/jeija_torches_off.png similarity index 100% rename from mesecons_torch/textures/jeija_torches_off.png rename to mods/mesecons_torch/textures/jeija_torches_off.png diff --git a/mesecons_torch/textures/jeija_torches_off_ceiling.png b/mods/mesecons_torch/textures/jeija_torches_off_ceiling.png similarity index 100% rename from mesecons_torch/textures/jeija_torches_off_ceiling.png rename to mods/mesecons_torch/textures/jeija_torches_off_ceiling.png diff --git a/mesecons_torch/textures/jeija_torches_off_side.png b/mods/mesecons_torch/textures/jeija_torches_off_side.png similarity index 100% rename from mesecons_torch/textures/jeija_torches_off_side.png rename to mods/mesecons_torch/textures/jeija_torches_off_side.png diff --git a/mesecons_torch/textures/jeija_torches_on.png b/mods/mesecons_torch/textures/jeija_torches_on.png similarity index 100% rename from mesecons_torch/textures/jeija_torches_on.png rename to mods/mesecons_torch/textures/jeija_torches_on.png diff --git a/mesecons_torch/textures/jeija_torches_on_ceiling.png b/mods/mesecons_torch/textures/jeija_torches_on_ceiling.png similarity index 100% rename from mesecons_torch/textures/jeija_torches_on_ceiling.png rename to mods/mesecons_torch/textures/jeija_torches_on_ceiling.png diff --git a/mesecons_torch/textures/jeija_torches_on_side.png b/mods/mesecons_torch/textures/jeija_torches_on_side.png similarity index 100% rename from mesecons_torch/textures/jeija_torches_on_side.png rename to mods/mesecons_torch/textures/jeija_torches_on_side.png diff --git a/mesecons_walllever/doc/walllever/description.html b/mods/mesecons_walllever/doc/walllever/description.html similarity index 100% rename from mesecons_walllever/doc/walllever/description.html rename to mods/mesecons_walllever/doc/walllever/description.html diff --git a/mesecons_walllever/doc/walllever/preview.png b/mods/mesecons_walllever/doc/walllever/preview.png similarity index 100% rename from mesecons_walllever/doc/walllever/preview.png rename to mods/mesecons_walllever/doc/walllever/preview.png diff --git a/mesecons_walllever/doc/walllever/recipe.png b/mods/mesecons_walllever/doc/walllever/recipe.png similarity index 100% rename from mesecons_walllever/doc/walllever/recipe.png rename to mods/mesecons_walllever/doc/walllever/recipe.png diff --git a/mesecons_walllever/init.lua b/mods/mesecons_walllever/init.lua similarity index 100% rename from mesecons_walllever/init.lua rename to mods/mesecons_walllever/init.lua diff --git a/mesecons_walllever/mod.conf b/mods/mesecons_walllever/mod.conf similarity index 100% rename from mesecons_walllever/mod.conf rename to mods/mesecons_walllever/mod.conf diff --git a/mesecons_walllever/models/jeija_wall_lever_off.obj b/mods/mesecons_walllever/models/jeija_wall_lever_off.obj similarity index 100% rename from mesecons_walllever/models/jeija_wall_lever_off.obj rename to mods/mesecons_walllever/models/jeija_wall_lever_off.obj diff --git a/mesecons_walllever/models/jeija_wall_lever_on.obj b/mods/mesecons_walllever/models/jeija_wall_lever_on.obj similarity index 100% rename from mesecons_walllever/models/jeija_wall_lever_on.obj rename to mods/mesecons_walllever/models/jeija_wall_lever_on.obj diff --git a/mesecons_walllever/sounds/mesecons_lever.ogg b/mods/mesecons_walllever/sounds/mesecons_lever.ogg similarity index 100% rename from mesecons_walllever/sounds/mesecons_lever.ogg rename to mods/mesecons_walllever/sounds/mesecons_lever.ogg diff --git a/mesecons_walllever/textures/jeija_wall_lever_back_edges.png b/mods/mesecons_walllever/textures/jeija_wall_lever_back_edges.png similarity index 100% rename from mesecons_walllever/textures/jeija_wall_lever_back_edges.png rename to mods/mesecons_walllever/textures/jeija_wall_lever_back_edges.png diff --git a/mesecons_walllever/textures/jeija_wall_lever_front.png b/mods/mesecons_walllever/textures/jeija_wall_lever_front.png similarity index 100% rename from mesecons_walllever/textures/jeija_wall_lever_front.png rename to mods/mesecons_walllever/textures/jeija_wall_lever_front.png diff --git a/mesecons_walllever/textures/jeija_wall_lever_front_bump.png b/mods/mesecons_walllever/textures/jeija_wall_lever_front_bump.png similarity index 100% rename from mesecons_walllever/textures/jeija_wall_lever_front_bump.png rename to mods/mesecons_walllever/textures/jeija_wall_lever_front_bump.png diff --git a/mesecons_walllever/textures/jeija_wall_lever_inv.png b/mods/mesecons_walllever/textures/jeija_wall_lever_inv.png similarity index 100% rename from mesecons_walllever/textures/jeija_wall_lever_inv.png rename to mods/mesecons_walllever/textures/jeija_wall_lever_inv.png diff --git a/mesecons_walllever/textures/jeija_wall_lever_lever_light_off.png b/mods/mesecons_walllever/textures/jeija_wall_lever_lever_light_off.png similarity index 100% rename from mesecons_walllever/textures/jeija_wall_lever_lever_light_off.png rename to mods/mesecons_walllever/textures/jeija_wall_lever_lever_light_off.png diff --git a/mesecons_walllever/textures/jeija_wall_lever_lever_light_on.png b/mods/mesecons_walllever/textures/jeija_wall_lever_lever_light_on.png similarity index 100% rename from mesecons_walllever/textures/jeija_wall_lever_lever_light_on.png rename to mods/mesecons_walllever/textures/jeija_wall_lever_lever_light_on.png diff --git a/mesecons_wires/doc/mesecon/description.html b/mods/mesecons_wires/doc/mesecon/description.html similarity index 100% rename from mesecons_wires/doc/mesecon/description.html rename to mods/mesecons_wires/doc/mesecon/description.html diff --git a/mesecons_wires/doc/mesecon/preview.png b/mods/mesecons_wires/doc/mesecon/preview.png similarity index 100% rename from mesecons_wires/doc/mesecon/preview.png rename to mods/mesecons_wires/doc/mesecon/preview.png diff --git a/mesecons_wires/doc/mesecon/recipe.png b/mods/mesecons_wires/doc/mesecon/recipe.png similarity index 100% rename from mesecons_wires/doc/mesecon/recipe.png rename to mods/mesecons_wires/doc/mesecon/recipe.png diff --git a/mesecons_wires/init.lua b/mods/mesecons_wires/init.lua similarity index 100% rename from mesecons_wires/init.lua rename to mods/mesecons_wires/init.lua diff --git a/mesecons_wires/mod.conf b/mods/mesecons_wires/mod.conf similarity index 100% rename from mesecons_wires/mod.conf rename to mods/mesecons_wires/mod.conf diff --git a/misc_overrides/depends.txt b/mods/misc_overrides/depends.txt similarity index 100% rename from misc_overrides/depends.txt rename to mods/misc_overrides/depends.txt diff --git a/misc_overrides/init.lua b/mods/misc_overrides/init.lua similarity index 100% rename from misc_overrides/init.lua rename to mods/misc_overrides/init.lua diff --git a/misc_overrides/mod.conf b/mods/misc_overrides/mod.conf similarity index 100% rename from misc_overrides/mod.conf rename to mods/misc_overrides/mod.conf diff --git a/misc_overrides/textures/technic_chest_form_bg.png b/mods/misc_overrides/textures/technic_chest_form_bg.png similarity index 100% rename from misc_overrides/textures/technic_chest_form_bg.png rename to mods/misc_overrides/textures/technic_chest_form_bg.png diff --git a/molehills/init.lua b/mods/molehills/init.lua similarity index 100% rename from molehills/init.lua rename to mods/molehills/init.lua diff --git a/molehills/locale/molehills.fr.tr b/mods/molehills/locale/molehills.fr.tr similarity index 100% rename from molehills/locale/molehills.fr.tr rename to mods/molehills/locale/molehills.fr.tr diff --git a/molehills/locale/template.txt b/mods/molehills/locale/template.txt similarity index 100% rename from molehills/locale/template.txt rename to mods/molehills/locale/template.txt diff --git a/molehills/mod.conf b/mods/molehills/mod.conf similarity index 100% rename from molehills/mod.conf rename to mods/molehills/mod.conf diff --git a/molehills/models/molehill_molehill.obj b/mods/molehills/models/molehill_molehill.obj similarity index 100% rename from molehills/models/molehill_molehill.obj rename to mods/molehills/models/molehill_molehill.obj diff --git a/molehills/molehills_settings.txt b/mods/molehills/molehills_settings.txt similarity index 100% rename from molehills/molehills_settings.txt rename to mods/molehills/molehills_settings.txt diff --git a/molehills/textures/molehills_dirt.png b/mods/molehills/textures/molehills_dirt.png similarity index 100% rename from molehills/textures/molehills_dirt.png rename to mods/molehills/textures/molehills_dirt.png diff --git a/molehills/textures/molehills_side.png b/mods/molehills/textures/molehills_side.png similarity index 100% rename from molehills/textures/molehills_side.png rename to mods/molehills/textures/molehills_side.png diff --git a/molehills/textures/old & unused/molehill_side.png b/mods/molehills/textures/old & unused/molehill_side.png similarity index 100% rename from molehills/textures/old & unused/molehill_side.png rename to mods/molehills/textures/old & unused/molehill_side.png diff --git a/molehills/textures/old & unused/molehill_top.png b/mods/molehills/textures/old & unused/molehill_top.png similarity index 100% rename from molehills/textures/old & unused/molehill_top.png rename to mods/molehills/textures/old & unused/molehill_top.png diff --git a/moreblocks/.editorconfig b/mods/moreblocks/.editorconfig similarity index 100% rename from moreblocks/.editorconfig rename to mods/moreblocks/.editorconfig diff --git a/moreblocks/.luacheckrc b/mods/moreblocks/.luacheckrc similarity index 100% rename from moreblocks/.luacheckrc rename to mods/moreblocks/.luacheckrc diff --git a/moreblocks/.pre-commit-config.yaml b/mods/moreblocks/.pre-commit-config.yaml similarity index 100% rename from moreblocks/.pre-commit-config.yaml rename to mods/moreblocks/.pre-commit-config.yaml diff --git a/moreblocks/CHANGELOG.md b/mods/moreblocks/CHANGELOG.md similarity index 100% rename from moreblocks/CHANGELOG.md rename to mods/moreblocks/CHANGELOG.md diff --git a/moreblocks/CONTRIBUTING.md b/mods/moreblocks/CONTRIBUTING.md similarity index 100% rename from moreblocks/CONTRIBUTING.md rename to mods/moreblocks/CONTRIBUTING.md diff --git a/moreblocks/LICENSE.md b/mods/moreblocks/LICENSE.md similarity index 100% rename from moreblocks/LICENSE.md rename to mods/moreblocks/LICENSE.md diff --git a/moreblocks/README.md b/mods/moreblocks/README.md similarity index 100% rename from moreblocks/README.md rename to mods/moreblocks/README.md diff --git a/moreblocks/aliases.lua b/mods/moreblocks/aliases.lua similarity index 100% rename from moreblocks/aliases.lua rename to mods/moreblocks/aliases.lua diff --git a/moreblocks/circular_saw.lua b/mods/moreblocks/circular_saw.lua similarity index 100% rename from moreblocks/circular_saw.lua rename to mods/moreblocks/circular_saw.lua diff --git a/mods/moreblocks/config.lua b/mods/moreblocks/config.lua new file mode 100644 index 00000000..5a9c72c8 --- /dev/null +++ b/mods/moreblocks/config.lua @@ -0,0 +1,29 @@ +--[[ +More Blocks: configuration handling + +Copyright © 2011-2020 Hugo Locurcio and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +moreblocks.config = {} + +local function getbool_default(setting, default) + local value = minetest.settings:get_bool(setting) + if value == nil then + value = default + end + return value +end + +local function setting(settingtype, name, default) + if settingtype == "bool" then + moreblocks.config[name] = + getbool_default("moreblocks." .. name, default) + else + moreblocks.config[name] = + minetest.settings:get("moreblocks." .. name) or default + end +end + +-- Show stairs/slabs/panels/microblocks in creative inventory (true or false): +setting("bool", "stairsplus_in_creative_inventory", true) diff --git a/moreblocks/crafting.lua b/mods/moreblocks/crafting.lua similarity index 100% rename from moreblocks/crafting.lua rename to mods/moreblocks/crafting.lua diff --git a/moreblocks/init.lua b/mods/moreblocks/init.lua similarity index 100% rename from moreblocks/init.lua rename to mods/moreblocks/init.lua diff --git a/moreblocks/intllib.lua b/mods/moreblocks/intllib.lua similarity index 100% rename from moreblocks/intllib.lua rename to mods/moreblocks/intllib.lua diff --git a/moreblocks/locale/de.po b/mods/moreblocks/locale/de.po similarity index 100% rename from moreblocks/locale/de.po rename to mods/moreblocks/locale/de.po diff --git a/moreblocks/locale/es.po b/mods/moreblocks/locale/es.po similarity index 100% rename from moreblocks/locale/es.po rename to mods/moreblocks/locale/es.po diff --git a/moreblocks/locale/fr.po b/mods/moreblocks/locale/fr.po similarity index 100% rename from moreblocks/locale/fr.po rename to mods/moreblocks/locale/fr.po diff --git a/moreblocks/locale/it.po b/mods/moreblocks/locale/it.po similarity index 100% rename from moreblocks/locale/it.po rename to mods/moreblocks/locale/it.po diff --git a/moreblocks/locale/pl.po b/mods/moreblocks/locale/pl.po similarity index 100% rename from moreblocks/locale/pl.po rename to mods/moreblocks/locale/pl.po diff --git a/moreblocks/locale/ru.po b/mods/moreblocks/locale/ru.po similarity index 100% rename from moreblocks/locale/ru.po rename to mods/moreblocks/locale/ru.po diff --git a/moreblocks/locale/template.pot b/mods/moreblocks/locale/template.pot similarity index 100% rename from moreblocks/locale/template.pot rename to mods/moreblocks/locale/template.pot diff --git a/moreblocks/locale/zh_CN.po b/mods/moreblocks/locale/zh_CN.po similarity index 100% rename from moreblocks/locale/zh_CN.po rename to mods/moreblocks/locale/zh_CN.po diff --git a/moreblocks/locale/zh_TW.po b/mods/moreblocks/locale/zh_TW.po similarity index 100% rename from moreblocks/locale/zh_TW.po rename to mods/moreblocks/locale/zh_TW.po diff --git a/moreblocks/mod.conf b/mods/moreblocks/mod.conf similarity index 100% rename from moreblocks/mod.conf rename to mods/moreblocks/mod.conf diff --git a/moreblocks/models/moreblocks_slope.obj b/mods/moreblocks/models/moreblocks_slope.obj similarity index 100% rename from moreblocks/models/moreblocks_slope.obj rename to mods/moreblocks/models/moreblocks_slope.obj diff --git a/moreblocks/models/moreblocks_slope_cut.obj b/mods/moreblocks/models/moreblocks_slope_cut.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_cut.obj rename to mods/moreblocks/models/moreblocks_slope_cut.obj diff --git a/moreblocks/models/moreblocks_slope_half.obj b/mods/moreblocks/models/moreblocks_slope_half.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_half.obj rename to mods/moreblocks/models/moreblocks_slope_half.obj diff --git a/moreblocks/models/moreblocks_slope_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_half_raised.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_half_raised.obj rename to mods/moreblocks/models/moreblocks_slope_half_raised.obj diff --git a/moreblocks/models/moreblocks_slope_inner.obj b/mods/moreblocks/models/moreblocks_slope_inner.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_inner.obj rename to mods/moreblocks/models/moreblocks_slope_inner.obj diff --git a/moreblocks/models/moreblocks_slope_inner_cut.obj b/mods/moreblocks/models/moreblocks_slope_inner_cut.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_inner_cut.obj rename to mods/moreblocks/models/moreblocks_slope_inner_cut.obj diff --git a/moreblocks/models/moreblocks_slope_inner_cut_half.obj b/mods/moreblocks/models/moreblocks_slope_inner_cut_half.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_inner_cut_half.obj rename to mods/moreblocks/models/moreblocks_slope_inner_cut_half.obj diff --git a/moreblocks/models/moreblocks_slope_inner_cut_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_inner_cut_half_raised.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_inner_cut_half_raised.obj rename to mods/moreblocks/models/moreblocks_slope_inner_cut_half_raised.obj diff --git a/moreblocks/models/moreblocks_slope_inner_half.obj b/mods/moreblocks/models/moreblocks_slope_inner_half.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_inner_half.obj rename to mods/moreblocks/models/moreblocks_slope_inner_half.obj diff --git a/moreblocks/models/moreblocks_slope_inner_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_inner_half_raised.obj rename to mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj diff --git a/moreblocks/models/moreblocks_slope_outer.obj b/mods/moreblocks/models/moreblocks_slope_outer.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_outer.obj rename to mods/moreblocks/models/moreblocks_slope_outer.obj diff --git a/moreblocks/models/moreblocks_slope_outer_cut.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_outer_cut.obj rename to mods/moreblocks/models/moreblocks_slope_outer_cut.obj diff --git a/moreblocks/models/moreblocks_slope_outer_cut_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_outer_cut_half.obj rename to mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj diff --git a/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj rename to mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj diff --git a/moreblocks/models/moreblocks_slope_outer_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_half.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_outer_half.obj rename to mods/moreblocks/models/moreblocks_slope_outer_half.obj diff --git a/moreblocks/models/moreblocks_slope_outer_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj similarity index 100% rename from moreblocks/models/moreblocks_slope_outer_half_raised.obj rename to mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj diff --git a/moreblocks/nodes.lua b/mods/moreblocks/nodes.lua similarity index 100% rename from moreblocks/nodes.lua rename to mods/moreblocks/nodes.lua diff --git a/moreblocks/ownership.lua b/mods/moreblocks/ownership.lua similarity index 100% rename from moreblocks/ownership.lua rename to mods/moreblocks/ownership.lua diff --git a/moreblocks/redefinitions.lua b/mods/moreblocks/redefinitions.lua similarity index 100% rename from moreblocks/redefinitions.lua rename to mods/moreblocks/redefinitions.lua diff --git a/mods/moreblocks/settingtypes.txt b/mods/moreblocks/settingtypes.txt new file mode 100644 index 00000000..c52286eb --- /dev/null +++ b/mods/moreblocks/settingtypes.txt @@ -0,0 +1,3 @@ +# If enabled, Stairs+ nodes will be displayed in the inventory when playing in creative mode. +# Disabling this can speed up loading times for clients as fewer nodes need to be registered in the creative inventory. +moreblocks.stairsplus_in_creative_inventory (Display Stairs+ nodes in creative inventory) bool true diff --git a/moreblocks/stairsplus/API.md b/mods/moreblocks/stairsplus/API.md similarity index 100% rename from moreblocks/stairsplus/API.md rename to mods/moreblocks/stairsplus/API.md diff --git a/moreblocks/stairsplus/common.lua b/mods/moreblocks/stairsplus/common.lua similarity index 100% rename from moreblocks/stairsplus/common.lua rename to mods/moreblocks/stairsplus/common.lua diff --git a/moreblocks/stairsplus/custom.lua b/mods/moreblocks/stairsplus/custom.lua similarity index 100% rename from moreblocks/stairsplus/custom.lua rename to mods/moreblocks/stairsplus/custom.lua diff --git a/moreblocks/stairsplus/defs.lua b/mods/moreblocks/stairsplus/defs.lua similarity index 100% rename from moreblocks/stairsplus/defs.lua rename to mods/moreblocks/stairsplus/defs.lua diff --git a/moreblocks/stairsplus/init.lua b/mods/moreblocks/stairsplus/init.lua similarity index 100% rename from moreblocks/stairsplus/init.lua rename to mods/moreblocks/stairsplus/init.lua diff --git a/moreblocks/stairsplus/microblocks.lua b/mods/moreblocks/stairsplus/microblocks.lua similarity index 100% rename from moreblocks/stairsplus/microblocks.lua rename to mods/moreblocks/stairsplus/microblocks.lua diff --git a/moreblocks/stairsplus/panels.lua b/mods/moreblocks/stairsplus/panels.lua similarity index 100% rename from moreblocks/stairsplus/panels.lua rename to mods/moreblocks/stairsplus/panels.lua diff --git a/moreblocks/stairsplus/recipes.lua b/mods/moreblocks/stairsplus/recipes.lua similarity index 100% rename from moreblocks/stairsplus/recipes.lua rename to mods/moreblocks/stairsplus/recipes.lua diff --git a/moreblocks/stairsplus/registrations.lua b/mods/moreblocks/stairsplus/registrations.lua similarity index 100% rename from moreblocks/stairsplus/registrations.lua rename to mods/moreblocks/stairsplus/registrations.lua diff --git a/moreblocks/stairsplus/slabs.lua b/mods/moreblocks/stairsplus/slabs.lua similarity index 100% rename from moreblocks/stairsplus/slabs.lua rename to mods/moreblocks/stairsplus/slabs.lua diff --git a/moreblocks/stairsplus/slopes.lua b/mods/moreblocks/stairsplus/slopes.lua similarity index 100% rename from moreblocks/stairsplus/slopes.lua rename to mods/moreblocks/stairsplus/slopes.lua diff --git a/moreblocks/stairsplus/stairs.lua b/mods/moreblocks/stairsplus/stairs.lua similarity index 100% rename from moreblocks/stairsplus/stairs.lua rename to mods/moreblocks/stairsplus/stairs.lua diff --git a/moreblocks/textures/moreblocks_cactus_brick.png b/mods/moreblocks/textures/moreblocks_cactus_brick.png similarity index 100% rename from moreblocks/textures/moreblocks_cactus_brick.png rename to mods/moreblocks/textures/moreblocks_cactus_brick.png diff --git a/moreblocks/textures/moreblocks_cactus_checker.png b/mods/moreblocks/textures/moreblocks_cactus_checker.png similarity index 100% rename from moreblocks/textures/moreblocks_cactus_checker.png rename to mods/moreblocks/textures/moreblocks_cactus_checker.png diff --git a/moreblocks/textures/moreblocks_checker_stone_tile.png b/mods/moreblocks/textures/moreblocks_checker_stone_tile.png similarity index 100% rename from moreblocks/textures/moreblocks_checker_stone_tile.png rename to mods/moreblocks/textures/moreblocks_checker_stone_tile.png diff --git a/moreblocks/textures/moreblocks_circle_stone_bricks.png b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png similarity index 100% rename from moreblocks/textures/moreblocks_circle_stone_bricks.png rename to mods/moreblocks/textures/moreblocks_circle_stone_bricks.png diff --git a/moreblocks/textures/moreblocks_circular_saw_bottom.png b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png similarity index 100% rename from moreblocks/textures/moreblocks_circular_saw_bottom.png rename to mods/moreblocks/textures/moreblocks_circular_saw_bottom.png diff --git a/moreblocks/textures/moreblocks_circular_saw_side.png b/mods/moreblocks/textures/moreblocks_circular_saw_side.png similarity index 100% rename from moreblocks/textures/moreblocks_circular_saw_side.png rename to mods/moreblocks/textures/moreblocks_circular_saw_side.png diff --git a/moreblocks/textures/moreblocks_circular_saw_top.png b/mods/moreblocks/textures/moreblocks_circular_saw_top.png similarity index 100% rename from moreblocks/textures/moreblocks_circular_saw_top.png rename to mods/moreblocks/textures/moreblocks_circular_saw_top.png diff --git a/moreblocks/textures/moreblocks_clean_glass.png b/mods/moreblocks/textures/moreblocks_clean_glass.png similarity index 100% rename from moreblocks/textures/moreblocks_clean_glass.png rename to mods/moreblocks/textures/moreblocks_clean_glass.png diff --git a/moreblocks/textures/moreblocks_clean_glass_detail.png b/mods/moreblocks/textures/moreblocks_clean_glass_detail.png similarity index 100% rename from moreblocks/textures/moreblocks_clean_glass_detail.png rename to mods/moreblocks/textures/moreblocks_clean_glass_detail.png diff --git a/moreblocks/textures/moreblocks_coal_checker.png b/mods/moreblocks/textures/moreblocks_coal_checker.png similarity index 100% rename from moreblocks/textures/moreblocks_coal_checker.png rename to mods/moreblocks/textures/moreblocks_coal_checker.png diff --git a/moreblocks/textures/moreblocks_coal_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_coal_glass_stairsplus.png rename to mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png diff --git a/moreblocks/textures/moreblocks_coal_stone.png b/mods/moreblocks/textures/moreblocks_coal_stone.png similarity index 100% rename from moreblocks/textures/moreblocks_coal_stone.png rename to mods/moreblocks/textures/moreblocks_coal_stone.png diff --git a/moreblocks/textures/moreblocks_coal_stone_bricks.png b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png similarity index 100% rename from moreblocks/textures/moreblocks_coal_stone_bricks.png rename to mods/moreblocks/textures/moreblocks_coal_stone_bricks.png diff --git a/moreblocks/textures/moreblocks_cobble_compressed.png b/mods/moreblocks/textures/moreblocks_cobble_compressed.png similarity index 100% rename from moreblocks/textures/moreblocks_cobble_compressed.png rename to mods/moreblocks/textures/moreblocks_cobble_compressed.png diff --git a/moreblocks/textures/moreblocks_copperpatina.png b/mods/moreblocks/textures/moreblocks_copperpatina.png similarity index 100% rename from moreblocks/textures/moreblocks_copperpatina.png rename to mods/moreblocks/textures/moreblocks_copperpatina.png diff --git a/moreblocks/textures/moreblocks_desert_cobble_compressed.png b/mods/moreblocks/textures/moreblocks_desert_cobble_compressed.png similarity index 100% rename from moreblocks/textures/moreblocks_desert_cobble_compressed.png rename to mods/moreblocks/textures/moreblocks_desert_cobble_compressed.png diff --git a/moreblocks/textures/moreblocks_dirt_compressed.png b/mods/moreblocks/textures/moreblocks_dirt_compressed.png similarity index 100% rename from moreblocks/textures/moreblocks_dirt_compressed.png rename to mods/moreblocks/textures/moreblocks_dirt_compressed.png diff --git a/moreblocks/textures/moreblocks_empty_shelf.png b/mods/moreblocks/textures/moreblocks_empty_shelf.png similarity index 100% rename from moreblocks/textures/moreblocks_empty_shelf.png rename to mods/moreblocks/textures/moreblocks_empty_shelf.png diff --git a/moreblocks/textures/moreblocks_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_glass_stairsplus.png rename to mods/moreblocks/textures/moreblocks_glass_stairsplus.png diff --git a/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_glow_glass_stairsplus.png rename to mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png diff --git a/moreblocks/textures/moreblocks_grey_bricks.png b/mods/moreblocks/textures/moreblocks_grey_bricks.png similarity index 100% rename from moreblocks/textures/moreblocks_grey_bricks.png rename to mods/moreblocks/textures/moreblocks_grey_bricks.png diff --git a/moreblocks/textures/moreblocks_iron_checker.png b/mods/moreblocks/textures/moreblocks_iron_checker.png similarity index 100% rename from moreblocks/textures/moreblocks_iron_checker.png rename to mods/moreblocks/textures/moreblocks_iron_checker.png diff --git a/moreblocks/textures/moreblocks_iron_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_iron_glass_stairsplus.png rename to mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png diff --git a/moreblocks/textures/moreblocks_iron_stone.png b/mods/moreblocks/textures/moreblocks_iron_stone.png similarity index 100% rename from moreblocks/textures/moreblocks_iron_stone.png rename to mods/moreblocks/textures/moreblocks_iron_stone.png diff --git a/moreblocks/textures/moreblocks_iron_stone_bricks.png b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png similarity index 100% rename from moreblocks/textures/moreblocks_iron_stone_bricks.png rename to mods/moreblocks/textures/moreblocks_iron_stone_bricks.png diff --git a/moreblocks/textures/moreblocks_junglestick.png b/mods/moreblocks/textures/moreblocks_junglestick.png similarity index 100% rename from moreblocks/textures/moreblocks_junglestick.png rename to mods/moreblocks/textures/moreblocks_junglestick.png diff --git a/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png rename to mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png diff --git a/moreblocks/textures/moreblocks_plankstone.png b/mods/moreblocks/textures/moreblocks_plankstone.png similarity index 100% rename from moreblocks/textures/moreblocks_plankstone.png rename to mods/moreblocks/textures/moreblocks_plankstone.png diff --git a/moreblocks/textures/moreblocks_plankstone_2.png b/mods/moreblocks/textures/moreblocks_plankstone_2.png similarity index 100% rename from moreblocks/textures/moreblocks_plankstone_2.png rename to mods/moreblocks/textures/moreblocks_plankstone_2.png diff --git a/moreblocks/textures/moreblocks_rope.png b/mods/moreblocks/textures/moreblocks_rope.png similarity index 100% rename from moreblocks/textures/moreblocks_rope.png rename to mods/moreblocks/textures/moreblocks_rope.png diff --git a/moreblocks/textures/moreblocks_split_stone_tile.png b/mods/moreblocks/textures/moreblocks_split_stone_tile.png similarity index 100% rename from moreblocks/textures/moreblocks_split_stone_tile.png rename to mods/moreblocks/textures/moreblocks_split_stone_tile.png diff --git a/moreblocks/textures/moreblocks_split_stone_tile_top.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png similarity index 100% rename from moreblocks/textures/moreblocks_split_stone_tile_top.png rename to mods/moreblocks/textures/moreblocks_split_stone_tile_top.png diff --git a/moreblocks/textures/moreblocks_stone_tile.png b/mods/moreblocks/textures/moreblocks_stone_tile.png similarity index 100% rename from moreblocks/textures/moreblocks_stone_tile.png rename to mods/moreblocks/textures/moreblocks_stone_tile.png diff --git a/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png rename to mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png diff --git a/moreblocks/textures/moreblocks_sweeper.png b/mods/moreblocks/textures/moreblocks_sweeper.png similarity index 100% rename from moreblocks/textures/moreblocks_sweeper.png rename to mods/moreblocks/textures/moreblocks_sweeper.png diff --git a/moreblocks/textures/moreblocks_tar.png b/mods/moreblocks/textures/moreblocks_tar.png similarity index 100% rename from moreblocks/textures/moreblocks_tar.png rename to mods/moreblocks/textures/moreblocks_tar.png diff --git a/moreblocks/textures/moreblocks_trap_box.png b/mods/moreblocks/textures/moreblocks_trap_box.png similarity index 100% rename from moreblocks/textures/moreblocks_trap_box.png rename to mods/moreblocks/textures/moreblocks_trap_box.png diff --git a/moreblocks/textures/moreblocks_trap_box_glass.png b/mods/moreblocks/textures/moreblocks_trap_box_glass.png similarity index 100% rename from moreblocks/textures/moreblocks_trap_box_glass.png rename to mods/moreblocks/textures/moreblocks_trap_box_glass.png diff --git a/moreblocks/textures/moreblocks_tree_stairsplus.png b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png similarity index 100% rename from moreblocks/textures/moreblocks_tree_stairsplus.png rename to mods/moreblocks/textures/moreblocks_tree_stairsplus.png diff --git a/moreblocks/textures/moreblocks_wood_tile.png b/mods/moreblocks/textures/moreblocks_wood_tile.png similarity index 100% rename from moreblocks/textures/moreblocks_wood_tile.png rename to mods/moreblocks/textures/moreblocks_wood_tile.png diff --git a/moreblocks/textures/moreblocks_wood_tile_center.png b/mods/moreblocks/textures/moreblocks_wood_tile_center.png similarity index 100% rename from moreblocks/textures/moreblocks_wood_tile_center.png rename to mods/moreblocks/textures/moreblocks_wood_tile_center.png diff --git a/moreblocks/textures/moreblocks_wood_tile_full.png b/mods/moreblocks/textures/moreblocks_wood_tile_full.png similarity index 100% rename from moreblocks/textures/moreblocks_wood_tile_full.png rename to mods/moreblocks/textures/moreblocks_wood_tile_full.png diff --git a/moreblocks/textures/moreblocks_wood_tile_offset.png b/mods/moreblocks/textures/moreblocks_wood_tile_offset.png similarity index 100% rename from moreblocks/textures/moreblocks_wood_tile_offset.png rename to mods/moreblocks/textures/moreblocks_wood_tile_offset.png diff --git a/moreores/.editorconfig b/mods/moreores/.editorconfig similarity index 100% rename from moreores/.editorconfig rename to mods/moreores/.editorconfig diff --git a/moreores/.luacheckrc b/mods/moreores/.luacheckrc similarity index 100% rename from moreores/.luacheckrc rename to mods/moreores/.luacheckrc diff --git a/moreores/.pre-commit-config.yaml b/mods/moreores/.pre-commit-config.yaml similarity index 100% rename from moreores/.pre-commit-config.yaml rename to mods/moreores/.pre-commit-config.yaml diff --git a/moreores/.travis.yml b/mods/moreores/.travis.yml similarity index 100% rename from moreores/.travis.yml rename to mods/moreores/.travis.yml diff --git a/moreores/CHANGELOG.md b/mods/moreores/CHANGELOG.md similarity index 100% rename from moreores/CHANGELOG.md rename to mods/moreores/CHANGELOG.md diff --git a/moreores/CONTRIBUTING.md b/mods/moreores/CONTRIBUTING.md similarity index 100% rename from moreores/CONTRIBUTING.md rename to mods/moreores/CONTRIBUTING.md diff --git a/moreores/LICENSE.md b/mods/moreores/LICENSE.md similarity index 100% rename from moreores/LICENSE.md rename to mods/moreores/LICENSE.md diff --git a/moreores/README.md b/mods/moreores/README.md similarity index 100% rename from moreores/README.md rename to mods/moreores/README.md diff --git a/moreores/_config.txt b/mods/moreores/_config.txt similarity index 100% rename from moreores/_config.txt rename to mods/moreores/_config.txt diff --git a/moreores/init.lua b/mods/moreores/init.lua similarity index 100% rename from moreores/init.lua rename to mods/moreores/init.lua diff --git a/moreores/locale/moreores.de.tr b/mods/moreores/locale/moreores.de.tr similarity index 100% rename from moreores/locale/moreores.de.tr rename to mods/moreores/locale/moreores.de.tr diff --git a/moreores/locale/moreores.en.tr b/mods/moreores/locale/moreores.en.tr similarity index 100% rename from moreores/locale/moreores.en.tr rename to mods/moreores/locale/moreores.en.tr diff --git a/moreores/locale/moreores.es.tr b/mods/moreores/locale/moreores.es.tr similarity index 100% rename from moreores/locale/moreores.es.tr rename to mods/moreores/locale/moreores.es.tr diff --git a/moreores/locale/moreores.fr.tr b/mods/moreores/locale/moreores.fr.tr similarity index 100% rename from moreores/locale/moreores.fr.tr rename to mods/moreores/locale/moreores.fr.tr diff --git a/moreores/locale/moreores.hu.tr b/mods/moreores/locale/moreores.hu.tr similarity index 100% rename from moreores/locale/moreores.hu.tr rename to mods/moreores/locale/moreores.hu.tr diff --git a/moreores/locale/moreores.it.tr b/mods/moreores/locale/moreores.it.tr similarity index 100% rename from moreores/locale/moreores.it.tr rename to mods/moreores/locale/moreores.it.tr diff --git a/moreores/locale/moreores.nl.tr b/mods/moreores/locale/moreores.nl.tr similarity index 100% rename from moreores/locale/moreores.nl.tr rename to mods/moreores/locale/moreores.nl.tr diff --git a/moreores/locale/moreores.pl.tr b/mods/moreores/locale/moreores.pl.tr similarity index 100% rename from moreores/locale/moreores.pl.tr rename to mods/moreores/locale/moreores.pl.tr diff --git a/moreores/locale/moreores.pt_br.tr b/mods/moreores/locale/moreores.pt_br.tr similarity index 100% rename from moreores/locale/moreores.pt_br.tr rename to mods/moreores/locale/moreores.pt_br.tr diff --git a/moreores/locale/moreores.tr.tr b/mods/moreores/locale/moreores.tr.tr similarity index 100% rename from moreores/locale/moreores.tr.tr rename to mods/moreores/locale/moreores.tr.tr diff --git a/moreores/mg.lua b/mods/moreores/mg.lua similarity index 100% rename from moreores/mg.lua rename to mods/moreores/mg.lua diff --git a/moreores/mod.conf b/mods/moreores/mod.conf similarity index 100% rename from moreores/mod.conf rename to mods/moreores/mod.conf diff --git a/moreores/textures/moreores_copper_rail.png b/mods/moreores/textures/moreores_copper_rail.png similarity index 100% rename from moreores/textures/moreores_copper_rail.png rename to mods/moreores/textures/moreores_copper_rail.png diff --git a/moreores/textures/moreores_copper_rail_crossing.png b/mods/moreores/textures/moreores_copper_rail_crossing.png similarity index 100% rename from moreores/textures/moreores_copper_rail_crossing.png rename to mods/moreores/textures/moreores_copper_rail_crossing.png diff --git a/moreores/textures/moreores_copper_rail_curved.png b/mods/moreores/textures/moreores_copper_rail_curved.png similarity index 100% rename from moreores/textures/moreores_copper_rail_curved.png rename to mods/moreores/textures/moreores_copper_rail_curved.png diff --git a/moreores/textures/moreores_copper_rail_t_junction.png b/mods/moreores/textures/moreores_copper_rail_t_junction.png similarity index 100% rename from moreores/textures/moreores_copper_rail_t_junction.png rename to mods/moreores/textures/moreores_copper_rail_t_junction.png diff --git a/moreores/textures/moreores_mineral_mithril.png b/mods/moreores/textures/moreores_mineral_mithril.png similarity index 100% rename from moreores/textures/moreores_mineral_mithril.png rename to mods/moreores/textures/moreores_mineral_mithril.png diff --git a/moreores/textures/moreores_mineral_silver.png b/mods/moreores/textures/moreores_mineral_silver.png similarity index 100% rename from moreores/textures/moreores_mineral_silver.png rename to mods/moreores/textures/moreores_mineral_silver.png diff --git a/moreores/textures/moreores_mineral_tin.png b/mods/moreores/textures/moreores_mineral_tin.png similarity index 100% rename from moreores/textures/moreores_mineral_tin.png rename to mods/moreores/textures/moreores_mineral_tin.png diff --git a/moreores/textures/moreores_mithril_block.png b/mods/moreores/textures/moreores_mithril_block.png similarity index 100% rename from moreores/textures/moreores_mithril_block.png rename to mods/moreores/textures/moreores_mithril_block.png diff --git a/moreores/textures/moreores_mithril_ingot.png b/mods/moreores/textures/moreores_mithril_ingot.png similarity index 100% rename from moreores/textures/moreores_mithril_ingot.png rename to mods/moreores/textures/moreores_mithril_ingot.png diff --git a/moreores/textures/moreores_mithril_lump.png b/mods/moreores/textures/moreores_mithril_lump.png similarity index 100% rename from moreores/textures/moreores_mithril_lump.png rename to mods/moreores/textures/moreores_mithril_lump.png diff --git a/moreores/textures/moreores_silver_block.png b/mods/moreores/textures/moreores_silver_block.png similarity index 100% rename from moreores/textures/moreores_silver_block.png rename to mods/moreores/textures/moreores_silver_block.png diff --git a/moreores/textures/moreores_silver_ingot.png b/mods/moreores/textures/moreores_silver_ingot.png similarity index 100% rename from moreores/textures/moreores_silver_ingot.png rename to mods/moreores/textures/moreores_silver_ingot.png diff --git a/moreores/textures/moreores_silver_lump.png b/mods/moreores/textures/moreores_silver_lump.png similarity index 100% rename from moreores/textures/moreores_silver_lump.png rename to mods/moreores/textures/moreores_silver_lump.png diff --git a/moreores/textures/moreores_tin_block.png b/mods/moreores/textures/moreores_tin_block.png similarity index 100% rename from moreores/textures/moreores_tin_block.png rename to mods/moreores/textures/moreores_tin_block.png diff --git a/moreores/textures/moreores_tin_ingot.png b/mods/moreores/textures/moreores_tin_ingot.png similarity index 100% rename from moreores/textures/moreores_tin_ingot.png rename to mods/moreores/textures/moreores_tin_ingot.png diff --git a/mods/moreores/textures/moreores_tin_lump.png b/mods/moreores/textures/moreores_tin_lump.png new file mode 100644 index 00000000..72bd339b Binary files /dev/null and b/mods/moreores/textures/moreores_tin_lump.png differ diff --git a/moreores/textures/moreores_tool_mithrilaxe.png b/mods/moreores/textures/moreores_tool_mithrilaxe.png similarity index 100% rename from moreores/textures/moreores_tool_mithrilaxe.png rename to mods/moreores/textures/moreores_tool_mithrilaxe.png diff --git a/moreores/textures/moreores_tool_mithrilhoe.png b/mods/moreores/textures/moreores_tool_mithrilhoe.png similarity index 100% rename from moreores/textures/moreores_tool_mithrilhoe.png rename to mods/moreores/textures/moreores_tool_mithrilhoe.png diff --git a/moreores/textures/moreores_tool_mithrilpick.png b/mods/moreores/textures/moreores_tool_mithrilpick.png similarity index 100% rename from moreores/textures/moreores_tool_mithrilpick.png rename to mods/moreores/textures/moreores_tool_mithrilpick.png diff --git a/moreores/textures/moreores_tool_mithrilshovel.png b/mods/moreores/textures/moreores_tool_mithrilshovel.png similarity index 100% rename from moreores/textures/moreores_tool_mithrilshovel.png rename to mods/moreores/textures/moreores_tool_mithrilshovel.png diff --git a/moreores/textures/moreores_tool_mithrilsword.png b/mods/moreores/textures/moreores_tool_mithrilsword.png similarity index 100% rename from moreores/textures/moreores_tool_mithrilsword.png rename to mods/moreores/textures/moreores_tool_mithrilsword.png diff --git a/moreores/textures/moreores_tool_silveraxe.png b/mods/moreores/textures/moreores_tool_silveraxe.png similarity index 100% rename from moreores/textures/moreores_tool_silveraxe.png rename to mods/moreores/textures/moreores_tool_silveraxe.png diff --git a/moreores/textures/moreores_tool_silverhoe.png b/mods/moreores/textures/moreores_tool_silverhoe.png similarity index 100% rename from moreores/textures/moreores_tool_silverhoe.png rename to mods/moreores/textures/moreores_tool_silverhoe.png diff --git a/moreores/textures/moreores_tool_silverpick.png b/mods/moreores/textures/moreores_tool_silverpick.png similarity index 100% rename from moreores/textures/moreores_tool_silverpick.png rename to mods/moreores/textures/moreores_tool_silverpick.png diff --git a/moreores/textures/moreores_tool_silvershovel.png b/mods/moreores/textures/moreores_tool_silvershovel.png similarity index 100% rename from moreores/textures/moreores_tool_silvershovel.png rename to mods/moreores/textures/moreores_tool_silvershovel.png diff --git a/moreores/textures/moreores_tool_silversword.png b/mods/moreores/textures/moreores_tool_silversword.png similarity index 100% rename from moreores/textures/moreores_tool_silversword.png rename to mods/moreores/textures/moreores_tool_silversword.png diff --git a/moretrees/.luacheckrc b/mods/moretrees/.luacheckrc similarity index 100% rename from moretrees/.luacheckrc rename to mods/moretrees/.luacheckrc diff --git a/moretrees/LICENSE b/mods/moretrees/LICENSE similarity index 100% rename from moretrees/LICENSE rename to mods/moretrees/LICENSE diff --git a/moretrees/README.md b/mods/moretrees/README.md similarity index 100% rename from moretrees/README.md rename to mods/moretrees/README.md diff --git a/moretrees/biome_defs.lua b/mods/moretrees/biome_defs.lua similarity index 100% rename from moretrees/biome_defs.lua rename to mods/moretrees/biome_defs.lua diff --git a/moretrees/cocos_palm.lua b/mods/moretrees/cocos_palm.lua similarity index 100% rename from moretrees/cocos_palm.lua rename to mods/moretrees/cocos_palm.lua diff --git a/moretrees/crafts.lua b/mods/moretrees/crafts.lua similarity index 100% rename from moretrees/crafts.lua rename to mods/moretrees/crafts.lua diff --git a/moretrees/date_palm.lua b/mods/moretrees/date_palm.lua similarity index 100% rename from moretrees/date_palm.lua rename to mods/moretrees/date_palm.lua diff --git a/moretrees/default_settings.txt b/mods/moretrees/default_settings.txt similarity index 100% rename from moretrees/default_settings.txt rename to mods/moretrees/default_settings.txt diff --git a/moretrees/init.lua b/mods/moretrees/init.lua similarity index 100% rename from moretrees/init.lua rename to mods/moretrees/init.lua diff --git a/moretrees/locale/moretrees.de.tr b/mods/moretrees/locale/moretrees.de.tr similarity index 100% rename from moretrees/locale/moretrees.de.tr rename to mods/moretrees/locale/moretrees.de.tr diff --git a/moretrees/locale/moretrees.es.tr b/mods/moretrees/locale/moretrees.es.tr similarity index 100% rename from moretrees/locale/moretrees.es.tr rename to mods/moretrees/locale/moretrees.es.tr diff --git a/moretrees/locale/moretrees.fr.tr b/mods/moretrees/locale/moretrees.fr.tr similarity index 100% rename from moretrees/locale/moretrees.fr.tr rename to mods/moretrees/locale/moretrees.fr.tr diff --git a/moretrees/locale/template.txt b/mods/moretrees/locale/template.txt similarity index 100% rename from moretrees/locale/template.txt rename to mods/moretrees/locale/template.txt diff --git a/moretrees/mod.conf b/mods/moretrees/mod.conf similarity index 100% rename from moretrees/mod.conf rename to mods/moretrees/mod.conf diff --git a/moretrees/node_defs.lua b/mods/moretrees/node_defs.lua similarity index 100% rename from moretrees/node_defs.lua rename to mods/moretrees/node_defs.lua diff --git a/moretrees/saplings.lua b/mods/moretrees/saplings.lua similarity index 100% rename from moretrees/saplings.lua rename to mods/moretrees/saplings.lua diff --git a/moretrees/screenshot.lua b/mods/moretrees/screenshot.lua similarity index 100% rename from moretrees/screenshot.lua rename to mods/moretrees/screenshot.lua diff --git a/moretrees/screenshot.png b/mods/moretrees/screenshot.png similarity index 100% rename from moretrees/screenshot.png rename to mods/moretrees/screenshot.png diff --git a/moretrees/textures/moretrees_acorn.png b/mods/moretrees/textures/moretrees_acorn.png similarity index 100% rename from moretrees/textures/moretrees_acorn.png rename to mods/moretrees/textures/moretrees_acorn.png diff --git a/moretrees/textures/moretrees_acorn_muffin.png b/mods/moretrees/textures/moretrees_acorn_muffin.png similarity index 100% rename from moretrees/textures/moretrees_acorn_muffin.png rename to mods/moretrees/textures/moretrees_acorn_muffin.png diff --git a/moretrees/textures/moretrees_acorn_muffin_batter.png b/mods/moretrees/textures/moretrees_acorn_muffin_batter.png similarity index 100% rename from moretrees/textures/moretrees_acorn_muffin_batter.png rename to mods/moretrees/textures/moretrees_acorn_muffin_batter.png diff --git a/moretrees/textures/moretrees_apple_tree_leaves.png b/mods/moretrees/textures/moretrees_apple_tree_leaves.png similarity index 100% rename from moretrees/textures/moretrees_apple_tree_leaves.png rename to mods/moretrees/textures/moretrees_apple_tree_leaves.png diff --git a/moretrees/textures/moretrees_apple_tree_sapling.png b/mods/moretrees/textures/moretrees_apple_tree_sapling.png similarity index 100% rename from moretrees/textures/moretrees_apple_tree_sapling.png rename to mods/moretrees/textures/moretrees_apple_tree_sapling.png diff --git a/moretrees/textures/moretrees_apple_tree_trunk.png b/mods/moretrees/textures/moretrees_apple_tree_trunk.png similarity index 100% rename from moretrees/textures/moretrees_apple_tree_trunk.png rename to mods/moretrees/textures/moretrees_apple_tree_trunk.png diff --git a/moretrees/textures/moretrees_apple_tree_trunk_top.png b/mods/moretrees/textures/moretrees_apple_tree_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_apple_tree_trunk_top.png rename to mods/moretrees/textures/moretrees_apple_tree_trunk_top.png diff --git a/moretrees/textures/moretrees_apple_tree_wood.png b/mods/moretrees/textures/moretrees_apple_tree_wood.png similarity index 100% rename from moretrees/textures/moretrees_apple_tree_wood.png rename to mods/moretrees/textures/moretrees_apple_tree_wood.png diff --git a/moretrees/textures/moretrees_beech_leaves.png b/mods/moretrees/textures/moretrees_beech_leaves.png similarity index 100% rename from moretrees/textures/moretrees_beech_leaves.png rename to mods/moretrees/textures/moretrees_beech_leaves.png diff --git a/moretrees/textures/moretrees_beech_sapling.png b/mods/moretrees/textures/moretrees_beech_sapling.png similarity index 100% rename from moretrees/textures/moretrees_beech_sapling.png rename to mods/moretrees/textures/moretrees_beech_sapling.png diff --git a/moretrees/textures/moretrees_beech_trunk.png b/mods/moretrees/textures/moretrees_beech_trunk.png similarity index 100% rename from moretrees/textures/moretrees_beech_trunk.png rename to mods/moretrees/textures/moretrees_beech_trunk.png diff --git a/moretrees/textures/moretrees_beech_trunk_top.png b/mods/moretrees/textures/moretrees_beech_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_beech_trunk_top.png rename to mods/moretrees/textures/moretrees_beech_trunk_top.png diff --git a/moretrees/textures/moretrees_beech_wood.png b/mods/moretrees/textures/moretrees_beech_wood.png similarity index 100% rename from moretrees/textures/moretrees_beech_wood.png rename to mods/moretrees/textures/moretrees_beech_wood.png diff --git a/moretrees/textures/moretrees_birch_leaves.png b/mods/moretrees/textures/moretrees_birch_leaves.png similarity index 100% rename from moretrees/textures/moretrees_birch_leaves.png rename to mods/moretrees/textures/moretrees_birch_leaves.png diff --git a/moretrees/textures/moretrees_birch_sapling.png b/mods/moretrees/textures/moretrees_birch_sapling.png similarity index 100% rename from moretrees/textures/moretrees_birch_sapling.png rename to mods/moretrees/textures/moretrees_birch_sapling.png diff --git a/moretrees/textures/moretrees_birch_trunk.png b/mods/moretrees/textures/moretrees_birch_trunk.png similarity index 100% rename from moretrees/textures/moretrees_birch_trunk.png rename to mods/moretrees/textures/moretrees_birch_trunk.png diff --git a/moretrees/textures/moretrees_birch_trunk_top.png b/mods/moretrees/textures/moretrees_birch_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_birch_trunk_top.png rename to mods/moretrees/textures/moretrees_birch_trunk_top.png diff --git a/moretrees/textures/moretrees_birch_wood.png b/mods/moretrees/textures/moretrees_birch_wood.png similarity index 100% rename from moretrees/textures/moretrees_birch_wood.png rename to mods/moretrees/textures/moretrees_birch_wood.png diff --git a/moretrees/textures/moretrees_cedar_cone.png b/mods/moretrees/textures/moretrees_cedar_cone.png similarity index 100% rename from moretrees/textures/moretrees_cedar_cone.png rename to mods/moretrees/textures/moretrees_cedar_cone.png diff --git a/moretrees/textures/moretrees_cedar_leaves.png b/mods/moretrees/textures/moretrees_cedar_leaves.png similarity index 100% rename from moretrees/textures/moretrees_cedar_leaves.png rename to mods/moretrees/textures/moretrees_cedar_leaves.png diff --git a/moretrees/textures/moretrees_cedar_nuts.png b/mods/moretrees/textures/moretrees_cedar_nuts.png similarity index 100% rename from moretrees/textures/moretrees_cedar_nuts.png rename to mods/moretrees/textures/moretrees_cedar_nuts.png diff --git a/moretrees/textures/moretrees_cedar_sapling.png b/mods/moretrees/textures/moretrees_cedar_sapling.png similarity index 100% rename from moretrees/textures/moretrees_cedar_sapling.png rename to mods/moretrees/textures/moretrees_cedar_sapling.png diff --git a/moretrees/textures/moretrees_cedar_trunk.png b/mods/moretrees/textures/moretrees_cedar_trunk.png similarity index 100% rename from moretrees/textures/moretrees_cedar_trunk.png rename to mods/moretrees/textures/moretrees_cedar_trunk.png diff --git a/moretrees/textures/moretrees_cedar_trunk_top.png b/mods/moretrees/textures/moretrees_cedar_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_cedar_trunk_top.png rename to mods/moretrees/textures/moretrees_cedar_trunk_top.png diff --git a/moretrees/textures/moretrees_cedar_wood.png b/mods/moretrees/textures/moretrees_cedar_wood.png similarity index 100% rename from moretrees/textures/moretrees_cedar_wood.png rename to mods/moretrees/textures/moretrees_cedar_wood.png diff --git a/moretrees/textures/moretrees_coconut.png b/mods/moretrees/textures/moretrees_coconut.png similarity index 100% rename from moretrees/textures/moretrees_coconut.png rename to mods/moretrees/textures/moretrees_coconut.png diff --git a/moretrees/textures/moretrees_coconut_0.png b/mods/moretrees/textures/moretrees_coconut_0.png similarity index 100% rename from moretrees/textures/moretrees_coconut_0.png rename to mods/moretrees/textures/moretrees_coconut_0.png diff --git a/moretrees/textures/moretrees_coconut_1.png b/mods/moretrees/textures/moretrees_coconut_1.png similarity index 100% rename from moretrees/textures/moretrees_coconut_1.png rename to mods/moretrees/textures/moretrees_coconut_1.png diff --git a/moretrees/textures/moretrees_coconut_2.png b/mods/moretrees/textures/moretrees_coconut_2.png similarity index 100% rename from moretrees/textures/moretrees_coconut_2.png rename to mods/moretrees/textures/moretrees_coconut_2.png diff --git a/moretrees/textures/moretrees_coconut_milk.png b/mods/moretrees/textures/moretrees_coconut_milk.png similarity index 100% rename from moretrees/textures/moretrees_coconut_milk.png rename to mods/moretrees/textures/moretrees_coconut_milk.png diff --git a/moretrees/textures/moretrees_coconut_milk_inv.png b/mods/moretrees/textures/moretrees_coconut_milk_inv.png similarity index 100% rename from moretrees/textures/moretrees_coconut_milk_inv.png rename to mods/moretrees/textures/moretrees_coconut_milk_inv.png diff --git a/moretrees/textures/moretrees_date.png b/mods/moretrees/textures/moretrees_date.png similarity index 100% rename from moretrees/textures/moretrees_date.png rename to mods/moretrees/textures/moretrees_date.png diff --git a/moretrees/textures/moretrees_date_nut_bar.png b/mods/moretrees/textures/moretrees_date_nut_bar.png similarity index 100% rename from moretrees/textures/moretrees_date_nut_bar.png rename to mods/moretrees/textures/moretrees_date_nut_bar.png diff --git a/moretrees/textures/moretrees_date_nut_batter.png b/mods/moretrees/textures/moretrees_date_nut_batter.png similarity index 100% rename from moretrees/textures/moretrees_date_nut_batter.png rename to mods/moretrees/textures/moretrees_date_nut_batter.png diff --git a/moretrees/textures/moretrees_date_nut_cake.png b/mods/moretrees/textures/moretrees_date_nut_cake.png similarity index 100% rename from moretrees/textures/moretrees_date_nut_cake.png rename to mods/moretrees/textures/moretrees_date_nut_cake.png diff --git a/moretrees/textures/moretrees_date_nut_snack.png b/mods/moretrees/textures/moretrees_date_nut_snack.png similarity index 100% rename from moretrees/textures/moretrees_date_nut_snack.png rename to mods/moretrees/textures/moretrees_date_nut_snack.png diff --git a/moretrees/textures/moretrees_date_palm_leaves.png b/mods/moretrees/textures/moretrees_date_palm_leaves.png similarity index 100% rename from moretrees/textures/moretrees_date_palm_leaves.png rename to mods/moretrees/textures/moretrees_date_palm_leaves.png diff --git a/moretrees/textures/moretrees_date_palm_sapling.png b/mods/moretrees/textures/moretrees_date_palm_sapling.png similarity index 100% rename from moretrees/textures/moretrees_date_palm_sapling.png rename to mods/moretrees/textures/moretrees_date_palm_sapling.png diff --git a/moretrees/textures/moretrees_date_palm_trunk.png b/mods/moretrees/textures/moretrees_date_palm_trunk.png similarity index 100% rename from moretrees/textures/moretrees_date_palm_trunk.png rename to mods/moretrees/textures/moretrees_date_palm_trunk.png diff --git a/moretrees/textures/moretrees_date_palm_trunk_top.png b/mods/moretrees/textures/moretrees_date_palm_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_date_palm_trunk_top.png rename to mods/moretrees/textures/moretrees_date_palm_trunk_top.png diff --git a/moretrees/textures/moretrees_date_palm_wood.png b/mods/moretrees/textures/moretrees_date_palm_wood.png similarity index 100% rename from moretrees/textures/moretrees_date_palm_wood.png rename to mods/moretrees/textures/moretrees_date_palm_wood.png diff --git a/moretrees/textures/moretrees_dates.png b/mods/moretrees/textures/moretrees_dates.png similarity index 100% rename from moretrees/textures/moretrees_dates.png rename to mods/moretrees/textures/moretrees_dates.png diff --git a/moretrees/textures/moretrees_dates_f0.png b/mods/moretrees/textures/moretrees_dates_f0.png similarity index 100% rename from moretrees/textures/moretrees_dates_f0.png rename to mods/moretrees/textures/moretrees_dates_f0.png diff --git a/moretrees/textures/moretrees_dates_f1.png b/mods/moretrees/textures/moretrees_dates_f1.png similarity index 100% rename from moretrees/textures/moretrees_dates_f1.png rename to mods/moretrees/textures/moretrees_dates_f1.png diff --git a/moretrees/textures/moretrees_dates_f2.png b/mods/moretrees/textures/moretrees_dates_f2.png similarity index 100% rename from moretrees/textures/moretrees_dates_f2.png rename to mods/moretrees/textures/moretrees_dates_f2.png diff --git a/moretrees/textures/moretrees_dates_f3.png b/mods/moretrees/textures/moretrees_dates_f3.png similarity index 100% rename from moretrees/textures/moretrees_dates_f3.png rename to mods/moretrees/textures/moretrees_dates_f3.png diff --git a/moretrees/textures/moretrees_dates_f4.png b/mods/moretrees/textures/moretrees_dates_f4.png similarity index 100% rename from moretrees/textures/moretrees_dates_f4.png rename to mods/moretrees/textures/moretrees_dates_f4.png diff --git a/moretrees/textures/moretrees_dates_fn.png b/mods/moretrees/textures/moretrees_dates_fn.png similarity index 100% rename from moretrees/textures/moretrees_dates_fn.png rename to mods/moretrees/textures/moretrees_dates_fn.png diff --git a/moretrees/textures/moretrees_dates_m0.png b/mods/moretrees/textures/moretrees_dates_m0.png similarity index 100% rename from moretrees/textures/moretrees_dates_m0.png rename to mods/moretrees/textures/moretrees_dates_m0.png diff --git a/moretrees/textures/moretrees_dates_n.png b/mods/moretrees/textures/moretrees_dates_n.png similarity index 100% rename from moretrees/textures/moretrees_dates_n.png rename to mods/moretrees/textures/moretrees_dates_n.png diff --git a/moretrees/textures/moretrees_fir_cone.png b/mods/moretrees/textures/moretrees_fir_cone.png similarity index 100% rename from moretrees/textures/moretrees_fir_cone.png rename to mods/moretrees/textures/moretrees_fir_cone.png diff --git a/moretrees/textures/moretrees_fir_leaves.png b/mods/moretrees/textures/moretrees_fir_leaves.png similarity index 100% rename from moretrees/textures/moretrees_fir_leaves.png rename to mods/moretrees/textures/moretrees_fir_leaves.png diff --git a/moretrees/textures/moretrees_fir_leaves_bright.png b/mods/moretrees/textures/moretrees_fir_leaves_bright.png similarity index 100% rename from moretrees/textures/moretrees_fir_leaves_bright.png rename to mods/moretrees/textures/moretrees_fir_leaves_bright.png diff --git a/moretrees/textures/moretrees_fir_nuts.png b/mods/moretrees/textures/moretrees_fir_nuts.png similarity index 100% rename from moretrees/textures/moretrees_fir_nuts.png rename to mods/moretrees/textures/moretrees_fir_nuts.png diff --git a/moretrees/textures/moretrees_fir_sapling.png b/mods/moretrees/textures/moretrees_fir_sapling.png similarity index 100% rename from moretrees/textures/moretrees_fir_sapling.png rename to mods/moretrees/textures/moretrees_fir_sapling.png diff --git a/moretrees/textures/moretrees_fir_trunk.png b/mods/moretrees/textures/moretrees_fir_trunk.png similarity index 100% rename from moretrees/textures/moretrees_fir_trunk.png rename to mods/moretrees/textures/moretrees_fir_trunk.png diff --git a/moretrees/textures/moretrees_fir_trunk_top.png b/mods/moretrees/textures/moretrees_fir_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_fir_trunk_top.png rename to mods/moretrees/textures/moretrees_fir_trunk_top.png diff --git a/moretrees/textures/moretrees_fir_wood.png b/mods/moretrees/textures/moretrees_fir_wood.png similarity index 100% rename from moretrees/textures/moretrees_fir_wood.png rename to mods/moretrees/textures/moretrees_fir_wood.png diff --git a/moretrees/textures/moretrees_jungletree_leaves_green.png b/mods/moretrees/textures/moretrees_jungletree_leaves_green.png similarity index 100% rename from moretrees/textures/moretrees_jungletree_leaves_green.png rename to mods/moretrees/textures/moretrees_jungletree_leaves_green.png diff --git a/moretrees/textures/moretrees_jungletree_leaves_red.png b/mods/moretrees/textures/moretrees_jungletree_leaves_red.png similarity index 100% rename from moretrees/textures/moretrees_jungletree_leaves_red.png rename to mods/moretrees/textures/moretrees_jungletree_leaves_red.png diff --git a/moretrees/textures/moretrees_jungletree_leaves_yellow.png b/mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png similarity index 100% rename from moretrees/textures/moretrees_jungletree_leaves_yellow.png rename to mods/moretrees/textures/moretrees_jungletree_leaves_yellow.png diff --git a/moretrees/textures/moretrees_oak_leaves.png b/mods/moretrees/textures/moretrees_oak_leaves.png similarity index 100% rename from moretrees/textures/moretrees_oak_leaves.png rename to mods/moretrees/textures/moretrees_oak_leaves.png diff --git a/moretrees/textures/moretrees_oak_sapling.png b/mods/moretrees/textures/moretrees_oak_sapling.png similarity index 100% rename from moretrees/textures/moretrees_oak_sapling.png rename to mods/moretrees/textures/moretrees_oak_sapling.png diff --git a/moretrees/textures/moretrees_oak_trunk.png b/mods/moretrees/textures/moretrees_oak_trunk.png similarity index 100% rename from moretrees/textures/moretrees_oak_trunk.png rename to mods/moretrees/textures/moretrees_oak_trunk.png diff --git a/moretrees/textures/moretrees_oak_trunk_top.png b/mods/moretrees/textures/moretrees_oak_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_oak_trunk_top.png rename to mods/moretrees/textures/moretrees_oak_trunk_top.png diff --git a/moretrees/textures/moretrees_oak_wood.png b/mods/moretrees/textures/moretrees_oak_wood.png similarity index 100% rename from moretrees/textures/moretrees_oak_wood.png rename to mods/moretrees/textures/moretrees_oak_wood.png diff --git a/moretrees/textures/moretrees_palm_leaves.png b/mods/moretrees/textures/moretrees_palm_leaves.png similarity index 100% rename from moretrees/textures/moretrees_palm_leaves.png rename to mods/moretrees/textures/moretrees_palm_leaves.png diff --git a/moretrees/textures/moretrees_palm_sapling.png b/mods/moretrees/textures/moretrees_palm_sapling.png similarity index 100% rename from moretrees/textures/moretrees_palm_sapling.png rename to mods/moretrees/textures/moretrees_palm_sapling.png diff --git a/moretrees/textures/moretrees_palm_trunk.png b/mods/moretrees/textures/moretrees_palm_trunk.png similarity index 100% rename from moretrees/textures/moretrees_palm_trunk.png rename to mods/moretrees/textures/moretrees_palm_trunk.png diff --git a/moretrees/textures/moretrees_palm_trunk_top.png b/mods/moretrees/textures/moretrees_palm_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_palm_trunk_top.png rename to mods/moretrees/textures/moretrees_palm_trunk_top.png diff --git a/moretrees/textures/moretrees_palm_wood.png b/mods/moretrees/textures/moretrees_palm_wood.png similarity index 100% rename from moretrees/textures/moretrees_palm_wood.png rename to mods/moretrees/textures/moretrees_palm_wood.png diff --git a/moretrees/textures/moretrees_poplar_leaves.png b/mods/moretrees/textures/moretrees_poplar_leaves.png similarity index 100% rename from moretrees/textures/moretrees_poplar_leaves.png rename to mods/moretrees/textures/moretrees_poplar_leaves.png diff --git a/moretrees/textures/moretrees_poplar_sapling.png b/mods/moretrees/textures/moretrees_poplar_sapling.png similarity index 100% rename from moretrees/textures/moretrees_poplar_sapling.png rename to mods/moretrees/textures/moretrees_poplar_sapling.png diff --git a/moretrees/textures/moretrees_poplar_small_sapling.png b/mods/moretrees/textures/moretrees_poplar_small_sapling.png similarity index 100% rename from moretrees/textures/moretrees_poplar_small_sapling.png rename to mods/moretrees/textures/moretrees_poplar_small_sapling.png diff --git a/moretrees/textures/moretrees_poplar_trunk-1.png b/mods/moretrees/textures/moretrees_poplar_trunk-1.png similarity index 100% rename from moretrees/textures/moretrees_poplar_trunk-1.png rename to mods/moretrees/textures/moretrees_poplar_trunk-1.png diff --git a/moretrees/textures/moretrees_poplar_trunk.png b/mods/moretrees/textures/moretrees_poplar_trunk.png similarity index 100% rename from moretrees/textures/moretrees_poplar_trunk.png rename to mods/moretrees/textures/moretrees_poplar_trunk.png diff --git a/moretrees/textures/moretrees_poplar_trunk_top.png b/mods/moretrees/textures/moretrees_poplar_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_poplar_trunk_top.png rename to mods/moretrees/textures/moretrees_poplar_trunk_top.png diff --git a/moretrees/textures/moretrees_poplar_wood.png b/mods/moretrees/textures/moretrees_poplar_wood.png similarity index 100% rename from moretrees/textures/moretrees_poplar_wood.png rename to mods/moretrees/textures/moretrees_poplar_wood.png diff --git a/moretrees/textures/moretrees_raw_coconut.png b/mods/moretrees/textures/moretrees_raw_coconut.png similarity index 100% rename from moretrees/textures/moretrees_raw_coconut.png rename to mods/moretrees/textures/moretrees_raw_coconut.png diff --git a/moretrees/textures/moretrees_rubber_tree_leaves.png b/mods/moretrees/textures/moretrees_rubber_tree_leaves.png similarity index 100% rename from moretrees/textures/moretrees_rubber_tree_leaves.png rename to mods/moretrees/textures/moretrees_rubber_tree_leaves.png diff --git a/moretrees/textures/moretrees_rubber_tree_sapling.png b/mods/moretrees/textures/moretrees_rubber_tree_sapling.png similarity index 100% rename from moretrees/textures/moretrees_rubber_tree_sapling.png rename to mods/moretrees/textures/moretrees_rubber_tree_sapling.png diff --git a/moretrees/textures/moretrees_rubber_tree_trunk.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk.png similarity index 100% rename from moretrees/textures/moretrees_rubber_tree_trunk.png rename to mods/moretrees/textures/moretrees_rubber_tree_trunk.png diff --git a/moretrees/textures/moretrees_rubber_tree_trunk_empty.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk_empty.png similarity index 100% rename from moretrees/textures/moretrees_rubber_tree_trunk_empty.png rename to mods/moretrees/textures/moretrees_rubber_tree_trunk_empty.png diff --git a/moretrees/textures/moretrees_rubber_tree_trunk_top.png b/mods/moretrees/textures/moretrees_rubber_tree_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_rubber_tree_trunk_top.png rename to mods/moretrees/textures/moretrees_rubber_tree_trunk_top.png diff --git a/moretrees/textures/moretrees_rubber_tree_wood.png b/mods/moretrees/textures/moretrees_rubber_tree_wood.png similarity index 100% rename from moretrees/textures/moretrees_rubber_tree_wood.png rename to mods/moretrees/textures/moretrees_rubber_tree_wood.png diff --git a/moretrees/textures/moretrees_sequoia_leaves.png b/mods/moretrees/textures/moretrees_sequoia_leaves.png similarity index 100% rename from moretrees/textures/moretrees_sequoia_leaves.png rename to mods/moretrees/textures/moretrees_sequoia_leaves.png diff --git a/moretrees/textures/moretrees_sequoia_sapling.png b/mods/moretrees/textures/moretrees_sequoia_sapling.png similarity index 100% rename from moretrees/textures/moretrees_sequoia_sapling.png rename to mods/moretrees/textures/moretrees_sequoia_sapling.png diff --git a/moretrees/textures/moretrees_sequoia_trunk.png b/mods/moretrees/textures/moretrees_sequoia_trunk.png similarity index 100% rename from moretrees/textures/moretrees_sequoia_trunk.png rename to mods/moretrees/textures/moretrees_sequoia_trunk.png diff --git a/moretrees/textures/moretrees_sequoia_trunk_top.png b/mods/moretrees/textures/moretrees_sequoia_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_sequoia_trunk_top.png rename to mods/moretrees/textures/moretrees_sequoia_trunk_top.png diff --git a/moretrees/textures/moretrees_sequoia_wood.png b/mods/moretrees/textures/moretrees_sequoia_wood.png similarity index 100% rename from moretrees/textures/moretrees_sequoia_wood.png rename to mods/moretrees/textures/moretrees_sequoia_wood.png diff --git a/moretrees/textures/moretrees_spruce_cone.png b/mods/moretrees/textures/moretrees_spruce_cone.png similarity index 100% rename from moretrees/textures/moretrees_spruce_cone.png rename to mods/moretrees/textures/moretrees_spruce_cone.png diff --git a/moretrees/textures/moretrees_spruce_leaves.png b/mods/moretrees/textures/moretrees_spruce_leaves.png similarity index 100% rename from moretrees/textures/moretrees_spruce_leaves.png rename to mods/moretrees/textures/moretrees_spruce_leaves.png diff --git a/moretrees/textures/moretrees_spruce_nuts.png b/mods/moretrees/textures/moretrees_spruce_nuts.png similarity index 100% rename from moretrees/textures/moretrees_spruce_nuts.png rename to mods/moretrees/textures/moretrees_spruce_nuts.png diff --git a/moretrees/textures/moretrees_spruce_sapling.png b/mods/moretrees/textures/moretrees_spruce_sapling.png similarity index 100% rename from moretrees/textures/moretrees_spruce_sapling.png rename to mods/moretrees/textures/moretrees_spruce_sapling.png diff --git a/moretrees/textures/moretrees_spruce_trunk.png b/mods/moretrees/textures/moretrees_spruce_trunk.png similarity index 100% rename from moretrees/textures/moretrees_spruce_trunk.png rename to mods/moretrees/textures/moretrees_spruce_trunk.png diff --git a/moretrees/textures/moretrees_spruce_trunk_top.png b/mods/moretrees/textures/moretrees_spruce_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_spruce_trunk_top.png rename to mods/moretrees/textures/moretrees_spruce_trunk_top.png diff --git a/moretrees/textures/moretrees_spruce_wood.png b/mods/moretrees/textures/moretrees_spruce_wood.png similarity index 100% rename from moretrees/textures/moretrees_spruce_wood.png rename to mods/moretrees/textures/moretrees_spruce_wood.png diff --git a/moretrees/textures/moretrees_willow_leaves.png b/mods/moretrees/textures/moretrees_willow_leaves.png similarity index 100% rename from moretrees/textures/moretrees_willow_leaves.png rename to mods/moretrees/textures/moretrees_willow_leaves.png diff --git a/moretrees/textures/moretrees_willow_sapling.png b/mods/moretrees/textures/moretrees_willow_sapling.png similarity index 100% rename from moretrees/textures/moretrees_willow_sapling.png rename to mods/moretrees/textures/moretrees_willow_sapling.png diff --git a/moretrees/textures/moretrees_willow_trunk.png b/mods/moretrees/textures/moretrees_willow_trunk.png similarity index 100% rename from moretrees/textures/moretrees_willow_trunk.png rename to mods/moretrees/textures/moretrees_willow_trunk.png diff --git a/moretrees/textures/moretrees_willow_trunk_top.png b/mods/moretrees/textures/moretrees_willow_trunk_top.png similarity index 100% rename from moretrees/textures/moretrees_willow_trunk_top.png rename to mods/moretrees/textures/moretrees_willow_trunk_top.png diff --git a/moretrees/textures/moretrees_willow_wood.png b/mods/moretrees/textures/moretrees_willow_wood.png similarity index 100% rename from moretrees/textures/moretrees_willow_wood.png rename to mods/moretrees/textures/moretrees_willow_wood.png diff --git a/moretrees/tree_biomes.txt b/mods/moretrees/tree_biomes.txt similarity index 100% rename from moretrees/tree_biomes.txt rename to mods/moretrees/tree_biomes.txt diff --git a/moretrees/tree_models.lua b/mods/moretrees/tree_models.lua similarity index 100% rename from moretrees/tree_models.lua rename to mods/moretrees/tree_models.lua diff --git a/mymillwork/README.md b/mods/mymillwork/README.md similarity index 100% rename from mymillwork/README.md rename to mods/mymillwork/README.md diff --git a/mymillwork/depends.txt b/mods/mymillwork/depends.txt similarity index 100% rename from mymillwork/depends.txt rename to mods/mymillwork/depends.txt diff --git a/mymillwork/description.txt b/mods/mymillwork/description.txt similarity index 100% rename from mymillwork/description.txt rename to mods/mymillwork/description.txt diff --git a/mymillwork/init.lua b/mods/mymillwork/init.lua similarity index 100% rename from mymillwork/init.lua rename to mods/mymillwork/init.lua diff --git a/mymillwork/licence.txt b/mods/mymillwork/licence.txt similarity index 100% rename from mymillwork/licence.txt rename to mods/mymillwork/licence.txt diff --git a/mymillwork/machines.lua b/mods/mymillwork/machines.lua similarity index 100% rename from mymillwork/machines.lua rename to mods/mymillwork/machines.lua diff --git a/mymillwork/materials.lua b/mods/mymillwork/materials.lua similarity index 100% rename from mymillwork/materials.lua rename to mods/mymillwork/materials.lua diff --git a/mymillwork/materials_bakedclay.lua b/mods/mymillwork/materials_bakedclay.lua similarity index 100% rename from mymillwork/materials_bakedclay.lua rename to mods/mymillwork/materials_bakedclay.lua diff --git a/mymillwork/materials_ethereal.lua b/mods/mymillwork/materials_ethereal.lua similarity index 100% rename from mymillwork/materials_ethereal.lua rename to mods/mymillwork/materials_ethereal.lua diff --git a/mymillwork/materials_moreblocks.lua b/mods/mymillwork/materials_moreblocks.lua similarity index 100% rename from mymillwork/materials_moreblocks.lua rename to mods/mymillwork/materials_moreblocks.lua diff --git a/mymillwork/materials_technic.lua b/mods/mymillwork/materials_technic.lua similarity index 100% rename from mymillwork/materials_technic.lua rename to mods/mymillwork/materials_technic.lua diff --git a/mymillwork/mod.conf b/mods/mymillwork/mod.conf similarity index 100% rename from mymillwork/mod.conf rename to mods/mymillwork/mod.conf diff --git a/mymillwork/models/mymillwork_mach1.obj b/mods/mymillwork/models/mymillwork_mach1.obj similarity index 100% rename from mymillwork/models/mymillwork_mach1.obj rename to mods/mymillwork/models/mymillwork_mach1.obj diff --git a/mymillwork/models/mymillwork_mach10.obj b/mods/mymillwork/models/mymillwork_mach10.obj similarity index 100% rename from mymillwork/models/mymillwork_mach10.obj rename to mods/mymillwork/models/mymillwork_mach10.obj diff --git a/mymillwork/models/mymillwork_mach11.obj b/mods/mymillwork/models/mymillwork_mach11.obj similarity index 100% rename from mymillwork/models/mymillwork_mach11.obj rename to mods/mymillwork/models/mymillwork_mach11.obj diff --git a/mymillwork/models/mymillwork_mach12.obj b/mods/mymillwork/models/mymillwork_mach12.obj similarity index 100% rename from mymillwork/models/mymillwork_mach12.obj rename to mods/mymillwork/models/mymillwork_mach12.obj diff --git a/mymillwork/models/mymillwork_mach13.obj b/mods/mymillwork/models/mymillwork_mach13.obj similarity index 100% rename from mymillwork/models/mymillwork_mach13.obj rename to mods/mymillwork/models/mymillwork_mach13.obj diff --git a/mymillwork/models/mymillwork_mach14.obj b/mods/mymillwork/models/mymillwork_mach14.obj similarity index 100% rename from mymillwork/models/mymillwork_mach14.obj rename to mods/mymillwork/models/mymillwork_mach14.obj diff --git a/mymillwork/models/mymillwork_mach15.obj b/mods/mymillwork/models/mymillwork_mach15.obj similarity index 100% rename from mymillwork/models/mymillwork_mach15.obj rename to mods/mymillwork/models/mymillwork_mach15.obj diff --git a/mymillwork/models/mymillwork_mach16.obj b/mods/mymillwork/models/mymillwork_mach16.obj similarity index 100% rename from mymillwork/models/mymillwork_mach16.obj rename to mods/mymillwork/models/mymillwork_mach16.obj diff --git a/mymillwork/models/mymillwork_mach17.obj b/mods/mymillwork/models/mymillwork_mach17.obj similarity index 100% rename from mymillwork/models/mymillwork_mach17.obj rename to mods/mymillwork/models/mymillwork_mach17.obj diff --git a/mymillwork/models/mymillwork_mach18.obj b/mods/mymillwork/models/mymillwork_mach18.obj similarity index 100% rename from mymillwork/models/mymillwork_mach18.obj rename to mods/mymillwork/models/mymillwork_mach18.obj diff --git a/mymillwork/models/mymillwork_mach19.obj b/mods/mymillwork/models/mymillwork_mach19.obj similarity index 100% rename from mymillwork/models/mymillwork_mach19.obj rename to mods/mymillwork/models/mymillwork_mach19.obj diff --git a/mymillwork/models/mymillwork_mach2.obj b/mods/mymillwork/models/mymillwork_mach2.obj similarity index 100% rename from mymillwork/models/mymillwork_mach2.obj rename to mods/mymillwork/models/mymillwork_mach2.obj diff --git a/mymillwork/models/mymillwork_mach20.obj b/mods/mymillwork/models/mymillwork_mach20.obj similarity index 100% rename from mymillwork/models/mymillwork_mach20.obj rename to mods/mymillwork/models/mymillwork_mach20.obj diff --git a/mymillwork/models/mymillwork_mach21.obj b/mods/mymillwork/models/mymillwork_mach21.obj similarity index 100% rename from mymillwork/models/mymillwork_mach21.obj rename to mods/mymillwork/models/mymillwork_mach21.obj diff --git a/mymillwork/models/mymillwork_mach22.obj b/mods/mymillwork/models/mymillwork_mach22.obj similarity index 100% rename from mymillwork/models/mymillwork_mach22.obj rename to mods/mymillwork/models/mymillwork_mach22.obj diff --git a/mymillwork/models/mymillwork_mach23.obj b/mods/mymillwork/models/mymillwork_mach23.obj similarity index 100% rename from mymillwork/models/mymillwork_mach23.obj rename to mods/mymillwork/models/mymillwork_mach23.obj diff --git a/mymillwork/models/mymillwork_mach24.obj b/mods/mymillwork/models/mymillwork_mach24.obj similarity index 100% rename from mymillwork/models/mymillwork_mach24.obj rename to mods/mymillwork/models/mymillwork_mach24.obj diff --git a/mymillwork/models/mymillwork_mach3.obj b/mods/mymillwork/models/mymillwork_mach3.obj similarity index 100% rename from mymillwork/models/mymillwork_mach3.obj rename to mods/mymillwork/models/mymillwork_mach3.obj diff --git a/mymillwork/models/mymillwork_mach4.obj b/mods/mymillwork/models/mymillwork_mach4.obj similarity index 100% rename from mymillwork/models/mymillwork_mach4.obj rename to mods/mymillwork/models/mymillwork_mach4.obj diff --git a/mymillwork/models/mymillwork_mach5.obj b/mods/mymillwork/models/mymillwork_mach5.obj similarity index 100% rename from mymillwork/models/mymillwork_mach5.obj rename to mods/mymillwork/models/mymillwork_mach5.obj diff --git a/mymillwork/models/mymillwork_mach6.obj b/mods/mymillwork/models/mymillwork_mach6.obj similarity index 100% rename from mymillwork/models/mymillwork_mach6.obj rename to mods/mymillwork/models/mymillwork_mach6.obj diff --git a/mymillwork/models/mymillwork_mach7.obj b/mods/mymillwork/models/mymillwork_mach7.obj similarity index 100% rename from mymillwork/models/mymillwork_mach7.obj rename to mods/mymillwork/models/mymillwork_mach7.obj diff --git a/mymillwork/models/mymillwork_mach8.obj b/mods/mymillwork/models/mymillwork_mach8.obj similarity index 100% rename from mymillwork/models/mymillwork_mach8.obj rename to mods/mymillwork/models/mymillwork_mach8.obj diff --git a/mymillwork/models/mymillwork_mach9.obj b/mods/mymillwork/models/mymillwork_mach9.obj similarity index 100% rename from mymillwork/models/mymillwork_mach9.obj rename to mods/mymillwork/models/mymillwork_mach9.obj diff --git a/mymillwork/nodes.lua b/mods/mymillwork/nodes.lua similarity index 100% rename from mymillwork/nodes.lua rename to mods/mymillwork/nodes.lua diff --git a/mymillwork/screenshot.png b/mods/mymillwork/screenshot.png similarity index 100% rename from mymillwork/screenshot.png rename to mods/mymillwork/screenshot.png diff --git a/mymillwork/textures/millwork_white.png b/mods/mymillwork/textures/millwork_white.png similarity index 100% rename from mymillwork/textures/millwork_white.png rename to mods/mymillwork/textures/millwork_white.png diff --git a/mymillwork/textures/mymillwork_background.png b/mods/mymillwork/textures/mymillwork_background.png similarity index 100% rename from mymillwork/textures/mymillwork_background.png rename to mods/mymillwork/textures/mymillwork_background.png diff --git a/mymillwork/textures/mymillwork_mach1.png b/mods/mymillwork/textures/mymillwork_mach1.png similarity index 100% rename from mymillwork/textures/mymillwork_mach1.png rename to mods/mymillwork/textures/mymillwork_mach1.png diff --git a/mymillwork/textures/mymillwork_mach10.png b/mods/mymillwork/textures/mymillwork_mach10.png similarity index 100% rename from mymillwork/textures/mymillwork_mach10.png rename to mods/mymillwork/textures/mymillwork_mach10.png diff --git a/mymillwork/textures/mymillwork_mach11.png b/mods/mymillwork/textures/mymillwork_mach11.png similarity index 100% rename from mymillwork/textures/mymillwork_mach11.png rename to mods/mymillwork/textures/mymillwork_mach11.png diff --git a/mymillwork/textures/mymillwork_mach12.png b/mods/mymillwork/textures/mymillwork_mach12.png similarity index 100% rename from mymillwork/textures/mymillwork_mach12.png rename to mods/mymillwork/textures/mymillwork_mach12.png diff --git a/mymillwork/textures/mymillwork_mach13.png b/mods/mymillwork/textures/mymillwork_mach13.png similarity index 100% rename from mymillwork/textures/mymillwork_mach13.png rename to mods/mymillwork/textures/mymillwork_mach13.png diff --git a/mymillwork/textures/mymillwork_mach14.png b/mods/mymillwork/textures/mymillwork_mach14.png similarity index 100% rename from mymillwork/textures/mymillwork_mach14.png rename to mods/mymillwork/textures/mymillwork_mach14.png diff --git a/mymillwork/textures/mymillwork_mach15.png b/mods/mymillwork/textures/mymillwork_mach15.png similarity index 100% rename from mymillwork/textures/mymillwork_mach15.png rename to mods/mymillwork/textures/mymillwork_mach15.png diff --git a/mymillwork/textures/mymillwork_mach16.png b/mods/mymillwork/textures/mymillwork_mach16.png similarity index 100% rename from mymillwork/textures/mymillwork_mach16.png rename to mods/mymillwork/textures/mymillwork_mach16.png diff --git a/mymillwork/textures/mymillwork_mach17.png b/mods/mymillwork/textures/mymillwork_mach17.png similarity index 100% rename from mymillwork/textures/mymillwork_mach17.png rename to mods/mymillwork/textures/mymillwork_mach17.png diff --git a/mymillwork/textures/mymillwork_mach18.png b/mods/mymillwork/textures/mymillwork_mach18.png similarity index 100% rename from mymillwork/textures/mymillwork_mach18.png rename to mods/mymillwork/textures/mymillwork_mach18.png diff --git a/mymillwork/textures/mymillwork_mach19.png b/mods/mymillwork/textures/mymillwork_mach19.png similarity index 100% rename from mymillwork/textures/mymillwork_mach19.png rename to mods/mymillwork/textures/mymillwork_mach19.png diff --git a/mymillwork/textures/mymillwork_mach2.png b/mods/mymillwork/textures/mymillwork_mach2.png similarity index 100% rename from mymillwork/textures/mymillwork_mach2.png rename to mods/mymillwork/textures/mymillwork_mach2.png diff --git a/mymillwork/textures/mymillwork_mach20.png b/mods/mymillwork/textures/mymillwork_mach20.png similarity index 100% rename from mymillwork/textures/mymillwork_mach20.png rename to mods/mymillwork/textures/mymillwork_mach20.png diff --git a/mymillwork/textures/mymillwork_mach21.png b/mods/mymillwork/textures/mymillwork_mach21.png similarity index 100% rename from mymillwork/textures/mymillwork_mach21.png rename to mods/mymillwork/textures/mymillwork_mach21.png diff --git a/mymillwork/textures/mymillwork_mach22.png b/mods/mymillwork/textures/mymillwork_mach22.png similarity index 100% rename from mymillwork/textures/mymillwork_mach22.png rename to mods/mymillwork/textures/mymillwork_mach22.png diff --git a/mymillwork/textures/mymillwork_mach23.png b/mods/mymillwork/textures/mymillwork_mach23.png similarity index 100% rename from mymillwork/textures/mymillwork_mach23.png rename to mods/mymillwork/textures/mymillwork_mach23.png diff --git a/mymillwork/textures/mymillwork_mach24.png b/mods/mymillwork/textures/mymillwork_mach24.png similarity index 100% rename from mymillwork/textures/mymillwork_mach24.png rename to mods/mymillwork/textures/mymillwork_mach24.png diff --git a/mymillwork/textures/mymillwork_mach25.png b/mods/mymillwork/textures/mymillwork_mach25.png similarity index 100% rename from mymillwork/textures/mymillwork_mach25.png rename to mods/mymillwork/textures/mymillwork_mach25.png diff --git a/mymillwork/textures/mymillwork_mach26.png b/mods/mymillwork/textures/mymillwork_mach26.png similarity index 100% rename from mymillwork/textures/mymillwork_mach26.png rename to mods/mymillwork/textures/mymillwork_mach26.png diff --git a/mymillwork/textures/mymillwork_mach3.png b/mods/mymillwork/textures/mymillwork_mach3.png similarity index 100% rename from mymillwork/textures/mymillwork_mach3.png rename to mods/mymillwork/textures/mymillwork_mach3.png diff --git a/mymillwork/textures/mymillwork_mach4.png b/mods/mymillwork/textures/mymillwork_mach4.png similarity index 100% rename from mymillwork/textures/mymillwork_mach4.png rename to mods/mymillwork/textures/mymillwork_mach4.png diff --git a/mymillwork/textures/mymillwork_mach5.png b/mods/mymillwork/textures/mymillwork_mach5.png similarity index 100% rename from mymillwork/textures/mymillwork_mach5.png rename to mods/mymillwork/textures/mymillwork_mach5.png diff --git a/mymillwork/textures/mymillwork_mach6.png b/mods/mymillwork/textures/mymillwork_mach6.png similarity index 100% rename from mymillwork/textures/mymillwork_mach6.png rename to mods/mymillwork/textures/mymillwork_mach6.png diff --git a/mymillwork/textures/mymillwork_mach7.png b/mods/mymillwork/textures/mymillwork_mach7.png similarity index 100% rename from mymillwork/textures/mymillwork_mach7.png rename to mods/mymillwork/textures/mymillwork_mach7.png diff --git a/mymillwork/textures/mymillwork_mach8.png b/mods/mymillwork/textures/mymillwork_mach8.png similarity index 100% rename from mymillwork/textures/mymillwork_mach8.png rename to mods/mymillwork/textures/mymillwork_mach8.png diff --git a/mymillwork/textures/mymillwork_mach9.png b/mods/mymillwork/textures/mymillwork_mach9.png similarity index 100% rename from mymillwork/textures/mymillwork_mach9.png rename to mods/mymillwork/textures/mymillwork_mach9.png diff --git a/mymillwork/textures/mymillwork_machine.png b/mods/mymillwork/textures/mymillwork_machine.png similarity index 100% rename from mymillwork/textures/mymillwork_machine.png rename to mods/mymillwork/textures/mymillwork_machine.png diff --git a/mymillwork/textures/mymillwork_machine_back.png b/mods/mymillwork/textures/mymillwork_machine_back.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_back.png rename to mods/mymillwork/textures/mymillwork_machine_back.png diff --git a/mymillwork/textures/mymillwork_machine_bottom.png b/mods/mymillwork/textures/mymillwork_machine_bottom.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_bottom.png rename to mods/mymillwork/textures/mymillwork_machine_bottom.png diff --git a/mymillwork/textures/mymillwork_machine_front.png b/mods/mymillwork/textures/mymillwork_machine_front.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_front.png rename to mods/mymillwork/textures/mymillwork_machine_front.png diff --git a/mymillwork/textures/mymillwork_machine_side.png b/mods/mymillwork/textures/mymillwork_machine_side.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_side.png rename to mods/mymillwork/textures/mymillwork_machine_side.png diff --git a/mymillwork/textures/mymillwork_machine_side1.png b/mods/mymillwork/textures/mymillwork_machine_side1.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_side1.png rename to mods/mymillwork/textures/mymillwork_machine_side1.png diff --git a/mymillwork/textures/mymillwork_machine_side2.png b/mods/mymillwork/textures/mymillwork_machine_side2.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_side2.png rename to mods/mymillwork/textures/mymillwork_machine_side2.png diff --git a/mymillwork/textures/mymillwork_machine_top.png b/mods/mymillwork/textures/mymillwork_machine_top.png similarity index 100% rename from mymillwork/textures/mymillwork_machine_top.png rename to mods/mymillwork/textures/mymillwork_machine_top.png diff --git a/nature_classic/blossom.lua b/mods/nature_classic/blossom.lua similarity index 100% rename from nature_classic/blossom.lua rename to mods/nature_classic/blossom.lua diff --git a/nature_classic/config.lua b/mods/nature_classic/config.lua similarity index 100% rename from nature_classic/config.lua rename to mods/nature_classic/config.lua diff --git a/nature_classic/global_function.lua b/mods/nature_classic/global_function.lua similarity index 100% rename from nature_classic/global_function.lua rename to mods/nature_classic/global_function.lua diff --git a/nature_classic/init.lua b/mods/nature_classic/init.lua similarity index 100% rename from nature_classic/init.lua rename to mods/nature_classic/init.lua diff --git a/nature_classic/locale/nature_classic.fr.tr b/mods/nature_classic/locale/nature_classic.fr.tr similarity index 100% rename from nature_classic/locale/nature_classic.fr.tr rename to mods/nature_classic/locale/nature_classic.fr.tr diff --git a/nature_classic/locale/template.txt b/mods/nature_classic/locale/template.txt similarity index 100% rename from nature_classic/locale/template.txt rename to mods/nature_classic/locale/template.txt diff --git a/nature_classic/mod.conf b/mods/nature_classic/mod.conf similarity index 100% rename from nature_classic/mod.conf rename to mods/nature_classic/mod.conf diff --git a/nature_classic/textures/nature_blossom.png b/mods/nature_classic/textures/nature_blossom.png similarity index 100% rename from nature_classic/textures/nature_blossom.png rename to mods/nature_classic/textures/nature_blossom.png diff --git a/new_campfire/LICENSE.txt b/mods/new_campfire/LICENSE.txt similarity index 100% rename from new_campfire/LICENSE.txt rename to mods/new_campfire/LICENSE.txt diff --git a/new_campfire/README.md b/mods/new_campfire/README.md similarity index 100% rename from new_campfire/README.md rename to mods/new_campfire/README.md diff --git a/new_campfire/init.lua b/mods/new_campfire/init.lua similarity index 100% rename from new_campfire/init.lua rename to mods/new_campfire/init.lua diff --git a/new_campfire/locale/new_campfire.fr.tr b/mods/new_campfire/locale/new_campfire.fr.tr similarity index 100% rename from new_campfire/locale/new_campfire.fr.tr rename to mods/new_campfire/locale/new_campfire.fr.tr diff --git a/new_campfire/locale/new_campfire.ru.tr b/mods/new_campfire/locale/new_campfire.ru.tr similarity index 100% rename from new_campfire/locale/new_campfire.ru.tr rename to mods/new_campfire/locale/new_campfire.ru.tr diff --git a/new_campfire/locale/new_campfire.ua.tr b/mods/new_campfire/locale/new_campfire.ua.tr similarity index 100% rename from new_campfire/locale/new_campfire.ua.tr rename to mods/new_campfire/locale/new_campfire.ua.tr diff --git a/new_campfire/locale/template.txt b/mods/new_campfire/locale/template.txt similarity index 100% rename from new_campfire/locale/template.txt rename to mods/new_campfire/locale/template.txt diff --git a/new_campfire/mod.conf b/mods/new_campfire/mod.conf similarity index 100% rename from new_campfire/mod.conf rename to mods/new_campfire/mod.conf diff --git a/new_campfire/models/License.of.media.txt b/mods/new_campfire/models/License.of.media.txt similarity index 100% rename from new_campfire/models/License.of.media.txt rename to mods/new_campfire/models/License.of.media.txt diff --git a/new_campfire/models/contained_campfire.obj b/mods/new_campfire/models/contained_campfire.obj similarity index 100% rename from new_campfire/models/contained_campfire.obj rename to mods/new_campfire/models/contained_campfire.obj diff --git a/mods/new_campfire/sounds/fire_small.ogg b/mods/new_campfire/sounds/fire_small.ogg new file mode 100644 index 00000000..5aac595b Binary files /dev/null and b/mods/new_campfire/sounds/fire_small.ogg differ diff --git a/new_campfire/textures/new_campfire_anim_embers.png b/mods/new_campfire/textures/new_campfire_anim_embers.png similarity index 100% rename from new_campfire/textures/new_campfire_anim_embers.png rename to mods/new_campfire/textures/new_campfire_anim_embers.png diff --git a/new_campfire/textures/new_campfire_anim_fire.png b/mods/new_campfire/textures/new_campfire_anim_fire.png similarity index 100% rename from new_campfire/textures/new_campfire_anim_fire.png rename to mods/new_campfire/textures/new_campfire_anim_fire.png diff --git a/new_campfire/textures/new_campfire_anim_smoke.png b/mods/new_campfire/textures/new_campfire_anim_smoke.png similarity index 100% rename from new_campfire/textures/new_campfire_anim_smoke.png rename to mods/new_campfire/textures/new_campfire_anim_smoke.png diff --git a/new_campfire/textures/new_campfire_ash.png b/mods/new_campfire/textures/new_campfire_ash.png similarity index 100% rename from new_campfire/textures/new_campfire_ash.png rename to mods/new_campfire/textures/new_campfire_ash.png diff --git a/new_campfire/textures/new_campfire_campfire.png b/mods/new_campfire/textures/new_campfire_campfire.png similarity index 100% rename from new_campfire/textures/new_campfire_campfire.png rename to mods/new_campfire/textures/new_campfire_campfire.png diff --git a/new_campfire/textures/new_campfire_cobble.png b/mods/new_campfire/textures/new_campfire_cobble.png similarity index 100% rename from new_campfire/textures/new_campfire_cobble.png rename to mods/new_campfire/textures/new_campfire_cobble.png diff --git a/new_campfire/textures/new_campfire_embers.png b/mods/new_campfire/textures/new_campfire_embers.png similarity index 100% rename from new_campfire/textures/new_campfire_embers.png rename to mods/new_campfire/textures/new_campfire_embers.png diff --git a/new_campfire/textures/new_campfire_empty_tile.png b/mods/new_campfire/textures/new_campfire_empty_tile.png similarity index 100% rename from new_campfire/textures/new_campfire_empty_tile.png rename to mods/new_campfire/textures/new_campfire_empty_tile.png diff --git a/new_campfire/textures/new_campfire_grille.png b/mods/new_campfire/textures/new_campfire_grille.png similarity index 100% rename from new_campfire/textures/new_campfire_grille.png rename to mods/new_campfire/textures/new_campfire_grille.png diff --git a/new_campfire/textures/new_campfire_wood.png b/mods/new_campfire/textures/new_campfire_wood.png similarity index 100% rename from new_campfire/textures/new_campfire_wood.png rename to mods/new_campfire/textures/new_campfire_wood.png diff --git a/nixie_tubes/LICENSE b/mods/nixie_tubes/LICENSE similarity index 100% rename from nixie_tubes/LICENSE rename to mods/nixie_tubes/LICENSE diff --git a/nixie_tubes/README.md b/mods/nixie_tubes/README.md similarity index 100% rename from nixie_tubes/README.md rename to mods/nixie_tubes/README.md diff --git a/nixie_tubes/depends.txt b/mods/nixie_tubes/depends.txt similarity index 100% rename from nixie_tubes/depends.txt rename to mods/nixie_tubes/depends.txt diff --git a/nixie_tubes/description.txt b/mods/nixie_tubes/description.txt similarity index 100% rename from nixie_tubes/description.txt rename to mods/nixie_tubes/description.txt diff --git a/nixie_tubes/init.lua b/mods/nixie_tubes/init.lua similarity index 100% rename from nixie_tubes/init.lua rename to mods/nixie_tubes/init.lua diff --git a/nixie_tubes/mod.conf b/mods/nixie_tubes/mod.conf similarity index 100% rename from nixie_tubes/mod.conf rename to mods/nixie_tubes/mod.conf diff --git a/nixie_tubes/models/decatron.obj b/mods/nixie_tubes/models/decatron.obj similarity index 100% rename from nixie_tubes/models/decatron.obj rename to mods/nixie_tubes/models/decatron.obj diff --git a/nixie_tubes/models/nixie_tube.obj b/mods/nixie_tubes/models/nixie_tube.obj similarity index 100% rename from nixie_tubes/models/nixie_tube.obj rename to mods/nixie_tubes/models/nixie_tube.obj diff --git a/nixie_tubes/screenshot.png b/mods/nixie_tubes/screenshot.png similarity index 100% rename from nixie_tubes/screenshot.png rename to mods/nixie_tubes/screenshot.png diff --git a/nixie_tubes/textures/decatron_anode.png b/mods/nixie_tubes/textures/decatron_anode.png similarity index 100% rename from nixie_tubes/textures/decatron_anode.png rename to mods/nixie_tubes/textures/decatron_anode.png diff --git a/nixie_tubes/textures/decatron_cathode_0.png b/mods/nixie_tubes/textures/decatron_cathode_0.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_0.png rename to mods/nixie_tubes/textures/decatron_cathode_0.png diff --git a/nixie_tubes/textures/decatron_cathode_1.png b/mods/nixie_tubes/textures/decatron_cathode_1.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_1.png rename to mods/nixie_tubes/textures/decatron_cathode_1.png diff --git a/nixie_tubes/textures/decatron_cathode_2.png b/mods/nixie_tubes/textures/decatron_cathode_2.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_2.png rename to mods/nixie_tubes/textures/decatron_cathode_2.png diff --git a/nixie_tubes/textures/decatron_cathode_3.png b/mods/nixie_tubes/textures/decatron_cathode_3.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_3.png rename to mods/nixie_tubes/textures/decatron_cathode_3.png diff --git a/nixie_tubes/textures/decatron_cathode_4.png b/mods/nixie_tubes/textures/decatron_cathode_4.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_4.png rename to mods/nixie_tubes/textures/decatron_cathode_4.png diff --git a/nixie_tubes/textures/decatron_cathode_5.png b/mods/nixie_tubes/textures/decatron_cathode_5.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_5.png rename to mods/nixie_tubes/textures/decatron_cathode_5.png diff --git a/nixie_tubes/textures/decatron_cathode_6.png b/mods/nixie_tubes/textures/decatron_cathode_6.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_6.png rename to mods/nixie_tubes/textures/decatron_cathode_6.png diff --git a/nixie_tubes/textures/decatron_cathode_7.png b/mods/nixie_tubes/textures/decatron_cathode_7.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_7.png rename to mods/nixie_tubes/textures/decatron_cathode_7.png diff --git a/nixie_tubes/textures/decatron_cathode_8.png b/mods/nixie_tubes/textures/decatron_cathode_8.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_8.png rename to mods/nixie_tubes/textures/decatron_cathode_8.png diff --git a/nixie_tubes/textures/decatron_cathode_9.png b/mods/nixie_tubes/textures/decatron_cathode_9.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_9.png rename to mods/nixie_tubes/textures/decatron_cathode_9.png diff --git a/nixie_tubes/textures/decatron_cathode_pins.png b/mods/nixie_tubes/textures/decatron_cathode_pins.png similarity index 100% rename from nixie_tubes/textures/decatron_cathode_pins.png rename to mods/nixie_tubes/textures/decatron_cathode_pins.png diff --git a/nixie_tubes/textures/decatron_internals.png b/mods/nixie_tubes/textures/decatron_internals.png similarity index 100% rename from nixie_tubes/textures/decatron_internals.png rename to mods/nixie_tubes/textures/decatron_internals.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_1.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_1.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_1.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_1.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_10.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_10.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_10.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_10.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_11.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_11.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_11.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_11.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_12.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_12.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_12.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_12.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_13.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_13.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_13.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_13.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_14.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_14.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_14.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_14.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_15.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_15.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_15.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_15.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_2.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_2.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_2.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_2.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_3.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_3.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_3.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_3.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_4.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_4.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_4.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_4.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_5.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_5.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_5.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_5.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_6.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_6.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_6.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_6.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_7.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_7.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_7.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_7.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_8.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_8.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_8.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_8.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_seg_9.png b/mods/nixie_tubes/textures/nixie_tube_alnum_seg_9.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_seg_9.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_seg_9.png diff --git a/nixie_tubes/textures/nixie_tube_alnum_wires.png b/mods/nixie_tubes/textures/nixie_tube_alnum_wires.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_alnum_wires.png rename to mods/nixie_tubes/textures/nixie_tube_alnum_wires.png diff --git a/nixie_tubes/textures/nixie_tube_anode.png b/mods/nixie_tubes/textures/nixie_tube_anode.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_anode.png rename to mods/nixie_tubes/textures/nixie_tube_anode.png diff --git a/nixie_tubes/textures/nixie_tube_backing.png b/mods/nixie_tubes/textures/nixie_tube_backing.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_backing.png rename to mods/nixie_tubes/textures/nixie_tube_backing.png diff --git a/nixie_tubes/textures/nixie_tube_base.png b/mods/nixie_tubes/textures/nixie_tube_base.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_base.png rename to mods/nixie_tubes/textures/nixie_tube_base.png diff --git a/nixie_tubes/textures/nixie_tube_blank.png b/mods/nixie_tubes/textures/nixie_tube_blank.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_blank.png rename to mods/nixie_tubes/textures/nixie_tube_blank.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_0.png b/mods/nixie_tubes/textures/nixie_tube_cathode_0.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_0.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_0.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_1.png b/mods/nixie_tubes/textures/nixie_tube_cathode_1.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_1.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_1.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_2.png b/mods/nixie_tubes/textures/nixie_tube_cathode_2.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_2.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_2.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_3.png b/mods/nixie_tubes/textures/nixie_tube_cathode_3.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_3.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_3.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_4.png b/mods/nixie_tubes/textures/nixie_tube_cathode_4.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_4.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_4.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_5.png b/mods/nixie_tubes/textures/nixie_tube_cathode_5.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_5.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_5.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_6.png b/mods/nixie_tubes/textures/nixie_tube_cathode_6.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_6.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_6.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_7.png b/mods/nixie_tubes/textures/nixie_tube_cathode_7.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_7.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_7.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_8.png b/mods/nixie_tubes/textures/nixie_tube_cathode_8.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_8.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_8.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_9.png b/mods/nixie_tubes/textures/nixie_tube_cathode_9.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_9.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_9.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_colon.png b/mods/nixie_tubes/textures/nixie_tube_cathode_colon.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_colon.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_colon.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_off.png b/mods/nixie_tubes/textures/nixie_tube_cathode_off.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_off.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_off.png diff --git a/nixie_tubes/textures/nixie_tube_cathode_period.png b/mods/nixie_tubes/textures/nixie_tube_cathode_period.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_cathode_period.png rename to mods/nixie_tubes/textures/nixie_tube_cathode_period.png diff --git a/nixie_tubes/textures/nixie_tube_glass.png b/mods/nixie_tubes/textures/nixie_tube_glass.png similarity index 100% rename from nixie_tubes/textures/nixie_tube_glass.png rename to mods/nixie_tubes/textures/nixie_tube_glass.png diff --git a/nixie_tubes/textures/numitron_0.png b/mods/nixie_tubes/textures/numitron_0.png similarity index 100% rename from nixie_tubes/textures/numitron_0.png rename to mods/nixie_tubes/textures/numitron_0.png diff --git a/nixie_tubes/textures/numitron_1.png b/mods/nixie_tubes/textures/numitron_1.png similarity index 100% rename from nixie_tubes/textures/numitron_1.png rename to mods/nixie_tubes/textures/numitron_1.png diff --git a/nixie_tubes/textures/numitron_2.png b/mods/nixie_tubes/textures/numitron_2.png similarity index 100% rename from nixie_tubes/textures/numitron_2.png rename to mods/nixie_tubes/textures/numitron_2.png diff --git a/nixie_tubes/textures/numitron_3.png b/mods/nixie_tubes/textures/numitron_3.png similarity index 100% rename from nixie_tubes/textures/numitron_3.png rename to mods/nixie_tubes/textures/numitron_3.png diff --git a/nixie_tubes/textures/numitron_4.png b/mods/nixie_tubes/textures/numitron_4.png similarity index 100% rename from nixie_tubes/textures/numitron_4.png rename to mods/nixie_tubes/textures/numitron_4.png diff --git a/nixie_tubes/textures/numitron_5.png b/mods/nixie_tubes/textures/numitron_5.png similarity index 100% rename from nixie_tubes/textures/numitron_5.png rename to mods/nixie_tubes/textures/numitron_5.png diff --git a/nixie_tubes/textures/numitron_6.png b/mods/nixie_tubes/textures/numitron_6.png similarity index 100% rename from nixie_tubes/textures/numitron_6.png rename to mods/nixie_tubes/textures/numitron_6.png diff --git a/nixie_tubes/textures/numitron_7.png b/mods/nixie_tubes/textures/numitron_7.png similarity index 100% rename from nixie_tubes/textures/numitron_7.png rename to mods/nixie_tubes/textures/numitron_7.png diff --git a/nixie_tubes/textures/numitron_8.png b/mods/nixie_tubes/textures/numitron_8.png similarity index 100% rename from nixie_tubes/textures/numitron_8.png rename to mods/nixie_tubes/textures/numitron_8.png diff --git a/nixie_tubes/textures/numitron_9.png b/mods/nixie_tubes/textures/numitron_9.png similarity index 100% rename from nixie_tubes/textures/numitron_9.png rename to mods/nixie_tubes/textures/numitron_9.png diff --git a/nixie_tubes/textures/numitron_colon.png b/mods/nixie_tubes/textures/numitron_colon.png similarity index 100% rename from nixie_tubes/textures/numitron_colon.png rename to mods/nixie_tubes/textures/numitron_colon.png diff --git a/nixie_tubes/textures/numitron_filaments.png b/mods/nixie_tubes/textures/numitron_filaments.png similarity index 100% rename from nixie_tubes/textures/numitron_filaments.png rename to mods/nixie_tubes/textures/numitron_filaments.png diff --git a/nixie_tubes/textures/numitron_period.png b/mods/nixie_tubes/textures/numitron_period.png similarity index 100% rename from nixie_tubes/textures/numitron_period.png rename to mods/nixie_tubes/textures/numitron_period.png diff --git a/oak/init.lua b/mods/oak/init.lua similarity index 100% rename from oak/init.lua rename to mods/oak/init.lua diff --git a/oak/locale/oak.es.tr b/mods/oak/locale/oak.es.tr similarity index 100% rename from oak/locale/oak.es.tr rename to mods/oak/locale/oak.es.tr diff --git a/oak/mod.conf b/mods/oak/mod.conf similarity index 100% rename from oak/mod.conf rename to mods/oak/mod.conf diff --git a/oak/schematics/oak.lua b/mods/oak/schematics/oak.lua similarity index 100% rename from oak/schematics/oak.lua rename to mods/oak/schematics/oak.lua diff --git a/oak/schematics/oak.mts b/mods/oak/schematics/oak.mts similarity index 100% rename from oak/schematics/oak.mts rename to mods/oak/schematics/oak.mts diff --git a/oak/textures/oak_acorn.png b/mods/oak/textures/oak_acorn.png similarity index 100% rename from oak/textures/oak_acorn.png rename to mods/oak/textures/oak_acorn.png diff --git a/oak/textures/oak_door_wood.png b/mods/oak/textures/oak_door_wood.png similarity index 100% rename from oak/textures/oak_door_wood.png rename to mods/oak/textures/oak_door_wood.png diff --git a/oak/textures/oak_item_wood.png b/mods/oak/textures/oak_item_wood.png similarity index 100% rename from oak/textures/oak_item_wood.png rename to mods/oak/textures/oak_item_wood.png diff --git a/oak/textures/oak_leaves.png b/mods/oak/textures/oak_leaves.png similarity index 100% rename from oak/textures/oak_leaves.png rename to mods/oak/textures/oak_leaves.png diff --git a/oak/textures/oak_sapling.png b/mods/oak/textures/oak_sapling.png similarity index 100% rename from oak/textures/oak_sapling.png rename to mods/oak/textures/oak_sapling.png diff --git a/oak/textures/oak_trunk.png b/mods/oak/textures/oak_trunk.png similarity index 100% rename from oak/textures/oak_trunk.png rename to mods/oak/textures/oak_trunk.png diff --git a/oak/textures/oak_trunk_top.png b/mods/oak/textures/oak_trunk_top.png similarity index 100% rename from oak/textures/oak_trunk_top.png rename to mods/oak/textures/oak_trunk_top.png diff --git a/oak/textures/oak_wood.png b/mods/oak/textures/oak_wood.png similarity index 100% rename from oak/textures/oak_wood.png rename to mods/oak/textures/oak_wood.png diff --git a/palm/init.lua b/mods/palm/init.lua similarity index 100% rename from palm/init.lua rename to mods/palm/init.lua diff --git a/palm/locale/palm.es.tr b/mods/palm/locale/palm.es.tr similarity index 100% rename from palm/locale/palm.es.tr rename to mods/palm/locale/palm.es.tr diff --git a/palm/mod.conf b/mods/palm/mod.conf similarity index 100% rename from palm/mod.conf rename to mods/palm/mod.conf diff --git a/palm/schematics/palmtree.mts b/mods/palm/schematics/palmtree.mts similarity index 100% rename from palm/schematics/palmtree.mts rename to mods/palm/schematics/palmtree.mts diff --git a/palm/textures/palm_candle.png b/mods/palm/textures/palm_candle.png similarity index 100% rename from palm/textures/palm_candle.png rename to mods/palm/textures/palm_candle.png diff --git a/palm/textures/palm_candle_static.png b/mods/palm/textures/palm_candle_static.png similarity index 100% rename from palm/textures/palm_candle_static.png rename to mods/palm/textures/palm_candle_static.png diff --git a/palm/textures/palm_coconut.png b/mods/palm/textures/palm_coconut.png similarity index 100% rename from palm/textures/palm_coconut.png rename to mods/palm/textures/palm_coconut.png diff --git a/palm/textures/palm_coconut_side.png b/mods/palm/textures/palm_coconut_side.png similarity index 100% rename from palm/textures/palm_coconut_side.png rename to mods/palm/textures/palm_coconut_side.png diff --git a/palm/textures/palm_coconut_slice.png b/mods/palm/textures/palm_coconut_slice.png similarity index 100% rename from palm/textures/palm_coconut_slice.png rename to mods/palm/textures/palm_coconut_slice.png diff --git a/palm/textures/palm_coconut_top.png b/mods/palm/textures/palm_coconut_top.png similarity index 100% rename from palm/textures/palm_coconut_top.png rename to mods/palm/textures/palm_coconut_top.png diff --git a/palm/textures/palm_door_wood.png b/mods/palm/textures/palm_door_wood.png similarity index 100% rename from palm/textures/palm_door_wood.png rename to mods/palm/textures/palm_door_wood.png diff --git a/palm/textures/palm_door_wood_inv.png b/mods/palm/textures/palm_door_wood_inv.png similarity index 100% rename from palm/textures/palm_door_wood_inv.png rename to mods/palm/textures/palm_door_wood_inv.png diff --git a/palm/textures/palm_leaves.png b/mods/palm/textures/palm_leaves.png similarity index 100% rename from palm/textures/palm_leaves.png rename to mods/palm/textures/palm_leaves.png diff --git a/palm/textures/palm_sapling.png b/mods/palm/textures/palm_sapling.png similarity index 100% rename from palm/textures/palm_sapling.png rename to mods/palm/textures/palm_sapling.png diff --git a/palm/textures/palm_trunk.png b/mods/palm/textures/palm_trunk.png similarity index 100% rename from palm/textures/palm_trunk.png rename to mods/palm/textures/palm_trunk.png diff --git a/palm/textures/palm_trunk_top.png b/mods/palm/textures/palm_trunk_top.png similarity index 100% rename from palm/textures/palm_trunk_top.png rename to mods/palm/textures/palm_trunk_top.png diff --git a/palm/textures/palm_wax.png b/mods/palm/textures/palm_wax.png similarity index 100% rename from palm/textures/palm_wax.png rename to mods/palm/textures/palm_wax.png diff --git a/palm/textures/palm_wood.png b/mods/palm/textures/palm_wood.png similarity index 100% rename from palm/textures/palm_wood.png rename to mods/palm/textures/palm_wood.png diff --git a/pineapple/init.lua b/mods/pineapple/init.lua similarity index 100% rename from pineapple/init.lua rename to mods/pineapple/init.lua diff --git a/pineapple/locale/pineapple.es.tr b/mods/pineapple/locale/pineapple.es.tr similarity index 100% rename from pineapple/locale/pineapple.es.tr rename to mods/pineapple/locale/pineapple.es.tr diff --git a/pineapple/mod.conf b/mods/pineapple/mod.conf similarity index 100% rename from pineapple/mod.conf rename to mods/pineapple/mod.conf diff --git a/pineapple/schematics/pineapple.mts b/mods/pineapple/schematics/pineapple.mts similarity index 100% rename from pineapple/schematics/pineapple.mts rename to mods/pineapple/schematics/pineapple.mts diff --git a/pineapple/textures/pineapple_leaves.png b/mods/pineapple/textures/pineapple_leaves.png similarity index 100% rename from pineapple/textures/pineapple_leaves.png rename to mods/pineapple/textures/pineapple_leaves.png diff --git a/pineapple/textures/pineapple_pineapple.png b/mods/pineapple/textures/pineapple_pineapple.png similarity index 100% rename from pineapple/textures/pineapple_pineapple.png rename to mods/pineapple/textures/pineapple_pineapple.png diff --git a/pineapple/textures/pineapple_pineapple_inv.png b/mods/pineapple/textures/pineapple_pineapple_inv.png similarity index 100% rename from pineapple/textures/pineapple_pineapple_inv.png rename to mods/pineapple/textures/pineapple_pineapple_inv.png diff --git a/pineapple/textures/pineapple_pineapple_leaves.png b/mods/pineapple/textures/pineapple_pineapple_leaves.png similarity index 100% rename from pineapple/textures/pineapple_pineapple_leaves.png rename to mods/pineapple/textures/pineapple_pineapple_leaves.png diff --git a/pipeworks/LICENSE b/mods/pipeworks/LICENSE similarity index 100% rename from pipeworks/LICENSE rename to mods/pipeworks/LICENSE diff --git a/pipeworks/README b/mods/pipeworks/README similarity index 100% rename from pipeworks/README rename to mods/pipeworks/README diff --git a/pipeworks/autocrafter.lua b/mods/pipeworks/autocrafter.lua similarity index 100% rename from pipeworks/autocrafter.lua rename to mods/pipeworks/autocrafter.lua diff --git a/pipeworks/autodetect-finite-water.lua b/mods/pipeworks/autodetect-finite-water.lua similarity index 100% rename from pipeworks/autodetect-finite-water.lua rename to mods/pipeworks/autodetect-finite-water.lua diff --git a/pipeworks/autoplace_pipes.lua b/mods/pipeworks/autoplace_pipes.lua similarity index 100% rename from pipeworks/autoplace_pipes.lua rename to mods/pipeworks/autoplace_pipes.lua diff --git a/pipeworks/autoplace_tubes.lua b/mods/pipeworks/autoplace_tubes.lua similarity index 100% rename from pipeworks/autoplace_tubes.lua rename to mods/pipeworks/autoplace_tubes.lua diff --git a/pipeworks/changelog.txt b/mods/pipeworks/changelog.txt similarity index 100% rename from pipeworks/changelog.txt rename to mods/pipeworks/changelog.txt diff --git a/pipeworks/common.lua b/mods/pipeworks/common.lua similarity index 100% rename from pipeworks/common.lua rename to mods/pipeworks/common.lua diff --git a/pipeworks/compat-chests.lua b/mods/pipeworks/compat-chests.lua similarity index 100% rename from pipeworks/compat-chests.lua rename to mods/pipeworks/compat-chests.lua diff --git a/pipeworks/compat-furnaces.lua b/mods/pipeworks/compat-furnaces.lua similarity index 100% rename from pipeworks/compat-furnaces.lua rename to mods/pipeworks/compat-furnaces.lua diff --git a/pipeworks/crafts.lua b/mods/pipeworks/crafts.lua similarity index 100% rename from pipeworks/crafts.lua rename to mods/pipeworks/crafts.lua diff --git a/pipeworks/decorative_tubes.lua b/mods/pipeworks/decorative_tubes.lua similarity index 100% rename from pipeworks/decorative_tubes.lua rename to mods/pipeworks/decorative_tubes.lua diff --git a/pipeworks/default_settings.lua b/mods/pipeworks/default_settings.lua similarity index 100% rename from pipeworks/default_settings.lua rename to mods/pipeworks/default_settings.lua diff --git a/pipeworks/devices.lua b/mods/pipeworks/devices.lua similarity index 100% rename from pipeworks/devices.lua rename to mods/pipeworks/devices.lua diff --git a/pipeworks/filter-injector.lua b/mods/pipeworks/filter-injector.lua similarity index 100% rename from pipeworks/filter-injector.lua rename to mods/pipeworks/filter-injector.lua diff --git a/pipeworks/flowing_logic.lua b/mods/pipeworks/flowing_logic.lua similarity index 100% rename from pipeworks/flowing_logic.lua rename to mods/pipeworks/flowing_logic.lua diff --git a/pipeworks/init.lua b/mods/pipeworks/init.lua similarity index 100% rename from pipeworks/init.lua rename to mods/pipeworks/init.lua diff --git a/pipeworks/item_transport.lua b/mods/pipeworks/item_transport.lua similarity index 100% rename from pipeworks/item_transport.lua rename to mods/pipeworks/item_transport.lua diff --git a/pipeworks/legacy.lua b/mods/pipeworks/legacy.lua similarity index 100% rename from pipeworks/legacy.lua rename to mods/pipeworks/legacy.lua diff --git a/pipeworks/locale/pipeworks.fr.tr b/mods/pipeworks/locale/pipeworks.fr.tr similarity index 100% rename from pipeworks/locale/pipeworks.fr.tr rename to mods/pipeworks/locale/pipeworks.fr.tr diff --git a/pipeworks/locale/pipeworks.zh_CN.tr b/mods/pipeworks/locale/pipeworks.zh_CN.tr similarity index 100% rename from pipeworks/locale/pipeworks.zh_CN.tr rename to mods/pipeworks/locale/pipeworks.zh_CN.tr diff --git a/pipeworks/locale/template.txt b/mods/pipeworks/locale/template.txt similarity index 100% rename from pipeworks/locale/template.txt rename to mods/pipeworks/locale/template.txt diff --git a/pipeworks/lua_tube.lua b/mods/pipeworks/lua_tube.lua similarity index 100% rename from pipeworks/lua_tube.lua rename to mods/pipeworks/lua_tube.lua diff --git a/pipeworks/luaentity.lua b/mods/pipeworks/luaentity.lua similarity index 100% rename from pipeworks/luaentity.lua rename to mods/pipeworks/luaentity.lua diff --git a/pipeworks/mod.conf b/mods/pipeworks/mod.conf similarity index 100% rename from pipeworks/mod.conf rename to mods/pipeworks/mod.conf diff --git a/pipeworks/models.lua b/mods/pipeworks/models.lua similarity index 100% rename from pipeworks/models.lua rename to mods/pipeworks/models.lua diff --git a/pipeworks/models/pipeworks_entry_panel.obj b/mods/pipeworks/models/pipeworks_entry_panel.obj similarity index 100% rename from pipeworks/models/pipeworks_entry_panel.obj rename to mods/pipeworks/models/pipeworks_entry_panel.obj diff --git a/pipeworks/models/pipeworks_entry_panel_lowpoly.obj b/mods/pipeworks/models/pipeworks_entry_panel_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_entry_panel_lowpoly.obj rename to mods/pipeworks/models/pipeworks_entry_panel_lowpoly.obj diff --git a/pipeworks/models/pipeworks_flow_sensor.obj b/mods/pipeworks/models/pipeworks_flow_sensor.obj similarity index 100% rename from pipeworks/models/pipeworks_flow_sensor.obj rename to mods/pipeworks/models/pipeworks_flow_sensor.obj diff --git a/pipeworks/models/pipeworks_flow_sensor_lowpoly.obj b/mods/pipeworks/models/pipeworks_flow_sensor_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_flow_sensor_lowpoly.obj rename to mods/pipeworks/models/pipeworks_flow_sensor_lowpoly.obj diff --git a/pipeworks/models/pipeworks_fountainhead.obj b/mods/pipeworks/models/pipeworks_fountainhead.obj similarity index 100% rename from pipeworks/models/pipeworks_fountainhead.obj rename to mods/pipeworks/models/pipeworks_fountainhead.obj diff --git a/pipeworks/models/pipeworks_fountainhead_lowpoly.obj b/mods/pipeworks/models/pipeworks_fountainhead_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_fountainhead_lowpoly.obj rename to mods/pipeworks/models/pipeworks_fountainhead_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_10.obj b/mods/pipeworks/models/pipeworks_pipe_10.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_10.obj rename to mods/pipeworks/models/pipeworks_pipe_10.obj diff --git a/pipeworks/models/pipeworks_pipe_10_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_10_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_10_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_10_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_2.obj b/mods/pipeworks/models/pipeworks_pipe_2.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_2.obj rename to mods/pipeworks/models/pipeworks_pipe_2.obj diff --git a/pipeworks/models/pipeworks_pipe_2_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_2_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_2_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_2_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_3.obj b/mods/pipeworks/models/pipeworks_pipe_3.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_3.obj rename to mods/pipeworks/models/pipeworks_pipe_3.obj diff --git a/pipeworks/models/pipeworks_pipe_3_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_3_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_3_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_3_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_4.obj b/mods/pipeworks/models/pipeworks_pipe_4.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_4.obj rename to mods/pipeworks/models/pipeworks_pipe_4.obj diff --git a/pipeworks/models/pipeworks_pipe_4_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_4_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_4_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_4_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_5.obj b/mods/pipeworks/models/pipeworks_pipe_5.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_5.obj rename to mods/pipeworks/models/pipeworks_pipe_5.obj diff --git a/pipeworks/models/pipeworks_pipe_5_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_5_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_5_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_5_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_6.obj b/mods/pipeworks/models/pipeworks_pipe_6.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_6.obj rename to mods/pipeworks/models/pipeworks_pipe_6.obj diff --git a/pipeworks/models/pipeworks_pipe_6_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_6_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_6_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_6_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_7.obj b/mods/pipeworks/models/pipeworks_pipe_7.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_7.obj rename to mods/pipeworks/models/pipeworks_pipe_7.obj diff --git a/pipeworks/models/pipeworks_pipe_7_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_7_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_7_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_7_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_8.obj b/mods/pipeworks/models/pipeworks_pipe_8.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_8.obj rename to mods/pipeworks/models/pipeworks_pipe_8.obj diff --git a/pipeworks/models/pipeworks_pipe_8_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_8_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_8_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_8_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pipe_9.obj b/mods/pipeworks/models/pipeworks_pipe_9.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_9.obj rename to mods/pipeworks/models/pipeworks_pipe_9.obj diff --git a/pipeworks/models/pipeworks_pipe_9_lowpoly.obj b/mods/pipeworks/models/pipeworks_pipe_9_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pipe_9_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pipe_9_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pressure_gauge.obj b/mods/pipeworks/models/pipeworks_pressure_gauge.obj similarity index 100% rename from pipeworks/models/pipeworks_pressure_gauge.obj rename to mods/pipeworks/models/pipeworks_pressure_gauge.obj diff --git a/pipeworks/models/pipeworks_pressure_gauge_lowpoly.obj b/mods/pipeworks/models/pipeworks_pressure_gauge_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pressure_gauge_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pressure_gauge_lowpoly.obj diff --git a/pipeworks/models/pipeworks_pump.obj b/mods/pipeworks/models/pipeworks_pump.obj similarity index 100% rename from pipeworks/models/pipeworks_pump.obj rename to mods/pipeworks/models/pipeworks_pump.obj diff --git a/pipeworks/models/pipeworks_pump_lowpoly.obj b/mods/pipeworks/models/pipeworks_pump_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_pump_lowpoly.obj rename to mods/pipeworks/models/pipeworks_pump_lowpoly.obj diff --git a/pipeworks/models/pipeworks_spigot.obj b/mods/pipeworks/models/pipeworks_spigot.obj similarity index 100% rename from pipeworks/models/pipeworks_spigot.obj rename to mods/pipeworks/models/pipeworks_spigot.obj diff --git a/pipeworks/models/pipeworks_spigot_lowpoly.obj b/mods/pipeworks/models/pipeworks_spigot_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_spigot_lowpoly.obj rename to mods/pipeworks/models/pipeworks_spigot_lowpoly.obj diff --git a/pipeworks/models/pipeworks_spigot_pouring.obj b/mods/pipeworks/models/pipeworks_spigot_pouring.obj similarity index 100% rename from pipeworks/models/pipeworks_spigot_pouring.obj rename to mods/pipeworks/models/pipeworks_spigot_pouring.obj diff --git a/pipeworks/models/pipeworks_spigot_pouring_lowpoly.obj b/mods/pipeworks/models/pipeworks_spigot_pouring_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_spigot_pouring_lowpoly.obj rename to mods/pipeworks/models/pipeworks_spigot_pouring_lowpoly.obj diff --git a/pipeworks/models/pipeworks_straight_pipe.obj b/mods/pipeworks/models/pipeworks_straight_pipe.obj similarity index 100% rename from pipeworks/models/pipeworks_straight_pipe.obj rename to mods/pipeworks/models/pipeworks_straight_pipe.obj diff --git a/pipeworks/models/pipeworks_straight_pipe_lowpoly.obj b/mods/pipeworks/models/pipeworks_straight_pipe_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_straight_pipe_lowpoly.obj rename to mods/pipeworks/models/pipeworks_straight_pipe_lowpoly.obj diff --git a/pipeworks/models/pipeworks_valve_off.obj b/mods/pipeworks/models/pipeworks_valve_off.obj similarity index 100% rename from pipeworks/models/pipeworks_valve_off.obj rename to mods/pipeworks/models/pipeworks_valve_off.obj diff --git a/pipeworks/models/pipeworks_valve_off_lowpoly.obj b/mods/pipeworks/models/pipeworks_valve_off_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_valve_off_lowpoly.obj rename to mods/pipeworks/models/pipeworks_valve_off_lowpoly.obj diff --git a/pipeworks/models/pipeworks_valve_on.obj b/mods/pipeworks/models/pipeworks_valve_on.obj similarity index 100% rename from pipeworks/models/pipeworks_valve_on.obj rename to mods/pipeworks/models/pipeworks_valve_on.obj diff --git a/pipeworks/models/pipeworks_valve_on_lowpoly.obj b/mods/pipeworks/models/pipeworks_valve_on_lowpoly.obj similarity index 100% rename from pipeworks/models/pipeworks_valve_on_lowpoly.obj rename to mods/pipeworks/models/pipeworks_valve_on_lowpoly.obj diff --git a/pipeworks/pipes.lua b/mods/pipeworks/pipes.lua similarity index 100% rename from pipeworks/pipes.lua rename to mods/pipeworks/pipes.lua diff --git a/pipeworks/pressure_logic/abm_register.lua b/mods/pipeworks/pressure_logic/abm_register.lua similarity index 100% rename from pipeworks/pressure_logic/abm_register.lua rename to mods/pipeworks/pressure_logic/abm_register.lua diff --git a/pipeworks/pressure_logic/abms.lua b/mods/pipeworks/pressure_logic/abms.lua similarity index 100% rename from pipeworks/pressure_logic/abms.lua rename to mods/pipeworks/pressure_logic/abms.lua diff --git a/pipeworks/pressure_logic/flowable_node_registry.lua b/mods/pipeworks/pressure_logic/flowable_node_registry.lua similarity index 100% rename from pipeworks/pressure_logic/flowable_node_registry.lua rename to mods/pipeworks/pressure_logic/flowable_node_registry.lua diff --git a/pipeworks/pressure_logic/flowable_node_registry_install.lua b/mods/pipeworks/pressure_logic/flowable_node_registry_install.lua similarity index 100% rename from pipeworks/pressure_logic/flowable_node_registry_install.lua rename to mods/pipeworks/pressure_logic/flowable_node_registry_install.lua diff --git a/pipeworks/routing_tubes.lua b/mods/pipeworks/routing_tubes.lua similarity index 100% rename from pipeworks/routing_tubes.lua rename to mods/pipeworks/routing_tubes.lua diff --git a/pipeworks/screenshot.png b/mods/pipeworks/screenshot.png similarity index 100% rename from pipeworks/screenshot.png rename to mods/pipeworks/screenshot.png diff --git a/pipeworks/settingtypes.txt b/mods/pipeworks/settingtypes.txt similarity index 100% rename from pipeworks/settingtypes.txt rename to mods/pipeworks/settingtypes.txt diff --git a/pipeworks/signal_tubes.lua b/mods/pipeworks/signal_tubes.lua similarity index 100% rename from pipeworks/signal_tubes.lua rename to mods/pipeworks/signal_tubes.lua diff --git a/pipeworks/signs_compat.lua b/mods/pipeworks/signs_compat.lua similarity index 100% rename from pipeworks/signs_compat.lua rename to mods/pipeworks/signs_compat.lua diff --git a/pipeworks/sorting_tubes.lua b/mods/pipeworks/sorting_tubes.lua similarity index 100% rename from pipeworks/sorting_tubes.lua rename to mods/pipeworks/sorting_tubes.lua diff --git a/pipeworks/teleport_tube.lua b/mods/pipeworks/teleport_tube.lua similarity index 100% rename from pipeworks/teleport_tube.lua rename to mods/pipeworks/teleport_tube.lua diff --git a/pipeworks/textures/homedecor_oil_extract.png b/mods/pipeworks/textures/homedecor_oil_extract.png similarity index 100% rename from pipeworks/textures/homedecor_oil_extract.png rename to mods/pipeworks/textures/homedecor_oil_extract.png diff --git a/pipeworks/textures/homedecor_paraffin.png b/mods/pipeworks/textures/homedecor_paraffin.png similarity index 100% rename from pipeworks/textures/homedecor_paraffin.png rename to mods/pipeworks/textures/homedecor_paraffin.png diff --git a/pipeworks/textures/homedecor_plastic_sheeting.png b/mods/pipeworks/textures/homedecor_plastic_sheeting.png similarity index 100% rename from pipeworks/textures/homedecor_plastic_sheeting.png rename to mods/pipeworks/textures/homedecor_plastic_sheeting.png diff --git a/pipeworks/textures/pipeworks_accelerator_tube_end.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_accelerator_tube_end.png rename to mods/pipeworks/textures/pipeworks_accelerator_tube_end.png diff --git a/pipeworks/textures/pipeworks_accelerator_tube_inv.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_accelerator_tube_inv.png rename to mods/pipeworks/textures/pipeworks_accelerator_tube_inv.png diff --git a/pipeworks/textures/pipeworks_accelerator_tube_noctr.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_accelerator_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_accelerator_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_accelerator_tube_plain.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_accelerator_tube_plain.png rename to mods/pipeworks/textures/pipeworks_accelerator_tube_plain.png diff --git a/pipeworks/textures/pipeworks_accelerator_tube_short.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_accelerator_tube_short.png rename to mods/pipeworks/textures/pipeworks_accelerator_tube_short.png diff --git a/pipeworks/textures/pipeworks_autocrafter.png b/mods/pipeworks/textures/pipeworks_autocrafter.png similarity index 100% rename from pipeworks/textures/pipeworks_autocrafter.png rename to mods/pipeworks/textures/pipeworks_autocrafter.png diff --git a/pipeworks/textures/pipeworks_black.png b/mods/pipeworks/textures/pipeworks_black.png similarity index 100% rename from pipeworks/textures/pipeworks_black.png rename to mods/pipeworks/textures/pipeworks_black.png diff --git a/pipeworks/textures/pipeworks_blue.png b/mods/pipeworks/textures/pipeworks_blue.png similarity index 100% rename from pipeworks/textures/pipeworks_blue.png rename to mods/pipeworks/textures/pipeworks_blue.png diff --git a/pipeworks/textures/pipeworks_broken_tube_end.png b/mods/pipeworks/textures/pipeworks_broken_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_broken_tube_end.png rename to mods/pipeworks/textures/pipeworks_broken_tube_end.png diff --git a/pipeworks/textures/pipeworks_broken_tube_inv.png b/mods/pipeworks/textures/pipeworks_broken_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_broken_tube_inv.png rename to mods/pipeworks/textures/pipeworks_broken_tube_inv.png diff --git a/pipeworks/textures/pipeworks_broken_tube_noctr.png b/mods/pipeworks/textures/pipeworks_broken_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_broken_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_broken_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_broken_tube_plain.png b/mods/pipeworks/textures/pipeworks_broken_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_broken_tube_plain.png rename to mods/pipeworks/textures/pipeworks_broken_tube_plain.png diff --git a/pipeworks/textures/pipeworks_broken_tube_short.png b/mods/pipeworks/textures/pipeworks_broken_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_broken_tube_short.png rename to mods/pipeworks/textures/pipeworks_broken_tube_short.png diff --git a/pipeworks/textures/pipeworks_button_interm.png b/mods/pipeworks/textures/pipeworks_button_interm.png similarity index 100% rename from pipeworks/textures/pipeworks_button_interm.png rename to mods/pipeworks/textures/pipeworks_button_interm.png diff --git a/pipeworks/textures/pipeworks_button_off.png b/mods/pipeworks/textures/pipeworks_button_off.png similarity index 100% rename from pipeworks/textures/pipeworks_button_off.png rename to mods/pipeworks/textures/pipeworks_button_off.png diff --git a/pipeworks/textures/pipeworks_button_on.png b/mods/pipeworks/textures/pipeworks_button_on.png similarity index 100% rename from pipeworks/textures/pipeworks_button_on.png rename to mods/pipeworks/textures/pipeworks_button_on.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_end.png b/mods/pipeworks/textures/pipeworks_conductor_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_end.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_end.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_inv.png b/mods/pipeworks/textures/pipeworks_conductor_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_inv.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_inv.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_noctr.png b/mods/pipeworks/textures/pipeworks_conductor_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_on_end.png b/mods/pipeworks/textures/pipeworks_conductor_tube_on_end.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_on_end.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_on_end.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_on_noctr.png b/mods/pipeworks/textures/pipeworks_conductor_tube_on_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_on_noctr.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_on_noctr.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_on_plain.png b/mods/pipeworks/textures/pipeworks_conductor_tube_on_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_on_plain.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_on_plain.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_plain.png b/mods/pipeworks/textures/pipeworks_conductor_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_plain.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_plain.png diff --git a/pipeworks/textures/pipeworks_conductor_tube_short.png b/mods/pipeworks/textures/pipeworks_conductor_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_conductor_tube_short.png rename to mods/pipeworks/textures/pipeworks_conductor_tube_short.png diff --git a/pipeworks/textures/pipeworks_crossing_tube_end.png b/mods/pipeworks/textures/pipeworks_crossing_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_crossing_tube_end.png rename to mods/pipeworks/textures/pipeworks_crossing_tube_end.png diff --git a/pipeworks/textures/pipeworks_crossing_tube_inv.png b/mods/pipeworks/textures/pipeworks_crossing_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_crossing_tube_inv.png rename to mods/pipeworks/textures/pipeworks_crossing_tube_inv.png diff --git a/pipeworks/textures/pipeworks_crossing_tube_noctr.png b/mods/pipeworks/textures/pipeworks_crossing_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_crossing_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_crossing_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_crossing_tube_plain.png b/mods/pipeworks/textures/pipeworks_crossing_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_crossing_tube_plain.png rename to mods/pipeworks/textures/pipeworks_crossing_tube_plain.png diff --git a/pipeworks/textures/pipeworks_crossing_tube_short.png b/mods/pipeworks/textures/pipeworks_crossing_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_crossing_tube_short.png rename to mods/pipeworks/textures/pipeworks_crossing_tube_short.png diff --git a/pipeworks/textures/pipeworks_deployer_back.png b/mods/pipeworks/textures/pipeworks_deployer_back.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_back.png rename to mods/pipeworks/textures/pipeworks_deployer_back.png diff --git a/pipeworks/textures/pipeworks_deployer_bottom.png b/mods/pipeworks/textures/pipeworks_deployer_bottom.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_bottom.png rename to mods/pipeworks/textures/pipeworks_deployer_bottom.png diff --git a/pipeworks/textures/pipeworks_deployer_front_off.png b/mods/pipeworks/textures/pipeworks_deployer_front_off.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_front_off.png rename to mods/pipeworks/textures/pipeworks_deployer_front_off.png diff --git a/pipeworks/textures/pipeworks_deployer_front_on.png b/mods/pipeworks/textures/pipeworks_deployer_front_on.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_front_on.png rename to mods/pipeworks/textures/pipeworks_deployer_front_on.png diff --git a/pipeworks/textures/pipeworks_deployer_side.png b/mods/pipeworks/textures/pipeworks_deployer_side.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_side.png rename to mods/pipeworks/textures/pipeworks_deployer_side.png diff --git a/pipeworks/textures/pipeworks_deployer_side1.png b/mods/pipeworks/textures/pipeworks_deployer_side1.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_side1.png rename to mods/pipeworks/textures/pipeworks_deployer_side1.png diff --git a/pipeworks/textures/pipeworks_deployer_side2.png b/mods/pipeworks/textures/pipeworks_deployer_side2.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_side2.png rename to mods/pipeworks/textures/pipeworks_deployer_side2.png diff --git a/pipeworks/textures/pipeworks_deployer_top.png b/mods/pipeworks/textures/pipeworks_deployer_top.png similarity index 100% rename from pipeworks/textures/pipeworks_deployer_top.png rename to mods/pipeworks/textures/pipeworks_deployer_top.png diff --git a/pipeworks/textures/pipeworks_detector_tube_end.png b/mods/pipeworks/textures/pipeworks_detector_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_detector_tube_end.png rename to mods/pipeworks/textures/pipeworks_detector_tube_end.png diff --git a/pipeworks/textures/pipeworks_detector_tube_inv.png b/mods/pipeworks/textures/pipeworks_detector_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_detector_tube_inv.png rename to mods/pipeworks/textures/pipeworks_detector_tube_inv.png diff --git a/pipeworks/textures/pipeworks_detector_tube_noctr.png b/mods/pipeworks/textures/pipeworks_detector_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_detector_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_detector_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_detector_tube_plain.png b/mods/pipeworks/textures/pipeworks_detector_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_detector_tube_plain.png rename to mods/pipeworks/textures/pipeworks_detector_tube_plain.png diff --git a/pipeworks/textures/pipeworks_detector_tube_short.png b/mods/pipeworks/textures/pipeworks_detector_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_detector_tube_short.png rename to mods/pipeworks/textures/pipeworks_detector_tube_short.png diff --git a/pipeworks/textures/pipeworks_digiline_conductor_tube_end.png b/mods/pipeworks/textures/pipeworks_digiline_conductor_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_conductor_tube_end.png rename to mods/pipeworks/textures/pipeworks_digiline_conductor_tube_end.png diff --git a/pipeworks/textures/pipeworks_digiline_conductor_tube_inv.png b/mods/pipeworks/textures/pipeworks_digiline_conductor_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_conductor_tube_inv.png rename to mods/pipeworks/textures/pipeworks_digiline_conductor_tube_inv.png diff --git a/pipeworks/textures/pipeworks_digiline_conductor_tube_noctr.png b/mods/pipeworks/textures/pipeworks_digiline_conductor_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_conductor_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_digiline_conductor_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_digiline_conductor_tube_plain.png b/mods/pipeworks/textures/pipeworks_digiline_conductor_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_conductor_tube_plain.png rename to mods/pipeworks/textures/pipeworks_digiline_conductor_tube_plain.png diff --git a/pipeworks/textures/pipeworks_digiline_conductor_tube_short.png b/mods/pipeworks/textures/pipeworks_digiline_conductor_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_conductor_tube_short.png rename to mods/pipeworks/textures/pipeworks_digiline_conductor_tube_short.png diff --git a/pipeworks/textures/pipeworks_digiline_detector_tube_end.png b/mods/pipeworks/textures/pipeworks_digiline_detector_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_detector_tube_end.png rename to mods/pipeworks/textures/pipeworks_digiline_detector_tube_end.png diff --git a/pipeworks/textures/pipeworks_digiline_detector_tube_inv.png b/mods/pipeworks/textures/pipeworks_digiline_detector_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_detector_tube_inv.png rename to mods/pipeworks/textures/pipeworks_digiline_detector_tube_inv.png diff --git a/pipeworks/textures/pipeworks_digiline_detector_tube_noctr.png b/mods/pipeworks/textures/pipeworks_digiline_detector_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_detector_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_digiline_detector_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_digiline_detector_tube_plain.png b/mods/pipeworks/textures/pipeworks_digiline_detector_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_detector_tube_plain.png rename to mods/pipeworks/textures/pipeworks_digiline_detector_tube_plain.png diff --git a/pipeworks/textures/pipeworks_digiline_detector_tube_short.png b/mods/pipeworks/textures/pipeworks_digiline_detector_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_detector_tube_short.png rename to mods/pipeworks/textures/pipeworks_digiline_detector_tube_short.png diff --git a/pipeworks/textures/pipeworks_digiline_filter_input.png b/mods/pipeworks/textures/pipeworks_digiline_filter_input.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_filter_input.png rename to mods/pipeworks/textures/pipeworks_digiline_filter_input.png diff --git a/pipeworks/textures/pipeworks_digiline_filter_output.png b/mods/pipeworks/textures/pipeworks_digiline_filter_output.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_filter_output.png rename to mods/pipeworks/textures/pipeworks_digiline_filter_output.png diff --git a/pipeworks/textures/pipeworks_digiline_filter_side.png b/mods/pipeworks/textures/pipeworks_digiline_filter_side.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_filter_side.png rename to mods/pipeworks/textures/pipeworks_digiline_filter_side.png diff --git a/pipeworks/textures/pipeworks_digiline_filter_top.png b/mods/pipeworks/textures/pipeworks_digiline_filter_top.png similarity index 100% rename from pipeworks/textures/pipeworks_digiline_filter_top.png rename to mods/pipeworks/textures/pipeworks_digiline_filter_top.png diff --git a/pipeworks/textures/pipeworks_dispenser_back.png b/mods/pipeworks/textures/pipeworks_dispenser_back.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_back.png rename to mods/pipeworks/textures/pipeworks_dispenser_back.png diff --git a/pipeworks/textures/pipeworks_dispenser_bottom.png b/mods/pipeworks/textures/pipeworks_dispenser_bottom.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_bottom.png rename to mods/pipeworks/textures/pipeworks_dispenser_bottom.png diff --git a/pipeworks/textures/pipeworks_dispenser_front_off.png b/mods/pipeworks/textures/pipeworks_dispenser_front_off.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_front_off.png rename to mods/pipeworks/textures/pipeworks_dispenser_front_off.png diff --git a/pipeworks/textures/pipeworks_dispenser_front_on.png b/mods/pipeworks/textures/pipeworks_dispenser_front_on.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_front_on.png rename to mods/pipeworks/textures/pipeworks_dispenser_front_on.png diff --git a/pipeworks/textures/pipeworks_dispenser_side1.png b/mods/pipeworks/textures/pipeworks_dispenser_side1.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_side1.png rename to mods/pipeworks/textures/pipeworks_dispenser_side1.png diff --git a/pipeworks/textures/pipeworks_dispenser_side2.png b/mods/pipeworks/textures/pipeworks_dispenser_side2.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_side2.png rename to mods/pipeworks/textures/pipeworks_dispenser_side2.png diff --git a/pipeworks/textures/pipeworks_dispenser_top.png b/mods/pipeworks/textures/pipeworks_dispenser_top.png similarity index 100% rename from pipeworks/textures/pipeworks_dispenser_top.png rename to mods/pipeworks/textures/pipeworks_dispenser_top.png diff --git a/pipeworks/textures/pipeworks_entry_panel.png b/mods/pipeworks/textures/pipeworks_entry_panel.png similarity index 100% rename from pipeworks/textures/pipeworks_entry_panel.png rename to mods/pipeworks/textures/pipeworks_entry_panel.png diff --git a/pipeworks/textures/pipeworks_filter_input.png b/mods/pipeworks/textures/pipeworks_filter_input.png similarity index 100% rename from pipeworks/textures/pipeworks_filter_input.png rename to mods/pipeworks/textures/pipeworks_filter_input.png diff --git a/pipeworks/textures/pipeworks_filter_output.png b/mods/pipeworks/textures/pipeworks_filter_output.png similarity index 100% rename from pipeworks/textures/pipeworks_filter_output.png rename to mods/pipeworks/textures/pipeworks_filter_output.png diff --git a/pipeworks/textures/pipeworks_filter_side.png b/mods/pipeworks/textures/pipeworks_filter_side.png similarity index 100% rename from pipeworks/textures/pipeworks_filter_side.png rename to mods/pipeworks/textures/pipeworks_filter_side.png diff --git a/pipeworks/textures/pipeworks_filter_top.png b/mods/pipeworks/textures/pipeworks_filter_top.png similarity index 100% rename from pipeworks/textures/pipeworks_filter_top.png rename to mods/pipeworks/textures/pipeworks_filter_top.png diff --git a/pipeworks/textures/pipeworks_flow_sensor_off.png b/mods/pipeworks/textures/pipeworks_flow_sensor_off.png similarity index 100% rename from pipeworks/textures/pipeworks_flow_sensor_off.png rename to mods/pipeworks/textures/pipeworks_flow_sensor_off.png diff --git a/pipeworks/textures/pipeworks_flow_sensor_on.png b/mods/pipeworks/textures/pipeworks_flow_sensor_on.png similarity index 100% rename from pipeworks/textures/pipeworks_flow_sensor_on.png rename to mods/pipeworks/textures/pipeworks_flow_sensor_on.png diff --git a/pipeworks/textures/pipeworks_fountainhead.png b/mods/pipeworks/textures/pipeworks_fountainhead.png similarity index 100% rename from pipeworks/textures/pipeworks_fountainhead.png rename to mods/pipeworks/textures/pipeworks_fountainhead.png diff --git a/pipeworks/textures/pipeworks_grating_sides.png b/mods/pipeworks/textures/pipeworks_grating_sides.png similarity index 100% rename from pipeworks/textures/pipeworks_grating_sides.png rename to mods/pipeworks/textures/pipeworks_grating_sides.png diff --git a/pipeworks/textures/pipeworks_grating_top.png b/mods/pipeworks/textures/pipeworks_grating_top.png similarity index 100% rename from pipeworks/textures/pipeworks_grating_top.png rename to mods/pipeworks/textures/pipeworks_grating_top.png diff --git a/pipeworks/textures/pipeworks_green.png b/mods/pipeworks/textures/pipeworks_green.png similarity index 100% rename from pipeworks/textures/pipeworks_green.png rename to mods/pipeworks/textures/pipeworks_green.png diff --git a/pipeworks/textures/pipeworks_lua_tube_port_burnt.png b/mods/pipeworks/textures/pipeworks_lua_tube_port_burnt.png similarity index 100% rename from pipeworks/textures/pipeworks_lua_tube_port_burnt.png rename to mods/pipeworks/textures/pipeworks_lua_tube_port_burnt.png diff --git a/pipeworks/textures/pipeworks_lua_tube_port_off.png b/mods/pipeworks/textures/pipeworks_lua_tube_port_off.png similarity index 100% rename from pipeworks/textures/pipeworks_lua_tube_port_off.png rename to mods/pipeworks/textures/pipeworks_lua_tube_port_off.png diff --git a/pipeworks/textures/pipeworks_lua_tube_port_on.png b/mods/pipeworks/textures/pipeworks_lua_tube_port_on.png similarity index 100% rename from pipeworks/textures/pipeworks_lua_tube_port_on.png rename to mods/pipeworks/textures/pipeworks_lua_tube_port_on.png diff --git a/pipeworks/textures/pipeworks_mese_filter_input.png b/mods/pipeworks/textures/pipeworks_mese_filter_input.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_filter_input.png rename to mods/pipeworks/textures/pipeworks_mese_filter_input.png diff --git a/pipeworks/textures/pipeworks_mese_filter_output.png b/mods/pipeworks/textures/pipeworks_mese_filter_output.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_filter_output.png rename to mods/pipeworks/textures/pipeworks_mese_filter_output.png diff --git a/pipeworks/textures/pipeworks_mese_filter_side.png b/mods/pipeworks/textures/pipeworks_mese_filter_side.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_filter_side.png rename to mods/pipeworks/textures/pipeworks_mese_filter_side.png diff --git a/pipeworks/textures/pipeworks_mese_filter_top.png b/mods/pipeworks/textures/pipeworks_mese_filter_top.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_filter_top.png rename to mods/pipeworks/textures/pipeworks_mese_filter_top.png diff --git a/pipeworks/textures/pipeworks_mese_sand_tube_end.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_sand_tube_end.png rename to mods/pipeworks/textures/pipeworks_mese_sand_tube_end.png diff --git a/pipeworks/textures/pipeworks_mese_sand_tube_inv.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_sand_tube_inv.png rename to mods/pipeworks/textures/pipeworks_mese_sand_tube_inv.png diff --git a/pipeworks/textures/pipeworks_mese_sand_tube_noctr.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_sand_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_mese_sand_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_mese_sand_tube_plain.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_sand_tube_plain.png rename to mods/pipeworks/textures/pipeworks_mese_sand_tube_plain.png diff --git a/pipeworks/textures/pipeworks_mese_sand_tube_short.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_sand_tube_short.png rename to mods/pipeworks/textures/pipeworks_mese_sand_tube_short.png diff --git a/pipeworks/textures/pipeworks_mese_tube_end.png b/mods/pipeworks/textures/pipeworks_mese_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_end.png rename to mods/pipeworks/textures/pipeworks_mese_tube_end.png diff --git a/pipeworks/textures/pipeworks_mese_tube_inv.png b/mods/pipeworks/textures/pipeworks_mese_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_inv.png rename to mods/pipeworks/textures/pipeworks_mese_tube_inv.png diff --git a/pipeworks/textures/pipeworks_mese_tube_noctr_1.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_1.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_noctr_1.png rename to mods/pipeworks/textures/pipeworks_mese_tube_noctr_1.png diff --git a/pipeworks/textures/pipeworks_mese_tube_noctr_2.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_2.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_noctr_2.png rename to mods/pipeworks/textures/pipeworks_mese_tube_noctr_2.png diff --git a/pipeworks/textures/pipeworks_mese_tube_noctr_3.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_3.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_noctr_3.png rename to mods/pipeworks/textures/pipeworks_mese_tube_noctr_3.png diff --git a/pipeworks/textures/pipeworks_mese_tube_noctr_4.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_4.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_noctr_4.png rename to mods/pipeworks/textures/pipeworks_mese_tube_noctr_4.png diff --git a/pipeworks/textures/pipeworks_mese_tube_noctr_5.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_5.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_noctr_5.png rename to mods/pipeworks/textures/pipeworks_mese_tube_noctr_5.png diff --git a/pipeworks/textures/pipeworks_mese_tube_noctr_6.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_6.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_noctr_6.png rename to mods/pipeworks/textures/pipeworks_mese_tube_noctr_6.png diff --git a/pipeworks/textures/pipeworks_mese_tube_plain_1.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_1.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_plain_1.png rename to mods/pipeworks/textures/pipeworks_mese_tube_plain_1.png diff --git a/pipeworks/textures/pipeworks_mese_tube_plain_2.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_2.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_plain_2.png rename to mods/pipeworks/textures/pipeworks_mese_tube_plain_2.png diff --git a/pipeworks/textures/pipeworks_mese_tube_plain_3.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_3.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_plain_3.png rename to mods/pipeworks/textures/pipeworks_mese_tube_plain_3.png diff --git a/pipeworks/textures/pipeworks_mese_tube_plain_4.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_4.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_plain_4.png rename to mods/pipeworks/textures/pipeworks_mese_tube_plain_4.png diff --git a/pipeworks/textures/pipeworks_mese_tube_plain_5.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_5.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_plain_5.png rename to mods/pipeworks/textures/pipeworks_mese_tube_plain_5.png diff --git a/pipeworks/textures/pipeworks_mese_tube_plain_6.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_6.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_plain_6.png rename to mods/pipeworks/textures/pipeworks_mese_tube_plain_6.png diff --git a/pipeworks/textures/pipeworks_mese_tube_short.png b/mods/pipeworks/textures/pipeworks_mese_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_mese_tube_short.png rename to mods/pipeworks/textures/pipeworks_mese_tube_short.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_back.png b/mods/pipeworks/textures/pipeworks_nodebreaker_back.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_back.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_back.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_bottom_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_off.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_bottom_off.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_bottom_off.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_bottom_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_on.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_bottom_on.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_bottom_on.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_front_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_front_off.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_front_off.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_front_off.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_front_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_front_on.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_front_on.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_front_on.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_side1_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side1_off.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_side1_off.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_side1_off.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_side1_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side1_on.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_side1_on.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_side1_on.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_side2_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side2_off.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_side2_off.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_side2_off.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_side2_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side2_on.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_side2_on.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_side2_on.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_top_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_top_off.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_top_off.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_top_off.png diff --git a/pipeworks/textures/pipeworks_nodebreaker_top_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_top_on.png similarity index 100% rename from pipeworks/textures/pipeworks_nodebreaker_top_on.png rename to mods/pipeworks/textures/pipeworks_nodebreaker_top_on.png diff --git a/pipeworks/textures/pipeworks_one_way_tube_input.png b/mods/pipeworks/textures/pipeworks_one_way_tube_input.png similarity index 100% rename from pipeworks/textures/pipeworks_one_way_tube_input.png rename to mods/pipeworks/textures/pipeworks_one_way_tube_input.png diff --git a/pipeworks/textures/pipeworks_one_way_tube_output.png b/mods/pipeworks/textures/pipeworks_one_way_tube_output.png similarity index 100% rename from pipeworks/textures/pipeworks_one_way_tube_output.png rename to mods/pipeworks/textures/pipeworks_one_way_tube_output.png diff --git a/pipeworks/textures/pipeworks_one_way_tube_side.png b/mods/pipeworks/textures/pipeworks_one_way_tube_side.png similarity index 100% rename from pipeworks/textures/pipeworks_one_way_tube_side.png rename to mods/pipeworks/textures/pipeworks_one_way_tube_side.png diff --git a/pipeworks/textures/pipeworks_one_way_tube_top.png b/mods/pipeworks/textures/pipeworks_one_way_tube_top.png similarity index 100% rename from pipeworks/textures/pipeworks_one_way_tube_top.png rename to mods/pipeworks/textures/pipeworks_one_way_tube_top.png diff --git a/pipeworks/textures/pipeworks_pane_embedded_tube_ends.png b/mods/pipeworks/textures/pipeworks_pane_embedded_tube_ends.png similarity index 100% rename from pipeworks/textures/pipeworks_pane_embedded_tube_ends.png rename to mods/pipeworks/textures/pipeworks_pane_embedded_tube_ends.png diff --git a/pipeworks/textures/pipeworks_pane_embedded_tube_sides.png b/mods/pipeworks/textures/pipeworks_pane_embedded_tube_sides.png similarity index 100% rename from pipeworks/textures/pipeworks_pane_embedded_tube_sides.png rename to mods/pipeworks/textures/pipeworks_pane_embedded_tube_sides.png diff --git a/pipeworks/textures/pipeworks_pipe_3_empty.png b/mods/pipeworks/textures/pipeworks_pipe_3_empty.png similarity index 100% rename from pipeworks/textures/pipeworks_pipe_3_empty.png rename to mods/pipeworks/textures/pipeworks_pipe_3_empty.png diff --git a/pipeworks/textures/pipeworks_pipe_3_loaded.png b/mods/pipeworks/textures/pipeworks_pipe_3_loaded.png similarity index 100% rename from pipeworks/textures/pipeworks_pipe_3_loaded.png rename to mods/pipeworks/textures/pipeworks_pipe_3_loaded.png diff --git a/pipeworks/textures/pipeworks_pipe_plain.png b/mods/pipeworks/textures/pipeworks_pipe_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_pipe_plain.png rename to mods/pipeworks/textures/pipeworks_pipe_plain.png diff --git a/pipeworks/textures/pipeworks_plastic_sheeting.png b/mods/pipeworks/textures/pipeworks_plastic_sheeting.png similarity index 100% rename from pipeworks/textures/pipeworks_plastic_sheeting.png rename to mods/pipeworks/textures/pipeworks_plastic_sheeting.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge.png b/mods/pipeworks/textures/pipeworks_pressure_gauge.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_0.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_0.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_0.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_0.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_1.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_1.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_1.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_1.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_2.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_2.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_2.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_2.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_3.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_3.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_3.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_3.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_4.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_4.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_4.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_4.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_5.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_5.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_5.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_5.png diff --git a/pipeworks/textures/pipeworks_pressure_gauge_6.png b/mods/pipeworks/textures/pipeworks_pressure_gauge_6.png similarity index 100% rename from pipeworks/textures/pipeworks_pressure_gauge_6.png rename to mods/pipeworks/textures/pipeworks_pressure_gauge_6.png diff --git a/pipeworks/textures/pipeworks_pump_off.png b/mods/pipeworks/textures/pipeworks_pump_off.png similarity index 100% rename from pipeworks/textures/pipeworks_pump_off.png rename to mods/pipeworks/textures/pipeworks_pump_off.png diff --git a/pipeworks/textures/pipeworks_pump_on.png b/mods/pipeworks/textures/pipeworks_pump_on.png similarity index 100% rename from pipeworks/textures/pipeworks_pump_on.png rename to mods/pipeworks/textures/pipeworks_pump_on.png diff --git a/pipeworks/textures/pipeworks_red.png b/mods/pipeworks/textures/pipeworks_red.png similarity index 100% rename from pipeworks/textures/pipeworks_red.png rename to mods/pipeworks/textures/pipeworks_red.png diff --git a/pipeworks/textures/pipeworks_sand_tube_end.png b/mods/pipeworks/textures/pipeworks_sand_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_sand_tube_end.png rename to mods/pipeworks/textures/pipeworks_sand_tube_end.png diff --git a/pipeworks/textures/pipeworks_sand_tube_inv.png b/mods/pipeworks/textures/pipeworks_sand_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_sand_tube_inv.png rename to mods/pipeworks/textures/pipeworks_sand_tube_inv.png diff --git a/pipeworks/textures/pipeworks_sand_tube_noctr.png b/mods/pipeworks/textures/pipeworks_sand_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_sand_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_sand_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_sand_tube_plain.png b/mods/pipeworks/textures/pipeworks_sand_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_sand_tube_plain.png rename to mods/pipeworks/textures/pipeworks_sand_tube_plain.png diff --git a/pipeworks/textures/pipeworks_sand_tube_short.png b/mods/pipeworks/textures/pipeworks_sand_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_sand_tube_short.png rename to mods/pipeworks/textures/pipeworks_sand_tube_short.png diff --git a/pipeworks/textures/pipeworks_spigot.png b/mods/pipeworks/textures/pipeworks_spigot.png similarity index 100% rename from pipeworks/textures/pipeworks_spigot.png rename to mods/pipeworks/textures/pipeworks_spigot.png diff --git a/pipeworks/textures/pipeworks_storage_tank_back.png b/mods/pipeworks/textures/pipeworks_storage_tank_back.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_back.png rename to mods/pipeworks/textures/pipeworks_storage_tank_back.png diff --git a/pipeworks/textures/pipeworks_storage_tank_fittings.png b/mods/pipeworks/textures/pipeworks_storage_tank_fittings.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_fittings.png rename to mods/pipeworks/textures/pipeworks_storage_tank_fittings.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_0.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_0.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_0.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_0.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_1.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_1.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_1.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_1.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_10.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_10.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_10.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_10.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_2.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_2.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_2.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_2.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_3.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_3.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_3.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_3.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_4.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_4.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_4.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_4.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_5.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_5.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_5.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_5.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_6.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_6.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_6.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_6.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_7.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_7.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_7.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_7.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_8.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_8.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_8.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_8.png diff --git a/pipeworks/textures/pipeworks_storage_tank_front_9.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_9.png similarity index 100% rename from pipeworks/textures/pipeworks_storage_tank_front_9.png rename to mods/pipeworks/textures/pipeworks_storage_tank_front_9.png diff --git a/pipeworks/textures/pipeworks_straight_pipe_empty.png b/mods/pipeworks/textures/pipeworks_straight_pipe_empty.png similarity index 100% rename from pipeworks/textures/pipeworks_straight_pipe_empty.png rename to mods/pipeworks/textures/pipeworks_straight_pipe_empty.png diff --git a/pipeworks/textures/pipeworks_straight_pipe_loaded.png b/mods/pipeworks/textures/pipeworks_straight_pipe_loaded.png similarity index 100% rename from pipeworks/textures/pipeworks_straight_pipe_loaded.png rename to mods/pipeworks/textures/pipeworks_straight_pipe_loaded.png diff --git a/pipeworks/textures/pipeworks_teleport_tube_end.png b/mods/pipeworks/textures/pipeworks_teleport_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_teleport_tube_end.png rename to mods/pipeworks/textures/pipeworks_teleport_tube_end.png diff --git a/pipeworks/textures/pipeworks_teleport_tube_inv.png b/mods/pipeworks/textures/pipeworks_teleport_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_teleport_tube_inv.png rename to mods/pipeworks/textures/pipeworks_teleport_tube_inv.png diff --git a/pipeworks/textures/pipeworks_teleport_tube_noctr.png b/mods/pipeworks/textures/pipeworks_teleport_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_teleport_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_teleport_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_teleport_tube_plain.png b/mods/pipeworks/textures/pipeworks_teleport_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_teleport_tube_plain.png rename to mods/pipeworks/textures/pipeworks_teleport_tube_plain.png diff --git a/pipeworks/textures/pipeworks_teleport_tube_short.png b/mods/pipeworks/textures/pipeworks_teleport_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_teleport_tube_short.png rename to mods/pipeworks/textures/pipeworks_teleport_tube_short.png diff --git a/pipeworks/textures/pipeworks_testobject.png b/mods/pipeworks/textures/pipeworks_testobject.png similarity index 100% rename from pipeworks/textures/pipeworks_testobject.png rename to mods/pipeworks/textures/pipeworks_testobject.png diff --git a/pipeworks/textures/pipeworks_trashcan_bottom.png b/mods/pipeworks/textures/pipeworks_trashcan_bottom.png similarity index 100% rename from pipeworks/textures/pipeworks_trashcan_bottom.png rename to mods/pipeworks/textures/pipeworks_trashcan_bottom.png diff --git a/pipeworks/textures/pipeworks_trashcan_side.png b/mods/pipeworks/textures/pipeworks_trashcan_side.png similarity index 100% rename from pipeworks/textures/pipeworks_trashcan_side.png rename to mods/pipeworks/textures/pipeworks_trashcan_side.png diff --git a/pipeworks/textures/pipeworks_tube_connection_metallic.png b/mods/pipeworks/textures/pipeworks_tube_connection_metallic.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_connection_metallic.png rename to mods/pipeworks/textures/pipeworks_tube_connection_metallic.png diff --git a/pipeworks/textures/pipeworks_tube_connection_stony.png b/mods/pipeworks/textures/pipeworks_tube_connection_stony.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_connection_stony.png rename to mods/pipeworks/textures/pipeworks_tube_connection_stony.png diff --git a/pipeworks/textures/pipeworks_tube_connection_wooden.png b/mods/pipeworks/textures/pipeworks_tube_connection_wooden.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_connection_wooden.png rename to mods/pipeworks/textures/pipeworks_tube_connection_wooden.png diff --git a/pipeworks/textures/pipeworks_tube_end.png b/mods/pipeworks/textures/pipeworks_tube_end.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_end.png rename to mods/pipeworks/textures/pipeworks_tube_end.png diff --git a/pipeworks/textures/pipeworks_tube_inv.png b/mods/pipeworks/textures/pipeworks_tube_inv.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_inv.png rename to mods/pipeworks/textures/pipeworks_tube_inv.png diff --git a/pipeworks/textures/pipeworks_tube_noctr.png b/mods/pipeworks/textures/pipeworks_tube_noctr.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_noctr.png rename to mods/pipeworks/textures/pipeworks_tube_noctr.png diff --git a/pipeworks/textures/pipeworks_tube_plain.png b/mods/pipeworks/textures/pipeworks_tube_plain.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_plain.png rename to mods/pipeworks/textures/pipeworks_tube_plain.png diff --git a/pipeworks/textures/pipeworks_tube_short.png b/mods/pipeworks/textures/pipeworks_tube_short.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_short.png rename to mods/pipeworks/textures/pipeworks_tube_short.png diff --git a/pipeworks/textures/pipeworks_tube_transparent.png b/mods/pipeworks/textures/pipeworks_tube_transparent.png similarity index 100% rename from pipeworks/textures/pipeworks_tube_transparent.png rename to mods/pipeworks/textures/pipeworks_tube_transparent.png diff --git a/pipeworks/textures/pipeworks_valve.png b/mods/pipeworks/textures/pipeworks_valve.png similarity index 100% rename from pipeworks/textures/pipeworks_valve.png rename to mods/pipeworks/textures/pipeworks_valve.png diff --git a/mods/pipeworks/textures/pipeworks_white.png b/mods/pipeworks/textures/pipeworks_white.png new file mode 100644 index 00000000..faf0ec13 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_white.png differ diff --git a/pipeworks/textures/pipeworks_yellow.png b/mods/pipeworks/textures/pipeworks_yellow.png similarity index 100% rename from pipeworks/textures/pipeworks_yellow.png rename to mods/pipeworks/textures/pipeworks_yellow.png diff --git a/pipeworks/todo/pressure_logic.txt b/mods/pipeworks/todo/pressure_logic.txt similarity index 100% rename from pipeworks/todo/pressure_logic.txt rename to mods/pipeworks/todo/pressure_logic.txt diff --git a/pipeworks/trashcan.lua b/mods/pipeworks/trashcan.lua similarity index 100% rename from pipeworks/trashcan.lua rename to mods/pipeworks/trashcan.lua diff --git a/pipeworks/tube_registration.lua b/mods/pipeworks/tube_registration.lua similarity index 100% rename from pipeworks/tube_registration.lua rename to mods/pipeworks/tube_registration.lua diff --git a/pipeworks/vacuum_tubes.lua b/mods/pipeworks/vacuum_tubes.lua similarity index 100% rename from pipeworks/vacuum_tubes.lua rename to mods/pipeworks/vacuum_tubes.lua diff --git a/pipeworks/wielder.lua b/mods/pipeworks/wielder.lua similarity index 100% rename from pipeworks/wielder.lua rename to mods/pipeworks/wielder.lua diff --git a/plasmascreen/.luacheckrc b/mods/plasmascreen/.luacheckrc similarity index 100% rename from plasmascreen/.luacheckrc rename to mods/plasmascreen/.luacheckrc diff --git a/plasmascreen/README.md b/mods/plasmascreen/README.md similarity index 100% rename from plasmascreen/README.md rename to mods/plasmascreen/README.md diff --git a/plasmascreen/init.lua b/mods/plasmascreen/init.lua similarity index 100% rename from plasmascreen/init.lua rename to mods/plasmascreen/init.lua diff --git a/plasmascreen/locale/plasmascreen.de.tr b/mods/plasmascreen/locale/plasmascreen.de.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.de.tr rename to mods/plasmascreen/locale/plasmascreen.de.tr diff --git a/plasmascreen/locale/plasmascreen.es.tr b/mods/plasmascreen/locale/plasmascreen.es.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.es.tr rename to mods/plasmascreen/locale/plasmascreen.es.tr diff --git a/plasmascreen/locale/plasmascreen.fr.tr b/mods/plasmascreen/locale/plasmascreen.fr.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.fr.tr rename to mods/plasmascreen/locale/plasmascreen.fr.tr diff --git a/plasmascreen/locale/plasmascreen.ms.tr b/mods/plasmascreen/locale/plasmascreen.ms.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.ms.tr rename to mods/plasmascreen/locale/plasmascreen.ms.tr diff --git a/plasmascreen/locale/plasmascreen.pt.tr b/mods/plasmascreen/locale/plasmascreen.pt.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.pt.tr rename to mods/plasmascreen/locale/plasmascreen.pt.tr diff --git a/plasmascreen/locale/plasmascreen.pt_BR.tr b/mods/plasmascreen/locale/plasmascreen.pt_BR.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.pt_BR.tr rename to mods/plasmascreen/locale/plasmascreen.pt_BR.tr diff --git a/plasmascreen/locale/plasmascreen.ru.tr b/mods/plasmascreen/locale/plasmascreen.ru.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.ru.tr rename to mods/plasmascreen/locale/plasmascreen.ru.tr diff --git a/plasmascreen/locale/plasmascreen.zh_CN.tr b/mods/plasmascreen/locale/plasmascreen.zh_CN.tr similarity index 100% rename from plasmascreen/locale/plasmascreen.zh_CN.tr rename to mods/plasmascreen/locale/plasmascreen.zh_CN.tr diff --git a/plasmascreen/locale/template.txt b/mods/plasmascreen/locale/template.txt similarity index 100% rename from plasmascreen/locale/template.txt rename to mods/plasmascreen/locale/template.txt diff --git a/plasmascreen/mod.conf b/mods/plasmascreen/mod.conf similarity index 100% rename from plasmascreen/mod.conf rename to mods/plasmascreen/mod.conf diff --git a/plasmascreen/models/plasmascreen_tv.obj b/mods/plasmascreen/models/plasmascreen_tv.obj similarity index 100% rename from plasmascreen/models/plasmascreen_tv.obj rename to mods/plasmascreen/models/plasmascreen_tv.obj diff --git a/plasmascreen/textures/plasmascreen_back.png b/mods/plasmascreen/textures/plasmascreen_back.png similarity index 100% rename from plasmascreen/textures/plasmascreen_back.png rename to mods/plasmascreen/textures/plasmascreen_back.png diff --git a/plasmascreen/textures/plasmascreen_case.png b/mods/plasmascreen/textures/plasmascreen_case.png similarity index 100% rename from plasmascreen/textures/plasmascreen_case.png rename to mods/plasmascreen/textures/plasmascreen_case.png diff --git a/plasmascreen/textures/plasmascreen_case_off.png b/mods/plasmascreen/textures/plasmascreen_case_off.png similarity index 100% rename from plasmascreen/textures/plasmascreen_case_off.png rename to mods/plasmascreen/textures/plasmascreen_case_off.png diff --git a/plasmascreen/textures/plasmascreen_screen_off.png b/mods/plasmascreen/textures/plasmascreen_screen_off.png similarity index 100% rename from plasmascreen/textures/plasmascreen_screen_off.png rename to mods/plasmascreen/textures/plasmascreen_screen_off.png diff --git a/plasmascreen/textures/plasmascreen_tv_inv.png b/mods/plasmascreen/textures/plasmascreen_tv_inv.png similarity index 100% rename from plasmascreen/textures/plasmascreen_tv_inv.png rename to mods/plasmascreen/textures/plasmascreen_tv_inv.png diff --git a/plasmascreen/textures/plasmascreen_video.png b/mods/plasmascreen/textures/plasmascreen_video.png similarity index 100% rename from plasmascreen/textures/plasmascreen_video.png rename to mods/plasmascreen/textures/plasmascreen_video.png diff --git a/plasticbox/COPYING b/mods/plasticbox/COPYING similarity index 100% rename from plasticbox/COPYING rename to mods/plasticbox/COPYING diff --git a/plasticbox/depends.txt b/mods/plasticbox/depends.txt similarity index 100% rename from plasticbox/depends.txt rename to mods/plasticbox/depends.txt diff --git a/plasticbox/init.lua b/mods/plasticbox/init.lua similarity index 100% rename from plasticbox/init.lua rename to mods/plasticbox/init.lua diff --git a/plasticbox/textures/plasticbox_white.png b/mods/plasticbox/textures/plasticbox_white.png similarity index 100% rename from plasticbox/textures/plasticbox_white.png rename to mods/plasticbox/textures/plasticbox_white.png diff --git a/plasticbox/ud_palette.txt b/mods/plasticbox/ud_palette.txt similarity index 100% rename from plasticbox/ud_palette.txt rename to mods/plasticbox/ud_palette.txt diff --git a/mods/player_api/README.txt b/mods/player_api/README.txt new file mode 100644 index 00000000..37afadfa --- /dev/null +++ b/mods/player_api/README.txt @@ -0,0 +1,27 @@ +Minetest Game mod: player_api +============================= +See license.txt for license information. + +Provides an API to allow multiple mods to set player models and textures. +Also sets the default model, texture, and player flags. +This mod is only for content related to the Player API and the player object. + +Authors of source code +---------------------- +Originally by celeron55, Perttu Ahola (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +Authors of media (textures, models and sounds) +---------------------------------------------- +Original model by MirceaKitsune (CC BY-SA 3.0). +Various alterations and fixes by kilbith, sofar, xunto, Rogier-5, TeTpaAka, Desour, +stujones11, An0n3m0us (CC BY-SA 3.0): + character.b3d + character.blend + +Jordach (CC BY-SA 3.0): + character.png + +celeron55, Perttu Ahola (CC BY-SA 3.0): + player.png + player_back.png diff --git a/mods/player_api/api.lua b/mods/player_api/api.lua new file mode 100644 index 00000000..0aee048e --- /dev/null +++ b/mods/player_api/api.lua @@ -0,0 +1,146 @@ +-- Minetest 0.4 mod: player +-- See README.txt for licensing and other information. + +player_api = {} + +-- Player animation blending +-- Note: This is currently broken due to a bug in Irrlicht, leave at 0 +local animation_blend = 0 + +player_api.registered_models = { } + +-- Local for speed. +local models = player_api.registered_models + +function player_api.register_model(name, def) + models[name] = def +end + +-- Player stats and animations +local player_model = {} +local player_textures = {} +local player_anim = {} +local player_sneak = {} +player_api.player_attached = {} + +function player_api.get_animation(player) + local name = player:get_player_name() + return { + model = player_model[name], + textures = player_textures[name], + animation = player_anim[name], + } +end + +-- Called when a player's appearance needs to be updated +function player_api.set_model(player, model_name) + local name = player:get_player_name() + local model = models[model_name] + if model then + if player_model[name] == model_name then + return + end + player:set_properties({ + mesh = model_name, + textures = player_textures[name] or model.textures, + visual = "mesh", + visual_size = model.visual_size or {x = 1, y = 1}, + collisionbox = model.collisionbox or {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}, + stepheight = model.stepheight or 0.6, + eye_height = model.eye_height or 1.47, + }) + player_api.set_animation(player, "stand") + else + player:set_properties({ + textures = {"player.png", "player_back.png"}, + visual = "upright_sprite", + visual_size = {x = 1, y = 2}, + collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.75, 0.3}, + stepheight = 0.6, + eye_height = 1.625, + }) + end + player_model[name] = model_name +end + +function player_api.set_textures(player, textures) + local name = player:get_player_name() + local model = models[player_model[name]] + local model_textures = model and model.textures or nil + player_textures[name] = textures or model_textures + player:set_properties({textures = textures or model_textures}) +end + +function player_api.set_animation(player, anim_name, speed) + local name = player:get_player_name() + if player_anim[name] == anim_name then + return + end + local model = player_model[name] and models[player_model[name]] + if not (model and model.animations[anim_name]) then + return + end + local anim = model.animations[anim_name] + player_anim[name] = anim_name + player:set_animation(anim, speed or model.animation_speed, animation_blend) +end + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + player_model[name] = nil + player_anim[name] = nil + player_textures[name] = nil + player_sneak[name] = nil + player_api.player_attached[name] = nil +end) + +-- Localize for better performance. +local player_set_animation = player_api.set_animation +local player_attached = player_api.player_attached + +-- Prevent knockback for attached players +local old_calculate_knockback = minetest.calculate_knockback +function minetest.calculate_knockback(player, ...) + if player_attached[player:get_player_name()] then + return 0 + end + return old_calculate_knockback(player, ...) +end + +-- Check each player and apply animations +minetest.register_globalstep(function() + for _, player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local model_name = player_model[name] + local model = model_name and models[model_name] + if model and not player_attached[name] then + local controls = player:get_player_control() + local animation_speed_mod = model.animation_speed or 30 + + -- Determine if the player is sneaking, and reduce animation speed if so + if controls.sneak then + animation_speed_mod = animation_speed_mod / 2 + end + + -- Apply animations based on what the player is doing + if player:get_hp() == 0 then + player_set_animation(player, "lay") + -- Determine if the player is walking + elseif controls.up or controls.down or controls.left or controls.right then + if player_sneak[name] ~= controls.sneak then + player_anim[name] = nil + player_sneak[name] = controls.sneak + end + if controls.LMB or controls.RMB then + player_set_animation(player, "walk_mine", animation_speed_mod) + else + player_set_animation(player, "walk", animation_speed_mod) + end + elseif controls.LMB or controls.RMB then + player_set_animation(player, "mine", animation_speed_mod) + else + player_set_animation(player, "stand", animation_speed_mod) + end + end + end +end) diff --git a/mods/player_api/init.lua b/mods/player_api/init.lua new file mode 100644 index 00000000..1176b0ea --- /dev/null +++ b/mods/player_api/init.lua @@ -0,0 +1,34 @@ +-- player/init.lua + +dofile(minetest.get_modpath("player_api") .. "/api.lua") + +-- Default player appearance +player_api.register_model("character.b3d", { + animation_speed = 30, + textures = {"character.png"}, + animations = { + -- Standard animations. + stand = {x = 0, y = 79}, + lay = {x = 162, y = 166}, + walk = {x = 168, y = 187}, + mine = {x = 189, y = 198}, + walk_mine = {x = 200, y = 219}, + sit = {x = 81, y = 160}, + }, + collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3}, + stepheight = 0.6, + eye_height = 1.47, +}) + +-- Update appearance when the player joins +minetest.register_on_joinplayer(function(player) + player_api.player_attached[player:get_player_name()] = false + player_api.set_model(player, "character.b3d") + player:set_local_animation( + {x = 0, y = 79}, + {x = 168, y = 187}, + {x = 189, y = 198}, + {x = 200, y = 219}, + 30 + ) +end) diff --git a/mods/player_api/license.txt b/mods/player_api/license.txt new file mode 100644 index 00000000..bdc43154 --- /dev/null +++ b/mods/player_api/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011 celeron55, Perttu Ahola +Copyright (C) 2011 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2011 celeron55, Perttu Ahola +Copyright (C) 2012 MirceaKitsune +Copyright (C) 2012 Jordach +Copyright (C) 2015 kilbith +Copyright (C) 2016 sofar +Copyright (C) 2016 xunto +Copyright (C) 2016 Rogier-5 +Copyright (C) 2017 TeTpaAka +Copyright (C) 2017 Desour +Copyright (C) 2018 stujones11 +Copyright (C) 2019 An0n3m0us + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/player_api/mod.conf b/mods/player_api/mod.conf new file mode 100644 index 00000000..198b86dc --- /dev/null +++ b/mods/player_api/mod.conf @@ -0,0 +1,2 @@ +name = player_api +description = Minetest Game mod: player_api diff --git a/mods/player_api/models/character.b3d b/mods/player_api/models/character.b3d new file mode 100644 index 00000000..764197d9 Binary files /dev/null and b/mods/player_api/models/character.b3d differ diff --git a/mods/player_api/models/character.blend b/mods/player_api/models/character.blend new file mode 100644 index 00000000..a32c3438 Binary files /dev/null and b/mods/player_api/models/character.blend differ diff --git a/mods/player_api/models/character.png b/mods/player_api/models/character.png new file mode 100644 index 00000000..05021781 Binary files /dev/null and b/mods/player_api/models/character.png differ diff --git a/mods/player_api/textures/player.png b/mods/player_api/textures/player.png new file mode 100644 index 00000000..6d61c434 Binary files /dev/null and b/mods/player_api/textures/player.png differ diff --git a/mods/player_api/textures/player_back.png b/mods/player_api/textures/player_back.png new file mode 100644 index 00000000..5e9ef054 Binary files /dev/null and b/mods/player_api/textures/player_back.png differ diff --git a/player_textures/LICENSE b/mods/player_textures/LICENSE similarity index 100% rename from player_textures/LICENSE rename to mods/player_textures/LICENSE diff --git a/player_textures/README b/mods/player_textures/README similarity index 100% rename from player_textures/README rename to mods/player_textures/README diff --git a/player_textures/depends.txt b/mods/player_textures/depends.txt similarity index 100% rename from player_textures/depends.txt rename to mods/player_textures/depends.txt diff --git a/player_textures/init.lua b/mods/player_textures/init.lua similarity index 100% rename from player_textures/init.lua rename to mods/player_textures/init.lua diff --git a/player_textures/textures/player_Calinou.png b/mods/player_textures/textures/player_Calinou.png similarity index 100% rename from player_textures/textures/player_Calinou.png rename to mods/player_textures/textures/player_Calinou.png diff --git a/player_textures/textures/player_Sokomine.png b/mods/player_textures/textures/player_Sokomine.png similarity index 100% rename from player_textures/textures/player_Sokomine.png rename to mods/player_textures/textures/player_Sokomine.png diff --git a/player_textures/textures/player_VanessaE.png b/mods/player_textures/textures/player_VanessaE.png similarity index 100% rename from player_textures/textures/player_VanessaE.png rename to mods/player_textures/textures/player_VanessaE.png diff --git a/player_textures/textures/player_cheapie.png b/mods/player_textures/textures/player_cheapie.png similarity index 100% rename from player_textures/textures/player_cheapie.png rename to mods/player_textures/textures/player_cheapie.png diff --git a/player_textures/textures/player_kaeza.png b/mods/player_textures/textures/player_kaeza.png similarity index 100% rename from player_textures/textures/player_kaeza.png rename to mods/player_textures/textures/player_kaeza.png diff --git a/plumtree/init.lua b/mods/plumtree/init.lua similarity index 100% rename from plumtree/init.lua rename to mods/plumtree/init.lua diff --git a/plumtree/locale/plumtree.es.tr b/mods/plumtree/locale/plumtree.es.tr similarity index 100% rename from plumtree/locale/plumtree.es.tr rename to mods/plumtree/locale/plumtree.es.tr diff --git a/plumtree/mod.conf b/mods/plumtree/mod.conf similarity index 100% rename from plumtree/mod.conf rename to mods/plumtree/mod.conf diff --git a/plumtree/schematics/plumtree.lua b/mods/plumtree/schematics/plumtree.lua similarity index 100% rename from plumtree/schematics/plumtree.lua rename to mods/plumtree/schematics/plumtree.lua diff --git a/plumtree/schematics/plumtree.mts b/mods/plumtree/schematics/plumtree.mts similarity index 100% rename from plumtree/schematics/plumtree.mts rename to mods/plumtree/schematics/plumtree.mts diff --git a/plumtree/textures/plumtree_leaves.png b/mods/plumtree/textures/plumtree_leaves.png similarity index 100% rename from plumtree/textures/plumtree_leaves.png rename to mods/plumtree/textures/plumtree_leaves.png diff --git a/plumtree/textures/plumtree_plum.png b/mods/plumtree/textures/plumtree_plum.png similarity index 100% rename from plumtree/textures/plumtree_plum.png rename to mods/plumtree/textures/plumtree_plum.png diff --git a/plumtree/textures/plumtree_sapling.png b/mods/plumtree/textures/plumtree_sapling.png similarity index 100% rename from plumtree/textures/plumtree_sapling.png rename to mods/plumtree/textures/plumtree_sapling.png diff --git a/plumtree/textures/plumtree_trunk.png b/mods/plumtree/textures/plumtree_trunk.png similarity index 100% rename from plumtree/textures/plumtree_trunk.png rename to mods/plumtree/textures/plumtree_trunk.png diff --git a/plumtree/textures/plumtree_trunk_top.png b/mods/plumtree/textures/plumtree_trunk_top.png similarity index 100% rename from plumtree/textures/plumtree_trunk_top.png rename to mods/plumtree/textures/plumtree_trunk_top.png diff --git a/plumtree/textures/plumtree_wood.png b/mods/plumtree/textures/plumtree_wood.png similarity index 100% rename from plumtree/textures/plumtree_wood.png rename to mods/plumtree/textures/plumtree_wood.png diff --git a/poisonivy/init.lua b/mods/poisonivy/init.lua similarity index 100% rename from poisonivy/init.lua rename to mods/poisonivy/init.lua diff --git a/poisonivy/locale/poisonivy.de.tr b/mods/poisonivy/locale/poisonivy.de.tr similarity index 100% rename from poisonivy/locale/poisonivy.de.tr rename to mods/poisonivy/locale/poisonivy.de.tr diff --git a/poisonivy/locale/poisonivy.es.tr b/mods/poisonivy/locale/poisonivy.es.tr similarity index 100% rename from poisonivy/locale/poisonivy.es.tr rename to mods/poisonivy/locale/poisonivy.es.tr diff --git a/poisonivy/locale/poisonivy.fr.tr b/mods/poisonivy/locale/poisonivy.fr.tr similarity index 100% rename from poisonivy/locale/poisonivy.fr.tr rename to mods/poisonivy/locale/poisonivy.fr.tr diff --git a/poisonivy/locale/poisonivy.pt.tr b/mods/poisonivy/locale/poisonivy.pt.tr similarity index 100% rename from poisonivy/locale/poisonivy.pt.tr rename to mods/poisonivy/locale/poisonivy.pt.tr diff --git a/poisonivy/locale/poisonivy.pt_BR.tr b/mods/poisonivy/locale/poisonivy.pt_BR.tr similarity index 100% rename from poisonivy/locale/poisonivy.pt_BR.tr rename to mods/poisonivy/locale/poisonivy.pt_BR.tr diff --git a/poisonivy/locale/poisonivy.template.trt b/mods/poisonivy/locale/poisonivy.template.trt similarity index 100% rename from poisonivy/locale/poisonivy.template.trt rename to mods/poisonivy/locale/poisonivy.template.trt diff --git a/poisonivy/locale/poisonivy.tr.tr b/mods/poisonivy/locale/poisonivy.tr.tr similarity index 100% rename from poisonivy/locale/poisonivy.tr.tr rename to mods/poisonivy/locale/poisonivy.tr.tr diff --git a/poisonivy/mod.conf b/mods/poisonivy/mod.conf similarity index 100% rename from poisonivy/mod.conf rename to mods/poisonivy/mod.conf diff --git a/poisonivy/textures/poisonivy_climbing.png b/mods/poisonivy/textures/poisonivy_climbing.png similarity index 100% rename from poisonivy/textures/poisonivy_climbing.png rename to mods/poisonivy/textures/poisonivy_climbing.png diff --git a/poisonivy/textures/poisonivy_seedling.png b/mods/poisonivy/textures/poisonivy_seedling.png similarity index 100% rename from poisonivy/textures/poisonivy_seedling.png rename to mods/poisonivy/textures/poisonivy_seedling.png diff --git a/poisonivy/textures/poisonivy_sproutling.png b/mods/poisonivy/textures/poisonivy_sproutling.png similarity index 100% rename from poisonivy/textures/poisonivy_sproutling.png rename to mods/poisonivy/textures/poisonivy_sproutling.png diff --git a/pomegranate/init.lua b/mods/pomegranate/init.lua similarity index 100% rename from pomegranate/init.lua rename to mods/pomegranate/init.lua diff --git a/pomegranate/locale/pomegranate.es.tr b/mods/pomegranate/locale/pomegranate.es.tr similarity index 100% rename from pomegranate/locale/pomegranate.es.tr rename to mods/pomegranate/locale/pomegranate.es.tr diff --git a/pomegranate/mod.conf b/mods/pomegranate/mod.conf similarity index 100% rename from pomegranate/mod.conf rename to mods/pomegranate/mod.conf diff --git a/pomegranate/schematics/pomegranate.lua b/mods/pomegranate/schematics/pomegranate.lua similarity index 100% rename from pomegranate/schematics/pomegranate.lua rename to mods/pomegranate/schematics/pomegranate.lua diff --git a/pomegranate/schematics/pomegranate.mts b/mods/pomegranate/schematics/pomegranate.mts similarity index 100% rename from pomegranate/schematics/pomegranate.mts rename to mods/pomegranate/schematics/pomegranate.mts diff --git a/pomegranate/schematics/tree.mts b/mods/pomegranate/schematics/tree.mts similarity index 100% rename from pomegranate/schematics/tree.mts rename to mods/pomegranate/schematics/tree.mts diff --git a/pomegranate/textures/pomegranate.png b/mods/pomegranate/textures/pomegranate.png similarity index 100% rename from pomegranate/textures/pomegranate.png rename to mods/pomegranate/textures/pomegranate.png diff --git a/pomegranate/textures/pomegranate_leaves.png b/mods/pomegranate/textures/pomegranate_leaves.png similarity index 100% rename from pomegranate/textures/pomegranate_leaves.png rename to mods/pomegranate/textures/pomegranate_leaves.png diff --git a/pomegranate/textures/pomegranate_sapling.png b/mods/pomegranate/textures/pomegranate_sapling.png similarity index 100% rename from pomegranate/textures/pomegranate_sapling.png rename to mods/pomegranate/textures/pomegranate_sapling.png diff --git a/pomegranate/textures/pomegranate_section.png b/mods/pomegranate/textures/pomegranate_section.png similarity index 100% rename from pomegranate/textures/pomegranate_section.png rename to mods/pomegranate/textures/pomegranate_section.png diff --git a/pomegranate/textures/pomegranate_trunk.png b/mods/pomegranate/textures/pomegranate_trunk.png similarity index 100% rename from pomegranate/textures/pomegranate_trunk.png rename to mods/pomegranate/textures/pomegranate_trunk.png diff --git a/pomegranate/textures/pomegranate_trunk_top.png b/mods/pomegranate/textures/pomegranate_trunk_top.png similarity index 100% rename from pomegranate/textures/pomegranate_trunk_top.png rename to mods/pomegranate/textures/pomegranate_trunk_top.png diff --git a/pomegranate/textures/pomegranate_wood.png b/mods/pomegranate/textures/pomegranate_wood.png similarity index 100% rename from pomegranate/textures/pomegranate_wood.png rename to mods/pomegranate/textures/pomegranate_wood.png diff --git a/prefab_redo/LICENSE b/mods/prefab_redo/LICENSE similarity index 100% rename from prefab_redo/LICENSE rename to mods/prefab_redo/LICENSE diff --git a/prefab_redo/README b/mods/prefab_redo/README similarity index 100% rename from prefab_redo/README rename to mods/prefab_redo/README diff --git a/prefab_redo/depends.txt b/mods/prefab_redo/depends.txt similarity index 100% rename from prefab_redo/depends.txt rename to mods/prefab_redo/depends.txt diff --git a/prefab_redo/description.txt b/mods/prefab_redo/description.txt similarity index 100% rename from prefab_redo/description.txt rename to mods/prefab_redo/description.txt diff --git a/prefab_redo/init.lua b/mods/prefab_redo/init.lua similarity index 100% rename from prefab_redo/init.lua rename to mods/prefab_redo/init.lua diff --git a/prefab_redo/mod.conf b/mods/prefab_redo/mod.conf similarity index 100% rename from prefab_redo/mod.conf rename to mods/prefab_redo/mod.conf diff --git a/prefab_redo/screenshot.png b/mods/prefab_redo/screenshot.png similarity index 100% rename from prefab_redo/screenshot.png rename to mods/prefab_redo/screenshot.png diff --git a/prefab_redo/textures/prefab_redo_door_mask.png b/mods/prefab_redo/textures/prefab_redo_door_mask.png similarity index 100% rename from prefab_redo/textures/prefab_redo_door_mask.png rename to mods/prefab_redo/textures/prefab_redo_door_mask.png diff --git a/prefab_redo/textures/prefab_redo_door_mask_half.png b/mods/prefab_redo/textures/prefab_redo_door_mask_half.png similarity index 100% rename from prefab_redo/textures/prefab_redo_door_mask_half.png rename to mods/prefab_redo/textures/prefab_redo_door_mask_half.png diff --git a/prefab_redo/textures/prefab_redo_door_overlay.png b/mods/prefab_redo/textures/prefab_redo_door_overlay.png similarity index 100% rename from prefab_redo/textures/prefab_redo_door_overlay.png rename to mods/prefab_redo/textures/prefab_redo_door_overlay.png diff --git a/prefab_redo/textures/prefab_redo_door_overlay_half.png b/mods/prefab_redo/textures/prefab_redo_door_overlay_half.png similarity index 100% rename from prefab_redo/textures/prefab_redo_door_overlay_half.png rename to mods/prefab_redo/textures/prefab_redo_door_overlay_half.png diff --git a/prefab_redo/textures/prefab_redo_door_resize.png b/mods/prefab_redo/textures/prefab_redo_door_resize.png similarity index 100% rename from prefab_redo/textures/prefab_redo_door_resize.png rename to mods/prefab_redo/textures/prefab_redo_door_resize.png diff --git a/prefab_redo/textures/prefab_redo_ladder_mask.png b/mods/prefab_redo/textures/prefab_redo_ladder_mask.png similarity index 100% rename from prefab_redo/textures/prefab_redo_ladder_mask.png rename to mods/prefab_redo/textures/prefab_redo_ladder_mask.png diff --git a/prefab_redo/textures/prefab_redo_ladder_overlay.png b/mods/prefab_redo/textures/prefab_redo_ladder_overlay.png similarity index 100% rename from prefab_redo/textures/prefab_redo_ladder_overlay.png rename to mods/prefab_redo/textures/prefab_redo_ladder_overlay.png diff --git a/quartz/LICENSE.txt b/mods/quartz/LICENSE.txt similarity index 100% rename from quartz/LICENSE.txt rename to mods/quartz/LICENSE.txt diff --git a/quartz/README.txt b/mods/quartz/README.txt similarity index 100% rename from quartz/README.txt rename to mods/quartz/README.txt diff --git a/quartz/depends.txt b/mods/quartz/depends.txt similarity index 100% rename from quartz/depends.txt rename to mods/quartz/depends.txt diff --git a/quartz/description.txt b/mods/quartz/description.txt similarity index 100% rename from quartz/description.txt rename to mods/quartz/description.txt diff --git a/quartz/init.lua b/mods/quartz/init.lua similarity index 100% rename from quartz/init.lua rename to mods/quartz/init.lua diff --git a/quartz/intllib.lua b/mods/quartz/intllib.lua similarity index 100% rename from quartz/intllib.lua rename to mods/quartz/intllib.lua diff --git a/quartz/locale/es.po b/mods/quartz/locale/es.po similarity index 100% rename from quartz/locale/es.po rename to mods/quartz/locale/es.po diff --git a/quartz/locale/fr.po b/mods/quartz/locale/fr.po similarity index 100% rename from quartz/locale/fr.po rename to mods/quartz/locale/fr.po diff --git a/quartz/locale/pt_br.po b/mods/quartz/locale/pt_br.po similarity index 100% rename from quartz/locale/pt_br.po rename to mods/quartz/locale/pt_br.po diff --git a/quartz/locale/template.pot b/mods/quartz/locale/template.pot similarity index 100% rename from quartz/locale/template.pot rename to mods/quartz/locale/template.pot diff --git a/quartz/mod.conf b/mods/quartz/mod.conf similarity index 100% rename from quartz/mod.conf rename to mods/quartz/mod.conf diff --git a/quartz/screenshot.png b/mods/quartz/screenshot.png similarity index 100% rename from quartz/screenshot.png rename to mods/quartz/screenshot.png diff --git a/quartz/settings.txt b/mods/quartz/settings.txt similarity index 100% rename from quartz/settings.txt rename to mods/quartz/settings.txt diff --git a/quartz/textures/quartz_block.png b/mods/quartz/textures/quartz_block.png similarity index 100% rename from quartz/textures/quartz_block.png rename to mods/quartz/textures/quartz_block.png diff --git a/quartz/textures/quartz_chiseled.png b/mods/quartz/textures/quartz_chiseled.png similarity index 100% rename from quartz/textures/quartz_chiseled.png rename to mods/quartz/textures/quartz_chiseled.png diff --git a/quartz/textures/quartz_crystal_full.png b/mods/quartz/textures/quartz_crystal_full.png similarity index 100% rename from quartz/textures/quartz_crystal_full.png rename to mods/quartz/textures/quartz_crystal_full.png diff --git a/quartz/textures/quartz_crystal_piece.png b/mods/quartz/textures/quartz_crystal_piece.png similarity index 100% rename from quartz/textures/quartz_crystal_piece.png rename to mods/quartz/textures/quartz_crystal_piece.png diff --git a/quartz/textures/quartz_ore.png b/mods/quartz/textures/quartz_ore.png similarity index 100% rename from quartz/textures/quartz_ore.png rename to mods/quartz/textures/quartz_ore.png diff --git a/quartz/textures/quartz_pillar_side.png b/mods/quartz/textures/quartz_pillar_side.png similarity index 100% rename from quartz/textures/quartz_pillar_side.png rename to mods/quartz/textures/quartz_pillar_side.png diff --git a/quartz/textures/quartz_pillar_side_horizontal.png b/mods/quartz/textures/quartz_pillar_side_horizontal.png similarity index 100% rename from quartz/textures/quartz_pillar_side_horizontal.png rename to mods/quartz/textures/quartz_pillar_side_horizontal.png diff --git a/quartz/textures/quartz_pillar_top.png b/mods/quartz/textures/quartz_pillar_top.png similarity index 100% rename from quartz/textures/quartz_pillar_top.png rename to mods/quartz/textures/quartz_pillar_top.png diff --git a/replacer/README.md b/mods/replacer/README.md similarity index 100% rename from replacer/README.md rename to mods/replacer/README.md diff --git a/replacer/check_owner.lua b/mods/replacer/check_owner.lua similarity index 100% rename from replacer/check_owner.lua rename to mods/replacer/check_owner.lua diff --git a/replacer/depends.txt b/mods/replacer/depends.txt similarity index 100% rename from replacer/depends.txt rename to mods/replacer/depends.txt diff --git a/replacer/init.lua b/mods/replacer/init.lua similarity index 100% rename from replacer/init.lua rename to mods/replacer/init.lua diff --git a/replacer/inspect.lua b/mods/replacer/inspect.lua similarity index 100% rename from replacer/inspect.lua rename to mods/replacer/inspect.lua diff --git a/replacer/textures/replacer_inspect.png b/mods/replacer/textures/replacer_inspect.png similarity index 100% rename from replacer/textures/replacer_inspect.png rename to mods/replacer/textures/replacer_inspect.png diff --git a/replacer/textures/replacer_replacer.png b/mods/replacer/textures/replacer_replacer.png similarity index 100% rename from replacer/textures/replacer_replacer.png rename to mods/replacer/textures/replacer_replacer.png diff --git a/rgblightstone/README b/mods/rgblightstone/README similarity index 100% rename from rgblightstone/README rename to mods/rgblightstone/README diff --git a/rgblightstone/init.lua b/mods/rgblightstone/init.lua similarity index 100% rename from rgblightstone/init.lua rename to mods/rgblightstone/init.lua diff --git a/rgblightstone/mod.conf b/mods/rgblightstone/mod.conf similarity index 100% rename from rgblightstone/mod.conf rename to mods/rgblightstone/mod.conf diff --git a/rgblightstone/textures/rgblightstone_palette.png b/mods/rgblightstone/textures/rgblightstone_palette.png similarity index 100% rename from rgblightstone/textures/rgblightstone_palette.png rename to mods/rgblightstone/textures/rgblightstone_palette.png diff --git a/rgblightstone/textures/rgblightstone_white.png b/mods/rgblightstone/textures/rgblightstone_white.png similarity index 100% rename from rgblightstone/textures/rgblightstone_white.png rename to mods/rgblightstone/textures/rgblightstone_white.png diff --git a/roadsigns/depends.txt b/mods/roadsigns/depends.txt similarity index 100% rename from roadsigns/depends.txt rename to mods/roadsigns/depends.txt diff --git a/roadsigns/init.lua b/mods/roadsigns/init.lua similarity index 100% rename from roadsigns/init.lua rename to mods/roadsigns/init.lua diff --git a/roadsigns/signs.lua b/mods/roadsigns/signs.lua similarity index 100% rename from roadsigns/signs.lua rename to mods/roadsigns/signs.lua diff --git a/roadsigns/workshop.lua b/mods/roadsigns/workshop.lua similarity index 100% rename from roadsigns/workshop.lua rename to mods/roadsigns/workshop.lua diff --git a/ropes/LICENSE.md b/mods/ropes/LICENSE.md similarity index 100% rename from ropes/LICENSE.md rename to mods/ropes/LICENSE.md diff --git a/ropes/README.md b/mods/ropes/README.md similarity index 100% rename from ropes/README.md rename to mods/ropes/README.md diff --git a/ropes/bridge.lua b/mods/ropes/bridge.lua similarity index 100% rename from ropes/bridge.lua rename to mods/ropes/bridge.lua diff --git a/ropes/crafts.lua b/mods/ropes/crafts.lua similarity index 100% rename from ropes/crafts.lua rename to mods/ropes/crafts.lua diff --git a/ropes/depends.txt b/mods/ropes/depends.txt similarity index 100% rename from ropes/depends.txt rename to mods/ropes/depends.txt diff --git a/ropes/description.txt b/mods/ropes/description.txt similarity index 100% rename from ropes/description.txt rename to mods/ropes/description.txt diff --git a/ropes/doc.lua b/mods/ropes/doc.lua similarity index 100% rename from ropes/doc.lua rename to mods/ropes/doc.lua diff --git a/ropes/extendingladder.lua b/mods/ropes/extendingladder.lua similarity index 100% rename from ropes/extendingladder.lua rename to mods/ropes/extendingladder.lua diff --git a/ropes/functions.lua b/mods/ropes/functions.lua similarity index 100% rename from ropes/functions.lua rename to mods/ropes/functions.lua diff --git a/ropes/i18n.py b/mods/ropes/i18n.py similarity index 100% rename from ropes/i18n.py rename to mods/ropes/i18n.py diff --git a/ropes/init.lua b/mods/ropes/init.lua similarity index 100% rename from ropes/init.lua rename to mods/ropes/init.lua diff --git a/ropes/locale/ropes.es.tr b/mods/ropes/locale/ropes.es.tr similarity index 100% rename from ropes/locale/ropes.es.tr rename to mods/ropes/locale/ropes.es.tr diff --git a/ropes/locale/template.txt b/mods/ropes/locale/template.txt similarity index 100% rename from ropes/locale/template.txt rename to mods/ropes/locale/template.txt diff --git a/ropes/loot.lua b/mods/ropes/loot.lua similarity index 100% rename from ropes/loot.lua rename to mods/ropes/loot.lua diff --git a/ropes/mod.conf b/mods/ropes/mod.conf similarity index 100% rename from ropes/mod.conf rename to mods/ropes/mod.conf diff --git a/ropes/ropeboxes.lua b/mods/ropes/ropeboxes.lua similarity index 100% rename from ropes/ropeboxes.lua rename to mods/ropes/ropeboxes.lua diff --git a/ropes/ropeladder.lua b/mods/ropes/ropeladder.lua similarity index 100% rename from ropes/ropeladder.lua rename to mods/ropes/ropeladder.lua diff --git a/ropes/screenshot.png b/mods/ropes/screenshot.png similarity index 100% rename from ropes/screenshot.png rename to mods/ropes/screenshot.png diff --git a/ropes/settingtypes.txt b/mods/ropes/settingtypes.txt similarity index 100% rename from ropes/settingtypes.txt rename to mods/ropes/settingtypes.txt diff --git a/ropes/sounds/license.txt b/mods/ropes/sounds/license.txt similarity index 100% rename from ropes/sounds/license.txt rename to mods/ropes/sounds/license.txt diff --git a/ropes/sounds/ropes_creak.1.ogg b/mods/ropes/sounds/ropes_creak.1.ogg similarity index 100% rename from ropes/sounds/ropes_creak.1.ogg rename to mods/ropes/sounds/ropes_creak.1.ogg diff --git a/ropes/sounds/ropes_creak.2.ogg b/mods/ropes/sounds/ropes_creak.2.ogg similarity index 100% rename from ropes/sounds/ropes_creak.2.ogg rename to mods/ropes/sounds/ropes_creak.2.ogg diff --git a/ropes/sounds/ropes_creak.3.ogg b/mods/ropes/sounds/ropes_creak.3.ogg similarity index 100% rename from ropes/sounds/ropes_creak.3.ogg rename to mods/ropes/sounds/ropes_creak.3.ogg diff --git a/ropes/textures/ropes_1.png b/mods/ropes/textures/ropes_1.png similarity index 100% rename from ropes/textures/ropes_1.png rename to mods/ropes/textures/ropes_1.png diff --git a/ropes/textures/ropes_2.png b/mods/ropes/textures/ropes_2.png similarity index 100% rename from ropes/textures/ropes_2.png rename to mods/ropes/textures/ropes_2.png diff --git a/ropes/textures/ropes_3.png b/mods/ropes/textures/ropes_3.png similarity index 100% rename from ropes/textures/ropes_3.png rename to mods/ropes/textures/ropes_3.png diff --git a/ropes/textures/ropes_4.png b/mods/ropes/textures/ropes_4.png similarity index 100% rename from ropes/textures/ropes_4.png rename to mods/ropes/textures/ropes_4.png diff --git a/ropes/textures/ropes_5.png b/mods/ropes/textures/ropes_5.png similarity index 100% rename from ropes/textures/ropes_5.png rename to mods/ropes/textures/ropes_5.png diff --git a/ropes/textures/ropes_item.png b/mods/ropes/textures/ropes_item.png similarity index 100% rename from ropes/textures/ropes_item.png rename to mods/ropes/textures/ropes_item.png diff --git a/ropes/textures/ropes_ropebox_front_1.png b/mods/ropes/textures/ropes_ropebox_front_1.png similarity index 100% rename from ropes/textures/ropes_ropebox_front_1.png rename to mods/ropes/textures/ropes_ropebox_front_1.png diff --git a/ropes/textures/ropes_ropebox_front_2.png b/mods/ropes/textures/ropes_ropebox_front_2.png similarity index 100% rename from ropes/textures/ropes_ropebox_front_2.png rename to mods/ropes/textures/ropes_ropebox_front_2.png diff --git a/ropes/textures/ropes_ropebox_front_3.png b/mods/ropes/textures/ropes_ropebox_front_3.png similarity index 100% rename from ropes/textures/ropes_ropebox_front_3.png rename to mods/ropes/textures/ropes_ropebox_front_3.png diff --git a/ropes/textures/ropes_ropebox_front_4.png b/mods/ropes/textures/ropes_ropebox_front_4.png similarity index 100% rename from ropes/textures/ropes_ropebox_front_4.png rename to mods/ropes/textures/ropes_ropebox_front_4.png diff --git a/ropes/textures/ropes_ropebox_front_5.png b/mods/ropes/textures/ropes_ropebox_front_5.png similarity index 100% rename from ropes/textures/ropes_ropebox_front_5.png rename to mods/ropes/textures/ropes_ropebox_front_5.png diff --git a/ropes/textures/ropes_ropebox_side.png b/mods/ropes/textures/ropes_ropebox_side.png similarity index 100% rename from ropes/textures/ropes_ropebox_side.png rename to mods/ropes/textures/ropes_ropebox_side.png diff --git a/ropes/textures/ropes_ropeladder.png b/mods/ropes/textures/ropes_ropeladder.png similarity index 100% rename from ropes/textures/ropes_ropeladder.png rename to mods/ropes/textures/ropes_ropeladder.png diff --git a/ropes/textures/ropes_ropeladder_bottom.png b/mods/ropes/textures/ropes_ropeladder_bottom.png similarity index 100% rename from ropes/textures/ropes_ropeladder_bottom.png rename to mods/ropes/textures/ropes_ropeladder_bottom.png diff --git a/ropes/textures/ropes_ropeladder_top.png b/mods/ropes/textures/ropes_ropeladder_top.png similarity index 100% rename from ropes/textures/ropes_ropeladder_top.png rename to mods/ropes/textures/ropes_ropeladder_top.png diff --git a/mods/screwdriver/README.txt b/mods/screwdriver/README.txt new file mode 100644 index 00000000..14c073e7 --- /dev/null +++ b/mods/screwdriver/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: screwdriver +============================== +See license.txt for license information. + +License of source code +---------------------- +Originally by RealBadAngel, Maciej Kasatkin (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +License of media (textures) +--------------------------- +Created by Gambit (CC BY-SA 3.0): + screwdriver.png diff --git a/mods/screwdriver/init.lua b/mods/screwdriver/init.lua new file mode 100644 index 00000000..98548f0b --- /dev/null +++ b/mods/screwdriver/init.lua @@ -0,0 +1,177 @@ +-- screwdriver/init.lua + +screwdriver = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("screwdriver") + + +screwdriver.ROTATE_FACE = 1 +screwdriver.ROTATE_AXIS = 2 +screwdriver.disallow = function(pos, node, user, mode, new_param2) + return false +end +screwdriver.rotate_simple = function(pos, node, user, mode, new_param2) + if mode ~= screwdriver.ROTATE_FACE then + return false + end +end + +-- For attached wallmounted nodes: returns true if rotation is valid +-- simplified version of minetest:builtin/game/falling.lua#L148. +local function check_attached_node(pos, rotation) + local d = minetest.wallmounted_to_dir(rotation) + local p2 = vector.add(pos, d) + local n = minetest.get_node(p2).name + local def2 = minetest.registered_nodes[n] + if def2 and not def2.walkable then + return false + end + return true +end + +screwdriver.rotate = {} + +local facedir_tbl = { + [screwdriver.ROTATE_FACE] = { + [0] = 1, [1] = 2, [2] = 3, [3] = 0, + [4] = 5, [5] = 6, [6] = 7, [7] = 4, + [8] = 9, [9] = 10, [10] = 11, [11] = 8, + [12] = 13, [13] = 14, [14] = 15, [15] = 12, + [16] = 17, [17] = 18, [18] = 19, [19] = 16, + [20] = 21, [21] = 22, [22] = 23, [23] = 20, + }, + [screwdriver.ROTATE_AXIS] = { + [0] = 4, [1] = 4, [2] = 4, [3] = 4, + [4] = 8, [5] = 8, [6] = 8, [7] = 8, + [8] = 12, [9] = 12, [10] = 12, [11] = 12, + [12] = 16, [13] = 16, [14] = 16, [15] = 16, + [16] = 20, [17] = 20, [18] = 20, [19] = 20, + [20] = 0, [21] = 0, [22] = 0, [23] = 0, + }, +} + +screwdriver.rotate.facedir = function(pos, node, mode) + local rotation = node.param2 % 32 -- get first 5 bits + local other = node.param2 - rotation + rotation = facedir_tbl[mode][rotation] or 0 + return rotation + other +end + +screwdriver.rotate.colorfacedir = screwdriver.rotate.facedir + +local wallmounted_tbl = { + [screwdriver.ROTATE_FACE] = {[2] = 5, [3] = 4, [4] = 2, [5] = 3, [1] = 0, [0] = 1}, + [screwdriver.ROTATE_AXIS] = {[2] = 5, [3] = 4, [4] = 2, [5] = 1, [1] = 0, [0] = 3} +} + +screwdriver.rotate.wallmounted = function(pos, node, mode) + local rotation = node.param2 % 8 -- get first 3 bits + local other = node.param2 - rotation + rotation = wallmounted_tbl[mode][rotation] or 0 + if minetest.get_item_group(node.name, "attached_node") ~= 0 then + -- find an acceptable orientation + for i = 1, 5 do + if not check_attached_node(pos, rotation) then + rotation = wallmounted_tbl[mode][rotation] or 0 + else + break + end + end + end + return rotation + other +end + +screwdriver.rotate.colorwallmounted = screwdriver.rotate.wallmounted + +-- Handles rotation +screwdriver.handler = function(itemstack, user, pointed_thing, mode, uses) + if pointed_thing.type ~= "node" then + return + end + + local pos = pointed_thing.under + local player_name = user and user:get_player_name() or "" + + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return + end + + local node = minetest.get_node(pos) + local ndef = minetest.registered_nodes[node.name] + if not ndef then + return itemstack + end + -- can we rotate this paramtype2? + local fn = screwdriver.rotate[ndef.paramtype2] + if not fn and not ndef.on_rotate then + return itemstack + end + + local should_rotate = true + local new_param2 + if fn then + new_param2 = fn(pos, node, mode) + else + new_param2 = node.param2 + end + + -- Node provides a handler, so let the handler decide instead if the node can be rotated + if ndef.on_rotate then + -- Copy pos and node because callback can modify it + local result = ndef.on_rotate(vector.new(pos), + {name = node.name, param1 = node.param1, param2 = node.param2}, + user, mode, new_param2) + if result == false then -- Disallow rotation + return itemstack + elseif result == true then + should_rotate = false + end + elseif ndef.on_rotate == false then + return itemstack + elseif ndef.can_dig and not ndef.can_dig(pos, user) then + return itemstack + end + + if should_rotate and new_param2 ~= node.param2 then + node.param2 = new_param2 + minetest.swap_node(pos, node) + minetest.check_for_falling(pos) + end + + if not minetest.is_creative_enabled(player_name) then + itemstack:add_wear(65535 / ((uses or 200) - 1)) + end + + return itemstack +end + +-- Screwdriver +minetest.register_tool("screwdriver:screwdriver", { + description = S("Screwdriver") .. "\n" .. S("(left-click rotates face, right-click rotates axis)"), + inventory_image = "screwdriver.png", + groups = {tool = 1}, + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 200) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 200) + return itemstack + end, +}) + + +minetest.register_craft({ + output = "screwdriver:screwdriver", + recipe = { + {"default:steel_ingot"}, + {"group:stick"} + } +}) + +minetest.register_alias("screwdriver:screwdriver1", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver2", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver3", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver4", "screwdriver:screwdriver") diff --git a/mods/screwdriver/license.txt b/mods/screwdriver/license.txt new file mode 100644 index 00000000..d9b721bb --- /dev/null +++ b/mods/screwdriver/license.txt @@ -0,0 +1,50 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin +Copyright (C) 2013-2016 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2013-2016 Gambit + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/screwdriver/locale/screwdriver.de.tr b/mods/screwdriver/locale/screwdriver.de.tr new file mode 100644 index 00000000..3c48ab4f --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.de.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Schraubendreher +(left-click rotates face, right-click rotates axis)=(Linksklick dreht Seite, Rechtsklick dreht Achse) diff --git a/mods/screwdriver/locale/screwdriver.es.tr b/mods/screwdriver/locale/screwdriver.es.tr new file mode 100644 index 00000000..868ffc34 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.es.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Destornillador +(left-click rotates face, right-click rotates axis)=(clic-izquierdo gira la cara, clic-derecho rota el eje) diff --git a/mods/screwdriver/locale/screwdriver.fr.tr b/mods/screwdriver/locale/screwdriver.fr.tr new file mode 100644 index 00000000..fe34a9b6 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.fr.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Tournevis +(left-click rotates face, right-click rotates axis)=(clic gauche pour changer de face, clic droit pour changer d'axe) diff --git a/mods/screwdriver/locale/screwdriver.id.tr b/mods/screwdriver/locale/screwdriver.id.tr new file mode 100644 index 00000000..ec83c794 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.id.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Obeng +(left-click rotates face, right-click rotates axis)=(klik kiri putar sisi, klik kanan putar sumbu) diff --git a/mods/screwdriver/locale/screwdriver.it.tr b/mods/screwdriver/locale/screwdriver.it.tr new file mode 100644 index 00000000..ff44b89f --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.it.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Cacciavite +(left-click rotates face, right-click rotates axis)=(click sinistro ruota la faccia, click destro ruota l'asse) diff --git a/mods/screwdriver/locale/screwdriver.jbo.tr b/mods/screwdriver/locale/screwdriver.jbo.tr new file mode 100644 index 00000000..1a85bb61 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.jbo.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=lo lupcartci +(left-click rotates face, right-click rotates axis)=.i tu'a le zulselpevysmacu cu rinka lo nu le sefta cu carna@n.i tu'a le prityselpevysmacu cu rinka lo nu le jendu cu carna diff --git a/mods/screwdriver/locale/screwdriver.ms.tr b/mods/screwdriver/locale/screwdriver.ms.tr new file mode 100644 index 00000000..f296fc52 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.ms.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Pemutar Skru +(left-click rotates face, right-click rotates axis)=(klik-kiri putar muka, klik-kanan putar paksi) diff --git a/mods/screwdriver/locale/screwdriver.pt_BR.tr b/mods/screwdriver/locale/screwdriver.pt_BR.tr new file mode 100644 index 00000000..3e89f40f --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.pt_BR.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Chave de fenda +(left-click rotates face, right-click rotates axis)=(Clique esquerdo rotaciona a face, clique direito rotaciona o eixo) diff --git a/mods/screwdriver/locale/screwdriver.ru.tr b/mods/screwdriver/locale/screwdriver.ru.tr new file mode 100644 index 00000000..bbab3305 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.ru.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Отвёртка +(left-click rotates face, right-click rotates axis)=(клик левой кнопкой мыши вращает грань, клик правой кнопкой мыши вращает ось) diff --git a/mods/screwdriver/locale/screwdriver.se.tr b/mods/screwdriver/locale/screwdriver.se.tr new file mode 100644 index 00000000..be440a76 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.se.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Skruvmejsel +(left-click rotates face, right-click rotates axis)=(vänster-klick roterar ansikte, höger-klick roterar axeln) diff --git a/mods/screwdriver/locale/screwdriver.sk.tr b/mods/screwdriver/locale/screwdriver.sk.tr new file mode 100644 index 00000000..74cb4174 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.sk.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Skrutkovač +(left-click rotates face, right-click rotates axis)=(Ľavý klik otáča stranu, pravý klik otáča os) diff --git a/mods/screwdriver/locale/screwdriver.zh_CN.tr b/mods/screwdriver/locale/screwdriver.zh_CN.tr new file mode 100644 index 00000000..caddf798 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.zh_CN.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=螺丝刀 +(left-click rotates face, right-click rotates axis)=(左键单击旋转面,右键单击旋转轴) diff --git a/mods/screwdriver/locale/screwdriver.zh_TW.tr b/mods/screwdriver/locale/screwdriver.zh_TW.tr new file mode 100644 index 00000000..e638bfa0 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.zh_TW.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=螺絲刀 +(left-click rotates face, right-click rotates axis)=(左鍵單擊旋轉面,右鍵單擊旋轉軸) diff --git a/mods/screwdriver/locale/template.txt b/mods/screwdriver/locale/template.txt new file mode 100644 index 00000000..4cc8e2a6 --- /dev/null +++ b/mods/screwdriver/locale/template.txt @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver= +(left-click rotates face, right-click rotates axis)= diff --git a/mods/screwdriver/mod.conf b/mods/screwdriver/mod.conf new file mode 100644 index 00000000..306c52b5 --- /dev/null +++ b/mods/screwdriver/mod.conf @@ -0,0 +1,2 @@ +name = screwdriver +description = Minetest Game mod: screwdriver diff --git a/mods/screwdriver/textures/screwdriver.png b/mods/screwdriver/textures/screwdriver.png new file mode 100644 index 00000000..b2a56d55 Binary files /dev/null and b/mods/screwdriver/textures/screwdriver.png differ diff --git a/mods/sfinv/README.txt b/mods/sfinv/README.txt new file mode 100644 index 00000000..a69e3c32 --- /dev/null +++ b/mods/sfinv/README.txt @@ -0,0 +1,18 @@ +Minetest Game mod: sfinv +======================== +See license.txt for license information. + +Simple Fast Inventory. +A cleaner, simpler, solution to having an advanced inventory in Minetest. +See game_api.txt for this mod's API. +Available for use outside of MTG here: +https://forum.minetest.net/viewtopic.php?t=19765 + +Authors of source code +---------------------- +rubenwardy (MIT) + +Authors of media +---------------- +paramat (CC BY-SA 3.0): + sfinv_crafting_arrow.png - derived from a texture by BlockMen (CC BY-SA 3.0) diff --git a/mods/sfinv/api.lua b/mods/sfinv/api.lua new file mode 100644 index 00000000..1dbc44a9 --- /dev/null +++ b/mods/sfinv/api.lua @@ -0,0 +1,189 @@ +sfinv = { + pages = {}, + pages_unordered = {}, + contexts = {}, + enabled = true +} + +function sfinv.register_page(name, def) + assert(name, "Invalid sfinv page. Requires a name") + assert(def, "Invalid sfinv page. Requires a def[inition] table") + assert(def.get, "Invalid sfinv page. Def requires a get function.") + assert(not sfinv.pages[name], "Attempt to register already registered sfinv page " .. dump(name)) + + sfinv.pages[name] = def + def.name = name + table.insert(sfinv.pages_unordered, def) +end + +function sfinv.override_page(name, def) + assert(name, "Invalid sfinv page override. Requires a name") + assert(def, "Invalid sfinv page override. Requires a def[inition] table") + local page = sfinv.pages[name] + assert(page, "Attempt to override sfinv page " .. dump(name) .. " which does not exist.") + for key, value in pairs(def) do + page[key] = value + end +end + +function sfinv.get_nav_fs(player, context, nav, current_idx) + -- Only show tabs if there is more than one page + if #nav > 1 then + return "tabheader[0,0;sfinv_nav_tabs;" .. table.concat(nav, ",") .. + ";" .. current_idx .. ";true;false]" + else + return "" + end +end + +local theme_inv = [[ + image[0,5.2;1,1;gui_hb_bg.png] + image[1,5.2;1,1;gui_hb_bg.png] + image[2,5.2;1,1;gui_hb_bg.png] + image[3,5.2;1,1;gui_hb_bg.png] + image[4,5.2;1,1;gui_hb_bg.png] + image[5,5.2;1,1;gui_hb_bg.png] + image[6,5.2;1,1;gui_hb_bg.png] + image[7,5.2;1,1;gui_hb_bg.png] + list[current_player;main;0,5.2;8,1;] + list[current_player;main;0,6.35;8,3;8] + ]] + +function sfinv.make_formspec(player, context, content, show_inv, size) + local tmp = { + size or "size[8,9.1]", + sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx), + show_inv and theme_inv or "", + content + } + return table.concat(tmp, "") +end + +function sfinv.get_homepage_name(player) + return "sfinv:crafting" +end + +function sfinv.get_formspec(player, context) + -- Generate navigation tabs + local nav = {} + local nav_ids = {} + local current_idx = 1 + for i, pdef in pairs(sfinv.pages_unordered) do + if not pdef.is_in_nav or pdef:is_in_nav(player, context) then + nav[#nav + 1] = pdef.title + nav_ids[#nav_ids + 1] = pdef.name + if pdef.name == context.page then + current_idx = #nav_ids + end + end + end + context.nav = nav_ids + context.nav_titles = nav + context.nav_idx = current_idx + + -- Generate formspec + local page = sfinv.pages[context.page] or sfinv.pages["404"] + if page then + return page:get(player, context) + else + local old_page = context.page + local home_page = sfinv.get_homepage_name(player) + + if old_page == home_page then + minetest.log("error", "[sfinv] Couldn't find " .. dump(old_page) .. + ", which is also the old page") + + return "" + end + + context.page = home_page + assert(sfinv.pages[context.page], "[sfinv] Invalid homepage") + minetest.log("warning", "[sfinv] Couldn't find " .. dump(old_page) .. + " so switching to homepage") + + return sfinv.get_formspec(player, context) + end +end + +function sfinv.get_or_create_context(player) + local name = player:get_player_name() + local context = sfinv.contexts[name] + if not context then + context = { + page = sfinv.get_homepage_name(player) + } + sfinv.contexts[name] = context + end + return context +end + +function sfinv.set_context(player, context) + sfinv.contexts[player:get_player_name()] = context +end + +function sfinv.set_player_inventory_formspec(player, context) + local fs = sfinv.get_formspec(player, + context or sfinv.get_or_create_context(player)) + player:set_inventory_formspec(fs) +end + +function sfinv.set_page(player, pagename) + local context = sfinv.get_or_create_context(player) + local oldpage = sfinv.pages[context.page] + if oldpage and oldpage.on_leave then + oldpage:on_leave(player, context) + end + context.page = pagename + local page = sfinv.pages[pagename] + if page.on_enter then + page:on_enter(player, context) + end + sfinv.set_player_inventory_formspec(player, context) +end + +function sfinv.get_page(player) + local context = sfinv.contexts[player:get_player_name()] + return context and context.page or sfinv.get_homepage_name(player) +end + +minetest.register_on_joinplayer(function(player) + if sfinv.enabled then + sfinv.set_player_inventory_formspec(player) + end +end) + +minetest.register_on_leaveplayer(function(player) + sfinv.contexts[player:get_player_name()] = nil +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" or not sfinv.enabled then + return false + end + + -- Get Context + local name = player:get_player_name() + local context = sfinv.contexts[name] + if not context then + sfinv.set_player_inventory_formspec(player) + return false + end + + -- Was a tab selected? + if fields.sfinv_nav_tabs and context.nav then + local tid = tonumber(fields.sfinv_nav_tabs) + if tid and tid > 0 then + local id = context.nav[tid] + local page = sfinv.pages[id] + if id and page then + sfinv.set_page(player, id) + end + end + else + -- Pass event to page + local page = sfinv.pages[context.page] + if page and page.on_player_receive_fields then + return page:on_player_receive_fields(player, context, fields) + end + end +end) diff --git a/mods/sfinv/init.lua b/mods/sfinv/init.lua new file mode 100644 index 00000000..71e9ee70 --- /dev/null +++ b/mods/sfinv/init.lua @@ -0,0 +1,19 @@ +-- sfinv/init.lua + +dofile(minetest.get_modpath("sfinv") .. "/api.lua") + +-- Load support for MT game translation. +local S = minetest.get_translator("sfinv") + +sfinv.register_page("sfinv:crafting", { + title = S("Crafting"), + get = function(self, player, context) + 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;sfinv_crafting_arrow.png] + listring[current_player;main] + listring[current_player;craft] + ]], true) + end +}) diff --git a/mods/sfinv/license.txt b/mods/sfinv/license.txt new file mode 100644 index 00000000..6676d74e --- /dev/null +++ b/mods/sfinv/license.txt @@ -0,0 +1,59 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2016-2018 rubenwardy + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +License of media +---------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2019 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/sfinv/locale/sfinv.de.tr b/mods/sfinv/locale/sfinv.de.tr new file mode 100644 index 00000000..044e9ba9 --- /dev/null +++ b/mods/sfinv/locale/sfinv.de.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Fertigung diff --git a/mods/sfinv/locale/sfinv.es.tr b/mods/sfinv/locale/sfinv.es.tr new file mode 100644 index 00000000..d3d66091 --- /dev/null +++ b/mods/sfinv/locale/sfinv.es.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Creación diff --git a/mods/sfinv/locale/sfinv.fr.tr b/mods/sfinv/locale/sfinv.fr.tr new file mode 100644 index 00000000..58ead969 --- /dev/null +++ b/mods/sfinv/locale/sfinv.fr.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Artisanat diff --git a/mods/sfinv/locale/sfinv.id.tr b/mods/sfinv/locale/sfinv.id.tr new file mode 100644 index 00000000..643196e1 --- /dev/null +++ b/mods/sfinv/locale/sfinv.id.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Kerajinan diff --git a/mods/sfinv/locale/sfinv.it.tr b/mods/sfinv/locale/sfinv.it.tr new file mode 100644 index 00000000..e449b752 --- /dev/null +++ b/mods/sfinv/locale/sfinv.it.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Assemblaggio diff --git a/mods/sfinv/locale/sfinv.jbo.tr b/mods/sfinv/locale/sfinv.jbo.tr new file mode 100644 index 00000000..0ff0328e --- /dev/null +++ b/mods/sfinv/locale/sfinv.jbo.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=nu zbasu diff --git a/mods/sfinv/locale/sfinv.ms.tr b/mods/sfinv/locale/sfinv.ms.tr new file mode 100644 index 00000000..f62ba8ab --- /dev/null +++ b/mods/sfinv/locale/sfinv.ms.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Pertukangan diff --git a/mods/sfinv/locale/sfinv.pt_BR.tr b/mods/sfinv/locale/sfinv.pt_BR.tr new file mode 100644 index 00000000..f9e57ae7 --- /dev/null +++ b/mods/sfinv/locale/sfinv.pt_BR.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Construir diff --git a/mods/sfinv/locale/sfinv.ru.tr b/mods/sfinv/locale/sfinv.ru.tr new file mode 100644 index 00000000..d7c11b2f --- /dev/null +++ b/mods/sfinv/locale/sfinv.ru.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Крафтинг diff --git a/mods/sfinv/locale/sfinv.se.tr b/mods/sfinv/locale/sfinv.se.tr new file mode 100644 index 00000000..df426b66 --- /dev/null +++ b/mods/sfinv/locale/sfinv.se.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Tillverkning diff --git a/mods/sfinv/locale/sfinv.sk.tr b/mods/sfinv/locale/sfinv.sk.tr new file mode 100644 index 00000000..18566f13 --- /dev/null +++ b/mods/sfinv/locale/sfinv.sk.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=Vytváranie diff --git a/mods/sfinv/locale/sfinv.zh_CN.tr b/mods/sfinv/locale/sfinv.zh_CN.tr new file mode 100644 index 00000000..3ec3c729 --- /dev/null +++ b/mods/sfinv/locale/sfinv.zh_CN.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=合成 diff --git a/mods/sfinv/locale/sfinv.zh_TW.tr b/mods/sfinv/locale/sfinv.zh_TW.tr new file mode 100644 index 00000000..3ec3c729 --- /dev/null +++ b/mods/sfinv/locale/sfinv.zh_TW.tr @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting=合成 diff --git a/mods/sfinv/locale/template.txt b/mods/sfinv/locale/template.txt new file mode 100644 index 00000000..ace55196 --- /dev/null +++ b/mods/sfinv/locale/template.txt @@ -0,0 +1,2 @@ +# textdomain: sfinv +Crafting= diff --git a/mods/sfinv/mod.conf b/mods/sfinv/mod.conf new file mode 100644 index 00000000..2934435f --- /dev/null +++ b/mods/sfinv/mod.conf @@ -0,0 +1,2 @@ +name = sfinv +description = Minetest Game mod: sfinv diff --git a/mods/sfinv/textures/sfinv_crafting_arrow.png b/mods/sfinv/textures/sfinv_crafting_arrow.png new file mode 100644 index 00000000..42bba581 Binary files /dev/null and b/mods/sfinv/textures/sfinv_crafting_arrow.png differ diff --git a/signs_lib/API.md b/mods/signs_lib/API.md similarity index 100% rename from signs_lib/API.md rename to mods/signs_lib/API.md diff --git a/signs_lib/LICENSE b/mods/signs_lib/LICENSE similarity index 100% rename from signs_lib/LICENSE rename to mods/signs_lib/LICENSE diff --git a/signs_lib/MODELS.md b/mods/signs_lib/MODELS.md similarity index 100% rename from signs_lib/MODELS.md rename to mods/signs_lib/MODELS.md diff --git a/signs_lib/README.md b/mods/signs_lib/README.md similarity index 100% rename from signs_lib/README.md rename to mods/signs_lib/README.md diff --git a/signs_lib/api.lua b/mods/signs_lib/api.lua similarity index 100% rename from signs_lib/api.lua rename to mods/signs_lib/api.lua diff --git a/signs_lib/compat.lua b/mods/signs_lib/compat.lua similarity index 100% rename from signs_lib/compat.lua rename to mods/signs_lib/compat.lua diff --git a/signs_lib/copyright.txt b/mods/signs_lib/copyright.txt similarity index 100% rename from signs_lib/copyright.txt rename to mods/signs_lib/copyright.txt diff --git a/signs_lib/depends.txt b/mods/signs_lib/depends.txt similarity index 100% rename from signs_lib/depends.txt rename to mods/signs_lib/depends.txt diff --git a/signs_lib/description.txt b/mods/signs_lib/description.txt similarity index 100% rename from signs_lib/description.txt rename to mods/signs_lib/description.txt diff --git a/signs_lib/encoding.lua b/mods/signs_lib/encoding.lua similarity index 100% rename from signs_lib/encoding.lua rename to mods/signs_lib/encoding.lua diff --git a/signs_lib/init.lua b/mods/signs_lib/init.lua similarity index 100% rename from signs_lib/init.lua rename to mods/signs_lib/init.lua diff --git a/signs_lib/intllib.lua b/mods/signs_lib/intllib.lua similarity index 100% rename from signs_lib/intllib.lua rename to mods/signs_lib/intllib.lua diff --git a/signs_lib/locale/de.po b/mods/signs_lib/locale/de.po similarity index 100% rename from signs_lib/locale/de.po rename to mods/signs_lib/locale/de.po diff --git a/signs_lib/locale/es.po b/mods/signs_lib/locale/es.po similarity index 100% rename from signs_lib/locale/es.po rename to mods/signs_lib/locale/es.po diff --git a/signs_lib/locale/fr.po b/mods/signs_lib/locale/fr.po similarity index 100% rename from signs_lib/locale/fr.po rename to mods/signs_lib/locale/fr.po diff --git a/signs_lib/locale/ms.po b/mods/signs_lib/locale/ms.po similarity index 100% rename from signs_lib/locale/ms.po rename to mods/signs_lib/locale/ms.po diff --git a/signs_lib/locale/ru.po b/mods/signs_lib/locale/ru.po similarity index 100% rename from signs_lib/locale/ru.po rename to mods/signs_lib/locale/ru.po diff --git a/signs_lib/locale/template.pot b/mods/signs_lib/locale/template.pot similarity index 100% rename from signs_lib/locale/template.pot rename to mods/signs_lib/locale/template.pot diff --git a/signs_lib/mod.conf b/mods/signs_lib/mod.conf similarity index 100% rename from signs_lib/mod.conf rename to mods/signs_lib/mod.conf diff --git a/signs_lib/models/basic_signs wooden yard sign two sticks.blend b/mods/signs_lib/models/basic_signs wooden yard sign two sticks.blend similarity index 100% rename from signs_lib/models/basic_signs wooden yard sign two sticks.blend rename to mods/signs_lib/models/basic_signs wooden yard sign two sticks.blend diff --git a/signs_lib/models/signs_lib_standard_facedir_sign_onpole.obj b/mods/signs_lib/models/signs_lib_standard_facedir_sign_onpole.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_facedir_sign_onpole.obj rename to mods/signs_lib/models/signs_lib_standard_facedir_sign_onpole.obj diff --git a/signs_lib/models/signs_lib_standard_facedir_sign_wall.obj b/mods/signs_lib/models/signs_lib_standard_facedir_sign_wall.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_facedir_sign_wall.obj rename to mods/signs_lib/models/signs_lib_standard_facedir_sign_wall.obj diff --git a/signs_lib/models/signs_lib_standard_sign_entity_hanging.obj b/mods/signs_lib/models/signs_lib_standard_sign_entity_hanging.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_entity_hanging.obj rename to mods/signs_lib/models/signs_lib_standard_sign_entity_hanging.obj diff --git a/signs_lib/models/signs_lib_standard_sign_entity_onpole.obj b/mods/signs_lib/models/signs_lib_standard_sign_entity_onpole.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_entity_onpole.obj rename to mods/signs_lib/models/signs_lib_standard_sign_entity_onpole.obj diff --git a/signs_lib/models/signs_lib_standard_sign_entity_wall.obj b/mods/signs_lib/models/signs_lib_standard_sign_entity_wall.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_entity_wall.obj rename to mods/signs_lib/models/signs_lib_standard_sign_entity_wall.obj diff --git a/signs_lib/models/signs_lib_standard_sign_entity_yard.obj b/mods/signs_lib/models/signs_lib_standard_sign_entity_yard.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_entity_yard.obj rename to mods/signs_lib/models/signs_lib_standard_sign_entity_yard.obj diff --git a/signs_lib/models/signs_lib_standard_sign_hanging.obj b/mods/signs_lib/models/signs_lib_standard_sign_hanging.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_hanging.obj rename to mods/signs_lib/models/signs_lib_standard_sign_hanging.obj diff --git a/signs_lib/models/signs_lib_standard_sign_onpole.obj b/mods/signs_lib/models/signs_lib_standard_sign_onpole.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_onpole.obj rename to mods/signs_lib/models/signs_lib_standard_sign_onpole.obj diff --git a/signs_lib/models/signs_lib_standard_sign_wall.obj b/mods/signs_lib/models/signs_lib_standard_sign_wall.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_wall.obj rename to mods/signs_lib/models/signs_lib_standard_sign_wall.obj diff --git a/signs_lib/models/signs_lib_standard_sign_yard.obj b/mods/signs_lib/models/signs_lib_standard_sign_yard.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_yard.obj rename to mods/signs_lib/models/signs_lib_standard_sign_yard.obj diff --git a/signs_lib/models/signs_lib_standard_sign_yard_two_sticks.obj b/mods/signs_lib/models/signs_lib_standard_sign_yard_two_sticks.obj similarity index 100% rename from signs_lib/models/signs_lib_standard_sign_yard_two_sticks.obj rename to mods/signs_lib/models/signs_lib_standard_sign_yard_two_sticks.obj diff --git a/signs_lib/models/slim pole mount already positioned.blend b/mods/signs_lib/models/slim pole mount already positioned.blend similarity index 100% rename from signs_lib/models/slim pole mount already positioned.blend rename to mods/signs_lib/models/slim pole mount already positioned.blend diff --git a/signs_lib/models/standard pole mount already positioned.blend b/mods/signs_lib/models/standard pole mount already positioned.blend similarity index 100% rename from signs_lib/models/standard pole mount already positioned.blend rename to mods/signs_lib/models/standard pole mount already positioned.blend diff --git a/signs_lib/models/standard pole mount already positioned.blend1 b/mods/signs_lib/models/standard pole mount already positioned.blend1 similarity index 100% rename from signs_lib/models/standard pole mount already positioned.blend1 rename to mods/signs_lib/models/standard pole mount already positioned.blend1 diff --git a/signs_lib/models/standard wooden sign.blend b/mods/signs_lib/models/standard wooden sign.blend similarity index 100% rename from signs_lib/models/standard wooden sign.blend rename to mods/signs_lib/models/standard wooden sign.blend diff --git a/signs_lib/models/standard wooden sign.blend1 b/mods/signs_lib/models/standard wooden sign.blend1 similarity index 100% rename from signs_lib/models/standard wooden sign.blend1 rename to mods/signs_lib/models/standard wooden sign.blend1 diff --git a/signs_lib/models/standard wooden yard sign.blend b/mods/signs_lib/models/standard wooden yard sign.blend similarity index 100% rename from signs_lib/models/standard wooden yard sign.blend rename to mods/signs_lib/models/standard wooden yard sign.blend diff --git a/signs_lib/nonascii-de.lua b/mods/signs_lib/nonascii-de.lua similarity index 100% rename from signs_lib/nonascii-de.lua rename to mods/signs_lib/nonascii-de.lua diff --git a/signs_lib/nonascii-fr.lua b/mods/signs_lib/nonascii-fr.lua similarity index 100% rename from signs_lib/nonascii-fr.lua rename to mods/signs_lib/nonascii-fr.lua diff --git a/signs_lib/nonascii-pl.lua b/mods/signs_lib/nonascii-pl.lua similarity index 100% rename from signs_lib/nonascii-pl.lua rename to mods/signs_lib/nonascii-pl.lua diff --git a/signs_lib/standard_signs.lua b/mods/signs_lib/standard_signs.lua similarity index 100% rename from signs_lib/standard_signs.lua rename to mods/signs_lib/standard_signs.lua diff --git a/signs_lib/textures/signs_lib_blank.png b/mods/signs_lib/textures/signs_lib_blank.png similarity index 100% rename from signs_lib/textures/signs_lib_blank.png rename to mods/signs_lib/textures/signs_lib_blank.png diff --git a/signs_lib/textures/signs_lib_color_15px_0.png b/mods/signs_lib/textures/signs_lib_color_15px_0.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_0.png rename to mods/signs_lib/textures/signs_lib_color_15px_0.png diff --git a/signs_lib/textures/signs_lib_color_15px_1.png b/mods/signs_lib/textures/signs_lib_color_15px_1.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_1.png rename to mods/signs_lib/textures/signs_lib_color_15px_1.png diff --git a/signs_lib/textures/signs_lib_color_15px_2.png b/mods/signs_lib/textures/signs_lib_color_15px_2.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_2.png rename to mods/signs_lib/textures/signs_lib_color_15px_2.png diff --git a/signs_lib/textures/signs_lib_color_15px_3.png b/mods/signs_lib/textures/signs_lib_color_15px_3.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_3.png rename to mods/signs_lib/textures/signs_lib_color_15px_3.png diff --git a/signs_lib/textures/signs_lib_color_15px_4.png b/mods/signs_lib/textures/signs_lib_color_15px_4.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_4.png rename to mods/signs_lib/textures/signs_lib_color_15px_4.png diff --git a/signs_lib/textures/signs_lib_color_15px_5.png b/mods/signs_lib/textures/signs_lib_color_15px_5.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_5.png rename to mods/signs_lib/textures/signs_lib_color_15px_5.png diff --git a/signs_lib/textures/signs_lib_color_15px_6.png b/mods/signs_lib/textures/signs_lib_color_15px_6.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_6.png rename to mods/signs_lib/textures/signs_lib_color_15px_6.png diff --git a/signs_lib/textures/signs_lib_color_15px_7.png b/mods/signs_lib/textures/signs_lib_color_15px_7.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_7.png rename to mods/signs_lib/textures/signs_lib_color_15px_7.png diff --git a/signs_lib/textures/signs_lib_color_15px_8.png b/mods/signs_lib/textures/signs_lib_color_15px_8.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_8.png rename to mods/signs_lib/textures/signs_lib_color_15px_8.png diff --git a/signs_lib/textures/signs_lib_color_15px_9.png b/mods/signs_lib/textures/signs_lib_color_15px_9.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_9.png rename to mods/signs_lib/textures/signs_lib_color_15px_9.png diff --git a/signs_lib/textures/signs_lib_color_15px_A.png b/mods/signs_lib/textures/signs_lib_color_15px_A.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_A.png rename to mods/signs_lib/textures/signs_lib_color_15px_A.png diff --git a/signs_lib/textures/signs_lib_color_15px_B.png b/mods/signs_lib/textures/signs_lib_color_15px_B.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_B.png rename to mods/signs_lib/textures/signs_lib_color_15px_B.png diff --git a/signs_lib/textures/signs_lib_color_15px_C.png b/mods/signs_lib/textures/signs_lib_color_15px_C.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_C.png rename to mods/signs_lib/textures/signs_lib_color_15px_C.png diff --git a/signs_lib/textures/signs_lib_color_15px_D.png b/mods/signs_lib/textures/signs_lib_color_15px_D.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_D.png rename to mods/signs_lib/textures/signs_lib_color_15px_D.png diff --git a/signs_lib/textures/signs_lib_color_15px_E.png b/mods/signs_lib/textures/signs_lib_color_15px_E.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_E.png rename to mods/signs_lib/textures/signs_lib_color_15px_E.png diff --git a/signs_lib/textures/signs_lib_color_15px_F.png b/mods/signs_lib/textures/signs_lib_color_15px_F.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_F.png rename to mods/signs_lib/textures/signs_lib_color_15px_F.png diff --git a/signs_lib/textures/signs_lib_color_15px_n.png b/mods/signs_lib/textures/signs_lib_color_15px_n.png similarity index 100% rename from signs_lib/textures/signs_lib_color_15px_n.png rename to mods/signs_lib/textures/signs_lib_color_15px_n.png diff --git a/signs_lib/textures/signs_lib_color_31px_0.png b/mods/signs_lib/textures/signs_lib_color_31px_0.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_0.png rename to mods/signs_lib/textures/signs_lib_color_31px_0.png diff --git a/signs_lib/textures/signs_lib_color_31px_1.png b/mods/signs_lib/textures/signs_lib_color_31px_1.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_1.png rename to mods/signs_lib/textures/signs_lib_color_31px_1.png diff --git a/signs_lib/textures/signs_lib_color_31px_2.png b/mods/signs_lib/textures/signs_lib_color_31px_2.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_2.png rename to mods/signs_lib/textures/signs_lib_color_31px_2.png diff --git a/signs_lib/textures/signs_lib_color_31px_3.png b/mods/signs_lib/textures/signs_lib_color_31px_3.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_3.png rename to mods/signs_lib/textures/signs_lib_color_31px_3.png diff --git a/signs_lib/textures/signs_lib_color_31px_4.png b/mods/signs_lib/textures/signs_lib_color_31px_4.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_4.png rename to mods/signs_lib/textures/signs_lib_color_31px_4.png diff --git a/signs_lib/textures/signs_lib_color_31px_5.png b/mods/signs_lib/textures/signs_lib_color_31px_5.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_5.png rename to mods/signs_lib/textures/signs_lib_color_31px_5.png diff --git a/signs_lib/textures/signs_lib_color_31px_6.png b/mods/signs_lib/textures/signs_lib_color_31px_6.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_6.png rename to mods/signs_lib/textures/signs_lib_color_31px_6.png diff --git a/signs_lib/textures/signs_lib_color_31px_7.png b/mods/signs_lib/textures/signs_lib_color_31px_7.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_7.png rename to mods/signs_lib/textures/signs_lib_color_31px_7.png diff --git a/signs_lib/textures/signs_lib_color_31px_8.png b/mods/signs_lib/textures/signs_lib_color_31px_8.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_8.png rename to mods/signs_lib/textures/signs_lib_color_31px_8.png diff --git a/signs_lib/textures/signs_lib_color_31px_9.png b/mods/signs_lib/textures/signs_lib_color_31px_9.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_9.png rename to mods/signs_lib/textures/signs_lib_color_31px_9.png diff --git a/signs_lib/textures/signs_lib_color_31px_A.png b/mods/signs_lib/textures/signs_lib_color_31px_A.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_A.png rename to mods/signs_lib/textures/signs_lib_color_31px_A.png diff --git a/signs_lib/textures/signs_lib_color_31px_B.png b/mods/signs_lib/textures/signs_lib_color_31px_B.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_B.png rename to mods/signs_lib/textures/signs_lib_color_31px_B.png diff --git a/signs_lib/textures/signs_lib_color_31px_C.png b/mods/signs_lib/textures/signs_lib_color_31px_C.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_C.png rename to mods/signs_lib/textures/signs_lib_color_31px_C.png diff --git a/signs_lib/textures/signs_lib_color_31px_D.png b/mods/signs_lib/textures/signs_lib_color_31px_D.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_D.png rename to mods/signs_lib/textures/signs_lib_color_31px_D.png diff --git a/signs_lib/textures/signs_lib_color_31px_E.png b/mods/signs_lib/textures/signs_lib_color_31px_E.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_E.png rename to mods/signs_lib/textures/signs_lib_color_31px_E.png diff --git a/signs_lib/textures/signs_lib_color_31px_F.png b/mods/signs_lib/textures/signs_lib_color_31px_F.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_F.png rename to mods/signs_lib/textures/signs_lib_color_31px_F.png diff --git a/signs_lib/textures/signs_lib_color_31px_n.png b/mods/signs_lib/textures/signs_lib_color_31px_n.png similarity index 100% rename from signs_lib/textures/signs_lib_color_31px_n.png rename to mods/signs_lib/textures/signs_lib_color_31px_n.png diff --git a/signs_lib/textures/signs_lib_font_15px_00.png b/mods/signs_lib/textures/signs_lib_font_15px_00.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00.png rename to mods/signs_lib/textures/signs_lib_font_15px_00.png diff --git a/signs_lib/textures/signs_lib_font_15px_00c0.png b/mods/signs_lib/textures/signs_lib_font_15px_00c0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00c0.png rename to mods/signs_lib/textures/signs_lib_font_15px_00c0.png diff --git a/signs_lib/textures/signs_lib_font_15px_00c4.png b/mods/signs_lib/textures/signs_lib_font_15px_00c4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00c4.png rename to mods/signs_lib/textures/signs_lib_font_15px_00c4.png diff --git a/signs_lib/textures/signs_lib_font_15px_00c6.png b/mods/signs_lib/textures/signs_lib_font_15px_00c6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00c6.png rename to mods/signs_lib/textures/signs_lib_font_15px_00c6.png diff --git a/signs_lib/textures/signs_lib_font_15px_00c7.png b/mods/signs_lib/textures/signs_lib_font_15px_00c7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00c7.png rename to mods/signs_lib/textures/signs_lib_font_15px_00c7.png diff --git a/signs_lib/textures/signs_lib_font_15px_00c8.png b/mods/signs_lib/textures/signs_lib_font_15px_00c8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00c8.png rename to mods/signs_lib/textures/signs_lib_font_15px_00c8.png diff --git a/signs_lib/textures/signs_lib_font_15px_00c9.png b/mods/signs_lib/textures/signs_lib_font_15px_00c9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00c9.png rename to mods/signs_lib/textures/signs_lib_font_15px_00c9.png diff --git a/signs_lib/textures/signs_lib_font_15px_00ca.png b/mods/signs_lib/textures/signs_lib_font_15px_00ca.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00ca.png rename to mods/signs_lib/textures/signs_lib_font_15px_00ca.png diff --git a/signs_lib/textures/signs_lib_font_15px_00d3.png b/mods/signs_lib/textures/signs_lib_font_15px_00d3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00d3.png rename to mods/signs_lib/textures/signs_lib_font_15px_00d3.png diff --git a/signs_lib/textures/signs_lib_font_15px_00d4.png b/mods/signs_lib/textures/signs_lib_font_15px_00d4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00d4.png rename to mods/signs_lib/textures/signs_lib_font_15px_00d4.png diff --git a/signs_lib/textures/signs_lib_font_15px_00d6.png b/mods/signs_lib/textures/signs_lib_font_15px_00d6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00d6.png rename to mods/signs_lib/textures/signs_lib_font_15px_00d6.png diff --git a/signs_lib/textures/signs_lib_font_15px_00d9.png b/mods/signs_lib/textures/signs_lib_font_15px_00d9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00d9.png rename to mods/signs_lib/textures/signs_lib_font_15px_00d9.png diff --git a/signs_lib/textures/signs_lib_font_15px_00dc.png b/mods/signs_lib/textures/signs_lib_font_15px_00dc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00dc.png rename to mods/signs_lib/textures/signs_lib_font_15px_00dc.png diff --git a/signs_lib/textures/signs_lib_font_15px_00df.png b/mods/signs_lib/textures/signs_lib_font_15px_00df.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00df.png rename to mods/signs_lib/textures/signs_lib_font_15px_00df.png diff --git a/signs_lib/textures/signs_lib_font_15px_00e0.png b/mods/signs_lib/textures/signs_lib_font_15px_00e0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00e0.png rename to mods/signs_lib/textures/signs_lib_font_15px_00e0.png diff --git a/signs_lib/textures/signs_lib_font_15px_00e4.png b/mods/signs_lib/textures/signs_lib_font_15px_00e4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00e4.png rename to mods/signs_lib/textures/signs_lib_font_15px_00e4.png diff --git a/signs_lib/textures/signs_lib_font_15px_00e6.png b/mods/signs_lib/textures/signs_lib_font_15px_00e6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00e6.png rename to mods/signs_lib/textures/signs_lib_font_15px_00e6.png diff --git a/signs_lib/textures/signs_lib_font_15px_00e7.png b/mods/signs_lib/textures/signs_lib_font_15px_00e7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00e7.png rename to mods/signs_lib/textures/signs_lib_font_15px_00e7.png diff --git a/signs_lib/textures/signs_lib_font_15px_00e8.png b/mods/signs_lib/textures/signs_lib_font_15px_00e8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00e8.png rename to mods/signs_lib/textures/signs_lib_font_15px_00e8.png diff --git a/signs_lib/textures/signs_lib_font_15px_00e9.png b/mods/signs_lib/textures/signs_lib_font_15px_00e9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00e9.png rename to mods/signs_lib/textures/signs_lib_font_15px_00e9.png diff --git a/signs_lib/textures/signs_lib_font_15px_00ea.png b/mods/signs_lib/textures/signs_lib_font_15px_00ea.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00ea.png rename to mods/signs_lib/textures/signs_lib_font_15px_00ea.png diff --git a/signs_lib/textures/signs_lib_font_15px_00f3.png b/mods/signs_lib/textures/signs_lib_font_15px_00f3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00f3.png rename to mods/signs_lib/textures/signs_lib_font_15px_00f3.png diff --git a/signs_lib/textures/signs_lib_font_15px_00f4.png b/mods/signs_lib/textures/signs_lib_font_15px_00f4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00f4.png rename to mods/signs_lib/textures/signs_lib_font_15px_00f4.png diff --git a/signs_lib/textures/signs_lib_font_15px_00f6.png b/mods/signs_lib/textures/signs_lib_font_15px_00f6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00f6.png rename to mods/signs_lib/textures/signs_lib_font_15px_00f6.png diff --git a/signs_lib/textures/signs_lib_font_15px_00f9.png b/mods/signs_lib/textures/signs_lib_font_15px_00f9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00f9.png rename to mods/signs_lib/textures/signs_lib_font_15px_00f9.png diff --git a/signs_lib/textures/signs_lib_font_15px_00fc.png b/mods/signs_lib/textures/signs_lib_font_15px_00fc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_00fc.png rename to mods/signs_lib/textures/signs_lib_font_15px_00fc.png diff --git a/signs_lib/textures/signs_lib_font_15px_0104.png b/mods/signs_lib/textures/signs_lib_font_15px_0104.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0104.png rename to mods/signs_lib/textures/signs_lib_font_15px_0104.png diff --git a/signs_lib/textures/signs_lib_font_15px_0105.png b/mods/signs_lib/textures/signs_lib_font_15px_0105.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0105.png rename to mods/signs_lib/textures/signs_lib_font_15px_0105.png diff --git a/signs_lib/textures/signs_lib_font_15px_0106.png b/mods/signs_lib/textures/signs_lib_font_15px_0106.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0106.png rename to mods/signs_lib/textures/signs_lib_font_15px_0106.png diff --git a/signs_lib/textures/signs_lib_font_15px_0107.png b/mods/signs_lib/textures/signs_lib_font_15px_0107.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0107.png rename to mods/signs_lib/textures/signs_lib_font_15px_0107.png diff --git a/signs_lib/textures/signs_lib_font_15px_0118.png b/mods/signs_lib/textures/signs_lib_font_15px_0118.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0118.png rename to mods/signs_lib/textures/signs_lib_font_15px_0118.png diff --git a/signs_lib/textures/signs_lib_font_15px_0119.png b/mods/signs_lib/textures/signs_lib_font_15px_0119.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0119.png rename to mods/signs_lib/textures/signs_lib_font_15px_0119.png diff --git a/signs_lib/textures/signs_lib_font_15px_0141.png b/mods/signs_lib/textures/signs_lib_font_15px_0141.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0141.png rename to mods/signs_lib/textures/signs_lib_font_15px_0141.png diff --git a/signs_lib/textures/signs_lib_font_15px_0142.png b/mods/signs_lib/textures/signs_lib_font_15px_0142.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0142.png rename to mods/signs_lib/textures/signs_lib_font_15px_0142.png diff --git a/signs_lib/textures/signs_lib_font_15px_015a.png b/mods/signs_lib/textures/signs_lib_font_15px_015a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_015a.png rename to mods/signs_lib/textures/signs_lib_font_15px_015a.png diff --git a/signs_lib/textures/signs_lib_font_15px_015b.png b/mods/signs_lib/textures/signs_lib_font_15px_015b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_015b.png rename to mods/signs_lib/textures/signs_lib_font_15px_015b.png diff --git a/signs_lib/textures/signs_lib_font_15px_0179.png b/mods/signs_lib/textures/signs_lib_font_15px_0179.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_0179.png rename to mods/signs_lib/textures/signs_lib_font_15px_0179.png diff --git a/signs_lib/textures/signs_lib_font_15px_017a.png b/mods/signs_lib/textures/signs_lib_font_15px_017a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_017a.png rename to mods/signs_lib/textures/signs_lib_font_15px_017a.png diff --git a/signs_lib/textures/signs_lib_font_15px_017b.png b/mods/signs_lib/textures/signs_lib_font_15px_017b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_017b.png rename to mods/signs_lib/textures/signs_lib_font_15px_017b.png diff --git a/signs_lib/textures/signs_lib_font_15px_017c.png b/mods/signs_lib/textures/signs_lib_font_15px_017c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_017c.png rename to mods/signs_lib/textures/signs_lib_font_15px_017c.png diff --git a/signs_lib/textures/signs_lib_font_15px_20.png b/mods/signs_lib/textures/signs_lib_font_15px_20.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_20.png rename to mods/signs_lib/textures/signs_lib_font_15px_20.png diff --git a/signs_lib/textures/signs_lib_font_15px_21.png b/mods/signs_lib/textures/signs_lib_font_15px_21.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_21.png rename to mods/signs_lib/textures/signs_lib_font_15px_21.png diff --git a/signs_lib/textures/signs_lib_font_15px_22.png b/mods/signs_lib/textures/signs_lib_font_15px_22.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_22.png rename to mods/signs_lib/textures/signs_lib_font_15px_22.png diff --git a/signs_lib/textures/signs_lib_font_15px_23.png b/mods/signs_lib/textures/signs_lib_font_15px_23.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_23.png rename to mods/signs_lib/textures/signs_lib_font_15px_23.png diff --git a/signs_lib/textures/signs_lib_font_15px_24.png b/mods/signs_lib/textures/signs_lib_font_15px_24.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_24.png rename to mods/signs_lib/textures/signs_lib_font_15px_24.png diff --git a/signs_lib/textures/signs_lib_font_15px_25.png b/mods/signs_lib/textures/signs_lib_font_15px_25.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_25.png rename to mods/signs_lib/textures/signs_lib_font_15px_25.png diff --git a/signs_lib/textures/signs_lib_font_15px_26.png b/mods/signs_lib/textures/signs_lib_font_15px_26.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_26.png rename to mods/signs_lib/textures/signs_lib_font_15px_26.png diff --git a/signs_lib/textures/signs_lib_font_15px_27.png b/mods/signs_lib/textures/signs_lib_font_15px_27.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_27.png rename to mods/signs_lib/textures/signs_lib_font_15px_27.png diff --git a/signs_lib/textures/signs_lib_font_15px_28.png b/mods/signs_lib/textures/signs_lib_font_15px_28.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_28.png rename to mods/signs_lib/textures/signs_lib_font_15px_28.png diff --git a/signs_lib/textures/signs_lib_font_15px_29.png b/mods/signs_lib/textures/signs_lib_font_15px_29.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_29.png rename to mods/signs_lib/textures/signs_lib_font_15px_29.png diff --git a/signs_lib/textures/signs_lib_font_15px_2a.png b/mods/signs_lib/textures/signs_lib_font_15px_2a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_2a.png rename to mods/signs_lib/textures/signs_lib_font_15px_2a.png diff --git a/signs_lib/textures/signs_lib_font_15px_2b.png b/mods/signs_lib/textures/signs_lib_font_15px_2b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_2b.png rename to mods/signs_lib/textures/signs_lib_font_15px_2b.png diff --git a/signs_lib/textures/signs_lib_font_15px_2c.png b/mods/signs_lib/textures/signs_lib_font_15px_2c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_2c.png rename to mods/signs_lib/textures/signs_lib_font_15px_2c.png diff --git a/signs_lib/textures/signs_lib_font_15px_2d.png b/mods/signs_lib/textures/signs_lib_font_15px_2d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_2d.png rename to mods/signs_lib/textures/signs_lib_font_15px_2d.png diff --git a/signs_lib/textures/signs_lib_font_15px_2e.png b/mods/signs_lib/textures/signs_lib_font_15px_2e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_2e.png rename to mods/signs_lib/textures/signs_lib_font_15px_2e.png diff --git a/signs_lib/textures/signs_lib_font_15px_2f.png b/mods/signs_lib/textures/signs_lib_font_15px_2f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_2f.png rename to mods/signs_lib/textures/signs_lib_font_15px_2f.png diff --git a/signs_lib/textures/signs_lib_font_15px_30.png b/mods/signs_lib/textures/signs_lib_font_15px_30.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_30.png rename to mods/signs_lib/textures/signs_lib_font_15px_30.png diff --git a/signs_lib/textures/signs_lib_font_15px_31.png b/mods/signs_lib/textures/signs_lib_font_15px_31.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_31.png rename to mods/signs_lib/textures/signs_lib_font_15px_31.png diff --git a/signs_lib/textures/signs_lib_font_15px_32.png b/mods/signs_lib/textures/signs_lib_font_15px_32.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_32.png rename to mods/signs_lib/textures/signs_lib_font_15px_32.png diff --git a/signs_lib/textures/signs_lib_font_15px_33.png b/mods/signs_lib/textures/signs_lib_font_15px_33.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_33.png rename to mods/signs_lib/textures/signs_lib_font_15px_33.png diff --git a/signs_lib/textures/signs_lib_font_15px_34.png b/mods/signs_lib/textures/signs_lib_font_15px_34.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_34.png rename to mods/signs_lib/textures/signs_lib_font_15px_34.png diff --git a/signs_lib/textures/signs_lib_font_15px_35.png b/mods/signs_lib/textures/signs_lib_font_15px_35.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_35.png rename to mods/signs_lib/textures/signs_lib_font_15px_35.png diff --git a/signs_lib/textures/signs_lib_font_15px_36.png b/mods/signs_lib/textures/signs_lib_font_15px_36.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_36.png rename to mods/signs_lib/textures/signs_lib_font_15px_36.png diff --git a/signs_lib/textures/signs_lib_font_15px_37.png b/mods/signs_lib/textures/signs_lib_font_15px_37.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_37.png rename to mods/signs_lib/textures/signs_lib_font_15px_37.png diff --git a/signs_lib/textures/signs_lib_font_15px_38.png b/mods/signs_lib/textures/signs_lib_font_15px_38.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_38.png rename to mods/signs_lib/textures/signs_lib_font_15px_38.png diff --git a/signs_lib/textures/signs_lib_font_15px_39.png b/mods/signs_lib/textures/signs_lib_font_15px_39.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_39.png rename to mods/signs_lib/textures/signs_lib_font_15px_39.png diff --git a/signs_lib/textures/signs_lib_font_15px_3a.png b/mods/signs_lib/textures/signs_lib_font_15px_3a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_3a.png rename to mods/signs_lib/textures/signs_lib_font_15px_3a.png diff --git a/signs_lib/textures/signs_lib_font_15px_3b.png b/mods/signs_lib/textures/signs_lib_font_15px_3b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_3b.png rename to mods/signs_lib/textures/signs_lib_font_15px_3b.png diff --git a/signs_lib/textures/signs_lib_font_15px_3c.png b/mods/signs_lib/textures/signs_lib_font_15px_3c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_3c.png rename to mods/signs_lib/textures/signs_lib_font_15px_3c.png diff --git a/signs_lib/textures/signs_lib_font_15px_3d.png b/mods/signs_lib/textures/signs_lib_font_15px_3d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_3d.png rename to mods/signs_lib/textures/signs_lib_font_15px_3d.png diff --git a/signs_lib/textures/signs_lib_font_15px_3e.png b/mods/signs_lib/textures/signs_lib_font_15px_3e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_3e.png rename to mods/signs_lib/textures/signs_lib_font_15px_3e.png diff --git a/signs_lib/textures/signs_lib_font_15px_3f.png b/mods/signs_lib/textures/signs_lib_font_15px_3f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_3f.png rename to mods/signs_lib/textures/signs_lib_font_15px_3f.png diff --git a/signs_lib/textures/signs_lib_font_15px_40.png b/mods/signs_lib/textures/signs_lib_font_15px_40.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_40.png rename to mods/signs_lib/textures/signs_lib_font_15px_40.png diff --git a/signs_lib/textures/signs_lib_font_15px_41.png b/mods/signs_lib/textures/signs_lib_font_15px_41.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_41.png rename to mods/signs_lib/textures/signs_lib_font_15px_41.png diff --git a/signs_lib/textures/signs_lib_font_15px_42.png b/mods/signs_lib/textures/signs_lib_font_15px_42.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_42.png rename to mods/signs_lib/textures/signs_lib_font_15px_42.png diff --git a/signs_lib/textures/signs_lib_font_15px_43.png b/mods/signs_lib/textures/signs_lib_font_15px_43.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_43.png rename to mods/signs_lib/textures/signs_lib_font_15px_43.png diff --git a/signs_lib/textures/signs_lib_font_15px_44.png b/mods/signs_lib/textures/signs_lib_font_15px_44.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_44.png rename to mods/signs_lib/textures/signs_lib_font_15px_44.png diff --git a/signs_lib/textures/signs_lib_font_15px_45.png b/mods/signs_lib/textures/signs_lib_font_15px_45.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_45.png rename to mods/signs_lib/textures/signs_lib_font_15px_45.png diff --git a/signs_lib/textures/signs_lib_font_15px_46.png b/mods/signs_lib/textures/signs_lib_font_15px_46.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_46.png rename to mods/signs_lib/textures/signs_lib_font_15px_46.png diff --git a/signs_lib/textures/signs_lib_font_15px_47.png b/mods/signs_lib/textures/signs_lib_font_15px_47.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_47.png rename to mods/signs_lib/textures/signs_lib_font_15px_47.png diff --git a/signs_lib/textures/signs_lib_font_15px_48.png b/mods/signs_lib/textures/signs_lib_font_15px_48.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_48.png rename to mods/signs_lib/textures/signs_lib_font_15px_48.png diff --git a/signs_lib/textures/signs_lib_font_15px_49.png b/mods/signs_lib/textures/signs_lib_font_15px_49.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_49.png rename to mods/signs_lib/textures/signs_lib_font_15px_49.png diff --git a/signs_lib/textures/signs_lib_font_15px_4a.png b/mods/signs_lib/textures/signs_lib_font_15px_4a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_4a.png rename to mods/signs_lib/textures/signs_lib_font_15px_4a.png diff --git a/signs_lib/textures/signs_lib_font_15px_4b.png b/mods/signs_lib/textures/signs_lib_font_15px_4b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_4b.png rename to mods/signs_lib/textures/signs_lib_font_15px_4b.png diff --git a/signs_lib/textures/signs_lib_font_15px_4c.png b/mods/signs_lib/textures/signs_lib_font_15px_4c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_4c.png rename to mods/signs_lib/textures/signs_lib_font_15px_4c.png diff --git a/signs_lib/textures/signs_lib_font_15px_4d.png b/mods/signs_lib/textures/signs_lib_font_15px_4d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_4d.png rename to mods/signs_lib/textures/signs_lib_font_15px_4d.png diff --git a/signs_lib/textures/signs_lib_font_15px_4e.png b/mods/signs_lib/textures/signs_lib_font_15px_4e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_4e.png rename to mods/signs_lib/textures/signs_lib_font_15px_4e.png diff --git a/signs_lib/textures/signs_lib_font_15px_4f.png b/mods/signs_lib/textures/signs_lib_font_15px_4f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_4f.png rename to mods/signs_lib/textures/signs_lib_font_15px_4f.png diff --git a/signs_lib/textures/signs_lib_font_15px_50.png b/mods/signs_lib/textures/signs_lib_font_15px_50.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_50.png rename to mods/signs_lib/textures/signs_lib_font_15px_50.png diff --git a/signs_lib/textures/signs_lib_font_15px_51.png b/mods/signs_lib/textures/signs_lib_font_15px_51.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_51.png rename to mods/signs_lib/textures/signs_lib_font_15px_51.png diff --git a/signs_lib/textures/signs_lib_font_15px_52.png b/mods/signs_lib/textures/signs_lib_font_15px_52.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_52.png rename to mods/signs_lib/textures/signs_lib_font_15px_52.png diff --git a/signs_lib/textures/signs_lib_font_15px_53.png b/mods/signs_lib/textures/signs_lib_font_15px_53.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_53.png rename to mods/signs_lib/textures/signs_lib_font_15px_53.png diff --git a/signs_lib/textures/signs_lib_font_15px_54.png b/mods/signs_lib/textures/signs_lib_font_15px_54.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_54.png rename to mods/signs_lib/textures/signs_lib_font_15px_54.png diff --git a/signs_lib/textures/signs_lib_font_15px_55.png b/mods/signs_lib/textures/signs_lib_font_15px_55.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_55.png rename to mods/signs_lib/textures/signs_lib_font_15px_55.png diff --git a/signs_lib/textures/signs_lib_font_15px_56.png b/mods/signs_lib/textures/signs_lib_font_15px_56.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_56.png rename to mods/signs_lib/textures/signs_lib_font_15px_56.png diff --git a/signs_lib/textures/signs_lib_font_15px_57.png b/mods/signs_lib/textures/signs_lib_font_15px_57.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_57.png rename to mods/signs_lib/textures/signs_lib_font_15px_57.png diff --git a/signs_lib/textures/signs_lib_font_15px_58.png b/mods/signs_lib/textures/signs_lib_font_15px_58.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_58.png rename to mods/signs_lib/textures/signs_lib_font_15px_58.png diff --git a/signs_lib/textures/signs_lib_font_15px_59.png b/mods/signs_lib/textures/signs_lib_font_15px_59.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_59.png rename to mods/signs_lib/textures/signs_lib_font_15px_59.png diff --git a/signs_lib/textures/signs_lib_font_15px_5a.png b/mods/signs_lib/textures/signs_lib_font_15px_5a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_5a.png rename to mods/signs_lib/textures/signs_lib_font_15px_5a.png diff --git a/signs_lib/textures/signs_lib_font_15px_5b.png b/mods/signs_lib/textures/signs_lib_font_15px_5b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_5b.png rename to mods/signs_lib/textures/signs_lib_font_15px_5b.png diff --git a/signs_lib/textures/signs_lib_font_15px_5c.png b/mods/signs_lib/textures/signs_lib_font_15px_5c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_5c.png rename to mods/signs_lib/textures/signs_lib_font_15px_5c.png diff --git a/signs_lib/textures/signs_lib_font_15px_5d.png b/mods/signs_lib/textures/signs_lib_font_15px_5d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_5d.png rename to mods/signs_lib/textures/signs_lib_font_15px_5d.png diff --git a/signs_lib/textures/signs_lib_font_15px_5e.png b/mods/signs_lib/textures/signs_lib_font_15px_5e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_5e.png rename to mods/signs_lib/textures/signs_lib_font_15px_5e.png diff --git a/signs_lib/textures/signs_lib_font_15px_5f.png b/mods/signs_lib/textures/signs_lib_font_15px_5f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_5f.png rename to mods/signs_lib/textures/signs_lib_font_15px_5f.png diff --git a/signs_lib/textures/signs_lib_font_15px_60.png b/mods/signs_lib/textures/signs_lib_font_15px_60.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_60.png rename to mods/signs_lib/textures/signs_lib_font_15px_60.png diff --git a/signs_lib/textures/signs_lib_font_15px_61.png b/mods/signs_lib/textures/signs_lib_font_15px_61.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_61.png rename to mods/signs_lib/textures/signs_lib_font_15px_61.png diff --git a/signs_lib/textures/signs_lib_font_15px_62.png b/mods/signs_lib/textures/signs_lib_font_15px_62.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_62.png rename to mods/signs_lib/textures/signs_lib_font_15px_62.png diff --git a/signs_lib/textures/signs_lib_font_15px_63.png b/mods/signs_lib/textures/signs_lib_font_15px_63.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_63.png rename to mods/signs_lib/textures/signs_lib_font_15px_63.png diff --git a/signs_lib/textures/signs_lib_font_15px_64.png b/mods/signs_lib/textures/signs_lib_font_15px_64.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_64.png rename to mods/signs_lib/textures/signs_lib_font_15px_64.png diff --git a/signs_lib/textures/signs_lib_font_15px_65.png b/mods/signs_lib/textures/signs_lib_font_15px_65.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_65.png rename to mods/signs_lib/textures/signs_lib_font_15px_65.png diff --git a/signs_lib/textures/signs_lib_font_15px_66.png b/mods/signs_lib/textures/signs_lib_font_15px_66.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_66.png rename to mods/signs_lib/textures/signs_lib_font_15px_66.png diff --git a/signs_lib/textures/signs_lib_font_15px_67.png b/mods/signs_lib/textures/signs_lib_font_15px_67.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_67.png rename to mods/signs_lib/textures/signs_lib_font_15px_67.png diff --git a/signs_lib/textures/signs_lib_font_15px_68.png b/mods/signs_lib/textures/signs_lib_font_15px_68.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_68.png rename to mods/signs_lib/textures/signs_lib_font_15px_68.png diff --git a/signs_lib/textures/signs_lib_font_15px_69.png b/mods/signs_lib/textures/signs_lib_font_15px_69.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_69.png rename to mods/signs_lib/textures/signs_lib_font_15px_69.png diff --git a/signs_lib/textures/signs_lib_font_15px_6a.png b/mods/signs_lib/textures/signs_lib_font_15px_6a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_6a.png rename to mods/signs_lib/textures/signs_lib_font_15px_6a.png diff --git a/signs_lib/textures/signs_lib_font_15px_6b.png b/mods/signs_lib/textures/signs_lib_font_15px_6b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_6b.png rename to mods/signs_lib/textures/signs_lib_font_15px_6b.png diff --git a/signs_lib/textures/signs_lib_font_15px_6c.png b/mods/signs_lib/textures/signs_lib_font_15px_6c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_6c.png rename to mods/signs_lib/textures/signs_lib_font_15px_6c.png diff --git a/signs_lib/textures/signs_lib_font_15px_6d.png b/mods/signs_lib/textures/signs_lib_font_15px_6d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_6d.png rename to mods/signs_lib/textures/signs_lib_font_15px_6d.png diff --git a/signs_lib/textures/signs_lib_font_15px_6e.png b/mods/signs_lib/textures/signs_lib_font_15px_6e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_6e.png rename to mods/signs_lib/textures/signs_lib_font_15px_6e.png diff --git a/signs_lib/textures/signs_lib_font_15px_6f.png b/mods/signs_lib/textures/signs_lib_font_15px_6f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_6f.png rename to mods/signs_lib/textures/signs_lib_font_15px_6f.png diff --git a/signs_lib/textures/signs_lib_font_15px_70.png b/mods/signs_lib/textures/signs_lib_font_15px_70.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_70.png rename to mods/signs_lib/textures/signs_lib_font_15px_70.png diff --git a/signs_lib/textures/signs_lib_font_15px_71.png b/mods/signs_lib/textures/signs_lib_font_15px_71.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_71.png rename to mods/signs_lib/textures/signs_lib_font_15px_71.png diff --git a/signs_lib/textures/signs_lib_font_15px_72.png b/mods/signs_lib/textures/signs_lib_font_15px_72.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_72.png rename to mods/signs_lib/textures/signs_lib_font_15px_72.png diff --git a/signs_lib/textures/signs_lib_font_15px_73.png b/mods/signs_lib/textures/signs_lib_font_15px_73.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_73.png rename to mods/signs_lib/textures/signs_lib_font_15px_73.png diff --git a/signs_lib/textures/signs_lib_font_15px_74.png b/mods/signs_lib/textures/signs_lib_font_15px_74.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_74.png rename to mods/signs_lib/textures/signs_lib_font_15px_74.png diff --git a/signs_lib/textures/signs_lib_font_15px_75.png b/mods/signs_lib/textures/signs_lib_font_15px_75.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_75.png rename to mods/signs_lib/textures/signs_lib_font_15px_75.png diff --git a/signs_lib/textures/signs_lib_font_15px_76.png b/mods/signs_lib/textures/signs_lib_font_15px_76.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_76.png rename to mods/signs_lib/textures/signs_lib_font_15px_76.png diff --git a/signs_lib/textures/signs_lib_font_15px_77.png b/mods/signs_lib/textures/signs_lib_font_15px_77.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_77.png rename to mods/signs_lib/textures/signs_lib_font_15px_77.png diff --git a/signs_lib/textures/signs_lib_font_15px_78.png b/mods/signs_lib/textures/signs_lib_font_15px_78.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_78.png rename to mods/signs_lib/textures/signs_lib_font_15px_78.png diff --git a/signs_lib/textures/signs_lib_font_15px_79.png b/mods/signs_lib/textures/signs_lib_font_15px_79.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_79.png rename to mods/signs_lib/textures/signs_lib_font_15px_79.png diff --git a/signs_lib/textures/signs_lib_font_15px_7a.png b/mods/signs_lib/textures/signs_lib_font_15px_7a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_7a.png rename to mods/signs_lib/textures/signs_lib_font_15px_7a.png diff --git a/signs_lib/textures/signs_lib_font_15px_7b.png b/mods/signs_lib/textures/signs_lib_font_15px_7b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_7b.png rename to mods/signs_lib/textures/signs_lib_font_15px_7b.png diff --git a/signs_lib/textures/signs_lib_font_15px_7c.png b/mods/signs_lib/textures/signs_lib_font_15px_7c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_7c.png rename to mods/signs_lib/textures/signs_lib_font_15px_7c.png diff --git a/signs_lib/textures/signs_lib_font_15px_7d.png b/mods/signs_lib/textures/signs_lib_font_15px_7d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_7d.png rename to mods/signs_lib/textures/signs_lib_font_15px_7d.png diff --git a/signs_lib/textures/signs_lib_font_15px_7e.png b/mods/signs_lib/textures/signs_lib_font_15px_7e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_7e.png rename to mods/signs_lib/textures/signs_lib_font_15px_7e.png diff --git a/signs_lib/textures/signs_lib_font_15px_81.png b/mods/signs_lib/textures/signs_lib_font_15px_81.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_81.png rename to mods/signs_lib/textures/signs_lib_font_15px_81.png diff --git a/signs_lib/textures/signs_lib_font_15px_82.png b/mods/signs_lib/textures/signs_lib_font_15px_82.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_82.png rename to mods/signs_lib/textures/signs_lib_font_15px_82.png diff --git a/signs_lib/textures/signs_lib_font_15px_83.png b/mods/signs_lib/textures/signs_lib_font_15px_83.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_83.png rename to mods/signs_lib/textures/signs_lib_font_15px_83.png diff --git a/signs_lib/textures/signs_lib_font_15px_84.png b/mods/signs_lib/textures/signs_lib_font_15px_84.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_84.png rename to mods/signs_lib/textures/signs_lib_font_15px_84.png diff --git a/signs_lib/textures/signs_lib_font_15px_85.png b/mods/signs_lib/textures/signs_lib_font_15px_85.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_85.png rename to mods/signs_lib/textures/signs_lib_font_15px_85.png diff --git a/signs_lib/textures/signs_lib_font_15px_86.png b/mods/signs_lib/textures/signs_lib_font_15px_86.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_86.png rename to mods/signs_lib/textures/signs_lib_font_15px_86.png diff --git a/signs_lib/textures/signs_lib_font_15px_87.png b/mods/signs_lib/textures/signs_lib_font_15px_87.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_87.png rename to mods/signs_lib/textures/signs_lib_font_15px_87.png diff --git a/signs_lib/textures/signs_lib_font_15px_88.png b/mods/signs_lib/textures/signs_lib_font_15px_88.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_88.png rename to mods/signs_lib/textures/signs_lib_font_15px_88.png diff --git a/signs_lib/textures/signs_lib_font_15px_8a.png b/mods/signs_lib/textures/signs_lib_font_15px_8a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_8a.png rename to mods/signs_lib/textures/signs_lib_font_15px_8a.png diff --git a/signs_lib/textures/signs_lib_font_15px_8b.png b/mods/signs_lib/textures/signs_lib_font_15px_8b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_8b.png rename to mods/signs_lib/textures/signs_lib_font_15px_8b.png diff --git a/signs_lib/textures/signs_lib_font_15px_8c.png b/mods/signs_lib/textures/signs_lib_font_15px_8c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_8c.png rename to mods/signs_lib/textures/signs_lib_font_15px_8c.png diff --git a/signs_lib/textures/signs_lib_font_15px_8d.png b/mods/signs_lib/textures/signs_lib_font_15px_8d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_8d.png rename to mods/signs_lib/textures/signs_lib_font_15px_8d.png diff --git a/signs_lib/textures/signs_lib_font_15px_8e.png b/mods/signs_lib/textures/signs_lib_font_15px_8e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_8e.png rename to mods/signs_lib/textures/signs_lib_font_15px_8e.png diff --git a/signs_lib/textures/signs_lib_font_15px_8f.png b/mods/signs_lib/textures/signs_lib_font_15px_8f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_8f.png rename to mods/signs_lib/textures/signs_lib_font_15px_8f.png diff --git a/signs_lib/textures/signs_lib_font_15px_90.png b/mods/signs_lib/textures/signs_lib_font_15px_90.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_90.png rename to mods/signs_lib/textures/signs_lib_font_15px_90.png diff --git a/signs_lib/textures/signs_lib_font_15px_91.png b/mods/signs_lib/textures/signs_lib_font_15px_91.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_91.png rename to mods/signs_lib/textures/signs_lib_font_15px_91.png diff --git a/signs_lib/textures/signs_lib_font_15px_a8.png b/mods/signs_lib/textures/signs_lib_font_15px_a8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_a8.png rename to mods/signs_lib/textures/signs_lib_font_15px_a8.png diff --git a/signs_lib/textures/signs_lib_font_15px_b8.png b/mods/signs_lib/textures/signs_lib_font_15px_b8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_b8.png rename to mods/signs_lib/textures/signs_lib_font_15px_b8.png diff --git a/signs_lib/textures/signs_lib_font_15px_b9.png b/mods/signs_lib/textures/signs_lib_font_15px_b9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_b9.png rename to mods/signs_lib/textures/signs_lib_font_15px_b9.png diff --git a/signs_lib/textures/signs_lib_font_15px_c0.png b/mods/signs_lib/textures/signs_lib_font_15px_c0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c0.png rename to mods/signs_lib/textures/signs_lib_font_15px_c0.png diff --git a/signs_lib/textures/signs_lib_font_15px_c1.png b/mods/signs_lib/textures/signs_lib_font_15px_c1.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c1.png rename to mods/signs_lib/textures/signs_lib_font_15px_c1.png diff --git a/signs_lib/textures/signs_lib_font_15px_c2.png b/mods/signs_lib/textures/signs_lib_font_15px_c2.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c2.png rename to mods/signs_lib/textures/signs_lib_font_15px_c2.png diff --git a/signs_lib/textures/signs_lib_font_15px_c3.png b/mods/signs_lib/textures/signs_lib_font_15px_c3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c3.png rename to mods/signs_lib/textures/signs_lib_font_15px_c3.png diff --git a/signs_lib/textures/signs_lib_font_15px_c4.png b/mods/signs_lib/textures/signs_lib_font_15px_c4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c4.png rename to mods/signs_lib/textures/signs_lib_font_15px_c4.png diff --git a/signs_lib/textures/signs_lib_font_15px_c5.png b/mods/signs_lib/textures/signs_lib_font_15px_c5.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c5.png rename to mods/signs_lib/textures/signs_lib_font_15px_c5.png diff --git a/signs_lib/textures/signs_lib_font_15px_c6.png b/mods/signs_lib/textures/signs_lib_font_15px_c6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c6.png rename to mods/signs_lib/textures/signs_lib_font_15px_c6.png diff --git a/signs_lib/textures/signs_lib_font_15px_c7.png b/mods/signs_lib/textures/signs_lib_font_15px_c7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c7.png rename to mods/signs_lib/textures/signs_lib_font_15px_c7.png diff --git a/signs_lib/textures/signs_lib_font_15px_c8.png b/mods/signs_lib/textures/signs_lib_font_15px_c8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c8.png rename to mods/signs_lib/textures/signs_lib_font_15px_c8.png diff --git a/signs_lib/textures/signs_lib_font_15px_c9.png b/mods/signs_lib/textures/signs_lib_font_15px_c9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_c9.png rename to mods/signs_lib/textures/signs_lib_font_15px_c9.png diff --git a/signs_lib/textures/signs_lib_font_15px_ca.png b/mods/signs_lib/textures/signs_lib_font_15px_ca.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ca.png rename to mods/signs_lib/textures/signs_lib_font_15px_ca.png diff --git a/signs_lib/textures/signs_lib_font_15px_cb.png b/mods/signs_lib/textures/signs_lib_font_15px_cb.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_cb.png rename to mods/signs_lib/textures/signs_lib_font_15px_cb.png diff --git a/signs_lib/textures/signs_lib_font_15px_cc.png b/mods/signs_lib/textures/signs_lib_font_15px_cc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_cc.png rename to mods/signs_lib/textures/signs_lib_font_15px_cc.png diff --git a/signs_lib/textures/signs_lib_font_15px_cd.png b/mods/signs_lib/textures/signs_lib_font_15px_cd.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_cd.png rename to mods/signs_lib/textures/signs_lib_font_15px_cd.png diff --git a/signs_lib/textures/signs_lib_font_15px_ce.png b/mods/signs_lib/textures/signs_lib_font_15px_ce.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ce.png rename to mods/signs_lib/textures/signs_lib_font_15px_ce.png diff --git a/signs_lib/textures/signs_lib_font_15px_cf.png b/mods/signs_lib/textures/signs_lib_font_15px_cf.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_cf.png rename to mods/signs_lib/textures/signs_lib_font_15px_cf.png diff --git a/signs_lib/textures/signs_lib_font_15px_d0.png b/mods/signs_lib/textures/signs_lib_font_15px_d0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d0.png rename to mods/signs_lib/textures/signs_lib_font_15px_d0.png diff --git a/signs_lib/textures/signs_lib_font_15px_d1.png b/mods/signs_lib/textures/signs_lib_font_15px_d1.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d1.png rename to mods/signs_lib/textures/signs_lib_font_15px_d1.png diff --git a/signs_lib/textures/signs_lib_font_15px_d2.png b/mods/signs_lib/textures/signs_lib_font_15px_d2.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d2.png rename to mods/signs_lib/textures/signs_lib_font_15px_d2.png diff --git a/signs_lib/textures/signs_lib_font_15px_d3.png b/mods/signs_lib/textures/signs_lib_font_15px_d3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d3.png rename to mods/signs_lib/textures/signs_lib_font_15px_d3.png diff --git a/signs_lib/textures/signs_lib_font_15px_d4.png b/mods/signs_lib/textures/signs_lib_font_15px_d4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d4.png rename to mods/signs_lib/textures/signs_lib_font_15px_d4.png diff --git a/signs_lib/textures/signs_lib_font_15px_d5.png b/mods/signs_lib/textures/signs_lib_font_15px_d5.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d5.png rename to mods/signs_lib/textures/signs_lib_font_15px_d5.png diff --git a/signs_lib/textures/signs_lib_font_15px_d6.png b/mods/signs_lib/textures/signs_lib_font_15px_d6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d6.png rename to mods/signs_lib/textures/signs_lib_font_15px_d6.png diff --git a/signs_lib/textures/signs_lib_font_15px_d7.png b/mods/signs_lib/textures/signs_lib_font_15px_d7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d7.png rename to mods/signs_lib/textures/signs_lib_font_15px_d7.png diff --git a/signs_lib/textures/signs_lib_font_15px_d8.png b/mods/signs_lib/textures/signs_lib_font_15px_d8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d8.png rename to mods/signs_lib/textures/signs_lib_font_15px_d8.png diff --git a/signs_lib/textures/signs_lib_font_15px_d9.png b/mods/signs_lib/textures/signs_lib_font_15px_d9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_d9.png rename to mods/signs_lib/textures/signs_lib_font_15px_d9.png diff --git a/signs_lib/textures/signs_lib_font_15px_da.png b/mods/signs_lib/textures/signs_lib_font_15px_da.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_da.png rename to mods/signs_lib/textures/signs_lib_font_15px_da.png diff --git a/signs_lib/textures/signs_lib_font_15px_db.png b/mods/signs_lib/textures/signs_lib_font_15px_db.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_db.png rename to mods/signs_lib/textures/signs_lib_font_15px_db.png diff --git a/signs_lib/textures/signs_lib_font_15px_dc.png b/mods/signs_lib/textures/signs_lib_font_15px_dc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_dc.png rename to mods/signs_lib/textures/signs_lib_font_15px_dc.png diff --git a/signs_lib/textures/signs_lib_font_15px_dd.png b/mods/signs_lib/textures/signs_lib_font_15px_dd.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_dd.png rename to mods/signs_lib/textures/signs_lib_font_15px_dd.png diff --git a/signs_lib/textures/signs_lib_font_15px_de.png b/mods/signs_lib/textures/signs_lib_font_15px_de.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_de.png rename to mods/signs_lib/textures/signs_lib_font_15px_de.png diff --git a/signs_lib/textures/signs_lib_font_15px_df.png b/mods/signs_lib/textures/signs_lib_font_15px_df.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_df.png rename to mods/signs_lib/textures/signs_lib_font_15px_df.png diff --git a/signs_lib/textures/signs_lib_font_15px_e0.png b/mods/signs_lib/textures/signs_lib_font_15px_e0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e0.png rename to mods/signs_lib/textures/signs_lib_font_15px_e0.png diff --git a/signs_lib/textures/signs_lib_font_15px_e1.png b/mods/signs_lib/textures/signs_lib_font_15px_e1.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e1.png rename to mods/signs_lib/textures/signs_lib_font_15px_e1.png diff --git a/signs_lib/textures/signs_lib_font_15px_e2.png b/mods/signs_lib/textures/signs_lib_font_15px_e2.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e2.png rename to mods/signs_lib/textures/signs_lib_font_15px_e2.png diff --git a/signs_lib/textures/signs_lib_font_15px_e3.png b/mods/signs_lib/textures/signs_lib_font_15px_e3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e3.png rename to mods/signs_lib/textures/signs_lib_font_15px_e3.png diff --git a/signs_lib/textures/signs_lib_font_15px_e4.png b/mods/signs_lib/textures/signs_lib_font_15px_e4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e4.png rename to mods/signs_lib/textures/signs_lib_font_15px_e4.png diff --git a/signs_lib/textures/signs_lib_font_15px_e5.png b/mods/signs_lib/textures/signs_lib_font_15px_e5.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e5.png rename to mods/signs_lib/textures/signs_lib_font_15px_e5.png diff --git a/signs_lib/textures/signs_lib_font_15px_e6.png b/mods/signs_lib/textures/signs_lib_font_15px_e6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e6.png rename to mods/signs_lib/textures/signs_lib_font_15px_e6.png diff --git a/signs_lib/textures/signs_lib_font_15px_e7.png b/mods/signs_lib/textures/signs_lib_font_15px_e7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e7.png rename to mods/signs_lib/textures/signs_lib_font_15px_e7.png diff --git a/signs_lib/textures/signs_lib_font_15px_e8.png b/mods/signs_lib/textures/signs_lib_font_15px_e8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e8.png rename to mods/signs_lib/textures/signs_lib_font_15px_e8.png diff --git a/signs_lib/textures/signs_lib_font_15px_e9.png b/mods/signs_lib/textures/signs_lib_font_15px_e9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_e9.png rename to mods/signs_lib/textures/signs_lib_font_15px_e9.png diff --git a/signs_lib/textures/signs_lib_font_15px_ea.png b/mods/signs_lib/textures/signs_lib_font_15px_ea.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ea.png rename to mods/signs_lib/textures/signs_lib_font_15px_ea.png diff --git a/signs_lib/textures/signs_lib_font_15px_eb.png b/mods/signs_lib/textures/signs_lib_font_15px_eb.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_eb.png rename to mods/signs_lib/textures/signs_lib_font_15px_eb.png diff --git a/signs_lib/textures/signs_lib_font_15px_ec.png b/mods/signs_lib/textures/signs_lib_font_15px_ec.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ec.png rename to mods/signs_lib/textures/signs_lib_font_15px_ec.png diff --git a/signs_lib/textures/signs_lib_font_15px_ed.png b/mods/signs_lib/textures/signs_lib_font_15px_ed.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ed.png rename to mods/signs_lib/textures/signs_lib_font_15px_ed.png diff --git a/signs_lib/textures/signs_lib_font_15px_ee.png b/mods/signs_lib/textures/signs_lib_font_15px_ee.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ee.png rename to mods/signs_lib/textures/signs_lib_font_15px_ee.png diff --git a/signs_lib/textures/signs_lib_font_15px_ef.png b/mods/signs_lib/textures/signs_lib_font_15px_ef.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ef.png rename to mods/signs_lib/textures/signs_lib_font_15px_ef.png diff --git a/signs_lib/textures/signs_lib_font_15px_f0.png b/mods/signs_lib/textures/signs_lib_font_15px_f0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f0.png rename to mods/signs_lib/textures/signs_lib_font_15px_f0.png diff --git a/signs_lib/textures/signs_lib_font_15px_f1.png b/mods/signs_lib/textures/signs_lib_font_15px_f1.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f1.png rename to mods/signs_lib/textures/signs_lib_font_15px_f1.png diff --git a/signs_lib/textures/signs_lib_font_15px_f2.png b/mods/signs_lib/textures/signs_lib_font_15px_f2.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f2.png rename to mods/signs_lib/textures/signs_lib_font_15px_f2.png diff --git a/signs_lib/textures/signs_lib_font_15px_f3.png b/mods/signs_lib/textures/signs_lib_font_15px_f3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f3.png rename to mods/signs_lib/textures/signs_lib_font_15px_f3.png diff --git a/signs_lib/textures/signs_lib_font_15px_f4.png b/mods/signs_lib/textures/signs_lib_font_15px_f4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f4.png rename to mods/signs_lib/textures/signs_lib_font_15px_f4.png diff --git a/signs_lib/textures/signs_lib_font_15px_f5.png b/mods/signs_lib/textures/signs_lib_font_15px_f5.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f5.png rename to mods/signs_lib/textures/signs_lib_font_15px_f5.png diff --git a/signs_lib/textures/signs_lib_font_15px_f6.png b/mods/signs_lib/textures/signs_lib_font_15px_f6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f6.png rename to mods/signs_lib/textures/signs_lib_font_15px_f6.png diff --git a/signs_lib/textures/signs_lib_font_15px_f7.png b/mods/signs_lib/textures/signs_lib_font_15px_f7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f7.png rename to mods/signs_lib/textures/signs_lib_font_15px_f7.png diff --git a/signs_lib/textures/signs_lib_font_15px_f8.png b/mods/signs_lib/textures/signs_lib_font_15px_f8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f8.png rename to mods/signs_lib/textures/signs_lib_font_15px_f8.png diff --git a/signs_lib/textures/signs_lib_font_15px_f9.png b/mods/signs_lib/textures/signs_lib_font_15px_f9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_f9.png rename to mods/signs_lib/textures/signs_lib_font_15px_f9.png diff --git a/signs_lib/textures/signs_lib_font_15px_fa.png b/mods/signs_lib/textures/signs_lib_font_15px_fa.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_fa.png rename to mods/signs_lib/textures/signs_lib_font_15px_fa.png diff --git a/signs_lib/textures/signs_lib_font_15px_fb.png b/mods/signs_lib/textures/signs_lib_font_15px_fb.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_fb.png rename to mods/signs_lib/textures/signs_lib_font_15px_fb.png diff --git a/signs_lib/textures/signs_lib_font_15px_fc.png b/mods/signs_lib/textures/signs_lib_font_15px_fc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_fc.png rename to mods/signs_lib/textures/signs_lib_font_15px_fc.png diff --git a/signs_lib/textures/signs_lib_font_15px_fd.png b/mods/signs_lib/textures/signs_lib_font_15px_fd.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_fd.png rename to mods/signs_lib/textures/signs_lib_font_15px_fd.png diff --git a/signs_lib/textures/signs_lib_font_15px_fe.png b/mods/signs_lib/textures/signs_lib_font_15px_fe.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_fe.png rename to mods/signs_lib/textures/signs_lib_font_15px_fe.png diff --git a/signs_lib/textures/signs_lib_font_15px_ff.png b/mods/signs_lib/textures/signs_lib_font_15px_ff.png similarity index 100% rename from signs_lib/textures/signs_lib_font_15px_ff.png rename to mods/signs_lib/textures/signs_lib_font_15px_ff.png diff --git a/signs_lib/textures/signs_lib_font_31px_00c0.png b/mods/signs_lib/textures/signs_lib_font_31px_00c0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00c0.png rename to mods/signs_lib/textures/signs_lib_font_31px_00c0.png diff --git a/signs_lib/textures/signs_lib_font_31px_00c4.png b/mods/signs_lib/textures/signs_lib_font_31px_00c4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00c4.png rename to mods/signs_lib/textures/signs_lib_font_31px_00c4.png diff --git a/signs_lib/textures/signs_lib_font_31px_00c6.png b/mods/signs_lib/textures/signs_lib_font_31px_00c6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00c6.png rename to mods/signs_lib/textures/signs_lib_font_31px_00c6.png diff --git a/signs_lib/textures/signs_lib_font_31px_00c7.png b/mods/signs_lib/textures/signs_lib_font_31px_00c7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00c7.png rename to mods/signs_lib/textures/signs_lib_font_31px_00c7.png diff --git a/signs_lib/textures/signs_lib_font_31px_00c8.png b/mods/signs_lib/textures/signs_lib_font_31px_00c8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00c8.png rename to mods/signs_lib/textures/signs_lib_font_31px_00c8.png diff --git a/signs_lib/textures/signs_lib_font_31px_00c9.png b/mods/signs_lib/textures/signs_lib_font_31px_00c9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00c9.png rename to mods/signs_lib/textures/signs_lib_font_31px_00c9.png diff --git a/signs_lib/textures/signs_lib_font_31px_00ca.png b/mods/signs_lib/textures/signs_lib_font_31px_00ca.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00ca.png rename to mods/signs_lib/textures/signs_lib_font_31px_00ca.png diff --git a/signs_lib/textures/signs_lib_font_31px_00d3.png b/mods/signs_lib/textures/signs_lib_font_31px_00d3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00d3.png rename to mods/signs_lib/textures/signs_lib_font_31px_00d3.png diff --git a/signs_lib/textures/signs_lib_font_31px_00d4.png b/mods/signs_lib/textures/signs_lib_font_31px_00d4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00d4.png rename to mods/signs_lib/textures/signs_lib_font_31px_00d4.png diff --git a/signs_lib/textures/signs_lib_font_31px_00d6.png b/mods/signs_lib/textures/signs_lib_font_31px_00d6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00d6.png rename to mods/signs_lib/textures/signs_lib_font_31px_00d6.png diff --git a/signs_lib/textures/signs_lib_font_31px_00d9.png b/mods/signs_lib/textures/signs_lib_font_31px_00d9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00d9.png rename to mods/signs_lib/textures/signs_lib_font_31px_00d9.png diff --git a/signs_lib/textures/signs_lib_font_31px_00dc.png b/mods/signs_lib/textures/signs_lib_font_31px_00dc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00dc.png rename to mods/signs_lib/textures/signs_lib_font_31px_00dc.png diff --git a/signs_lib/textures/signs_lib_font_31px_00df.png b/mods/signs_lib/textures/signs_lib_font_31px_00df.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00df.png rename to mods/signs_lib/textures/signs_lib_font_31px_00df.png diff --git a/signs_lib/textures/signs_lib_font_31px_00e0.png b/mods/signs_lib/textures/signs_lib_font_31px_00e0.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00e0.png rename to mods/signs_lib/textures/signs_lib_font_31px_00e0.png diff --git a/signs_lib/textures/signs_lib_font_31px_00e4.png b/mods/signs_lib/textures/signs_lib_font_31px_00e4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00e4.png rename to mods/signs_lib/textures/signs_lib_font_31px_00e4.png diff --git a/signs_lib/textures/signs_lib_font_31px_00e6.png b/mods/signs_lib/textures/signs_lib_font_31px_00e6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00e6.png rename to mods/signs_lib/textures/signs_lib_font_31px_00e6.png diff --git a/signs_lib/textures/signs_lib_font_31px_00e7.png b/mods/signs_lib/textures/signs_lib_font_31px_00e7.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00e7.png rename to mods/signs_lib/textures/signs_lib_font_31px_00e7.png diff --git a/signs_lib/textures/signs_lib_font_31px_00e8.png b/mods/signs_lib/textures/signs_lib_font_31px_00e8.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00e8.png rename to mods/signs_lib/textures/signs_lib_font_31px_00e8.png diff --git a/signs_lib/textures/signs_lib_font_31px_00e9.png b/mods/signs_lib/textures/signs_lib_font_31px_00e9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00e9.png rename to mods/signs_lib/textures/signs_lib_font_31px_00e9.png diff --git a/signs_lib/textures/signs_lib_font_31px_00ea.png b/mods/signs_lib/textures/signs_lib_font_31px_00ea.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00ea.png rename to mods/signs_lib/textures/signs_lib_font_31px_00ea.png diff --git a/signs_lib/textures/signs_lib_font_31px_00f3.png b/mods/signs_lib/textures/signs_lib_font_31px_00f3.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00f3.png rename to mods/signs_lib/textures/signs_lib_font_31px_00f3.png diff --git a/signs_lib/textures/signs_lib_font_31px_00f4.png b/mods/signs_lib/textures/signs_lib_font_31px_00f4.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00f4.png rename to mods/signs_lib/textures/signs_lib_font_31px_00f4.png diff --git a/signs_lib/textures/signs_lib_font_31px_00f6.png b/mods/signs_lib/textures/signs_lib_font_31px_00f6.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00f6.png rename to mods/signs_lib/textures/signs_lib_font_31px_00f6.png diff --git a/signs_lib/textures/signs_lib_font_31px_00f9.png b/mods/signs_lib/textures/signs_lib_font_31px_00f9.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00f9.png rename to mods/signs_lib/textures/signs_lib_font_31px_00f9.png diff --git a/signs_lib/textures/signs_lib_font_31px_00fc.png b/mods/signs_lib/textures/signs_lib_font_31px_00fc.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_00fc.png rename to mods/signs_lib/textures/signs_lib_font_31px_00fc.png diff --git a/signs_lib/textures/signs_lib_font_31px_0104.png b/mods/signs_lib/textures/signs_lib_font_31px_0104.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0104.png rename to mods/signs_lib/textures/signs_lib_font_31px_0104.png diff --git a/signs_lib/textures/signs_lib_font_31px_0105.png b/mods/signs_lib/textures/signs_lib_font_31px_0105.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0105.png rename to mods/signs_lib/textures/signs_lib_font_31px_0105.png diff --git a/signs_lib/textures/signs_lib_font_31px_0106.png b/mods/signs_lib/textures/signs_lib_font_31px_0106.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0106.png rename to mods/signs_lib/textures/signs_lib_font_31px_0106.png diff --git a/signs_lib/textures/signs_lib_font_31px_0107.png b/mods/signs_lib/textures/signs_lib_font_31px_0107.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0107.png rename to mods/signs_lib/textures/signs_lib_font_31px_0107.png diff --git a/signs_lib/textures/signs_lib_font_31px_0118.png b/mods/signs_lib/textures/signs_lib_font_31px_0118.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0118.png rename to mods/signs_lib/textures/signs_lib_font_31px_0118.png diff --git a/signs_lib/textures/signs_lib_font_31px_0119.png b/mods/signs_lib/textures/signs_lib_font_31px_0119.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0119.png rename to mods/signs_lib/textures/signs_lib_font_31px_0119.png diff --git a/signs_lib/textures/signs_lib_font_31px_0141.png b/mods/signs_lib/textures/signs_lib_font_31px_0141.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0141.png rename to mods/signs_lib/textures/signs_lib_font_31px_0141.png diff --git a/signs_lib/textures/signs_lib_font_31px_0142.png b/mods/signs_lib/textures/signs_lib_font_31px_0142.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0142.png rename to mods/signs_lib/textures/signs_lib_font_31px_0142.png diff --git a/signs_lib/textures/signs_lib_font_31px_015a.png b/mods/signs_lib/textures/signs_lib_font_31px_015a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_015a.png rename to mods/signs_lib/textures/signs_lib_font_31px_015a.png diff --git a/signs_lib/textures/signs_lib_font_31px_015b.png b/mods/signs_lib/textures/signs_lib_font_31px_015b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_015b.png rename to mods/signs_lib/textures/signs_lib_font_31px_015b.png diff --git a/signs_lib/textures/signs_lib_font_31px_0179.png b/mods/signs_lib/textures/signs_lib_font_31px_0179.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_0179.png rename to mods/signs_lib/textures/signs_lib_font_31px_0179.png diff --git a/signs_lib/textures/signs_lib_font_31px_017a.png b/mods/signs_lib/textures/signs_lib_font_31px_017a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_017a.png rename to mods/signs_lib/textures/signs_lib_font_31px_017a.png diff --git a/signs_lib/textures/signs_lib_font_31px_017b.png b/mods/signs_lib/textures/signs_lib_font_31px_017b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_017b.png rename to mods/signs_lib/textures/signs_lib_font_31px_017b.png diff --git a/signs_lib/textures/signs_lib_font_31px_017c.png b/mods/signs_lib/textures/signs_lib_font_31px_017c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_017c.png rename to mods/signs_lib/textures/signs_lib_font_31px_017c.png diff --git a/signs_lib/textures/signs_lib_font_31px_20.png b/mods/signs_lib/textures/signs_lib_font_31px_20.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_20.png rename to mods/signs_lib/textures/signs_lib_font_31px_20.png diff --git a/signs_lib/textures/signs_lib_font_31px_21.png b/mods/signs_lib/textures/signs_lib_font_31px_21.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_21.png rename to mods/signs_lib/textures/signs_lib_font_31px_21.png diff --git a/signs_lib/textures/signs_lib_font_31px_22.png b/mods/signs_lib/textures/signs_lib_font_31px_22.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_22.png rename to mods/signs_lib/textures/signs_lib_font_31px_22.png diff --git a/signs_lib/textures/signs_lib_font_31px_23.png b/mods/signs_lib/textures/signs_lib_font_31px_23.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_23.png rename to mods/signs_lib/textures/signs_lib_font_31px_23.png diff --git a/signs_lib/textures/signs_lib_font_31px_24.png b/mods/signs_lib/textures/signs_lib_font_31px_24.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_24.png rename to mods/signs_lib/textures/signs_lib_font_31px_24.png diff --git a/signs_lib/textures/signs_lib_font_31px_25.png b/mods/signs_lib/textures/signs_lib_font_31px_25.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_25.png rename to mods/signs_lib/textures/signs_lib_font_31px_25.png diff --git a/signs_lib/textures/signs_lib_font_31px_26.png b/mods/signs_lib/textures/signs_lib_font_31px_26.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_26.png rename to mods/signs_lib/textures/signs_lib_font_31px_26.png diff --git a/signs_lib/textures/signs_lib_font_31px_27.png b/mods/signs_lib/textures/signs_lib_font_31px_27.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_27.png rename to mods/signs_lib/textures/signs_lib_font_31px_27.png diff --git a/signs_lib/textures/signs_lib_font_31px_28.png b/mods/signs_lib/textures/signs_lib_font_31px_28.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_28.png rename to mods/signs_lib/textures/signs_lib_font_31px_28.png diff --git a/signs_lib/textures/signs_lib_font_31px_29.png b/mods/signs_lib/textures/signs_lib_font_31px_29.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_29.png rename to mods/signs_lib/textures/signs_lib_font_31px_29.png diff --git a/signs_lib/textures/signs_lib_font_31px_2a.png b/mods/signs_lib/textures/signs_lib_font_31px_2a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_2a.png rename to mods/signs_lib/textures/signs_lib_font_31px_2a.png diff --git a/signs_lib/textures/signs_lib_font_31px_2b.png b/mods/signs_lib/textures/signs_lib_font_31px_2b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_2b.png rename to mods/signs_lib/textures/signs_lib_font_31px_2b.png diff --git a/signs_lib/textures/signs_lib_font_31px_2c.png b/mods/signs_lib/textures/signs_lib_font_31px_2c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_2c.png rename to mods/signs_lib/textures/signs_lib_font_31px_2c.png diff --git a/signs_lib/textures/signs_lib_font_31px_2d.png b/mods/signs_lib/textures/signs_lib_font_31px_2d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_2d.png rename to mods/signs_lib/textures/signs_lib_font_31px_2d.png diff --git a/signs_lib/textures/signs_lib_font_31px_2e.png b/mods/signs_lib/textures/signs_lib_font_31px_2e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_2e.png rename to mods/signs_lib/textures/signs_lib_font_31px_2e.png diff --git a/signs_lib/textures/signs_lib_font_31px_2f.png b/mods/signs_lib/textures/signs_lib_font_31px_2f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_2f.png rename to mods/signs_lib/textures/signs_lib_font_31px_2f.png diff --git a/signs_lib/textures/signs_lib_font_31px_30.png b/mods/signs_lib/textures/signs_lib_font_31px_30.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_30.png rename to mods/signs_lib/textures/signs_lib_font_31px_30.png diff --git a/signs_lib/textures/signs_lib_font_31px_31.png b/mods/signs_lib/textures/signs_lib_font_31px_31.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_31.png rename to mods/signs_lib/textures/signs_lib_font_31px_31.png diff --git a/signs_lib/textures/signs_lib_font_31px_32.png b/mods/signs_lib/textures/signs_lib_font_31px_32.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_32.png rename to mods/signs_lib/textures/signs_lib_font_31px_32.png diff --git a/signs_lib/textures/signs_lib_font_31px_33.png b/mods/signs_lib/textures/signs_lib_font_31px_33.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_33.png rename to mods/signs_lib/textures/signs_lib_font_31px_33.png diff --git a/signs_lib/textures/signs_lib_font_31px_34.png b/mods/signs_lib/textures/signs_lib_font_31px_34.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_34.png rename to mods/signs_lib/textures/signs_lib_font_31px_34.png diff --git a/signs_lib/textures/signs_lib_font_31px_35.png b/mods/signs_lib/textures/signs_lib_font_31px_35.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_35.png rename to mods/signs_lib/textures/signs_lib_font_31px_35.png diff --git a/signs_lib/textures/signs_lib_font_31px_36.png b/mods/signs_lib/textures/signs_lib_font_31px_36.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_36.png rename to mods/signs_lib/textures/signs_lib_font_31px_36.png diff --git a/signs_lib/textures/signs_lib_font_31px_37.png b/mods/signs_lib/textures/signs_lib_font_31px_37.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_37.png rename to mods/signs_lib/textures/signs_lib_font_31px_37.png diff --git a/signs_lib/textures/signs_lib_font_31px_38.png b/mods/signs_lib/textures/signs_lib_font_31px_38.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_38.png rename to mods/signs_lib/textures/signs_lib_font_31px_38.png diff --git a/signs_lib/textures/signs_lib_font_31px_39.png b/mods/signs_lib/textures/signs_lib_font_31px_39.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_39.png rename to mods/signs_lib/textures/signs_lib_font_31px_39.png diff --git a/signs_lib/textures/signs_lib_font_31px_3a.png b/mods/signs_lib/textures/signs_lib_font_31px_3a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_3a.png rename to mods/signs_lib/textures/signs_lib_font_31px_3a.png diff --git a/signs_lib/textures/signs_lib_font_31px_3b.png b/mods/signs_lib/textures/signs_lib_font_31px_3b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_3b.png rename to mods/signs_lib/textures/signs_lib_font_31px_3b.png diff --git a/signs_lib/textures/signs_lib_font_31px_3c.png b/mods/signs_lib/textures/signs_lib_font_31px_3c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_3c.png rename to mods/signs_lib/textures/signs_lib_font_31px_3c.png diff --git a/signs_lib/textures/signs_lib_font_31px_3d.png b/mods/signs_lib/textures/signs_lib_font_31px_3d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_3d.png rename to mods/signs_lib/textures/signs_lib_font_31px_3d.png diff --git a/signs_lib/textures/signs_lib_font_31px_3e.png b/mods/signs_lib/textures/signs_lib_font_31px_3e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_3e.png rename to mods/signs_lib/textures/signs_lib_font_31px_3e.png diff --git a/signs_lib/textures/signs_lib_font_31px_3f.png b/mods/signs_lib/textures/signs_lib_font_31px_3f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_3f.png rename to mods/signs_lib/textures/signs_lib_font_31px_3f.png diff --git a/signs_lib/textures/signs_lib_font_31px_40.png b/mods/signs_lib/textures/signs_lib_font_31px_40.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_40.png rename to mods/signs_lib/textures/signs_lib_font_31px_40.png diff --git a/signs_lib/textures/signs_lib_font_31px_41.png b/mods/signs_lib/textures/signs_lib_font_31px_41.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_41.png rename to mods/signs_lib/textures/signs_lib_font_31px_41.png diff --git a/signs_lib/textures/signs_lib_font_31px_42.png b/mods/signs_lib/textures/signs_lib_font_31px_42.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_42.png rename to mods/signs_lib/textures/signs_lib_font_31px_42.png diff --git a/signs_lib/textures/signs_lib_font_31px_43.png b/mods/signs_lib/textures/signs_lib_font_31px_43.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_43.png rename to mods/signs_lib/textures/signs_lib_font_31px_43.png diff --git a/signs_lib/textures/signs_lib_font_31px_44.png b/mods/signs_lib/textures/signs_lib_font_31px_44.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_44.png rename to mods/signs_lib/textures/signs_lib_font_31px_44.png diff --git a/signs_lib/textures/signs_lib_font_31px_45.png b/mods/signs_lib/textures/signs_lib_font_31px_45.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_45.png rename to mods/signs_lib/textures/signs_lib_font_31px_45.png diff --git a/signs_lib/textures/signs_lib_font_31px_46.png b/mods/signs_lib/textures/signs_lib_font_31px_46.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_46.png rename to mods/signs_lib/textures/signs_lib_font_31px_46.png diff --git a/signs_lib/textures/signs_lib_font_31px_47.png b/mods/signs_lib/textures/signs_lib_font_31px_47.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_47.png rename to mods/signs_lib/textures/signs_lib_font_31px_47.png diff --git a/signs_lib/textures/signs_lib_font_31px_48.png b/mods/signs_lib/textures/signs_lib_font_31px_48.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_48.png rename to mods/signs_lib/textures/signs_lib_font_31px_48.png diff --git a/signs_lib/textures/signs_lib_font_31px_49.png b/mods/signs_lib/textures/signs_lib_font_31px_49.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_49.png rename to mods/signs_lib/textures/signs_lib_font_31px_49.png diff --git a/signs_lib/textures/signs_lib_font_31px_4a.png b/mods/signs_lib/textures/signs_lib_font_31px_4a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_4a.png rename to mods/signs_lib/textures/signs_lib_font_31px_4a.png diff --git a/signs_lib/textures/signs_lib_font_31px_4b.png b/mods/signs_lib/textures/signs_lib_font_31px_4b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_4b.png rename to mods/signs_lib/textures/signs_lib_font_31px_4b.png diff --git a/signs_lib/textures/signs_lib_font_31px_4c.png b/mods/signs_lib/textures/signs_lib_font_31px_4c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_4c.png rename to mods/signs_lib/textures/signs_lib_font_31px_4c.png diff --git a/signs_lib/textures/signs_lib_font_31px_4d.png b/mods/signs_lib/textures/signs_lib_font_31px_4d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_4d.png rename to mods/signs_lib/textures/signs_lib_font_31px_4d.png diff --git a/signs_lib/textures/signs_lib_font_31px_4e.png b/mods/signs_lib/textures/signs_lib_font_31px_4e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_4e.png rename to mods/signs_lib/textures/signs_lib_font_31px_4e.png diff --git a/signs_lib/textures/signs_lib_font_31px_4f.png b/mods/signs_lib/textures/signs_lib_font_31px_4f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_4f.png rename to mods/signs_lib/textures/signs_lib_font_31px_4f.png diff --git a/signs_lib/textures/signs_lib_font_31px_50.png b/mods/signs_lib/textures/signs_lib_font_31px_50.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_50.png rename to mods/signs_lib/textures/signs_lib_font_31px_50.png diff --git a/signs_lib/textures/signs_lib_font_31px_51.png b/mods/signs_lib/textures/signs_lib_font_31px_51.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_51.png rename to mods/signs_lib/textures/signs_lib_font_31px_51.png diff --git a/signs_lib/textures/signs_lib_font_31px_52.png b/mods/signs_lib/textures/signs_lib_font_31px_52.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_52.png rename to mods/signs_lib/textures/signs_lib_font_31px_52.png diff --git a/signs_lib/textures/signs_lib_font_31px_53.png b/mods/signs_lib/textures/signs_lib_font_31px_53.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_53.png rename to mods/signs_lib/textures/signs_lib_font_31px_53.png diff --git a/signs_lib/textures/signs_lib_font_31px_54.png b/mods/signs_lib/textures/signs_lib_font_31px_54.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_54.png rename to mods/signs_lib/textures/signs_lib_font_31px_54.png diff --git a/signs_lib/textures/signs_lib_font_31px_55.png b/mods/signs_lib/textures/signs_lib_font_31px_55.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_55.png rename to mods/signs_lib/textures/signs_lib_font_31px_55.png diff --git a/signs_lib/textures/signs_lib_font_31px_56.png b/mods/signs_lib/textures/signs_lib_font_31px_56.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_56.png rename to mods/signs_lib/textures/signs_lib_font_31px_56.png diff --git a/signs_lib/textures/signs_lib_font_31px_57.png b/mods/signs_lib/textures/signs_lib_font_31px_57.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_57.png rename to mods/signs_lib/textures/signs_lib_font_31px_57.png diff --git a/signs_lib/textures/signs_lib_font_31px_58.png b/mods/signs_lib/textures/signs_lib_font_31px_58.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_58.png rename to mods/signs_lib/textures/signs_lib_font_31px_58.png diff --git a/signs_lib/textures/signs_lib_font_31px_59.png b/mods/signs_lib/textures/signs_lib_font_31px_59.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_59.png rename to mods/signs_lib/textures/signs_lib_font_31px_59.png diff --git a/signs_lib/textures/signs_lib_font_31px_5a.png b/mods/signs_lib/textures/signs_lib_font_31px_5a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_5a.png rename to mods/signs_lib/textures/signs_lib_font_31px_5a.png diff --git a/signs_lib/textures/signs_lib_font_31px_5b.png b/mods/signs_lib/textures/signs_lib_font_31px_5b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_5b.png rename to mods/signs_lib/textures/signs_lib_font_31px_5b.png diff --git a/signs_lib/textures/signs_lib_font_31px_5c.png b/mods/signs_lib/textures/signs_lib_font_31px_5c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_5c.png rename to mods/signs_lib/textures/signs_lib_font_31px_5c.png diff --git a/signs_lib/textures/signs_lib_font_31px_5d.png b/mods/signs_lib/textures/signs_lib_font_31px_5d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_5d.png rename to mods/signs_lib/textures/signs_lib_font_31px_5d.png diff --git a/signs_lib/textures/signs_lib_font_31px_5e.png b/mods/signs_lib/textures/signs_lib_font_31px_5e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_5e.png rename to mods/signs_lib/textures/signs_lib_font_31px_5e.png diff --git a/signs_lib/textures/signs_lib_font_31px_5f.png b/mods/signs_lib/textures/signs_lib_font_31px_5f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_5f.png rename to mods/signs_lib/textures/signs_lib_font_31px_5f.png diff --git a/signs_lib/textures/signs_lib_font_31px_60.png b/mods/signs_lib/textures/signs_lib_font_31px_60.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_60.png rename to mods/signs_lib/textures/signs_lib_font_31px_60.png diff --git a/signs_lib/textures/signs_lib_font_31px_61.png b/mods/signs_lib/textures/signs_lib_font_31px_61.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_61.png rename to mods/signs_lib/textures/signs_lib_font_31px_61.png diff --git a/signs_lib/textures/signs_lib_font_31px_62.png b/mods/signs_lib/textures/signs_lib_font_31px_62.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_62.png rename to mods/signs_lib/textures/signs_lib_font_31px_62.png diff --git a/signs_lib/textures/signs_lib_font_31px_63.png b/mods/signs_lib/textures/signs_lib_font_31px_63.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_63.png rename to mods/signs_lib/textures/signs_lib_font_31px_63.png diff --git a/signs_lib/textures/signs_lib_font_31px_64.png b/mods/signs_lib/textures/signs_lib_font_31px_64.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_64.png rename to mods/signs_lib/textures/signs_lib_font_31px_64.png diff --git a/signs_lib/textures/signs_lib_font_31px_65.png b/mods/signs_lib/textures/signs_lib_font_31px_65.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_65.png rename to mods/signs_lib/textures/signs_lib_font_31px_65.png diff --git a/signs_lib/textures/signs_lib_font_31px_66.png b/mods/signs_lib/textures/signs_lib_font_31px_66.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_66.png rename to mods/signs_lib/textures/signs_lib_font_31px_66.png diff --git a/signs_lib/textures/signs_lib_font_31px_67.png b/mods/signs_lib/textures/signs_lib_font_31px_67.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_67.png rename to mods/signs_lib/textures/signs_lib_font_31px_67.png diff --git a/signs_lib/textures/signs_lib_font_31px_68.png b/mods/signs_lib/textures/signs_lib_font_31px_68.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_68.png rename to mods/signs_lib/textures/signs_lib_font_31px_68.png diff --git a/signs_lib/textures/signs_lib_font_31px_69.png b/mods/signs_lib/textures/signs_lib_font_31px_69.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_69.png rename to mods/signs_lib/textures/signs_lib_font_31px_69.png diff --git a/signs_lib/textures/signs_lib_font_31px_6a.png b/mods/signs_lib/textures/signs_lib_font_31px_6a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_6a.png rename to mods/signs_lib/textures/signs_lib_font_31px_6a.png diff --git a/signs_lib/textures/signs_lib_font_31px_6b.png b/mods/signs_lib/textures/signs_lib_font_31px_6b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_6b.png rename to mods/signs_lib/textures/signs_lib_font_31px_6b.png diff --git a/signs_lib/textures/signs_lib_font_31px_6c.png b/mods/signs_lib/textures/signs_lib_font_31px_6c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_6c.png rename to mods/signs_lib/textures/signs_lib_font_31px_6c.png diff --git a/signs_lib/textures/signs_lib_font_31px_6d.png b/mods/signs_lib/textures/signs_lib_font_31px_6d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_6d.png rename to mods/signs_lib/textures/signs_lib_font_31px_6d.png diff --git a/signs_lib/textures/signs_lib_font_31px_6e.png b/mods/signs_lib/textures/signs_lib_font_31px_6e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_6e.png rename to mods/signs_lib/textures/signs_lib_font_31px_6e.png diff --git a/signs_lib/textures/signs_lib_font_31px_6f.png b/mods/signs_lib/textures/signs_lib_font_31px_6f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_6f.png rename to mods/signs_lib/textures/signs_lib_font_31px_6f.png diff --git a/signs_lib/textures/signs_lib_font_31px_70.png b/mods/signs_lib/textures/signs_lib_font_31px_70.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_70.png rename to mods/signs_lib/textures/signs_lib_font_31px_70.png diff --git a/signs_lib/textures/signs_lib_font_31px_71.png b/mods/signs_lib/textures/signs_lib_font_31px_71.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_71.png rename to mods/signs_lib/textures/signs_lib_font_31px_71.png diff --git a/signs_lib/textures/signs_lib_font_31px_72.png b/mods/signs_lib/textures/signs_lib_font_31px_72.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_72.png rename to mods/signs_lib/textures/signs_lib_font_31px_72.png diff --git a/signs_lib/textures/signs_lib_font_31px_73.png b/mods/signs_lib/textures/signs_lib_font_31px_73.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_73.png rename to mods/signs_lib/textures/signs_lib_font_31px_73.png diff --git a/signs_lib/textures/signs_lib_font_31px_74.png b/mods/signs_lib/textures/signs_lib_font_31px_74.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_74.png rename to mods/signs_lib/textures/signs_lib_font_31px_74.png diff --git a/signs_lib/textures/signs_lib_font_31px_75.png b/mods/signs_lib/textures/signs_lib_font_31px_75.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_75.png rename to mods/signs_lib/textures/signs_lib_font_31px_75.png diff --git a/signs_lib/textures/signs_lib_font_31px_76.png b/mods/signs_lib/textures/signs_lib_font_31px_76.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_76.png rename to mods/signs_lib/textures/signs_lib_font_31px_76.png diff --git a/signs_lib/textures/signs_lib_font_31px_77.png b/mods/signs_lib/textures/signs_lib_font_31px_77.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_77.png rename to mods/signs_lib/textures/signs_lib_font_31px_77.png diff --git a/signs_lib/textures/signs_lib_font_31px_78.png b/mods/signs_lib/textures/signs_lib_font_31px_78.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_78.png rename to mods/signs_lib/textures/signs_lib_font_31px_78.png diff --git a/signs_lib/textures/signs_lib_font_31px_79.png b/mods/signs_lib/textures/signs_lib_font_31px_79.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_79.png rename to mods/signs_lib/textures/signs_lib_font_31px_79.png diff --git a/signs_lib/textures/signs_lib_font_31px_7a.png b/mods/signs_lib/textures/signs_lib_font_31px_7a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_7a.png rename to mods/signs_lib/textures/signs_lib_font_31px_7a.png diff --git a/signs_lib/textures/signs_lib_font_31px_7b.png b/mods/signs_lib/textures/signs_lib_font_31px_7b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_7b.png rename to mods/signs_lib/textures/signs_lib_font_31px_7b.png diff --git a/signs_lib/textures/signs_lib_font_31px_7c.png b/mods/signs_lib/textures/signs_lib_font_31px_7c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_7c.png rename to mods/signs_lib/textures/signs_lib_font_31px_7c.png diff --git a/signs_lib/textures/signs_lib_font_31px_7d.png b/mods/signs_lib/textures/signs_lib_font_31px_7d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_7d.png rename to mods/signs_lib/textures/signs_lib_font_31px_7d.png diff --git a/signs_lib/textures/signs_lib_font_31px_7e.png b/mods/signs_lib/textures/signs_lib_font_31px_7e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_7e.png rename to mods/signs_lib/textures/signs_lib_font_31px_7e.png diff --git a/signs_lib/textures/signs_lib_font_31px_81.png b/mods/signs_lib/textures/signs_lib_font_31px_81.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_81.png rename to mods/signs_lib/textures/signs_lib_font_31px_81.png diff --git a/signs_lib/textures/signs_lib_font_31px_82.png b/mods/signs_lib/textures/signs_lib_font_31px_82.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_82.png rename to mods/signs_lib/textures/signs_lib_font_31px_82.png diff --git a/signs_lib/textures/signs_lib_font_31px_83.png b/mods/signs_lib/textures/signs_lib_font_31px_83.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_83.png rename to mods/signs_lib/textures/signs_lib_font_31px_83.png diff --git a/signs_lib/textures/signs_lib_font_31px_84.png b/mods/signs_lib/textures/signs_lib_font_31px_84.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_84.png rename to mods/signs_lib/textures/signs_lib_font_31px_84.png diff --git a/signs_lib/textures/signs_lib_font_31px_85.png b/mods/signs_lib/textures/signs_lib_font_31px_85.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_85.png rename to mods/signs_lib/textures/signs_lib_font_31px_85.png diff --git a/signs_lib/textures/signs_lib_font_31px_86.png b/mods/signs_lib/textures/signs_lib_font_31px_86.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_86.png rename to mods/signs_lib/textures/signs_lib_font_31px_86.png diff --git a/signs_lib/textures/signs_lib_font_31px_87.png b/mods/signs_lib/textures/signs_lib_font_31px_87.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_87.png rename to mods/signs_lib/textures/signs_lib_font_31px_87.png diff --git a/signs_lib/textures/signs_lib_font_31px_88.png b/mods/signs_lib/textures/signs_lib_font_31px_88.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_88.png rename to mods/signs_lib/textures/signs_lib_font_31px_88.png diff --git a/signs_lib/textures/signs_lib_font_31px_8a.png b/mods/signs_lib/textures/signs_lib_font_31px_8a.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_8a.png rename to mods/signs_lib/textures/signs_lib_font_31px_8a.png diff --git a/signs_lib/textures/signs_lib_font_31px_8b.png b/mods/signs_lib/textures/signs_lib_font_31px_8b.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_8b.png rename to mods/signs_lib/textures/signs_lib_font_31px_8b.png diff --git a/signs_lib/textures/signs_lib_font_31px_8c.png b/mods/signs_lib/textures/signs_lib_font_31px_8c.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_8c.png rename to mods/signs_lib/textures/signs_lib_font_31px_8c.png diff --git a/signs_lib/textures/signs_lib_font_31px_8d.png b/mods/signs_lib/textures/signs_lib_font_31px_8d.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_8d.png rename to mods/signs_lib/textures/signs_lib_font_31px_8d.png diff --git a/signs_lib/textures/signs_lib_font_31px_8e.png b/mods/signs_lib/textures/signs_lib_font_31px_8e.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_8e.png rename to mods/signs_lib/textures/signs_lib_font_31px_8e.png diff --git a/signs_lib/textures/signs_lib_font_31px_8f.png b/mods/signs_lib/textures/signs_lib_font_31px_8f.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_8f.png rename to mods/signs_lib/textures/signs_lib_font_31px_8f.png diff --git a/signs_lib/textures/signs_lib_font_31px_90.png b/mods/signs_lib/textures/signs_lib_font_31px_90.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_90.png rename to mods/signs_lib/textures/signs_lib_font_31px_90.png diff --git a/signs_lib/textures/signs_lib_font_31px_91.png b/mods/signs_lib/textures/signs_lib_font_31px_91.png similarity index 100% rename from signs_lib/textures/signs_lib_font_31px_91.png rename to mods/signs_lib/textures/signs_lib_font_31px_91.png diff --git a/signs_lib/textures/signs_lib_hangers.png b/mods/signs_lib/textures/signs_lib_hangers.png similarity index 100% rename from signs_lib/textures/signs_lib_hangers.png rename to mods/signs_lib/textures/signs_lib_hangers.png diff --git a/signs_lib/textures/signs_lib_pole_mount.png b/mods/signs_lib/textures/signs_lib_pole_mount.png similarity index 100% rename from signs_lib/textures/signs_lib_pole_mount.png rename to mods/signs_lib/textures/signs_lib_pole_mount.png diff --git a/signs_lib/textures/signs_lib_sign_bg.jpg b/mods/signs_lib/textures/signs_lib_sign_bg.jpg similarity index 100% rename from signs_lib/textures/signs_lib_sign_bg.jpg rename to mods/signs_lib/textures/signs_lib_sign_bg.jpg diff --git a/signs_lib/textures/signs_lib_sign_wall_steel.png b/mods/signs_lib/textures/signs_lib_sign_wall_steel.png similarity index 100% rename from signs_lib/textures/signs_lib_sign_wall_steel.png rename to mods/signs_lib/textures/signs_lib_sign_wall_steel.png diff --git a/signs_lib/textures/signs_lib_sign_wall_steel_edges.png b/mods/signs_lib/textures/signs_lib_sign_wall_steel_edges.png similarity index 100% rename from signs_lib/textures/signs_lib_sign_wall_steel_edges.png rename to mods/signs_lib/textures/signs_lib_sign_wall_steel_edges.png diff --git a/signs_lib/textures/signs_lib_sign_wall_steel_inv.png b/mods/signs_lib/textures/signs_lib_sign_wall_steel_inv.png similarity index 100% rename from signs_lib/textures/signs_lib_sign_wall_steel_inv.png rename to mods/signs_lib/textures/signs_lib_sign_wall_steel_inv.png diff --git a/signs_lib/textures/signs_lib_sign_wall_wooden.png b/mods/signs_lib/textures/signs_lib_sign_wall_wooden.png similarity index 100% rename from signs_lib/textures/signs_lib_sign_wall_wooden.png rename to mods/signs_lib/textures/signs_lib_sign_wall_wooden.png diff --git a/signs_lib/textures/signs_lib_sign_wall_wooden_edges.png b/mods/signs_lib/textures/signs_lib_sign_wall_wooden_edges.png similarity index 100% rename from signs_lib/textures/signs_lib_sign_wall_wooden_edges.png rename to mods/signs_lib/textures/signs_lib_sign_wall_wooden_edges.png diff --git a/signs_lib/textures/signs_lib_sign_wall_wooden_inv.png b/mods/signs_lib/textures/signs_lib_sign_wall_wooden_inv.png similarity index 100% rename from signs_lib/textures/signs_lib_sign_wall_wooden_inv.png rename to mods/signs_lib/textures/signs_lib_sign_wall_wooden_inv.png diff --git a/signs_lib/textures/signs_lib_switch_interm.png b/mods/signs_lib/textures/signs_lib_switch_interm.png similarity index 100% rename from signs_lib/textures/signs_lib_switch_interm.png rename to mods/signs_lib/textures/signs_lib_switch_interm.png diff --git a/signs_lib/textures/signs_lib_switch_off.png b/mods/signs_lib/textures/signs_lib_switch_off.png similarity index 100% rename from signs_lib/textures/signs_lib_switch_off.png rename to mods/signs_lib/textures/signs_lib_switch_off.png diff --git a/signs_lib/textures/signs_lib_switch_on.png b/mods/signs_lib/textures/signs_lib_switch_on.png similarity index 100% rename from signs_lib/textures/signs_lib_switch_on.png rename to mods/signs_lib/textures/signs_lib_switch_on.png diff --git a/signs_lib/textures/signs_lib_wide_font_overlay_inv.png b/mods/signs_lib/textures/signs_lib_wide_font_overlay_inv.png similarity index 100% rename from signs_lib/textures/signs_lib_wide_font_overlay_inv.png rename to mods/signs_lib/textures/signs_lib_wide_font_overlay_inv.png diff --git a/signs_lib/util/LICENSE b/mods/signs_lib/util/LICENSE similarity index 100% rename from signs_lib/util/LICENSE rename to mods/signs_lib/util/LICENSE diff --git a/signs_lib/util/README.md b/mods/signs_lib/util/README.md similarity index 100% rename from signs_lib/util/README.md rename to mods/signs_lib/util/README.md diff --git a/signs_lib/util/create-signs-lib-overlay.sh b/mods/signs_lib/util/create-signs-lib-overlay.sh similarity index 100% rename from signs_lib/util/create-signs-lib-overlay.sh rename to mods/signs_lib/util/create-signs-lib-overlay.sh diff --git a/signs_lib/util/nonascii-de b/mods/signs_lib/util/nonascii-de similarity index 100% rename from signs_lib/util/nonascii-de rename to mods/signs_lib/util/nonascii-de diff --git a/signs_lib/util/nonascii-fr b/mods/signs_lib/util/nonascii-fr similarity index 100% rename from signs_lib/util/nonascii-fr rename to mods/signs_lib/util/nonascii-fr diff --git a/signs_lib/util/nonascii-pl b/mods/signs_lib/util/nonascii-pl similarity index 100% rename from signs_lib/util/nonascii-pl rename to mods/signs_lib/util/nonascii-pl diff --git a/signs_lib/util/unicode-numbers.sh b/mods/signs_lib/util/unicode-numbers.sh similarity index 100% rename from signs_lib/util/unicode-numbers.sh rename to mods/signs_lib/util/unicode-numbers.sh diff --git a/signs_lib/util/write-ascii.sh b/mods/signs_lib/util/write-ascii.sh similarity index 100% rename from signs_lib/util/write-ascii.sh rename to mods/signs_lib/util/write-ascii.sh diff --git a/signs_lib/util/write-nonascii.sh b/mods/signs_lib/util/write-nonascii.sh similarity index 100% rename from signs_lib/util/write-nonascii.sh rename to mods/signs_lib/util/write-nonascii.sh diff --git a/simple_streetlights/LICENSE b/mods/simple_streetlights/LICENSE similarity index 100% rename from simple_streetlights/LICENSE rename to mods/simple_streetlights/LICENSE diff --git a/simple_streetlights/depends.txt b/mods/simple_streetlights/depends.txt similarity index 100% rename from simple_streetlights/depends.txt rename to mods/simple_streetlights/depends.txt diff --git a/simple_streetlights/init.lua b/mods/simple_streetlights/init.lua similarity index 100% rename from simple_streetlights/init.lua rename to mods/simple_streetlights/init.lua diff --git a/simple_streetlights/minedot.lua b/mods/simple_streetlights/minedot.lua similarity index 100% rename from simple_streetlights/minedot.lua rename to mods/simple_streetlights/minedot.lua diff --git a/simple_streetlights/mod.conf b/mods/simple_streetlights/mod.conf similarity index 100% rename from simple_streetlights/mod.conf rename to mods/simple_streetlights/mod.conf diff --git a/simple_streetlights/schems/streetlight-double.mts b/mods/simple_streetlights/schems/streetlight-double.mts similarity index 100% rename from simple_streetlights/schems/streetlight-double.mts rename to mods/simple_streetlights/schems/streetlight-double.mts diff --git a/simple_streetlights/schems/streetlight-single.mts b/mods/simple_streetlights/schems/streetlight-single.mts similarity index 100% rename from simple_streetlights/schems/streetlight-single.mts rename to mods/simple_streetlights/schems/streetlight-single.mts diff --git a/simple_streetlights/simple.lua b/mods/simple_streetlights/simple.lua similarity index 100% rename from simple_streetlights/simple.lua rename to mods/simple_streetlights/simple.lua diff --git a/simple_streetlights/textures/minedot_streetlights_double.png b/mods/simple_streetlights/textures/minedot_streetlights_double.png similarity index 100% rename from simple_streetlights/textures/minedot_streetlights_double.png rename to mods/simple_streetlights/textures/minedot_streetlights_double.png diff --git a/simple_streetlights/textures/minedot_streetlights_single.png b/mods/simple_streetlights/textures/minedot_streetlights_single.png similarity index 100% rename from simple_streetlights/textures/minedot_streetlights_single.png rename to mods/simple_streetlights/textures/minedot_streetlights_single.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_light_source_glowlight_cube.png b/mods/simple_streetlights/textures/simple_streetlights_inv_light_source_glowlight_cube.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_light_source_glowlight_cube.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_light_source_glowlight_cube.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_light_source_ilight.png b/mods/simple_streetlights/textures/simple_streetlights_inv_light_source_ilight.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_light_source_ilight.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_light_source_ilight.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_light_source_meselamp.png b/mods/simple_streetlights/textures/simple_streetlights_inv_light_source_meselamp.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_light_source_meselamp.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_light_source_meselamp.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_brass.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_brass.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_brass.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_brass.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_digiline_overlay.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_digiline_overlay.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_digiline_overlay.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_digiline_overlay.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_distributor_overlay.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_distributor_overlay.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_distributor_overlay.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_distributor_overlay.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_junglewood.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_junglewood.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_junglewood.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_junglewood.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_steel.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_steel.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_steel.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_steel.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_vertical_digiline_overlay.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_vertical_digiline_overlay.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_vertical_digiline_overlay.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_vertical_digiline_overlay.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_wood.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_wood.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_wood.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_wood.png diff --git a/simple_streetlights/textures/simple_streetlights_inv_pole_wrought_iron.png b/mods/simple_streetlights/textures/simple_streetlights_inv_pole_wrought_iron.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_inv_pole_wrought_iron.png rename to mods/simple_streetlights/textures/simple_streetlights_inv_pole_wrought_iron.png diff --git a/simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_cnb.png b/mods/simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_cnb.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_cnb.png rename to mods/simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_cnb.png diff --git a/simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_fl.png b/mods/simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_fl.png similarity index 100% rename from simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_fl.png rename to mods/simple_streetlights/textures/simple_streetlights_pole_digiline_overlay_fl.png diff --git a/solidcolor/LICENSE b/mods/solidcolor/LICENSE similarity index 100% rename from solidcolor/LICENSE rename to mods/solidcolor/LICENSE diff --git a/solidcolor/depends.txt b/mods/solidcolor/depends.txt similarity index 100% rename from solidcolor/depends.txt rename to mods/solidcolor/depends.txt diff --git a/solidcolor/init.lua b/mods/solidcolor/init.lua similarity index 100% rename from solidcolor/init.lua rename to mods/solidcolor/init.lua diff --git a/solidcolor/textures/solidcolor_white.png b/mods/solidcolor/textures/solidcolor_white.png similarity index 100% rename from solidcolor/textures/solidcolor_white.png rename to mods/solidcolor/textures/solidcolor_white.png diff --git a/mods/spawn/README.txt b/mods/spawn/README.txt new file mode 100644 index 00000000..fc16c2a6 --- /dev/null +++ b/mods/spawn/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: spawn +======================== +See license.txt for license information. + +Authors of source code +---------------------- +paramat (MIT) diff --git a/mods/spawn/init.lua b/mods/spawn/init.lua new file mode 100644 index 00000000..12c957f9 --- /dev/null +++ b/mods/spawn/init.lua @@ -0,0 +1,158 @@ +-- spawn/init.lua + +-- Disable by mapgen, setting or if 'static_spawnpoint' is set +-------------------------------------------------------------- + +local mg_name = minetest.get_mapgen_setting("mg_name") +if mg_name == "v6" or mg_name == "singlenode" or + minetest.settings:get("static_spawnpoint") or + minetest.settings:get_bool("engine_spawn") then + return +end + + +-- Parameters +------------- + +-- Resolution of search grid in nodes. +local res = 64 +-- Number of points checked in the square search grid (edge * edge). +local checks = 128 * 128 +-- Starting point for biome checks. This also sets the y co-ordinate for all +-- points checked, so the suitable biomes must be active at this y. +local pos = {x = 0, y = 8, z = 0} + + +-- Table of suitable biomes + +local biome_ids = { + minetest.get_biome_id("taiga"), + minetest.get_biome_id("coniferous_forest"), + minetest.get_biome_id("deciduous_forest"), + minetest.get_biome_id("grassland"), + minetest.get_biome_id("savanna"), +} + +-- End of parameters +-------------------- + + +-- Direction table + +local dirs = { + {x = 0, y = 0, z = 1}, + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}, + {x = 1, y = 0, z = 0}, +} + + +-- Initial variables + +local edge_len = 1 +local edge_dist = 0 +local dir_step = 0 +local dir_ind = 1 +local searched = false +local success = false +local spawn_pos = {} + + +-- Get world 'mapgen_limit' and 'chunksize' to calculate 'spawn_limit'. +-- This accounts for how mapchunks are not generated if they or their shell exceed +-- 'mapgen_limit'. + +local mapgen_limit = tonumber(minetest.get_mapgen_setting("mapgen_limit")) +local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) +local spawn_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0) + + +--Functions +----------- + +-- Get next position on square search spiral + +local function next_pos() + if edge_dist == edge_len then + edge_dist = 0 + dir_ind = dir_ind + 1 + if dir_ind == 5 then + dir_ind = 1 + end + dir_step = dir_step + 1 + edge_len = math.floor(dir_step / 2) + 1 + end + + local dir = dirs[dir_ind] + local move = vector.multiply(dir, res) + + edge_dist = edge_dist + 1 + + return vector.add(pos, move) +end + + +-- Spawn position search + +local function search() + for iter = 1, checks do + local biome_data = minetest.get_biome_data(pos) + -- Sometimes biome_data is nil + local biome = biome_data and biome_data.biome + for id_ind = 1, #biome_ids do + local biome_id = biome_ids[id_ind] + if biome == biome_id then + local spawn_y = minetest.get_spawn_level(pos.x, pos.z) + if spawn_y then + spawn_pos = {x = pos.x, y = spawn_y, z = pos.z} + return true + end + end + end + + pos = next_pos() + -- Check for position being outside world edge + if math.abs(pos.x) > spawn_limit or math.abs(pos.z) > spawn_limit then + return false + end + end + + return false +end + + +-- On new player spawn and player respawn + +-- Search for spawn position once per server session. If successful, store +-- position and reposition players, otherwise leave them at engine spawn +-- position. + +local function on_spawn(player) + if not searched then + success = search() + searched = true + end + if success then + player:set_pos(spawn_pos) + end + return success +end + +minetest.register_on_newplayer(function(player) + on_spawn(player) +end) + +local enable_bed_respawn = minetest.settings:get_bool("enable_bed_respawn") +if enable_bed_respawn == nil then + enable_bed_respawn = true +end + +minetest.register_on_respawnplayer(function(player) + -- Avoid respawn conflict with beds mod + if beds and enable_bed_respawn and + beds.spawn[player:get_player_name()] then + return + end + + return on_spawn(player) +end) diff --git a/mods/spawn/license.txt b/mods/spawn/license.txt new file mode 100644 index 00000000..a466aabd --- /dev/null +++ b/mods/spawn/license.txt @@ -0,0 +1,24 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2018 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/spawn/mod.conf b/mods/spawn/mod.conf new file mode 100644 index 00000000..ec3d5648 --- /dev/null +++ b/mods/spawn/mod.conf @@ -0,0 +1,4 @@ +name = spawn +description = Minetest Game mod: spawn +depends = default +optional_depends = beds diff --git a/stained_glass/LICENSE b/mods/stained_glass/LICENSE similarity index 100% rename from stained_glass/LICENSE rename to mods/stained_glass/LICENSE diff --git a/stained_glass/LICENSE.txt b/mods/stained_glass/LICENSE.txt similarity index 100% rename from stained_glass/LICENSE.txt rename to mods/stained_glass/LICENSE.txt diff --git a/stained_glass/README.md b/mods/stained_glass/README.md similarity index 100% rename from stained_glass/README.md rename to mods/stained_glass/README.md diff --git a/stained_glass/changelog.txt b/mods/stained_glass/changelog.txt similarity index 100% rename from stained_glass/changelog.txt rename to mods/stained_glass/changelog.txt diff --git a/stained_glass/colors.txt b/mods/stained_glass/colors.txt similarity index 100% rename from stained_glass/colors.txt rename to mods/stained_glass/colors.txt diff --git a/stained_glass/geany_run_script.sh b/mods/stained_glass/geany_run_script.sh similarity index 100% rename from stained_glass/geany_run_script.sh rename to mods/stained_glass/geany_run_script.sh diff --git a/stained_glass/init.lua b/mods/stained_glass/init.lua similarity index 100% rename from stained_glass/init.lua rename to mods/stained_glass/init.lua diff --git a/stained_glass/mod.conf b/mods/stained_glass/mod.conf similarity index 100% rename from stained_glass/mod.conf rename to mods/stained_glass/mod.conf diff --git a/stained_glass/settings.txt b/mods/stained_glass/settings.txt similarity index 100% rename from stained_glass/settings.txt rename to mods/stained_glass/settings.txt diff --git a/stained_glass/textures/stained_glass.png b/mods/stained_glass/textures/stained_glass.png similarity index 100% rename from stained_glass/textures/stained_glass.png rename to mods/stained_glass/textures/stained_glass.png diff --git a/stained_glass/textures/stained_glass_detail.png b/mods/stained_glass/textures/stained_glass_detail.png similarity index 100% rename from stained_glass/textures/stained_glass_detail.png rename to mods/stained_glass/textures/stained_glass_detail.png diff --git a/mods/stairs/README.txt b/mods/stairs/README.txt new file mode 100644 index 00000000..26317f7f --- /dev/null +++ b/mods/stairs/README.txt @@ -0,0 +1,27 @@ +Minetest Game mod: stairs +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Kahrl (LGPLv2.1+) and +celeron55, Perttu Ahola (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +Authors of media (textures) +--------------------------- + +Textures +-------- +Copyright (c) 2018 Shara RedCat (CC BY-SA 3.0): + Derived from a texture by PilzAdam (CC BY-SA 3.0): + stairs_obsidian_glass_outer_stairside.png + stairs_obsidian_glass_stairside.png + +Copyright (c) 2018 TumeniNodes (CC BY-SA 3.0): + Derived from a texture by celeron55 (CC BY-SA 3.0) and + converted to bright white by Krock (CC BY-SA 3.0): + stairs_glass_stairside.png + stairs_glass_split.png + Derived from a texture by PilzAdam (CC BY-SA 3.0): + stairs_obsidian_glass_split.png diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua new file mode 100644 index 00000000..89e0d24a --- /dev/null +++ b/mods/stairs/init.lua @@ -0,0 +1,1125 @@ +-- stairs/init.lua + +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + + +-- Global namespace for functions + +stairs = {} + +-- Load support for MT game translation. +local S = minetest.get_translator("stairs") +-- Same as S, but will be ignored by translation file update scripts +local T = S + + +-- Register aliases for new pine node names + +minetest.register_alias("stairs:stair_pinewood", "stairs:stair_pine_wood") +minetest.register_alias("stairs:slab_pinewood", "stairs:slab_pine_wood") + + +-- Get setting for replace ABM + +local replace = minetest.settings:get_bool("enable_stairs_replace_abm") + +local function rotate_and_place(itemstack, placer, pointed_thing) + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + if placer then + local placer_pos = placer:get_pos() + if placer_pos then + param2 = minetest.dir_to_facedir(vector.subtract(p1, placer_pos)) + end + + local finepos = minetest.pointed_thing_to_face_pos(placer, pointed_thing) + local fpos = finepos.y % 1 + + if p0.y - 1 == p1.y or (fpos > 0 and fpos < 0.5) + or (fpos < -0.5 and fpos > -0.999999999) then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + end + return minetest.item_place(itemstack, placer, pointed_thing, param2) +end + +local function warn_if_exists(nodename) + if minetest.registered_nodes[nodename] then + minetest.log("warning", "Overwriting stairs node: " .. nodename) + end +end + + +-- Register stair +-- Node will be called stairs:stair_ + +function stairs.register_stair(subname, recipeitem, groups, images, description, + sounds, worldaligntex) + local src_def = minetest.registered_nodes[recipeitem] + + -- Set backface culling and world-aligned textures + local stair_images = {} + for i, image in ipairs(images) do + if type(image) == "string" then + stair_images[i] = { + name = image, + backface_culling = true, + } + if worldaligntex then + stair_images[i].align_style = "world" + end + else + stair_images[i] = table.copy(image) + if stair_images[i].backface_culling == nil then + stair_images[i].backface_culling = true + end + if worldaligntex and stair_images[i].align_style == nil then + stair_images[i].align_style = "world" + end + end + end + local new_groups = table.copy(groups) + new_groups.stair = 1 + warn_if_exists("stairs:stair_" .. subname) + minetest.register_node(":stairs:stair_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = stair_images, + use_texture_alpha = src_def and src_def.use_texture_alpha, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = new_groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.0, 0.5}, + {-0.5, 0.0, 0.0, 0.5, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + return rotate_and_place(itemstack, placer, pointed_thing) + end, + }) + + -- for replace ABM + if replace then + minetest.register_node(":stairs:stair_" .. subname .. "upside_down", { + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace = 1}, + }) + end + + if recipeitem then + -- Recipe matches appearence in inventory + minetest.register_craft({ + output = "stairs:stair_" .. subname .. " 8", + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Use stairs to craft full blocks again (1:1) + minetest.register_craft({ + output = recipeitem .. " 3", + recipe = { + {"stairs:stair_" .. subname, "stairs:stair_" .. subname}, + {"stairs:stair_" .. subname, "stairs:stair_" .. subname}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = "stairs:stair_" .. subname, + burntime = math.floor(baseburntime * 0.75), + }) + end + end +end + + +-- Register slab +-- Node will be called stairs:slab_ + +function stairs.register_slab(subname, recipeitem, groups, images, description, + sounds, worldaligntex) + local src_def = minetest.registered_nodes[recipeitem] + + -- Set world-aligned textures + local slab_images = {} + for i, image in ipairs(images) do + if type(image) == "string" then + slab_images[i] = { + name = image, + } + if worldaligntex then + slab_images[i].align_style = "world" + end + else + slab_images[i] = table.copy(image) + if worldaligntex and image.align_style == nil then + slab_images[i].align_style = "world" + end + end + end + local new_groups = table.copy(groups) + new_groups.slab = 1 + warn_if_exists("stairs:slab_" .. subname) + minetest.register_node(":stairs:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = slab_images, + use_texture_alpha = src_def and src_def.use_texture_alpha, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = new_groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_place = function(itemstack, placer, pointed_thing) + local under = minetest.get_node(pointed_thing.under) + local wield_item = itemstack:get_name() + local player_name = placer and placer:get_player_name() or "" + + if under and under.name:find("^stairs:slab_") then + -- place slab using under node orientation + local dir = minetest.dir_to_facedir(vector.subtract( + pointed_thing.above, pointed_thing.under), true) + + local p2 = under.param2 + + -- Placing a slab on an upside down slab should make it right-side up. + if p2 >= 20 and dir == 8 then + p2 = p2 - 20 + -- same for the opposite case: slab below normal slab + elseif p2 <= 3 and dir == 4 then + p2 = p2 + 20 + end + + -- else attempt to place node with proper param2 + minetest.item_place_node(ItemStack(wield_item), placer, pointed_thing, p2) + if not minetest.is_creative_enabled(player_name) then + itemstack:take_item() + end + return itemstack + else + return rotate_and_place(itemstack, placer, pointed_thing) + end + end, + }) + + -- for replace ABM + if replace then + minetest.register_node(":stairs:slab_" .. subname .. "upside_down", { + replace_name = "stairs:slab_".. subname, + groups = {slabs_replace = 1}, + }) + end + + if recipeitem then + minetest.register_craft({ + output = "stairs:slab_" .. subname .. " 6", + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Use 2 slabs to craft a full block again (1:1) + minetest.register_craft({ + output = recipeitem, + recipe = { + {"stairs:slab_" .. subname}, + {"stairs:slab_" .. subname}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = "stairs:slab_" .. subname, + burntime = math.floor(baseburntime * 0.5), + }) + end + end +end + + +-- Optionally replace old "upside_down" nodes with new param2 versions. +-- Disabled by default. + +if replace then + minetest.register_abm({ + label = "Slab replace", + nodenames = {"group:slabs_replace"}, + interval = 16, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, + }) +end + + +-- Register inner stair +-- Node will be called stairs:stair_inner_ + +function stairs.register_stair_inner(subname, recipeitem, groups, images, + description, sounds, worldaligntex, full_description) + local src_def = minetest.registered_nodes[recipeitem] + + -- Set backface culling and world-aligned textures + local stair_images = {} + for i, image in ipairs(images) do + if type(image) == "string" then + stair_images[i] = { + name = image, + backface_culling = true, + } + if worldaligntex then + stair_images[i].align_style = "world" + end + else + stair_images[i] = table.copy(image) + if stair_images[i].backface_culling == nil then + stair_images[i].backface_culling = true + end + if worldaligntex and stair_images[i].align_style == nil then + stair_images[i].align_style = "world" + end + end + end + local new_groups = table.copy(groups) + new_groups.stair = 1 + if full_description then + description = full_description + else + description = "Inner " .. description + end + warn_if_exists("stairs:stair_inner_" .. subname) + minetest.register_node(":stairs:stair_inner_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = stair_images, + use_texture_alpha = src_def and src_def.use_texture_alpha, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = new_groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.0, 0.5}, + {-0.5, 0.0, 0.0, 0.5, 0.5, 0.5}, + {-0.5, 0.0, -0.5, 0.0, 0.5, 0.0}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + return rotate_and_place(itemstack, placer, pointed_thing) + end, + }) + + if recipeitem then + minetest.register_craft({ + output = "stairs:stair_inner_" .. subname .. " 7", + recipe = { + {"", recipeitem, ""}, + {recipeitem, "", recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = "stairs:stair_inner_" .. subname, + burntime = math.floor(baseburntime * 0.875), + }) + end + end +end + + +-- Register outer stair +-- Node will be called stairs:stair_outer_ + +function stairs.register_stair_outer(subname, recipeitem, groups, images, + description, sounds, worldaligntex, full_description) + local src_def = minetest.registered_nodes[recipeitem] + + -- Set backface culling and world-aligned textures + local stair_images = {} + for i, image in ipairs(images) do + if type(image) == "string" then + stair_images[i] = { + name = image, + backface_culling = true, + } + if worldaligntex then + stair_images[i].align_style = "world" + end + else + stair_images[i] = table.copy(image) + if stair_images[i].backface_culling == nil then + stair_images[i].backface_culling = true + end + if worldaligntex and stair_images[i].align_style == nil then + stair_images[i].align_style = "world" + end + end + end + local new_groups = table.copy(groups) + new_groups.stair = 1 + if full_description then + description = full_description + else + description = "Outer " .. description + end + warn_if_exists("stairs:stair_outer_" .. subname) + minetest.register_node(":stairs:stair_outer_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = stair_images, + use_texture_alpha = src_def and src_def.use_texture_alpha, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = new_groups, + sounds = sounds, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.0, 0.5}, + {-0.5, 0.0, 0.0, 0.0, 0.5, 0.5}, + }, + }, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + return rotate_and_place(itemstack, placer, pointed_thing) + end, + }) + + if recipeitem then + minetest.register_craft({ + output = "stairs:stair_outer_" .. subname .. " 6", + recipe = { + {"", recipeitem, ""}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = "stairs:stair_outer_" .. subname, + burntime = math.floor(baseburntime * 0.625), + }) + end + end +end + + +-- Stair/slab registration function. +-- Nodes will be called stairs:{stair,slab}_ + +function stairs.register_stair_and_slab(subname, recipeitem, groups, images, + desc_stair, desc_slab, sounds, worldaligntex, + desc_stair_inner, desc_stair_outer) + stairs.register_stair(subname, recipeitem, groups, images, desc_stair, + sounds, worldaligntex) + stairs.register_stair_inner(subname, recipeitem, groups, images, + desc_stair, sounds, worldaligntex, desc_stair_inner) + stairs.register_stair_outer(subname, recipeitem, groups, images, + desc_stair, sounds, worldaligntex, desc_stair_outer) + stairs.register_slab(subname, recipeitem, groups, images, desc_slab, + sounds, worldaligntex) +end + +-- Local function so we can apply translations +local function my_register_stair_and_slab(subname, recipeitem, groups, images, + desc_stair, desc_slab, sounds, worldaligntex) + stairs.register_stair(subname, recipeitem, groups, images, S(desc_stair), + sounds, worldaligntex) + stairs.register_stair_inner(subname, recipeitem, groups, images, "", + sounds, worldaligntex, T("Inner " .. desc_stair)) + stairs.register_stair_outer(subname, recipeitem, groups, images, "", + sounds, worldaligntex, T("Outer " .. desc_stair)) + stairs.register_slab(subname, recipeitem, groups, images, S(desc_slab), + sounds, worldaligntex) +end + + +-- Register default stairs and slabs + +my_register_stair_and_slab( + "wood", + "default:wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_wood.png"}, + "Wooden Stair", + "Wooden Slab", + default.node_sound_wood_defaults(), + false +) + +my_register_stair_and_slab( + "junglewood", + "default:junglewood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_junglewood.png"}, + "Jungle Wood Stair", + "Jungle Wood Slab", + default.node_sound_wood_defaults(), + false +) + +my_register_stair_and_slab( + "pine_wood", + "default:pine_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_pine_wood.png"}, + "Pine Wood Stair", + "Pine Wood Slab", + default.node_sound_wood_defaults(), + false +) + +my_register_stair_and_slab( + "acacia_wood", + "default:acacia_wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_acacia_wood.png"}, + "Acacia Wood Stair", + "Acacia Wood Slab", + default.node_sound_wood_defaults(), + false +) + +my_register_stair_and_slab( + "aspen_wood", + "default:aspen_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_aspen_wood.png"}, + "Aspen Wood Stair", + "Aspen Wood Slab", + default.node_sound_wood_defaults(), + false +) + +my_register_stair_and_slab( + "stone", + "default:stone", + {cracky = 3}, + {"default_stone.png"}, + "Stone Stair", + "Stone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "cobble", + "default:cobble", + {cracky = 3}, + {"default_cobble.png"}, + "Cobblestone Stair", + "Cobblestone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "mossycobble", + "default:mossycobble", + {cracky = 3}, + {"default_mossycobble.png"}, + "Mossy Cobblestone Stair", + "Mossy Cobblestone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "stonebrick", + "default:stonebrick", + {cracky = 2}, + {"default_stone_brick.png"}, + "Stone Brick Stair", + "Stone Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "stone_block", + "default:stone_block", + {cracky = 2}, + {"default_stone_block.png"}, + "Stone Block Stair", + "Stone Block Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "desert_stone", + "default:desert_stone", + {cracky = 3}, + {"default_desert_stone.png"}, + "Desert Stone Stair", + "Desert Stone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "desert_cobble", + "default:desert_cobble", + {cracky = 3}, + {"default_desert_cobble.png"}, + "Desert Cobblestone Stair", + "Desert Cobblestone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "desert_stonebrick", + "default:desert_stonebrick", + {cracky = 2}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Stair", + "Desert Stone Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "desert_stone_block", + "default:desert_stone_block", + {cracky = 2}, + {"default_desert_stone_block.png"}, + "Desert Stone Block Stair", + "Desert Stone Block Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "sandstone", + "default:sandstone", + {crumbly = 1, cracky = 3}, + {"default_sandstone.png"}, + "Sandstone Stair", + "Sandstone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "sandstonebrick", + "default:sandstonebrick", + {cracky = 2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Stair", + "Sandstone Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "sandstone_block", + "default:sandstone_block", + {cracky = 2}, + {"default_sandstone_block.png"}, + "Sandstone Block Stair", + "Sandstone Block Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "desert_sandstone", + "default:desert_sandstone", + {crumbly = 1, cracky = 3}, + {"default_desert_sandstone.png"}, + "Desert Sandstone Stair", + "Desert Sandstone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "desert_sandstone_brick", + "default:desert_sandstone_brick", + {cracky = 2}, + {"default_desert_sandstone_brick.png"}, + "Desert Sandstone Brick Stair", + "Desert Sandstone Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "desert_sandstone_block", + "default:desert_sandstone_block", + {cracky = 2}, + {"default_desert_sandstone_block.png"}, + "Desert Sandstone Block Stair", + "Desert Sandstone Block Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "silver_sandstone", + "default:silver_sandstone", + {crumbly = 1, cracky = 3}, + {"default_silver_sandstone.png"}, + "Silver Sandstone Stair", + "Silver Sandstone Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "silver_sandstone_brick", + "default:silver_sandstone_brick", + {cracky = 2}, + {"default_silver_sandstone_brick.png"}, + "Silver Sandstone Brick Stair", + "Silver Sandstone Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "silver_sandstone_block", + "default:silver_sandstone_block", + {cracky = 2}, + {"default_silver_sandstone_block.png"}, + "Silver Sandstone Block Stair", + "Silver Sandstone Block Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "obsidian", + "default:obsidian", + {cracky = 1, level = 2}, + {"default_obsidian.png"}, + "Obsidian Stair", + "Obsidian Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "obsidianbrick", + "default:obsidianbrick", + {cracky = 1, level = 2}, + {"default_obsidian_brick.png"}, + "Obsidian Brick Stair", + "Obsidian Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "obsidian_block", + "default:obsidian_block", + {cracky = 1, level = 2}, + {"default_obsidian_block.png"}, + "Obsidian Block Stair", + "Obsidian Block Slab", + default.node_sound_stone_defaults(), + true +) + +my_register_stair_and_slab( + "brick", + "default:brick", + {cracky = 3}, + {"default_brick.png"}, + "Brick Stair", + "Brick Slab", + default.node_sound_stone_defaults(), + false +) + +my_register_stair_and_slab( + "steelblock", + "default:steelblock", + {cracky = 1, level = 2}, + {"default_steel_block.png"}, + "Steel Block Stair", + "Steel Block Slab", + default.node_sound_metal_defaults(), + true +) + +my_register_stair_and_slab( + "tinblock", + "default:tinblock", + {cracky = 1, level = 2}, + {"default_tin_block.png"}, + "Tin Block Stair", + "Tin Block Slab", + default.node_sound_metal_defaults(), + true +) + +my_register_stair_and_slab( + "copperblock", + "default:copperblock", + {cracky = 1, level = 2}, + {"default_copper_block.png"}, + "Copper Block Stair", + "Copper Block Slab", + default.node_sound_metal_defaults(), + true +) + +my_register_stair_and_slab( + "bronzeblock", + "default:bronzeblock", + {cracky = 1, level = 2}, + {"default_bronze_block.png"}, + "Bronze Block Stair", + "Bronze Block Slab", + default.node_sound_metal_defaults(), + true +) + +my_register_stair_and_slab( + "goldblock", + "default:goldblock", + {cracky = 1}, + {"default_gold_block.png"}, + "Gold Block Stair", + "Gold Block Slab", + default.node_sound_metal_defaults(), + true +) + +my_register_stair_and_slab( + "ice", + "default:ice", + {cracky = 3, cools_lava = 1, slippery = 3}, + {"default_ice.png"}, + "Ice Stair", + "Ice Slab", + default.node_sound_ice_defaults(), + true +) + +my_register_stair_and_slab( + "snowblock", + "default:snowblock", + {crumbly = 3, cools_lava = 1, snowy = 1}, + {"default_snow.png"}, + "Snow Block Stair", + "Snow Block Slab", + default.node_sound_snow_defaults(), + true +) + +-- Glass stair nodes need to be registered individually to utilize specialized textures. + +stairs.register_stair( + "glass", + "default:glass", + {cracky = 3, oddly_breakable_by_hand = 3}, + {"stairs_glass_split.png", "default_glass.png", + "stairs_glass_stairside.png^[transformFX", "stairs_glass_stairside.png", + "default_glass.png", "stairs_glass_split.png"}, + S("Glass Stair"), + default.node_sound_glass_defaults(), + false +) + +stairs.register_slab( + "glass", + "default:glass", + {cracky = 3, oddly_breakable_by_hand = 3}, + {"default_glass.png", "default_glass.png", "stairs_glass_split.png"}, + S("Glass Slab"), + default.node_sound_glass_defaults(), + false +) + +stairs.register_stair_inner( + "glass", + "default:glass", + {cracky = 3, oddly_breakable_by_hand = 3}, + {"stairs_glass_stairside.png^[transformR270", "default_glass.png", + "stairs_glass_stairside.png^[transformFX", "default_glass.png", + "default_glass.png", "stairs_glass_stairside.png"}, + "", + default.node_sound_glass_defaults(), + false, + S("Inner Glass Stair") +) + +stairs.register_stair_outer( + "glass", + "default:glass", + {cracky = 3, oddly_breakable_by_hand = 3}, + {"stairs_glass_stairside.png^[transformR90", "default_glass.png", + "stairs_glass_outer_stairside.png", "stairs_glass_stairside.png", + "stairs_glass_stairside.png^[transformR90","stairs_glass_outer_stairside.png"}, + "", + default.node_sound_glass_defaults(), + false, + S("Outer Glass Stair") +) + +stairs.register_stair( + "obsidian_glass", + "default:obsidian_glass", + {cracky = 3}, + {"stairs_obsidian_glass_split.png", "default_obsidian_glass.png", + "stairs_obsidian_glass_stairside.png^[transformFX", "stairs_obsidian_glass_stairside.png", + "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"}, + S("Obsidian Glass Stair"), + default.node_sound_glass_defaults(), + false +) + +stairs.register_slab( + "obsidian_glass", + "default:obsidian_glass", + {cracky = 3}, + {"default_obsidian_glass.png", "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"}, + S("Obsidian Glass Slab"), + default.node_sound_glass_defaults(), + false +) + +stairs.register_stair_inner( + "obsidian_glass", + "default:obsidian_glass", + {cracky = 3}, + {"stairs_obsidian_glass_stairside.png^[transformR270", "default_obsidian_glass.png", + "stairs_obsidian_glass_stairside.png^[transformFX", "default_obsidian_glass.png", + "default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png"}, + "", + default.node_sound_glass_defaults(), + false, + S("Inner Obsidian Glass Stair") +) + +stairs.register_stair_outer( + "obsidian_glass", + "default:obsidian_glass", + {cracky = 3}, + {"stairs_obsidian_glass_stairside.png^[transformR90", "default_obsidian_glass.png", + "stairs_obsidian_glass_outer_stairside.png", "stairs_obsidian_glass_stairside.png", + "stairs_obsidian_glass_stairside.png^[transformR90","stairs_obsidian_glass_outer_stairside.png"}, + "", + default.node_sound_glass_defaults(), + false, + S("Outer Obsidian Glass Stair") +) + +-- Dummy calls to S() to allow translation scripts to detect the strings. +-- To update this add this code to my_register_stair_and_slab: +-- for _,x in ipairs({"","Inner ","Outer "}) do print(("S(%q)"):format(x..desc_stair)) end +-- print(("S(%q)"):format(desc_slab)) + +--[[ +S("Wooden Stair") +S("Inner Wooden Stair") +S("Outer Wooden Stair") +S("Wooden Slab") +S("Jungle Wood Stair") +S("Inner Jungle Wood Stair") +S("Outer Jungle Wood Stair") +S("Jungle Wood Slab") +S("Pine Wood Stair") +S("Inner Pine Wood Stair") +S("Outer Pine Wood Stair") +S("Pine Wood Slab") +S("Acacia Wood Stair") +S("Inner Acacia Wood Stair") +S("Outer Acacia Wood Stair") +S("Acacia Wood Slab") +S("Aspen Wood Stair") +S("Inner Aspen Wood Stair") +S("Outer Aspen Wood Stair") +S("Aspen Wood Slab") +S("Stone Stair") +S("Inner Stone Stair") +S("Outer Stone Stair") +S("Stone Slab") +S("Cobblestone Stair") +S("Inner Cobblestone Stair") +S("Outer Cobblestone Stair") +S("Cobblestone Slab") +S("Mossy Cobblestone Stair") +S("Inner Mossy Cobblestone Stair") +S("Outer Mossy Cobblestone Stair") +S("Mossy Cobblestone Slab") +S("Stone Brick Stair") +S("Inner Stone Brick Stair") +S("Outer Stone Brick Stair") +S("Stone Brick Slab") +S("Stone Block Stair") +S("Inner Stone Block Stair") +S("Outer Stone Block Stair") +S("Stone Block Slab") +S("Desert Stone Stair") +S("Inner Desert Stone Stair") +S("Outer Desert Stone Stair") +S("Desert Stone Slab") +S("Desert Cobblestone Stair") +S("Inner Desert Cobblestone Stair") +S("Outer Desert Cobblestone Stair") +S("Desert Cobblestone Slab") +S("Desert Stone Brick Stair") +S("Inner Desert Stone Brick Stair") +S("Outer Desert Stone Brick Stair") +S("Desert Stone Brick Slab") +S("Desert Stone Block Stair") +S("Inner Desert Stone Block Stair") +S("Outer Desert Stone Block Stair") +S("Desert Stone Block Slab") +S("Sandstone Stair") +S("Inner Sandstone Stair") +S("Outer Sandstone Stair") +S("Sandstone Slab") +S("Sandstone Brick Stair") +S("Inner Sandstone Brick Stair") +S("Outer Sandstone Brick Stair") +S("Sandstone Brick Slab") +S("Sandstone Block Stair") +S("Inner Sandstone Block Stair") +S("Outer Sandstone Block Stair") +S("Sandstone Block Slab") +S("Desert Sandstone Stair") +S("Inner Desert Sandstone Stair") +S("Outer Desert Sandstone Stair") +S("Desert Sandstone Slab") +S("Desert Sandstone Brick Stair") +S("Inner Desert Sandstone Brick Stair") +S("Outer Desert Sandstone Brick Stair") +S("Desert Sandstone Brick Slab") +S("Desert Sandstone Block Stair") +S("Inner Desert Sandstone Block Stair") +S("Outer Desert Sandstone Block Stair") +S("Desert Sandstone Block Slab") +S("Silver Sandstone Stair") +S("Inner Silver Sandstone Stair") +S("Outer Silver Sandstone Stair") +S("Silver Sandstone Slab") +S("Silver Sandstone Brick Stair") +S("Inner Silver Sandstone Brick Stair") +S("Outer Silver Sandstone Brick Stair") +S("Silver Sandstone Brick Slab") +S("Silver Sandstone Block Stair") +S("Inner Silver Sandstone Block Stair") +S("Outer Silver Sandstone Block Stair") +S("Silver Sandstone Block Slab") +S("Obsidian Stair") +S("Inner Obsidian Stair") +S("Outer Obsidian Stair") +S("Obsidian Slab") +S("Obsidian Brick Stair") +S("Inner Obsidian Brick Stair") +S("Outer Obsidian Brick Stair") +S("Obsidian Brick Slab") +S("Obsidian Block Stair") +S("Inner Obsidian Block Stair") +S("Outer Obsidian Block Stair") +S("Obsidian Block Slab") +S("Brick Stair") +S("Inner Brick Stair") +S("Outer Brick Stair") +S("Brick Slab") +S("Steel Block Stair") +S("Inner Steel Block Stair") +S("Outer Steel Block Stair") +S("Steel Block Slab") +S("Tin Block Stair") +S("Inner Tin Block Stair") +S("Outer Tin Block Stair") +S("Tin Block Slab") +S("Copper Block Stair") +S("Inner Copper Block Stair") +S("Outer Copper Block Stair") +S("Copper Block Slab") +S("Bronze Block Stair") +S("Inner Bronze Block Stair") +S("Outer Bronze Block Stair") +S("Bronze Block Slab") +S("Gold Block Stair") +S("Inner Gold Block Stair") +S("Outer Gold Block Stair") +S("Gold Block Slab") +S("Ice Stair") +S("Inner Ice Stair") +S("Outer Ice Stair") +S("Ice Slab") +S("Snow Block Stair") +S("Inner Snow Block Stair") +S("Outer Snow Block Stair") +S("Snow Block Slab") +--]] diff --git a/mods/stairs/license.txt b/mods/stairs/license.txt new file mode 100644 index 00000000..57bd98cf --- /dev/null +++ b/mods/stairs/license.txt @@ -0,0 +1,16 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2017 Kahrl +Copyright (C) 2011-2017 celeron55, Perttu Ahola +Copyright (C) 2012-2017 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/mods/stairs/locale/stairs.de.tr b/mods/stairs/locale/stairs.de.tr new file mode 100644 index 00000000..beb45798 --- /dev/null +++ b/mods/stairs/locale/stairs.de.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Glastreppe +Glass Slab=Glasplatte +Inner Glass Stair=Innere Glastreppe +Outer Glass Stair=Äußere Glastreppe +Obsidian Glass Stair=Obsidianglastreppe +Obsidian Glass Slab=Obsidianglasplatte +Inner Obsidian Glass Stair=Innere Obsidianglastreppe +Outer Obsidian Glass Stair=Äußere Obsidianglastreppe +Wooden Stair=Holztreppe +Inner Wooden Stair=Innere Holztreppe +Outer Wooden Stair=Äußere Holztreppe +Wooden Slab=Holzplatte +Jungle Wood Stair=Dschungelholztreppe +Inner Jungle Wood Stair=Innere Dschungelholztreppe +Outer Jungle Wood Stair=Äußere Dschungelholztreppe +Jungle Wood Slab=Dschungelholzplatte +Pine Wood Stair=Kiefernholztreppe +Inner Pine Wood Stair=Innere Kiefernholztreppe +Outer Pine Wood Stair=Äußere Kiefernholztreppe +Pine Wood Slab=Kiefernholzplatte +Acacia Wood Stair=Akazienholztreppe +Inner Acacia Wood Stair=Innere Akazienholztreppe +Outer Acacia Wood Stair=Äußere Akazienholztreppe +Acacia Wood Slab=Akazienholzplatte +Aspen Wood Stair=Espenholztreppe +Inner Aspen Wood Stair=Innere Espenholztreppe +Outer Aspen Wood Stair=Äußere Espenholztreppe +Aspen Wood Slab=Espenholzplatte +Stone Stair=Steintreppe +Inner Stone Stair=Innere Steintreppe +Outer Stone Stair=Äußere Steintreppe +Stone Slab=Steinplatte +Cobblestone Stair=Kopfsteinpflastertreppe +Inner Cobblestone Stair=Innere Kopfsteinpflastertreppe +Outer Cobblestone Stair=Äußere Kopfsteinpflastertreppe +Cobblestone Slab=Kopfsteinpflasterplatte +Mossy Cobblestone Stair=Moosige Kopfsteinpflastertreppe +Inner Mossy Cobblestone Stair=Innere moosige Kopfsteinpflastertreppe +Outer Mossy Cobblestone Stair=Äußere moosige Kopfsteinpflastertreppe +Mossy Cobblestone Slab=Moosige Kopfsteinpflasterplatte +Stone Brick Stair=Steinziegeltreppe +Inner Stone Brick Stair=Innere Steinziegeltreppe +Outer Stone Brick Stair=Äußere Steinziegeltreppe +Stone Brick Slab=Steinziegelplatte +Stone Block Stair=Steinblocktreppe +Inner Stone Block Stair=Innere Steinblocktreppe +Outer Stone Block Stair=Äußere Steinblocktreppe +Stone Block Slab=Steinblockplatte +Desert Stone Stair=Wüstensteintreppe +Inner Desert Stone Stair=Innere Wüstensteintreppe +Outer Desert Stone Stair=Äußere Wüstensteintreppe +Desert Stone Slab=Wüstensteinplatte +Desert Cobblestone Stair=Wüstenkopfsteinpflastertreppe +Inner Desert Cobblestone Stair=Innere Wüstenkopfsteinpflastertreppe +Outer Desert Cobblestone Stair=Äußere Wüstenkopfsteinpflastertreppe +Desert Cobblestone Slab=Wüstenkopfsteinpflasterplatte +Desert Stone Brick Stair=Wüstensteinziegeltreppe +Inner Desert Stone Brick Stair=Innere Wüstensteinziegeltreppe +Outer Desert Stone Brick Stair=Äußere Wüstensteinziegeltreppe +Desert Stone Brick Slab=Wüstensteinziegelplatte +Desert Stone Block Stair=Wüstensteinblocktreppe +Inner Desert Stone Block Stair=Innere Wüstensteinblocktreppe +Outer Desert Stone Block Stair=Äußere Wüstensteinblocktreppe +Desert Stone Block Slab=Wüstensteinblockplatte +Sandstone Stair=Sandsteintreppe +Inner Sandstone Stair=Innere Sandsteintreppe +Outer Sandstone Stair=Äußere Sandsteintreppe +Sandstone Slab=Sandsteinplatte +Sandstone Brick Stair=Sandsteinziegeltreppe +Inner Sandstone Brick Stair=Innere Sandsteinziegeltreppe +Outer Sandstone Brick Stair=Äußere Sandsteinziegeltreppe +Sandstone Brick Slab=Sandsteinziegelplatte +Sandstone Block Stair=Sandsteinblocktreppe +Inner Sandstone Block Stair=Innere Sandsteinblocktreppe +Outer Sandstone Block Stair=Äußere Sandsteinblocktreppe +Sandstone Block Slab=Sandsteinblockplatte +Desert Sandstone Stair=Wüstensandsteintreppe +Inner Desert Sandstone Stair=Innere Wüstensandsteintreppe +Outer Desert Sandstone Stair=Äußere Wüstensandsteintreppe +Desert Sandstone Slab=Wüstensandsteinplatte +Desert Sandstone Brick Stair=Wüstensandsteinziegeltreppe +Inner Desert Sandstone Brick Stair=Innere Wüstensandsteinziegeltreppe +Outer Desert Sandstone Brick Stair=Äußere Wüstensandsteinziegeltreppe +Desert Sandstone Brick Slab=Wüstensandsteinziegelplatte +Desert Sandstone Block Stair=Wüstensandsteinblocktreppe +Inner Desert Sandstone Block Stair=Innere Wüstensandsteinblocktreppe +Outer Desert Sandstone Block Stair=Äußere Wüstensandsteinblocktreppe +Desert Sandstone Block Slab=Wüstensandsteinblockplatte +Silver Sandstone Stair=Silbersandsteintreppe +Inner Silver Sandstone Stair=Innere Silbersandsteintreppe +Outer Silver Sandstone Stair=Äußere Silbersandsteintreppe +Silver Sandstone Slab=Silbersandsteinplatte +Silver Sandstone Brick Stair=Silbersandsteinziegeltreppe +Inner Silver Sandstone Brick Stair=Innere Silbersandsteinziegeltreppe +Outer Silver Sandstone Brick Stair=Äußere Silbersandsteinziegeltreppe +Silver Sandstone Brick Slab=Silbersandsteinziegelplatte +Silver Sandstone Block Stair=Silbersandsteinblocktreppe +Inner Silver Sandstone Block Stair=Innere Silbersandsteinblocktreppe +Outer Silver Sandstone Block Stair=Äußere Silbersandsteinblocktreppe +Silver Sandstone Block Slab=Silbersandsteinblockplatte +Obsidian Stair=Obsidiantreppe +Inner Obsidian Stair=Innere Obsidiantreppe +Outer Obsidian Stair=Äußere Obsidiantreppe +Obsidian Slab=Obsidianplatte +Obsidian Brick Stair=Obsidianziegeltreppe +Inner Obsidian Brick Stair=Innere Obsidianziegeltreppe +Outer Obsidian Brick Stair=Äußere Obsidianziegeltreppe +Obsidian Brick Slab=Obsidianziegelplatte +Obsidian Block Stair=Obsidianblocktreppe +Inner Obsidian Block Stair=Innere Obsidianblocktreppe +Outer Obsidian Block Stair=Äußere Obsidianblocktreppe +Obsidian Block Slab=Obsidianblockplatte +Brick Stair=Ziegeltreppe +Inner Brick Stair=Innere Ziegeltreppe +Outer Brick Stair=Äußere Ziegeltreppe +Brick Slab=Ziegelplatte +Steel Block Stair=Stahlblocktreppe +Inner Steel Block Stair=Innere Stahlblocktreppe +Outer Steel Block Stair=Äußere Stahlblocktreppe +Steel Block Slab=Stahlblockplatte +Tin Block Stair=Zinnblocktreppe +Inner Tin Block Stair=Innere Zinnblocktreppe +Outer Tin Block Stair=Äußere Zinnblocktreppe +Tin Block Slab=Zinnblockplatte +Copper Block Stair=Kupferblocktreppe +Inner Copper Block Stair=Innere Kupferblocktreppe +Outer Copper Block Stair=Äußere Kupferblocktreppe +Copper Block Slab=Kupferblockplatte +Bronze Block Stair=Bronzeblocktreppe +Inner Bronze Block Stair=Innere Bronzeblocktreppe +Outer Bronze Block Stair=Äußere Bronzeblocktreppe +Bronze Block Slab=Bronzeblockplatte +Gold Block Stair=Goldblocktreppe +Inner Gold Block Stair=Innere Goldblocktreppe +Outer Gold Block Stair=Äußere Goldblocktreppe +Gold Block Slab=Goldblockplatte +Ice Stair=Eistreppe +Inner Ice Stair=Innere Eistreppe +Outer Ice Stair=Äußere Eistreppe +Ice Slab=Eisplatte +Snow Block Stair=Schneeblocktreppe +Inner Snow Block Stair=Innere Schneeblocktreppe +Outer Snow Block Stair=Äußere Schneeblocktreppe +Snow Block Slab=Schneeblockplatte diff --git a/mods/stairs/locale/stairs.es.tr b/mods/stairs/locale/stairs.es.tr new file mode 100644 index 00000000..374540c7 --- /dev/null +++ b/mods/stairs/locale/stairs.es.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Escalera de vidrio +Glass Slab=Losa de vidrio +Inner Glass Stair=Escalera interior de vidrio +Outer Glass Stair=Escalera exterior de vidrio +Obsidian Glass Stair=Escalera de vidrio de obsidiana +Obsidian Glass Slab=Losa de vidrio de obsidiana +Inner Obsidian Glass Stair=Escalera interior de vidrio de obsidiana +Outer Obsidian Glass Stair=Escalera exterior de vidrio de obsidiana +Wooden Stair=Escalera de madera +Inner Wooden Stair=Escalera interior de madera +Outer Wooden Stair=Escalera exterior de madera +Wooden Slab=Losa de madera +Jungle Wood Stair=Escalera de madera tropical +Inner Jungle Wood Stair=Escalera interior de madera tropical +Outer Jungle Wood Stair=Escalera exterior de madera tropical +Jungle Wood Slab=Losa de madera tropical +Pine Wood Stair=Escalera de pino +Inner Pine Wood Stair=Escalera interior de pino +Outer Pine Wood Stair=Escalera exterior de pino +Pine Wood Slab=Losa de pino +Acacia Wood Stair=Escalera de acacia +Inner Acacia Wood Stair=Escalera interior de acacia +Outer Acacia Wood Stair=Escalera exterior de acacia +Acacia Wood Slab=Losa de acacia +Aspen Wood Stair=Escalera de álamo +Inner Aspen Wood Stair=Escalera interior de álamo +Outer Aspen Wood Stair=Escalera exterior de álamo +Aspen Wood Slab=Losa de álamo +Stone Stair=Escalera de piedra +Inner Stone Stair=Escalera interior de piedra +Outer Stone Stair=Escalera exterior de piedra +Stone Slab=Losa de piedra +Cobblestone Stair=Escalera de adoquines +Inner Cobblestone Stair=Escalera interior de adoquines +Outer Cobblestone Stair=Escalera exterior de adoquines +Cobblestone Slab=Losa de adoquines +Mossy Cobblestone Stair=Escalera de adoquines musgosos +Inner Mossy Cobblestone Stair=Escalera interior de adoquines musgosos +Outer Mossy Cobblestone Stair=Escalera exterior de adoquines musgosos +Mossy Cobblestone Slab=Losa de adoquines musgosos +Stone Brick Stair=Escalera de ladrillos de piedra +Inner Stone Brick Stair=Escalera interior de ladrillos de piedra +Outer Stone Brick Stair=Escalera exterior de ladrillos de piedra +Stone Brick Slab=Losa de ladrillos de piedra +Stone Block Stair=Escalera de bloques de piedra +Inner Stone Block Stair=Escalera interior de bloques de piedra +Outer Stone Block Stair=Escalera exterior de bloques de piedra +Stone Block Slab=Losa de bloques de piedra +Desert Stone Stair=Escalera de piedra desértica +Inner Desert Stone Stair=Escalera interior de piedra desértica +Outer Desert Stone Stair=Escalera exterior de piedra desértica +Desert Stone Slab=Losa de piedra desértica +Desert Cobblestone Stair=Escalera de adoquines desérticos +Inner Desert Cobblestone Stair=Escalera interior de adoquines desérticos +Outer Desert Cobblestone Stair=Escalera exterior de adoquines desérticos +Desert Cobblestone Slab=Losa de adoquines desérticos +Desert Stone Brick Stair=Escalera de ladrillos desérticos +Inner Desert Stone Brick Stair=Escalera interior de ladrillos desérticos +Outer Desert Stone Brick Stair=Escalera exterior de ladrillos desérticos +Desert Stone Brick Slab=Losa de ladrillos desérticos +Desert Stone Block Stair=Escalera de bloques de piedra desértica +Inner Desert Stone Block Stair=Escalera interior de bloques de piedra desértica +Outer Desert Stone Block Stair=Escalera exterior de bloques de piedra desértica +Desert Stone Block Slab=Losa de bloques de piedra desértica +Sandstone Stair=Escalera de arenisca +Inner Sandstone Stair=Escalera interior de arenisca +Outer Sandstone Stair=Escalera exterior de arenisca +Sandstone Slab=Losa de arenisca +Sandstone Brick Stair=Escalera de ladrillos de arenisca +Inner Sandstone Brick Stair=Escalera interior de ladrillos de arenisca +Outer Sandstone Brick Stair=Escalera exterior de ladrillos de arenisca +Sandstone Brick Slab=Losa de ladrillos de arenisca +Sandstone Block Stair=Escalera de bloques de arenisca +Inner Sandstone Block Stair=Escalera interior de bloques de arenisca +Outer Sandstone Block Stair=Escalera exterior de bloques de arenisca +Sandstone Block Slab=Losa de bloques de arenisca +Desert Sandstone Stair=Escalera de arenisca desértica +Inner Desert Sandstone Stair=Escalera interior de arenisca desértica +Outer Desert Sandstone Stair=Escalera exterior de arenisca desértica +Desert Sandstone Slab=Losa de arenisca desértica +Desert Sandstone Brick Stair=Escalera de ladrillos de arenisca desértica +Inner Desert Sandstone Brick Stair=Escalera interior de ladrillos de arenisca desértica +Outer Desert Sandstone Brick Stair=Escalera exterior de ladrillos de arenisca desértica +Desert Sandstone Brick Slab=Losa de ladrillos de arenisca desértica +Desert Sandstone Block Stair=Escalera de bloques de arenisca desértica +Inner Desert Sandstone Block Stair=Escalera interior de bloques de arenisca desértica +Outer Desert Sandstone Block Stair=Escalera exterior de bloques de arenisca desértica +Desert Sandstone Block Slab=Losa de bloques de arenisca desértica +Silver Sandstone Stair=Escalera de arenisca plateada +Inner Silver Sandstone Stair=Escalera interior de arenisca plateada +Outer Silver Sandstone Stair=Escalera exterior de arenisca plateada +Silver Sandstone Slab=Losa de arenisca plateada +Silver Sandstone Brick Stair=Escalera de ladrillos de arenisca plateada +Inner Silver Sandstone Brick Stair=Escalera interior de ladrillos de arenisca plateada +Outer Silver Sandstone Brick Stair=Escalera exterior de ladrillos de arenisca plateada +Silver Sandstone Brick Slab=Losa de ladrillos de arenisca plateada +Silver Sandstone Block Stair=Escalera de bloques de arenisca plateada +Inner Silver Sandstone Block Stair=Escalera interior de bloques de arenisca plateada +Outer Silver Sandstone Block Stair=Escalera exterior de bloques de arenisca plateada +Silver Sandstone Block Slab=Losa de bloques de arenisca plateada +Obsidian Stair=Escalera de obsidiana +Inner Obsidian Stair=Escalera interior de obsidiana +Outer Obsidian Stair=Escalera exterior de obsidiana +Obsidian Slab=Losa de obsidiana +Obsidian Brick Stair=Escalera de ladrillos de obsidiana +Inner Obsidian Brick Stair=Escalera interior de ladrillos de obsidiana +Outer Obsidian Brick Stair=Escalera exterior de ladrillos de obsidiana +Obsidian Brick Slab=Losa de ladrillos de obsidiana +Obsidian Block Stair=Escalera de bloques de obsidiana +Inner Obsidian Block Stair=Escalera interior de bloques de obsidiana +Outer Obsidian Block Stair=Escalera exterior de bloques de obsidiana +Obsidian Block Slab=Losa de bloques de obsidiana +Brick Stair=Escalera de ladrillos +Inner Brick Stair=Escalera interior de ladrillos +Outer Brick Stair=Escalera exterior de ladrillos +Brick Slab=Losa de ladrillos +Steel Block Stair=Escalera de acero +Inner Steel Block Stair=Escalera interior de acero +Outer Steel Block Stair=Escalera exterior de acero +Steel Block Slab=Losa de acero +Tin Block Stair=Escalera de estaño +Inner Tin Block Stair=Escalera interior de estaño +Outer Tin Block Stair=Escalera exterior de estaño +Tin Block Slab=Losa de estaño +Copper Block Stair=Escalera de cobre +Inner Copper Block Stair=Escalera interior de cobre +Outer Copper Block Stair=Escalera exterior de cobre +Copper Block Slab=Losa de cobre +Bronze Block Stair=Escalera de bronce +Inner Bronze Block Stair=Escalera interior de bronce +Outer Bronze Block Stair=Escalera exterior de bronce +Bronze Block Slab=Losa de bronce +Gold Block Stair=Escalera de oro +Inner Gold Block Stair=Escalera interior de oro +Outer Gold Block Stair=Escalera exterior de oro +Gold Block Slab=Losa de oro +Ice Stair=Escalera de hielo +Inner Ice Stair=Escalera interior de hielo +Outer Ice Stair=Escalera exterior de hielo +Ice Slab=Losa de hielo +Snow Block Stair=Escalera de nieve +Inner Snow Block Stair=Escalera interior de nieve +Outer Snow Block Stair=Escalera exterior de nieve +Snow Block Slab=Losa de nieve diff --git a/mods/stairs/locale/stairs.fr.tr b/mods/stairs/locale/stairs.fr.tr new file mode 100644 index 00000000..81b575e6 --- /dev/null +++ b/mods/stairs/locale/stairs.fr.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Escalier de verre +Glass Slab=Dalle de verre +Inner Glass Stair=Escalier intérieur de verre +Outer Glass Stair=Escalier extérieur de verre +Obsidian Glass Stair=Escalier de verre d'obsidienne +Obsidian Glass Slab=Dalle de verre d'obsidienne +Inner Obsidian Glass Stair=Escalier intérieur de verre d'obsidienne +Outer Obsidian Glass Stair=Escalier extérieur de verre d'obsidienne +Wooden Stair=Escalier en bois +Inner Wooden Stair=Escalier intérieur en bois +Outer Wooden Stair=Escalier extérieur en bois +Wooden Slab=Dalle de bois +Jungle Wood Stair=Escalier en bois de la jungle +Inner Jungle Wood Stair=Escalier intérieur en bois de la jungle +Outer Jungle Wood Stair=Escalier extérieur en bois de la jungle +Jungle Wood Slab=Dalle en bois de la jungle +Pine Wood Stair=Escalier en pin +Inner Pine Wood Stair=Escalier intérieur en pin +Outer Pine Wood Stair=Escalier extérieur en pin +Pine Wood Slab=Dalle en pin +Acacia Wood Stair=Escalier en acacia +Inner Acacia Wood Stair=Escalier intérieur en acacia +Outer Acacia Wood Stair=Escalier extérieur en acacia +Acacia Wood Slab=Dalle en acacia +Aspen Wood Stair=Escalier en tremble +Inner Aspen Wood Stair=Escalier intérieur en tremble +Outer Aspen Wood Stair=Escalier extérieur en tremble +Aspen Wood Slab=Dalle en tremble +Stone Stair=Escalier de pierre +Inner Stone Stair=Escalier intérieur de pierre +Outer Stone Stair=Escalier extérieur de pierre +Stone Slab=Dalle de pierre +Cobblestone Stair=Escalier en pavé +Inner Cobblestone Stair=Escalier intérieur en pavé +Outer Cobblestone Stair=Escalier extérieur en pavé +Cobblestone Slab=Dalle en pavé +Mossy Cobblestone Stair=Escalier en pavé moussu +Inner Mossy Cobblestone Stair=Escalier intérieur en pavé moussu +Outer Mossy Cobblestone Stair=Escalier extérieur en pavé moussu +Mossy Cobblestone Slab=Dalle en pavé moussu +Stone Brick Stair=Escalier en brique de pierre +Inner Stone Brick Stair=Escalier intérieur en brique de pierre +Outer Stone Brick Stair=Escalier extérieur en brique de pierre +Stone Brick Slab=Dalle en brique de pierre +Stone Block Stair=Escalier en bloc de pierre +Inner Stone Block Stair=Escalier intérieur en bloc de pierre +Outer Stone Block Stair=Escalier extérieur en bloc de pierre +Stone Block Slab=Dalle en bloc de pierre +Desert Stone Stair=Escalier en pierre du désert +Inner Desert Stone Stair=Escalier intérieur en pierre du désert +Outer Desert Stone Stair=Escalier extérieur en pierre du désert +Desert Stone Slab=Dalle en pierre du désert +Desert Cobblestone Stair=Escalier en pavé du désert +Inner Desert Cobblestone Stair=Escalier intérieur en pavé du désert +Outer Desert Cobblestone Stair=Escalier extérieur en pavé du désert +Desert Cobblestone Slab=Dalle en pavé du désert +Desert Stone Brick Stair=Escalier en brique de pierre du désert +Inner Desert Stone Brick Stair=Escalier intérieur en brique de pierre du désert +Outer Desert Stone Brick Stair=Escalier extérieur en brique de pierre du désert +Desert Stone Brick Slab=Dalle en brique de pierre du désert +Desert Stone Block Stair=Escalier en bloc de pierre du désert +Inner Desert Stone Block Stair=Escalier intérieur en bloc de pierre du désert +Outer Desert Stone Block Stair=Escalier extérieur en bloc de pierre du désert +Desert Stone Block Slab=Dalle en bloc de pierre du désert +Sandstone Stair=Escalier en grès +Inner Sandstone Stair=Escalier intérieur en grès +Outer Sandstone Stair=Escalier extérieur en grès +Sandstone Slab=Dalle en grès +Sandstone Brick Stair=Escalier en brique de grès +Inner Sandstone Brick Stair=Escalier intérieur en brique de grès +Outer Sandstone Brick Stair=Escalier extérieur en brique de grès +Sandstone Brick Slab=Dalle en brique de grès +Sandstone Block Stair=Escalier en bloc de grès +Inner Sandstone Block Stair=Escalier intérieur en bloc de grès +Outer Sandstone Block Stair=Escalier extérieur en bloc de grès +Sandstone Block Slab=Dalle en bloc de grès +Desert Sandstone Stair=Escalier en grès du désert +Inner Desert Sandstone Stair=Escalier intérieur en grès du désert +Outer Desert Sandstone Stair=Escalier extérieur en grès du désert +Desert Sandstone Slab=Dalle en grès du désert +Desert Sandstone Brick Stair=Escalier en brique de grès du désert +Inner Desert Sandstone Brick Stair=Escalier intérieur en brique de grès du désert +Outer Desert Sandstone Brick Stair=Escalier extérieur en brique de grès du désert +Desert Sandstone Brick Slab=Dalle en brique de grès du désert +Desert Sandstone Block Stair=Escalier en bloc de grès du désert +Inner Desert Sandstone Block Stair=Escalier intérieur en bloc de grès du désert +Outer Desert Sandstone Block Stair=Escalier extérieur en bloc de grès du désert +Desert Sandstone Block Slab=Dalle en bloc de grès du désert +Silver Sandstone Stair=Escalier en grès argenté +Inner Silver Sandstone Stair=Escalier intérieur en grès argenté +Outer Silver Sandstone Stair=Escalier extérieur en grès argenté +Silver Sandstone Slab=Dalle en grès argenté +Silver Sandstone Brick Stair=Escalier en brique de grès argenté +Inner Silver Sandstone Brick Stair=Escalier intérieur en brique de grès argenté +Outer Silver Sandstone Brick Stair=Escalier extérieur en brique de grès argenté +Silver Sandstone Brick Slab=Dalle en brique de grès argenté +Silver Sandstone Block Stair=Escalier en bloc de grès argenté +Inner Silver Sandstone Block Stair=Escalier intérieur en bloc de grès argenté +Outer Silver Sandstone Block Stair=Escalier extérieur en bloc de grès argenté +Silver Sandstone Block Slab=Dalle en bloc de grès argenté +Obsidian Stair=Escalier en obsidienne +Inner Obsidian Stair=Escalier intérieur en obsidienne +Outer Obsidian Stair=Escalier extérieur en obsidienne +Obsidian Slab=Dalle en obsidienne +Obsidian Brick Stair=Escalier en brique d'obsidienne +Inner Obsidian Brick Stair=Escalier intérieur en brique d'obsidienne +Outer Obsidian Brick Stair=Escalier extérieur en brique d'obsidienne +Obsidian Brick Slab=Dalle en brique d'obsidienne +Obsidian Block Stair=Escalier en bloc d'obsidienne +Inner Obsidian Block Stair=Escalier intérieur en bloc d'obsidienne +Outer Obsidian Block Stair=Escalier extérieur en bloc d'obsidienne +Obsidian Block Slab=Dalle en bloc d'obsidienne +Brick Stair=Escalier en brique +Inner Brick Stair=Escalier intérieur en brique +Outer Brick Stair=Escalier extérieur en brique +Brick Slab=Dalle en brique +Steel Block Stair=Escalier en acier +Inner Steel Block Stair=Escalier intérieur en acier +Outer Steel Block Stair=Escalier extérieur en acier +Steel Block Slab=Dalle en acier +Tin Block Stair=Escalier en bloc d'étain +Inner Tin Block Stair=Escalier intérieur en bloc d'étain +Outer Tin Block Stair=Escalier extérieur en bloc d'étain +Tin Block Slab=Dalle en bloc d'étain +Copper Block Stair=Escalier en bloc de cuivre +Inner Copper Block Stair=Escalier intérieur en bloc de cuivre +Outer Copper Block Stair=Escalier extérieur en bloc de cuivre +Copper Block Slab=Dalle en bloc de cuivre +Bronze Block Stair=Escalier en bronze +Inner Bronze Block Stair=Escalier intérieur en bronze +Outer Bronze Block Stair=Escalier extérieur en bronze +Bronze Block Slab=Dalle en bronze +Gold Block Stair=Escalier en bloc d'or +Inner Gold Block Stair=Escalier intérieur en bloc d'or +Outer Gold Block Stair=Escalier extérieur en bloc d'or +Gold Block Slab=Dalle en bloc d'or +Ice Stair=Escalier de glace +Inner Ice Stair=Escalier intérieur de glace +Outer Ice Stair=Escalier extérieur de glace +Ice Slab=Dalle de glace +Snow Block Stair=Escalier en bloc de neige +Inner Snow Block Stair=Escalier intérieur en bloc de neige +Outer Snow Block Stair=Escalier extérieur en bloc de neige +Snow Block Slab=Dalle en bloc de neige diff --git a/mods/stairs/locale/stairs.id.tr b/mods/stairs/locale/stairs.id.tr new file mode 100644 index 00000000..dbdfaa0f --- /dev/null +++ b/mods/stairs/locale/stairs.id.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Tangga Kaca +Glass Slab=Lempengan Kaca +Inner Glass Stair=Tangga Kaca Dalam +Outer Glass Stair=Tangga Kaca Luar +Obsidian Glass Stair=Tangga Kaca Obsidian +Obsidian Glass Slab=Lempengan Kaca Obsidian +Inner Obsidian Glass Stair=Tangga Kaca Obsidian Dalam +Outer Obsidian Glass Stair=Tangga Kaca Obsidian Luar +Wooden Stair=Tangga Kayu +Inner Wooden Stair=Tangga Kayu Dalam +Outer Wooden Stair=Tangga Kayu Luar +Wooden Slab=Lempengan Kayu +Jungle Wood Stair=Tangga Kayu Rimba +Inner Jungle Wood Stair=Tangga Kayu Rimba Dalam +Outer Jungle Wood Stair=Tangga Kayu Rimba Luar +Jungle Wood Slab=Lempengan Kayu Rimba +Pine Wood Stair=Tangga Kayu Pinus +Inner Pine Wood Stair=Tangga Kayu Pinus Dalam +Outer Pine Wood Stair=Tangga Kayu Pinus Luar +Pine Wood Slab=Lempengan Kayu Pinus +Acacia Wood Stair=Tangga Kayu Akasia +Inner Acacia Wood Stair=Tangga Kayu Akasia Dalam +Outer Acacia Wood Stair=Tangga Kayu Akasia Luar +Acacia Wood Slab=Lempengan Kayu Akasia +Aspen Wood Stair=Tangga Kayu Aspen +Inner Aspen Wood Stair=Tangga Kayu Aspen Dalam +Outer Aspen Wood Stair=Tangga Kayu Aspen Luar +Aspen Wood Slab=Lempengan Kayu Aspen +Stone Stair=Tangga Batu +Inner Stone Stair=Tangga Batu Dalam +Outer Stone Stair=Tangga Batu Luar +Stone Slab=Lempengan Batu +Cobblestone Stair=Tangga Bongkahan Batu +Inner Cobblestone Stair=Tangga Bongkahan Batu Dalam +Outer Cobblestone Stair=Tangga Bongkahan Batu Luar +Cobblestone Slab=Lempengan Bongkahan Batu +Mossy Cobblestone Stair=Tangga Bongkahan Batu Berlumut +Inner Mossy Cobblestone Stair=Tangga Bongkahan Batu Berlumut Dalam +Outer Mossy Cobblestone Stair=Tangga Bongkahan Batu Berlumut Luar +Mossy Cobblestone Slab=Lempengan Bongkahan Batu Berlumut +Stone Brick Stair=Tangga Tembok Batu +Inner Stone Brick Stair=Tangga Tembok Batu Dalam +Outer Stone Brick Stair=Tangga Tembok Batu Luar +Stone Brick Slab=Lempengan Tembok Batu +Stone Block Stair=Tangga Balok Batu +Inner Stone Block Stair=Tangga Balok Batu Dalam +Outer Stone Block Stair=Tangga Balok Batu Luar +Stone Block Slab=Lempengan Balok Batu +Desert Stone Stair=Tangga Batu Gurun +Inner Desert Stone Stair=Tangga Batu Gurun Dalam +Outer Desert Stone Stair=Tangga Batu Gurun Luar +Desert Stone Slab=Lempengan Batu Gurun +Desert Cobblestone Stair=Tangga Bongkahan Batu Gurun +Inner Desert Cobblestone Stair=Tangga Bongkahan Batu Gurun Dalam +Outer Desert Cobblestone Stair=Tangga Bongkahan Batu Gurun Luar +Desert Cobblestone Slab=Lempengan Bongkahan Batu Gurun +Desert Stone Brick Stair=Tangga Tembok Batu Gurun +Inner Desert Stone Brick Stair=Tangga Tembok Batu Gurun Dalam +Outer Desert Stone Brick Stair=Tangga Tembok Batu Gurun Luar +Desert Stone Brick Slab=Lempengan Tembok Batu Gurun +Desert Stone Block Stair=Tangga Balok Batu Gurun +Inner Desert Stone Block Stair=Tangga Balok Batu Gurun Dalam +Outer Desert Stone Block Stair=Tangga Balok Batu Gurun Luar +Desert Stone Block Slab=Lempengan Balok Batu Gurun +Sandstone Stair=Tangga Batu Pasir +Inner Sandstone Stair=Tangga Batu Pasir Dalam +Outer Sandstone Stair=Tangga Batu Pasir Luar +Sandstone Slab=Lempengan Batu Pasir +Sandstone Brick Stair=Tangga Tembok Batu Pasir +Inner Sandstone Brick Stair=Tangga Tembok Batu Pasir Dalam +Outer Sandstone Brick Stair=Tangga Tembok Batu Pasir Luar +Sandstone Brick Slab=Lempengan Tembok Batu Pasir +Sandstone Block Stair=Tangga Balok Batu Pasir +Inner Sandstone Block Stair=Tangga Balok Batu Pasir Dalam +Outer Sandstone Block Stair=Tangga Balok Batu Pasir Luar +Sandstone Block Slab=Lempengan Balok Batu Pasir +Desert Sandstone Stair=Tangga Batu Pasir Gurun +Inner Desert Sandstone Stair=Tangga Batu Pasir Gurun Dalam +Outer Desert Sandstone Stair=Tangga Batu Pasir Gurun Luar +Desert Sandstone Slab=Lempengan Batu Pasir Gurun +Desert Sandstone Brick Stair=Tangga Tembok Batu Pasir Gurun +Inner Desert Sandstone Brick Stair=Tangga Tembok Batu Pasir Gurun Dalam +Outer Desert Sandstone Brick Stair=Tangga Tembok Batu Pasir Gurun Luar +Desert Sandstone Brick Slab=Lempengan Tembok Batu Pasir Gurun +Desert Sandstone Block Stair=Tangga Balok Batu Pasir Gurun +Inner Desert Sandstone Block Stair=Tangga Balok Batu Pasir Gurun Dalam +Outer Desert Sandstone Block Stair=Tangga Balok Batu Pasir Gurun Luar +Desert Sandstone Block Slab=Lempengan Balok Batu Pasir Gurun +Silver Sandstone Stair=Tangga Batu Pasir Perak +Inner Silver Sandstone Stair=Tangga Batu Pasir Perak Dalam +Outer Silver Sandstone Stair=Tangga Batu Pasir Perak Luar +Silver Sandstone Slab=Lempengan Batu Pasir Perak +Silver Sandstone Brick Stair=Tangga Tembok Batu Pasir Perak +Inner Silver Sandstone Brick Stair=Tangga Tembok Batu Pasir Perak Dalam +Outer Silver Sandstone Brick Stair=Tangga Tembok Batu Pasir Perak Luar +Silver Sandstone Brick Slab=Lempengan Tembok Batu Pasir Perak +Silver Sandstone Block Stair=Tangga Balok Batu Pasir Perak +Inner Silver Sandstone Block Stair=Tangga Balok Batu Pasir Perak Dalam +Outer Silver Sandstone Block Stair=Tangga Balok Batu Pasir Perak Luar +Silver Sandstone Block Slab=Lempengan Balok Batu Pasir Perak +Obsidian Stair=Tangga Obsidian +Inner Obsidian Stair=Tangga Obsidian Dalam +Outer Obsidian Stair=Tangga Obsidian Luar +Obsidian Slab=Lempengan Obsidian +Obsidian Brick Stair=Tangga Tembok Obsidian +Inner Obsidian Brick Stair=Tangga Tembok Obsidian Dalam +Outer Obsidian Brick Stair=Tangga Tembok Obsidian Luar +Obsidian Brick Slab=Lempengan Tembok Obsidian +Obsidian Block Stair=Tangga Balok Obsidian +Inner Obsidian Block Stair=Tangga Balok Obsidian Dalam +Outer Obsidian Block Stair=Tangga Balok Obsidian Luar +Obsidian Block Slab=Lempengan Balok Obsidian +Brick Stair=Tangga Bata +Inner Brick Stair=Tangga Bata Dalam +Outer Brick Stair=Tangga Bata Luar +Brick Slab=Lempengan Bata +Steel Block Stair=Tangga Balok Baja +Inner Steel Block Stair=Tangga Balok Baja Dalam +Outer Steel Block Stair=Tangga Balok Baja Luar +Steel Block Slab=Lempengan Balok Baja +Tin Block Stair=Tangga Balok Timah +Inner Tin Block Stair=Tangga Balok Timah Dalam +Outer Tin Block Stair=Tangga Balok Timah Luar +Tin Block Slab=Lempengan Balok Timah +Copper Block Stair=Tangga Balok Tembaga +Inner Copper Block Stair=Tangga Balok Tembaga Dalam +Outer Copper Block Stair=Tangga Balok Tembaga Luar +Copper Block Slab=Lempengan Balok Tembaga +Bronze Block Stair=Tangga Balok Perunggu +Inner Bronze Block Stair=Tangga Balok Perunggu Dalam +Outer Bronze Block Stair=Tangga Balok Perunggu Luar +Bronze Block Slab=Lempengan Balok Perunggu +Gold Block Stair=Tangga Balok Emas +Inner Gold Block Stair=Tangga Balok Emas Dalam +Outer Gold Block Stair=Tangga Balok Emas Luar +Gold Block Slab=Lempengan Balok Emas +Ice Stair=Tangga Es +Inner Ice Stair=Tangga Es Dalam +Outer Ice Stair=Tangga Es Luar +Ice Slab=Lempengan Es +Snow Block Stair=Tangga Balok Salju +Inner Snow Block Stair=Tangga Balok Salju Dalam +Outer Snow Block Stair=Tangga Balok Salju Luar +Snow Block Slab=Lempengan Balok Salju diff --git a/mods/stairs/locale/stairs.it.tr b/mods/stairs/locale/stairs.it.tr new file mode 100644 index 00000000..16945ec6 --- /dev/null +++ b/mods/stairs/locale/stairs.it.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Scala di vetro +Glass Slab=Lastra di vetro +Inner Glass Stair=Scala di vetro interna +Outer Glass Stair=Scala di vetro esterna +Obsidian Glass Stair=Scala di vetro d'ossidiana +Obsidian Glass Slab=Lastra di vetro d'ossidiana +Inner Obsidian Glass Stair=Scala di vetro d'ossidiana interna +Outer Obsidian Glass Stair=Scala di vetro d'ossidiana esterna +Wooden Stair=Scala di legno +Inner Wooden Stair=Scala di legno interna +Outer Wooden Stair=Scala di legno esterna +Wooden Slab=Lastra di legno +Jungle Wood Stair=Scala di legno della giungla +Inner Jungle Wood Stair=Scala di legno della giungla interna +Outer Jungle Wood Stair=Scala di legno della giungla esterna +Jungle Wood Slab=Lastra di legno della giungla +Pine Wood Stair=Scala di legno di pino +Inner Pine Wood Stair=Scala di legno di pino interna +Outer Pine Wood Stair=Scala di legno di pino esterna +Pine Wood Slab=Lastra di legno di pino +Acacia Wood Stair=Scala di legno d'acacia +Inner Acacia Wood Stair=Scala di legno d'acacia interna +Outer Acacia Wood Stair=Scala di legno d'acacia esterna +Acacia Wood Slab=Lastra di legno d'acacia +Aspen Wood Stair=Scala di legno di pioppo +Inner Aspen Wood Stair=Scala di legno di pioppo interna +Outer Aspen Wood Stair=Scala di legno di pioppo esterna +Aspen Wood Slab=Lastra di legno di pioppo +Stone Stair=Scala di pietra +Inner Stone Stair=Scala di pietra interna +Outer Stone Stair=Scala di pietra esterna +Stone Slab=Lastra di pietra +Cobblestone Stair=Scala di ciottoli +Inner Cobblestone Stair=Scala di ciottoli interna +Outer Cobblestone Stair=Scala di ciottoli esterna +Cobblestone Slab=Lastra di ciottoli +Mossy Cobblestone Stair=Scala di ciottoli muschiosi +Inner Mossy Cobblestone Stair=Scala di ciottoli muschiosi interna +Outer Mossy Cobblestone Stair=Scala di ciottoli muschiosi esterna +Mossy Cobblestone Slab=Lastra di ciottoli muschiosi +Stone Brick Stair=Scala di mattone di pietra +Inner Stone Brick Stair=Scala di mattone di pietra interna +Outer Stone Brick Stair=Scala di mattone di pietra esterna +Stone Brick Slab=Lastra di mattone di pietra +Stone Block Stair=Scala di blocco di pietra +Inner Stone Block Stair=Scala di blocco di pietra interna +Outer Stone Block Stair=Scala di blocco di pietra esterna +Stone Block Slab=Lastra di blocco di pietra +Desert Stone Stair=Scala di pietra del deserto +Inner Desert Stone Stair=Scala di pietra del deserto interna +Outer Desert Stone Stair=Scala di pietra del deserto esterna +Desert Stone Slab=Lastra di pietra del deserto +Desert Cobblestone Stair=Scala di ciottoli del deserto +Inner Desert Cobblestone Stair=Scala di ciottoli del deserto interna +Outer Desert Cobblestone Stair=Scala di ciottoli del deserto esterna +Desert Cobblestone Slab=Lastra di ciottoli del deserto +Desert Stone Brick Stair=Scala di mattone di pietra del deserto +Inner Desert Stone Brick Stair=Scala di mattone di pietra del deserto interna +Outer Desert Stone Brick Stair=Scala di mattone di pietra del deserto esterna +Desert Stone Brick Slab=Lastra di mattone di pietra del deserto +Desert Stone Block Stair=Scala di blocco di pietra del deserto +Inner Desert Stone Block Stair=Scala di blocco di pietra del deserto interna +Outer Desert Stone Block Stair=Scala di blocco di pietra del deserto esterna +Desert Stone Block Slab=Lastra di blocco di pietra del deserto +Sandstone Stair=Scala d'arenaria +Inner Sandstone Stair=Scala d'arenaria interna +Outer Sandstone Stair=Scala d'arenaria esterna +Sandstone Slab=Lastra d'arenaria +Sandstone Brick Stair=Scala di mattone d'arenaria +Inner Sandstone Brick Stair=Scala di mattone d'arenaria interna +Outer Sandstone Brick Stair=Scala di mattone d'arenaria esterna +Sandstone Brick Slab=Lastra di mattone d'arenaria +Sandstone Block Stair=Scala di blocco d'arenaria +Inner Sandstone Block Stair=Scala di blocco d'arenaria interna +Outer Sandstone Block Stair=Scala di blocco d'arenaria esterna +Sandstone Block Slab=Lastra di blocco d'arenaria +Desert Sandstone Stair=Scala d'arenaria del deserto +Inner Desert Sandstone Stair=Scala d'arenaria del deserto interna +Outer Desert Sandstone Stair=Scala d'arenaria del deserto esterna +Desert Sandstone Slab=Lastra d'arenaria del deserto +Desert Sandstone Brick Stair=Scala di mattone d'arenaria del deserto +Inner Desert Sandstone Brick Stair=Scala di mattone d'arenaria del deserto interna +Outer Desert Sandstone Brick Stair=Scala di mattone d'arenaria del deserto esterna +Desert Sandstone Brick Slab=Lastra di mattone d'arenaria del deserto +Desert Sandstone Block Stair=Scala di blocco d'arenaria del deserto +Inner Desert Sandstone Block Stair=Scala di blocco d'arenaria del deserto interna +Outer Desert Sandstone Block Stair=Scala di blocco d'arenaria del deserto esterna +Desert Sandstone Block Slab=Lastra di blocco d'arenaria del deserto +Silver Sandstone Stair=Scala d'arenaria argentata +Inner Silver Sandstone Stair=Scala d'arenaria argentata interna +Outer Silver Sandstone Stair=Scala d'arenaria argentata esterna +Silver Sandstone Slab=Lastra d'arenaria argentata +Silver Sandstone Brick Stair=Scala di mattone d'arenaria argentata +Inner Silver Sandstone Brick Stair=Scala di mattone d'arenaria argentata interna +Outer Silver Sandstone Brick Stair=Scala di mattone d'arenaria argentata esterna +Silver Sandstone Brick Slab=Lastra di mattone d'arenaria argentata +Silver Sandstone Block Stair=Scala di blocco d'arenaria argentata +Inner Silver Sandstone Block Stair=Scala di blocco d'arenaria argentata interna +Outer Silver Sandstone Block Stair=Scala di blocco d'arenaria argentata esterna +Silver Sandstone Block Slab=Lastra di blocco d'arenaria argentata +Obsidian Stair=Scala d'ossidiana +Inner Obsidian Stair=Scala d'ossidiana interna +Outer Obsidian Stair=Scala d'ossidiana esterna +Obsidian Slab=Lastra d'ossidiana +Obsidian Brick Stair=Scala di mattone d'ossidiana +Inner Obsidian Brick Stair=Scala di mattone d'ossidiana interna +Outer Obsidian Brick Stair=Scala di mattone d'ossidiana esterna +Obsidian Brick Slab=Lastra di mattone d'ossidiana +Obsidian Block Stair=Scala di blocco d'ossidiana +Inner Obsidian Block Stair=Scala di blocco d'ossidiana interna +Outer Obsidian Block Stair=Scala di blocco d'ossidiana esterna +Obsidian Block Slab=Lastra di blocco d'ossidiana +Brick Stair=Scala di mattone +Inner Brick Stair=Scala di mattone interna +Outer Brick Stair=Scala di mattone esterna +Brick Slab=Lastra di mattone +Steel Block Stair=Scala di blocco d'acciaio +Inner Steel Block Stair=Scala di blocco d'acciaio interna +Outer Steel Block Stair=Scala di blocco d'acciaio esterna +Steel Block Slab=Lastra di blocco d'acciaio +Tin Block Stair=Scala di blocco di stagno +Inner Tin Block Stair=Scala di blocco di stagno interna +Outer Tin Block Stair=Scala di blocco di stagno esterna +Tin Block Slab=Lastra di blocco di stagno +Copper Block Stair=Scala di blocco di rame +Inner Copper Block Stair=Scala di blocco di rame interna +Outer Copper Block Stair=Scala di blocco di rame esterna +Copper Block Slab=Lastra di blocco di rame +Bronze Block Stair=Scala di blocco di bronzo +Inner Bronze Block Stair=Scala di blocco di bronzo interna +Outer Bronze Block Stair=Scala di blocco di bronzo esterna +Bronze Block Slab=Lastra di blocco di bronzo +Gold Block Stair=Scala di blocco d'oro +Inner Gold Block Stair=Scala di blocco d'oro interna +Outer Gold Block Stair=Scala di blocco d'oro esterna +Gold Block Slab=Lastra di blocco d'oro +Ice Stair=Scala di ghiaccio +Inner Ice Stair=Scala di ghiaccio interna +Outer Ice Stair=Scala di ghiaccio esterna +Ice Slab=Lastra di ghiaccio +Snow Block Stair=Scala di blocco di neve +Inner Snow Block Stair=Scala di blocco di neve interna +Outer Snow Block Stair=Scala di blocco di neve esterna +Snow Block Slab=Lastra di blocco di neve diff --git a/mods/stairs/locale/stairs.jbo.tr b/mods/stairs/locale/stairs.jbo.tr new file mode 100644 index 00000000..76c3bac7 --- /dev/null +++ b/mods/stairs/locale/stairs.jbo.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=lo blaci serti +Glass Slab=lo blaci xadba bliku +Inner Glass Stair=lo zo'i blaci serti +Outer Glass Stair=lo ze'o blaci serti +Obsidian Glass Stair=lo je'erma'ablaci blaci serti +Obsidian Glass Slab=lo je'erma'ablaci blaci ke xadba bliku +Inner Obsidian Glass Stair=lo zo'i je'erma'ablaci blaci serti +Outer Obsidian Glass Stair=lo ze'o je'erma'ablaci blaci serti +Wooden Stair=lo mudri serti +Inner Wooden Stair=lo zo'i blaci serti +Outer Wooden Stair=lo ze'o blaci serti +Wooden Slab=lo mudri ke xadba bliku +Jungle Wood Stair=lo glatimdemricfoi mudri serti +Inner Jungle Wood Stair=lo zo'i glatimdemricfoi mudri serti +Outer Jungle Wood Stair=lo ze'o glatimdemricfoi mudri serti +Jungle Wood Slab=lo glatimdemricfoi mudri ke xadba bliku +Pine Wood Stair=lo ckunu mudri serti +Inner Pine Wood Stair=lo zo'i ckunu mudri serti +Outer Pine Wood Stair=lo ze'o ckunu mudri serti +Pine Wood Slab=lo ckunu mudri ke xadba bliku +Acacia Wood Stair=lo atkaci,ia mudri serti +Inner Acacia Wood Stair=lo zo'i atkaci,ia mudri serti +Outer Acacia Wood Stair=lo ze'o atkaci,ia mudri serti +Acacia Wood Slab=lo atkaci,ia mudri ke xadba bliku +Aspen Wood Stair=lo mudrpopulu serti +Inner Aspen Wood Stair=lo zo'i mudrpopulu serti +Outer Aspen Wood Stair=lo ze'o mudrpopulu serti +Aspen Wood Slab=lo mudrpopulu ke xadba bliku +Stone Stair=lo rokci serti +Inner Stone Stair=lo zo'i rokci serti +Outer Stone Stair=lo ze'o rokci serti +Stone Slab=lo rokci ke xadba bliku +Cobblestone Stair=lo lolro'iboi serti +Inner Cobblestone Stair=lo zo'i lolro'iboi serti +Outer Cobblestone Stair=lo ze'o lolro'iboi serti +Cobblestone Slab=lo lolro'iboi xadba bliku +Mossy Cobblestone Stair=lo clika lolro'iboi serti +Inner Mossy Cobblestone Stair=lo zo'i clika lolro'iboi serti +Outer Mossy Cobblestone Stair=lo ze'o clika lolro'iboi serti +Mossy Cobblestone Slab=lo clika lolro'iboi ke xadba bliku +Stone Brick Stair=lo morna rokci serti +Inner Stone Brick Stair=lo zo'i morna rokci serti +Outer Stone Brick Stair=lo ze'o morna rokci serti +Stone Brick Slab=lo morna rokci ke xadba bliku +Stone Block Stair=lo rokci bliku serti +Inner Stone Block Stair=lo zo'i rokci bliku serti +Outer Stone Block Stair=lo ze'o rokci bliku serti +Stone Block Slab=lo rokci bliku ke xadba bliku +Desert Stone Stair=lo cantu'a rokci serti +Inner Desert Stone Stair=lo zo'i cantu'a rokci serti +Outer Desert Stone Stair=lo ze'o cantu'a rokci serti +Desert Stone Slab=lo cantu'a rokci ke xadba bliku +Desert Cobblestone Stair=lo cantu'a lolro'iboi serti +Inner Desert Cobblestone Stair=lo zo'i cantu'a lolro'iboi serti +Outer Desert Cobblestone Stair=lo ze'o cantu'a lolro'iboi serti +Desert Cobblestone Slab=lo cantu'a lolro'iboi ke xadba bliku +Desert Stone Brick Stair=lo morna ke cantu'a rokci serti +Inner Desert Stone Brick Stair=lo zo'i morna ke cantu'a rokci serti +Outer Desert Stone Brick Stair=lo ze'o morna ke cantu'a rokci serti +Desert Stone Brick Slab=lo morna ke cantu'a rokci ke xadba bliku +Desert Stone Block Stair=lo cantu'a rokci bliku serti +Inner Desert Stone Block Stair=lo zo'i cantu'a rokci bliku serti +Outer Desert Stone Block Stair=lo ze'o cantu'a rokci bliku serti +Desert Stone Block Slab=lo cantu'a rokci bliku ke xadba bliku +Sandstone Stair=lo canro'i serti +Inner Sandstone Stair=lo zo'i canro'i serti +Outer Sandstone Stair=lo ze'o canro'i serti +Sandstone Slab=lo canro'i ke xadba bliku +Sandstone Brick Stair=lo morna ke canro'i serti +Inner Sandstone Brick Stair=lo zo'i morna ke canro'i serti +Outer Sandstone Brick Stair=lo ze'o morna ke canro'i serti +Sandstone Brick Slab=lo morna canro'i ke xadba bliku +Sandstone Block Stair=lo canro'i bliku serti +Inner Sandstone Block Stair=lo zo'i canro'i bliku serti +Outer Sandstone Block Stair=lo ze'o canro'i bliku serti +Sandstone Block Slab=lo canro'i bliku ke xadba bliku +Desert Sandstone Stair=lo cantu'a canro'i serti +Inner Desert Sandstone Stair=lo zo'i cantu'a canro'i serti +Outer Desert Sandstone Stair=lo ze'o cantu'a canro'i serti +Desert Sandstone Slab=lo cantu'a canro'i ke xadba bliku +Desert Sandstone Brick Stair=lo morna ke cantu'a canro'i serti +Inner Desert Sandstone Brick Stair=lo zo'i morna ke cantu'a canro'i serti +Outer Desert Sandstone Brick Stair=lo ze'o morna ke cantu'a canro'i serti +Desert Sandstone Brick Slab=lo morna ke cantu'a canro'i ke xadba bliku +Desert Sandstone Block Stair=lo cantu'a canro'i bliku serti +Inner Desert Sandstone Block Stair=lo zo'i cantu'a canro'i bliku serti +Outer Desert Sandstone Block Stair=lo ze'o cantu'a canro'i bliku serti +Desert Sandstone Block Slab=lo cantu'a canro'i ke xadba bliku +Silver Sandstone Stair=lo rijyska canro'i serti +Inner Silver Sandstone Stair=lo zo'i rijyska canro'i serti +Outer Silver Sandstone Stair=lo ze'o rijyska canro'i serti +Silver Sandstone Slab=lo rijyska canro'i ke xadba bliku +Silver Sandstone Brick Stair=lo morna ke rijyska canro'i serti +Inner Silver Sandstone Brick Stair=lo zo'i morna ke rijyska canro'i serti +Outer Silver Sandstone Brick Stair=lo ze'o morna ke rijyska canro'i serti +Silver Sandstone Brick Slab=lo morna ke rijyska canro'i ke xadba bliku +Silver Sandstone Block Stair=lo rijyska canro'i bliku serti +Inner Silver Sandstone Block Stair=lo zo'i rijyska canro'i bliku serti +Outer Silver Sandstone Block Stair=lo ze'o rijyska canro'i bliku serti +Silver Sandstone Block Slab=lo rijyska canro'i bliku ke xadba bliku +Obsidian Stair=lo je'erma'ablaci serti +Inner Obsidian Stair=lo zo'i je'erma'ablaci serti +Outer Obsidian Stair=lo ze'o je'erma'ablaci serti +Obsidian Slab=lo je'erma'ablaci ke xadba bliku +Obsidian Brick Stair=lo morna ke je'erma'ablaci serti +Inner Obsidian Brick Stair=lo zo'i morna ke je'erma'ablaci serti +Outer Obsidian Brick Stair=lo ze'o morna ke je'erma'ablaci serti +Obsidian Brick Slab=lo morna je'erma'ablaci ke xadba bliku +Obsidian Block Stair=lo je'erma'ablaci bliku serti +Inner Obsidian Block Stair=lo zo'i je'erma'ablaci bliku serti +Outer Obsidian Block Stair=lo ze'o je'erma'ablaci bliku serti +Obsidian Block Slab=lo je'erma'ablaci bliku ke xadba bliku +Brick Stair=lo kitybli serti +Inner Brick Stair=lo zo'i kitybli serti +Outer Brick Stair=lo ze'o kitybli serti +Brick Slab=lo kitybli xadba bliku +Steel Block Stair=lo gasta bliku serti +Inner Steel Block Stair=lo zo'i gasta bliku serti +Outer Steel Block Stair=lo ze'o gasta bliku serti +Steel Block Slab=lo gasta bliku ke xadba bliku +Tin Block Stair=lo tinci bliku serti +Inner Tin Block Stair=lo zo'i tinci bliku serti +Outer Tin Block Stair=lo ze'o tinci bliku serti +Tin Block Slab=lo tinci bliku ke xadba bliku +Copper Block Stair=lo tunka bliku serti +Inner Copper Block Stair=lo zo'i tunka bliku serti +Outer Copper Block Stair=lo ze'o tunka bliku serti +Copper Block Slab=lo tunka xadba bliku +Bronze Block Stair=lo ransu bliku serti +Inner Bronze Block Stair=lo zo'i ransu bliku serti +Outer Bronze Block Stair=lo ze'o ransu bliku serti +Bronze Block Slab=lo ransu xadba bliku +Gold Block Stair=lo solji bliku serti +Inner Gold Block Stair=lo zo'i solji bliku serti +Outer Gold Block Stair=lo ze'o solji bliku serti +Gold Block Slab=lo solji bliku ke xadba bliku +Ice Stair=lo bisli serti +Inner Ice Stair=lo zo'i bisli serti +Outer Ice Stair=lo ze'o bisli serti +Ice Slab=lo bisli ke xadba bliku +Snow Block Stair=lo snime bliku serti +Inner Snow Block Stair=lo zo'i snime bliku serti +Outer Snow Block Stair=lo ze'o snime bliku serti +Snow Block Slab=lo snime bliku ke xadba bliku diff --git a/mods/stairs/locale/stairs.ms.tr b/mods/stairs/locale/stairs.ms.tr new file mode 100644 index 00000000..a39c7f63 --- /dev/null +++ b/mods/stairs/locale/stairs.ms.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Tangga Kaca +Glass Slab=Papak Kaca +Inner Glass Stair=Tangga Kaca Dalaman +Outer Glass Stair=Tangga Kaca Luaran +Obsidian Glass Stair=Tangga Obsidia +Obsidian Glass Slab=Papak Obsidia +Inner Obsidian Glass Stair=Tangga Obsidia Dalaman +Outer Obsidian Glass Stair=Tangga Obsidia Luaran +Wooden Stair=Tangga Kayu +Inner Wooden Stair=Tangga Kayu Dalaman +Outer Wooden Stair=Tangga Kayu Luaran +Wooden Slab=Papak Kayu +Jungle Wood Stair=Tangga Kayu Hutan +Inner Jungle Wood Stair=Tangga Kayu Hutan Dalaman +Outer Jungle Wood Stair=Tangga Kayu Hutan Luaran +Jungle Wood Slab=Papak Kayu Hutan +Pine Wood Stair=Tangga Kayu Pain +Inner Pine Wood Stair=Tangga Kayu Pain Dalaman +Outer Pine Wood Stair=Tangga Kayu Pain Luaran +Pine Wood Slab=Papak Kayu Pain +Acacia Wood Stair=Tangga Kayu Akasia +Inner Acacia Wood Stair=Tangga Kayu Akasia Dalaman +Outer Acacia Wood Stair=Tangga Kayu Akasia Luaran +Acacia Wood Slab=Papak Kayu Akasia +Aspen Wood Stair=Tangga Kayu Aspen +Inner Aspen Wood Stair=Tangga Kayu Aspen Dalaman +Outer Aspen Wood Stair=Tangga Kayu Aspen Luaran +Aspen Wood Slab=Papak Kayu Aspen +Stone Stair=Tangga Batu +Inner Stone Stair=Tangga Batu Dalaman +Outer Stone Stair=Tangga Batu Luaran +Stone Slab=Papak Batu +Cobblestone Stair=Tangga Batu Buntar +Inner Cobblestone Stair=Tangga Batu Buntar Dalaman +Outer Cobblestone Stair=Tangga Batu Buntar Luaran +Cobblestone Slab=Papak Batu Buntar +Mossy Cobblestone Stair=Tangga Batu Buntar Berlumut +Inner Mossy Cobblestone Stair=Tangga Batu Buntar Berlumut Dalaman +Outer Mossy Cobblestone Stair=Tangga Batu Buntar Berlumut Luaran +Mossy Cobblestone Slab=Papak Batu Buntar Berlumut +Stone Brick Stair=Tangga Bata Batu +Inner Stone Brick Stair=Tangga Bata Batu Dalaman +Outer Stone Brick Stair=Tangga Bata Batu Luaran +Stone Brick Slab=Papak Bata Batu +Stone Block Stair=Tangga Bongkah Batu +Inner Stone Block Stair=Tangga Bongkah Batu Dalaman +Outer Stone Block Stair=Tangga Bongkah Batu Luaran +Stone Block Slab=Papak Bongkah Batu +Desert Stone Stair=Tangga Batu Gurun +Inner Desert Stone Stair=Tangga Batu Gurun Dalaman +Outer Desert Stone Stair=Tangga Batu Gurun Luaran +Desert Stone Slab=Papak Batu Gurun +Desert Cobblestone Stair=Tangga Batu Buntar Gurun +Inner Desert Cobblestone Stair=Tangga Batu Buntar Gurun Dalaman +Outer Desert Cobblestone Stair=Tangga Batu Buntar Gurun Luaran +Desert Cobblestone Slab=Papak Batu Buntar Gurun +Desert Stone Brick Stair=Tangga Bata Batu Gurun +Inner Desert Stone Brick Stair=Tangga Bata Batu Gurun Dalaman +Outer Desert Stone Brick Stair=Tangga Bata Batu Gurun Luaran +Desert Stone Brick Slab=Papak Bata Batu Gurun +Desert Stone Block Stair=Tangga Bongkah Batu Gurun +Inner Desert Stone Block Stair=Tangga Bongkah Batu Gurun Dalaman +Outer Desert Stone Block Stair=Tangga Bongkah Batu Gurun Luaran +Desert Stone Block Slab=Papak Bongkah Batu Gurun +Sandstone Stair=Tangga Batu Pasir +Inner Sandstone Stair=Tangga Batu Pasir Dalaman +Outer Sandstone Stair=Tangga Batu Pasir Luaran +Sandstone Slab=Papak Batu Pasir +Sandstone Brick Stair=Tangga Bata Batu Pasir +Inner Sandstone Brick Stair=Tangga Bata Batu Pasir Dalaman +Outer Sandstone Brick Stair=Tangga Bata Batu Pasir Luaran +Sandstone Brick Slab=Papak Bata Batu Pasir +Sandstone Block Stair=Tangga Bongkah Batu Pasir +Inner Sandstone Block Stair=Tangga Bongkah Batu Pasir Dalaman +Outer Sandstone Block Stair=Tangga Bongkah Batu Pasir Luaran +Sandstone Block Slab=Papak Bongkah Batu Pasir +Desert Sandstone Stair=Tangga Batu Pasir Gurun +Inner Desert Sandstone Stair=Tangga Batu Pasir Gurun Dalaman +Outer Desert Sandstone Stair=Tangga Batu Pasir Gurun Luaran +Desert Sandstone Slab=Papak Batu Pasir Gurun +Desert Sandstone Brick Stair=Tangga Bata Batu Pasir Gurun +Inner Desert Sandstone Brick Stair=Tangga Bata Batu Pasir Gurun Dalaman +Outer Desert Sandstone Brick Stair=Tangga Bata Batu Pasir Gurun Luaran +Desert Sandstone Brick Slab=Papak Bata Batu Pasir Gurun +Desert Sandstone Block Stair=Tangga Bongkah Batu Pasir Gurun +Inner Desert Sandstone Block Stair=Tangga Bongkah Batu Pasir Gurun Dalaman +Outer Desert Sandstone Block Stair=Tangga Bongkah Batu Pasir Gurun Luaran +Desert Sandstone Block Slab=Papak Bongkah Batu Pasir Gurun +Silver Sandstone Stair=Tangga Batu Pasir Perak +Inner Silver Sandstone Stair=Tangga Batu Pasir Perak Dalaman +Outer Silver Sandstone Stair=Tangga Batu Pasir Perak Luaran +Silver Sandstone Slab=Papak Batu Pasir Perak +Silver Sandstone Brick Stair=Tangga Bata Batu Pasir Perak +Inner Silver Sandstone Brick Stair=Tangga Bata Batu Pasir Perak Dalaman +Outer Silver Sandstone Brick Stair=Tangga Bata Batu Pasir Perak Luaran +Silver Sandstone Brick Slab=Papak Bata Batu Pasir Perak +Silver Sandstone Block Stair=Tangga Bongkah Batu Pasir Perak +Inner Silver Sandstone Block Stair=Tangga Bongkah Batu Pasir Perak Dalaman +Outer Silver Sandstone Block Stair=Tangga Bongkah Batu Pasir Perak Luaran +Silver Sandstone Block Slab=Papak Bongkah Batu Pasir Perak +Obsidian Stair=Tangga Obsidia +Inner Obsidian Stair=Tangga Obsidia Dalaman +Outer Obsidian Stair=Tangga Obsidia Luaran +Obsidian Slab=Papak Obsidia +Obsidian Brick Stair=Tangga Bata Obsidia +Inner Obsidian Brick Stair=Tangga Bata Obsidia Dalaman +Outer Obsidian Brick Stair=Tangga Bata Obsidia Luaran +Obsidian Brick Slab=Papak Bata Obsidia +Obsidian Block Stair=Tangga Bongkah Obsidia +Inner Obsidian Block Stair=Tangga Bongkah Obsidia Dalaman +Outer Obsidian Block Stair=Tangga Bongkah Obsidia Luaran +Obsidian Block Slab=Papak Bongkah Obsidia +Brick Stair=Tangga Bata +Inner Brick Stair=Tangga Bata Dalaman +Outer Brick Stair=Tangga Bata Luaran +Brick Slab=Papak Bata +Steel Block Stair=Tangga Bongkah Keluli +Inner Steel Block Stair=Tangga Bongkah Keluli Dalaman +Outer Steel Block Stair=Tangga Bongkah Keluli Luaran +Steel Block Slab=Papak Bongkah Keluli +Tin Block Stair=Tangga Bongkah Timah +Inner Tin Block Stair=Tangga Bongkah Timah Dalaman +Outer Tin Block Stair=Tangga Bongkah Timah Luaran +Tin Block Slab=Papak Bongkah Timah +Copper Block Stair=Tangga Bongkah Tembaga +Inner Copper Block Stair=Tangga Bongkah Tembaga Dalaman +Outer Copper Block Stair=Tangga Bongkah Tembaga Luaran +Copper Block Slab=Papak Bongkah Tembaga +Bronze Block Stair=Tangga Bongkah Gangsa +Inner Bronze Block Stair=Tangga Bongkah Gangsa Dalaman +Outer Bronze Block Stair=Tangga Bongkah Gangsa Luaran +Bronze Block Slab=Papak Bongkah Gangsa +Gold Block Stair=Tangga Bongkah Emas +Inner Gold Block Stair=Tangga Bongkah Emas Dalaman +Outer Gold Block Stair=Tangga Bongkah Emas Luaran +Gold Block Slab=Papak Bongkah Emas +Ice Stair=Tangga Ais +Inner Ice Stair=Tangga Ais Dalaman +Outer Ice Stair=Tangga Ais Luaran +Ice Slab=Papak Ais +Snow Block Stair=Tangga Bongkah Salji +Inner Snow Block Stair=Tangga Bongkah Salji Dalaman +Outer Snow Block Stair=Tangga Bongkah Salji Luaran +Snow Block Slab=Papak Bongkah Salji diff --git a/mods/stairs/locale/stairs.pt_BR.tr b/mods/stairs/locale/stairs.pt_BR.tr new file mode 100644 index 00000000..41777a81 --- /dev/null +++ b/mods/stairs/locale/stairs.pt_BR.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Escada de vidro +Glass Slab=Placa de vidro +Inner Glass Stair=Escada interior de vidro +Outer Glass Stair=Escada exterior de vidro +Obsidian Glass Stair=Escada de vidro de obsidiana +Obsidian Glass Slab=Placa de vidro de obsidiana +Inner Obsidian Glass Stair=Escada interior de vidro de obsidiana +Outer Obsidian Glass Stair=Escada exterior de vidro de obsidiana +Wooden Stair=Escada de madeira +Inner Wooden Stair=Escada interior de madeira +Outer Wooden Stair=Escada exterior de madeira +Wooden Slab=Laje de madeira +Jungle Wood Stair=Escada de madeira da selva +Inner Jungle Wood Stair=Escada interior de madeira da selva +Outer Jungle Wood Stair=Escada exterior de madeira da selva +Jungle Wood Slab=Laje de madeira da selva +Pine Wood Stair=Escada de madeira de pinho +Inner Pine Wood Stair=Escada interior de madeira de pinho +Outer Pine Wood Stair=Escada exterior de madeira de pinho +Pine Wood Slab=Laje de madeira de pinho +Acacia Wood Stair=Escada de madeira de acácia +Inner Acacia Wood Stair=Escada interior de madeira de acácia +Outer Acacia Wood Stair=Escada exterior de madeira de acácia +Acacia Wood Slab=Placa de madeira de acácia +Aspen Wood Stair=Escada de Álamo +Inner Aspen Wood Stair=Escada interior de Álamo +Outer Aspen Wood Stair=Escada exterior de Álamo +Aspen Wood Slab=Laje de Álamo +Stone Stair=Escada de Pedra +Inner Stone Stair=Escada interior de Pedra +Outer Stone Stair=Escada exterior de Pedra +Stone Slab=Laje de pedra +Cobblestone Stair=Escada de paralelepípedo +Inner Cobblestone Stair=Escada interior de paralelepípedo +Outer Cobblestone Stair=Escada exterior de paralelepípedo +Cobblestone Slab=Laje de paralelepípedo +Mossy Cobblestone Stair=Escada de paralelepípedo com musgo +Inner Mossy Cobblestone Stair=Escada interior de paralelepípedo com musgo +Outer Mossy Cobblestone Stair=Escada exterior de paralelepípedo com musgo +Mossy Cobblestone Slab=Laje de paralelepípedo com musgo +Stone Brick Stair=Escada de tijolo de pedra +Inner Stone Brick Stair=Escada interior de tijolo de pedra +Outer Stone Brick Stair=Escada exterior de tijolo de pedra +Stone Brick Slab=Laje de tijolo de pedra +Stone Block Stair=Escada Bloco de Pedra +Inner Stone Block Stair=Escada Interna de Bloco de Pedra +Outer Stone Block Stair=Escada Externa de Bloco de Pedra +Stone Block Slab=Laje de bloco de pedra +Desert Stone Stair=Escada de Pedra do Deserto +Inner Desert Stone Stair=Escada Interior de Pedra do Deserto +Outer Desert Stone Stair=Escada Exterior de Pedra do Deserto +Desert Stone Slab=Laje de pedra do deserto +Desert Cobblestone Stair=Escada de paralelepípedo do deserto +Inner Desert Cobblestone Stair=Escada interior de paralelepípedo do deserto +Outer Desert Cobblestone Stair=Escada exterior de paralelepípedo do deserto +Desert Cobblestone Slab=Laje de paralelepípedo do deserto +Desert Stone Brick Stair=Escada de tijolo de pedra do deserto +Inner Desert Stone Brick Stair=Escada interior de tijolos de pedra do deserto +Outer Desert Stone Brick Stair=Escada exterior de tijolos de pedra do deserto +Desert Stone Brick Slab=Laje de tijolo de pedra do deserto +Desert Stone Block Stair=Escada de Bloco de Pedra do Deserto +Inner Desert Stone Block Stair=Escada interior de bloco de pedra do deserto +Outer Desert Stone Block Stair=Escada exterior de Bloco de Pedra do Deserto +Desert Stone Block Slab=Laje do bloco de pedra do deserto +Sandstone Stair=Escada de arenito +Inner Sandstone Stair=Escada interior de arenito +Outer Sandstone Stair=Escada Exterior de Arenito +Sandstone Slab=Laje de arenito +Sandstone Brick Stair=Escada de tijolo de arenito +Inner Sandstone Brick Stair=Escada interior de tijolos de arenito +Outer Sandstone Brick Stair=Escada Exterior de Tijolo de Arenito +Sandstone Brick Slab=Laje de tijolo de arenito +Sandstone Block Stair=Escada do Bloco de Arenito +Inner Sandstone Block Stair=Escada interior de bloco de arenito +Outer Sandstone Block Stair=Escada exterior de bloco de arenito +Sandstone Block Slab=Laje de bloco de arenito +Desert Sandstone Stair=Escada de arenito do deserto +Inner Desert Sandstone Stair=Escada interior de arenito do deserto +Outer Desert Sandstone Stair=Escada exterior de arenito do deserto +Desert Sandstone Slab=Laje de arenito do deserto +Desert Sandstone Brick Stair=Escada de tijolos de arenito do deserto +Inner Desert Sandstone Brick Stair=Escada interior de tijolos de arenito do deserto +Outer Desert Sandstone Brick Stair=Escada exterior de tijolos de arenito do deserto +Desert Sandstone Brick Slab=Laje de tijolo de arenito do deserto +Desert Sandstone Block Stair=Escada do bloco de arenito do deserto +Inner Desert Sandstone Block Stair=Escada interior do bloco de arenito do deserto +Outer Desert Sandstone Block Stair=Escada exterior de bloco de arenito do deserto +Desert Sandstone Block Slab=Laje de bloco de arenito do deserto +Silver Sandstone Stair=Escada de arenito prateado +Inner Silver Sandstone Stair=Escada interior de Arenito Prateado +Outer Silver Sandstone Stair=Escada exterior de Arenito Prateado +Silver Sandstone Slab=Laje de arenito prateado +Silver Sandstone Brick Stair=Escada de tijolos de arenito prateado +Inner Silver Sandstone Brick Stair=Escada interior de tijolos de arenito prateado +Outer Silver Sandstone Brick Stair=Escada exterior de tijolos de arenito prateado +Silver Sandstone Brick Slab=Laje de tijolo de arenito prateado +Silver Sandstone Block Stair=Escada de blocos de arenito prateado +Inner Silver Sandstone Block Stair=Escada interior de bloco de arenito prateado +Outer Silver Sandstone Block Stair=Escada exterior de bloco de arenito prateado +Silver Sandstone Block Slab=Laje de bloco de arenito prateado +Obsidian Stair=Escada de Obsidiana +Inner Obsidian Stair=Escada interior de Obsidiana +Outer Obsidian Stair=Escada exterior de Obsidiana +Obsidian Slab=Laje de Obsidiana +Obsidian Brick Stair=Escada de Tijolos de Obsidiana +Inner Obsidian Brick Stair=Escada interna de Tijolos de Obsidiana +Outer Obsidian Brick Stair=Escada externa de Tijolos de Obsidiana +Obsidian Brick Slab=Laje de tijolos de obsidiana +Obsidian Block Stair=Escada de Bloco de Obsidiana +Inner Obsidian Block Stair=Escada interior de Bloco de obsidiana +Outer Obsidian Block Stair=Escada exterior de Bloco de obsidiana +Obsidian Block Slab=Laje de bloco de obsidiana +Brick Stair=Escada de Tijolos +Inner Brick Stair=Escada interior de Tijolos +Outer Brick Stair=Escada exterior de Tijolos +Brick Slab=Laje de tijolos +Steel Block Stair=Escada de bloco de aço +Inner Steel Block Stair=Escada interior de bloco de aço +Outer Steel Block Stair=Escada exterior de bloco de aço +Steel Block Slab=Laje de bloco de aço +Tin Block Stair=Escada de bloco de estanho +Inner Tin Block Stair=Escada interior de bloco de estanho +Outer Tin Block Stair=Escada exterior de bloco de lata +Tin Block Slab=Laje de bloco de estanho +Copper Block Stair=Escada de bloco de cobre +Inner Copper Block Stair=Escada interior de Bloco de Cobre +Outer Copper Block Stair=Escada exterior do Bloco de Cobre +Copper Block Slab=Laje de bloco de cobre +Bronze Block Stair=Escada Bloco de Bronze +Inner Bronze Block Stair=Escada interior de bloco de bronze +Outer Bronze Block Stair=Escada exterior de Bloco de Bronze +Bronze Block Slab=Laje de bloco de bronze +Gold Block Stair=Escada Bloco de Ouro +Inner Gold Block Stair=Escada interior de Bloco de Ouro +Outer Gold Block Stair=Escada exterior de Bloco de Ouro +Gold Block Slab=Laje de Bloco de Ouro +Ice Stair=Escada de gelo +Inner Ice Stair=Escada de gelo interior +Outer Ice Stair=Escada de gelo exterior +Ice Slab=Laje de gelo +Snow Block Stair=Escada Bloco de Neve +Inner Snow Block Stair=Escada de bloco de neve interior +Outer Snow Block Stair=Escada de bloco de neve exterior +Snow Block Slab=Laje de bloco de neve diff --git a/mods/stairs/locale/stairs.ru.tr b/mods/stairs/locale/stairs.ru.tr new file mode 100644 index 00000000..2d5850ea --- /dev/null +++ b/mods/stairs/locale/stairs.ru.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Стеклянная Ступень +Glass Slab=Стеклянная Плита +Inner Glass Stair=Угловая Стеклянная Ступень (Внутренний Угол) +Outer Glass Stair=Угловая Стеклянная Ступень (Внешний Угол) +Obsidian Glass Stair=Стеклянная Ступень Из Обсидиана +Obsidian Glass Slab=Стеклянная Плита Из Обсидиана +Inner Obsidian Glass Stair=Угловая Стеклянная Ступень Из Обсидиана (Внутренний Угол) +Outer Obsidian Glass Stair=Угловая Стеклянная Ступень Из Обсидиана (Внешний Угол) +Wooden Stair=Яблоневая Деревянная Ступень +Inner Wooden Stair=Угловая Яблоневая Деревянная Ступень (Внутренний Угол) +Outer Wooden Stair=Угловая Яблоневая Деревянная Ступень (Внешний Угол) +Wooden Slab=Яблоневая Деревянная Плита +Jungle Wood Stair=Тропическая Деревянная Ступень +Inner Jungle Wood Stair=Угловая Тропическая Деревянная Ступень (Внутренний Угол) +Outer Jungle Wood Stair=Угловая Тропическая Деревянная Ступень (Внешний Угол) +Jungle Wood Slab=Тропическая Деревянная Плита +Pine Wood Stair=Сосновая Деревянная Ступень +Inner Pine Wood Stair=Угловая Сосновая Деревянная Ступень (Внутренний Угол) +Outer Pine Wood Stair=Угловая Сосновая Деревянная Ступень (Внешний Угол) +Pine Wood Slab=Сосновая Деревянная Плита +Acacia Wood Stair=Деревянная Ступень Из Акации +Inner Acacia Wood Stair=Угловая Деревянная Ступень Из Акации (Внутренний Угол) +Outer Acacia Wood Stair=Угловая Деревянная Ступень Из Акации (Внешний Угол) +Acacia Wood Slab=Деревянная Плита Из Акации +Aspen Wood Stair=Осиновая Деревянная Ступень +Inner Aspen Wood Stair=Угловая Осиновая Деревянная Ступень (Внутренний Угол) +Outer Aspen Wood Stair=Угловая осиновая Деревянная Ступень (Внешний Угол) +Aspen Wood Slab=Осиновая Деревянная Плита +Stone Stair=Каменная Ступень +Inner Stone Stair=Угловая Каменная Ступень (Внутренний Угол) +Outer Stone Stair=Угловая Каменная Ступень (Внешний Угол) +Stone Slab=Каменная Плита +Cobblestone Stair=Булыжниковая Ступень +Inner Cobblestone Stair=Угловая Булыжниковая Ступень (Внутренний Угол) +Outer Cobblestone Stair=Угловая Булыжниковая Ступень (Внешний Угол) +Cobblestone Slab=Булыжниковая Плита +Mossy Cobblestone Stair=Мшистая Булыжниковая Ступень +Inner Mossy Cobblestone Stair=Угловая Мшистая Булыжниковая Ступень (Внутренний Угол) +Outer Mossy Cobblestone Stair=Угловая Мшистая Булыжниковая Ступень (Внешний Угол) +Mossy Cobblestone Slab=Мшистая Булыжниковая Плита +Stone Brick Stair=Cтупень Из Каменных Кирпичей +Inner Stone Brick Stair=Угловая Ступень Из Каменных Кирпичей (Внутренний Угол) +Outer Stone Brick Stair=Угловая Ступень Из Каменных Кирпичей (Внешний Угол) +Stone Brick Slab=Плита Из Каменных Кирпичей +Stone Block Stair=Ступень Из Каменного Блока +Inner Stone Block Stair=Угловая Ступень Из Каменного Блока (Внутренний Угол) +Outer Stone Block Stair=Угловая Ступень Из Каменного Блока (Внешний Угол) +Stone Block Slab=Плита Из Каменного Блока +Desert Stone Stair=Ступень Из Пустынного Камня +Inner Desert Stone Stair=Угловая Ступень Из Пустынного Камня (Внутренний Угол) +Outer Desert Stone Stair=Угловая Ступень Из Пустынного Камня (Внешний Угол) +Desert Stone Slab=Плита Из Пустынного Камня +Desert Cobblestone Stair=Ступень Из Пустынного Булыжника +Inner Desert Cobblestone Stair=Угловая Ступень Из Пустынного Булыжника (Внутренний Угол) +Outer Desert Cobblestone Stair=Угловая Ступень Из Пустынного Булыжника (Внешний Угол) +Desert Cobblestone Slab=Плита Из Пустынного Камня +Desert Stone Brick Stair=Ступень Из Кирпичей Пустынного Камня +Inner Desert Stone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Камня (Внутренний Угол) +Outer Desert Stone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Камня (Внешний Угол) +Desert Stone Brick Slab=Плита Из Кирпичей Пустынного Камня +Desert Stone Block Stair=Ступень Из Пустынного Каменного Блока +Inner Desert Stone Block Stair=Угловая Ступень Из Пустынного Каменного Блока (Внутренний Угол) +Outer Desert Stone Block Stair=Угловая Ступень Из Пустынного Каменного Блока (Внешний Угол) +Desert Stone Block Slab=Плита Из Пустынного Каменного Блока +Sandstone Stair=Песчаниковая Ступень +Inner Sandstone Stair=Угловая Песчаниковая Ступень (Внутренний Угол) +Outer Sandstone Stair=Угловая Песчаниковая Ступень (Внешний Угол) +Sandstone Slab=Песчаниковая Плита +Sandstone Brick Stair=Ступень Из Песчаниковых Кирпичей +Inner Sandstone Brick Stair=Угловая Ступень Из Песчаниковых Кирпичей (Внутренний Угол) +Outer Sandstone Brick Stair=Угловая Ступень Из Песчаниковых Кирпичей (Внешний Угол) +Sandstone Brick Slab=Плита Из Песчаниковых Кирпичей +Sandstone Block Stair=Ступень Из Песчаникового Блока +Inner Sandstone Block Stair=Угловая Ступень Из Песчаникового Блока (Внутренний Угол) +Outer Sandstone Block Stair=Угловая Ступень Из Песчаникового Блока (Внешний Угол) +Sandstone Block Slab=Плита Из Песчаникового Блока +Desert Sandstone Stair=Ступень Из Пустынного Песчаника +Inner Desert Sandstone Stair=Угловая Ступень Из Пустынного Песчаника (Внутренний Угол) +Outer Desert Sandstone Stair=Угловая Ступень Из Пустынного Песчаника (Внешний Угол) +Desert Sandstone Slab=Плита Из Пустынного Песчаника +Desert Sandstone Brick Stair=Ступень Из Кирпичей Пустынного Песчаника +Inner Desert Sandstone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Песчаника (Внутренний Угол) +Outer Desert Sandstone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Песчаника (Внешний Угол) +Desert Sandstone Brick Slab=Плита Из Кирпичей Пустынного Песчаника +Desert Sandstone Block Stair=Ступень Из Пустынного Песчаникового Блока +Inner Desert Sandstone Block Stair=Угловая Ступень Из Пустынного Песчаникового Блока (Внутренний Угол) +Outer Desert Sandstone Block Stair=Угловая Ступень Из Пустынного Песчаникового Блока (Внешний Угол) +Desert Sandstone Block Slab=Плита Из Пустынного Песчаникового Блока +Silver Sandstone Stair=Ступень Из Серебрянного Песчаника +Inner Silver Sandstone Stair=Угловая Ступень Из Серебряного Песчаника (Внутренний Угол) +Outer Silver Sandstone Stair=Угловая Ступень Из Серебряного Песчаника (Внешний Угол) +Silver Sandstone Slab=Плита Из Серебряного Песчаника +Silver Sandstone Brick Stair=Ступень Из Кирпичей Серебряного Песчаника +Inner Silver Sandstone Brick Stair=Угловая Ступень Из Кирпичей Серебряного Песчаника (Внутренний Угол) +Outer Silver Sandstone Brick Stair=Угловая Ступень Из Кирпичей Серебряного Песчаника (Внешний Угол) +Silver Sandstone Brick Slab=Плита Из Кирпичей Серебряного Песчаника +Silver Sandstone Block Stair=Ступень Из Серебряного Песчаникового Блока +Inner Silver Sandstone Block Stair=Угловая Ступень Из Серебряного Песчаникового Блока (Внутренний Угол) +Outer Silver Sandstone Block Stair=Угловая Ступень Из Серебряного Песчаникового Блока (Внешний Угол) +Silver Sandstone Block Slab=Плита Из Серебряного Песчаникового Блока +Obsidian Stair=Обсидиановая Ступень +Inner Obsidian Stair=Угловая Обсидиановая Ступень (Внутренний Угол) +Outer Obsidian Stair=Угловая Обсидиановая Ступень (Внешний Угол) +Obsidian Slab=Обсидиановая Плита +Obsidian Brick Stair=Ступень Из Обсидиановых Кирпичей +Inner Obsidian Brick Stair=Угловая Ступень Из Обсидиановых Кирпичей (Внутренний Угол) +Outer Obsidian Brick Stair=Угловая Ступень Из Обсидиановых Кирпичей (Внешний Угол) +Obsidian Brick Slab=Плита Из Обсидиановых Кирпичей +Obsidian Block Stair=Ступень Из Обсидианового Блока +Inner Obsidian Block Stair=Угловая Ступень Из Обсидианового Блока (Внутренний Угол) +Outer Obsidian Block Stair=Угловая Ступень Из Обсидианового Блока (Внешний Угол) +Obsidian Block Slab=Плита Из Обсидианового Блока +Brick Stair=Ступень Из Кирпичей +Inner Brick Stair=Угловая Ступень Из Кирпичей (Внутренний Угол) +Outer Brick Stair=Угловая Ступень Из Кирпичей (Внешний Угол) +Brick Slab=Плита Из Кирпичей +Steel Block Stair=Ступень Из Стального Блока +Inner Steel Block Stair=Угловая Ступень Из Стального Блока (Внутренний Угол) +Outer Steel Block Stair=Угловая Ступень Из Стального Блока (Внешний Угол) +Steel Block Slab=Плита Из Стального Блока +Tin Block Stair=Ступень Из Оловянного Блока +Inner Tin Block Stair=Угловая Ступень Из Оловянного Блока (Внутренний Угол) +Outer Tin Block Stair=Угловая Ступень Из Оловянного Блока (Внешний Угол) +Tin Block Slab=Плита Из Оловянного Блока +Copper Block Stair=Ступень Из Медного Блока +Inner Copper Block Stair=Угловая Ступень Из Медного Блока (Внутренний Угол) +Outer Copper Block Stair=Угловая Ступень Из Медного Блока (Внешний Угол) +Copper Block Slab=Плита Из Медного Блока +Bronze Block Stair=Ступень Из Бронзового Блока +Inner Bronze Block Stair=Угловая Ступень Из Бронзового Блока (Внутренний Угол) +Outer Bronze Block Stair=Угловая Ступень Из Бронзового Блока (Внешний Угол) +Bronze Block Slab=Плита Из Бронзового Блока +Gold Block Stair=Ступень Из Золотого Блока +Inner Gold Block Stair=Угловая Ступень Из Золотого Блока (Внутренний Угол) +Outer Gold Block Stair=Угловая Ступень Из Золотого Блока (Внешний Угол) +Gold Block Slab=Плита Из Золотого Блока +Ice Stair=Ледяная Ступень +Inner Ice Stair=Угловая Ледяная Ступень (Внутренний Угол) +Outer Ice Stair=Угловая Ледяная Ступень (Внешний Угол) +Ice Slab=Ледяная Плита +Snow Block Stair=Ступень Из Снежного Блока +Inner Snow Block Stair=Угловая Ступень Из Снежного Блока (Внутренний Угол) +Outer Snow Block Stair=Угловая Ступень Из Снежного Блока (Внешний Угол) +Snow Block Slab=Плита Из Снежного Блока diff --git a/mods/stairs/locale/stairs.se.tr b/mods/stairs/locale/stairs.se.tr new file mode 100644 index 00000000..3ace06d0 --- /dev/null +++ b/mods/stairs/locale/stairs.se.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Glastrappa +Glass Slab=Glasplatta +Inner Glass Stair=Inre glasstrappa +Outer Glass Stair=Yttre glasstrappa +Obsidian Glass Stair=Obsidian Glass Trappa +Obsidian Glass Slab=Obsidian glasplatta +Inner Obsidian Glass Stair=Inre Obsidian Glass Trappa +Outer Obsidian Glass Stair=Yttre Obsidian Glass Trappa +Wooden Stair=Trätrappa +Inner Wooden Stair=Inre trätrappa +Outer Wooden Stair=Yttre trätrappa +Wooden Slab=Träplatta +Jungle Wood Stair=Jungle Wood Stair +Inner Jungle Wood Stair=Inre Jungle Wood Stair +Outer Jungle Wood Stair=Ytter Jungle Wood Stair +Jungle Wood Slab=Jungle Wood Platta +Pine Wood Stair=Pine Wood Stair +Inner Pine Wood Stair=Inre tall trä trappa +Outer Pine Wood Stair=Ytter tall Trätrappa +Pine Wood Slab=Tallskiva +Acacia Wood Stair=Acacia Wood Stair +Inner Acacia Wood Stair=Inre Acacia Trätrappa +Outer Acacia Wood Stair=Yttre Acacia Trätrappa +Acacia Wood Slab=Acacia träplatta +Aspen Wood Stair=Asp Trä Stair +Inner Aspen Wood Stair=Inre Aspen Trätrappa +Outer Aspen Wood Stair=Yttre Aspen Trätrappa +Aspen Wood Slab=Asp Trä Platta +Stone Stair=Stentrappa +Inner Stone Stair=Inre stentrappa +Outer Stone Stair=Yttre stentrappa +Stone Slab=Stenplatta +Cobblestone Stair=Kullersten trappa +Inner Cobblestone Stair=Inre kullerstensTrappa +Outer Cobblestone Stair=Yttre kullerstensTrappa +Cobblestone Slab=Kullerstenplatta +Mossy Cobblestone Stair=Mossig kullerstensTrappa +Inner Mossy Cobblestone Stair=Inre mossiga kullerstensTrappa +Outer Mossy Cobblestone Stair=Yttre mossiga kullerstensTrappa +Mossy Cobblestone Slab=Mossig kullerstenplatta +Stone Brick Stair=Sten Brick Trappa +Inner Stone Brick Stair=Inre sten tegel trappa +Outer Stone Brick Stair=Yttre sten tegel trappa +Stone Brick Slab=Sten tegelplatta +Stone Block Stair=Sten Block Trappa +Inner Stone Block Stair=Inre stenblock trappa +Outer Stone Block Stair=Yttre stenblock trappa +Stone Block Slab=Stenblockplatta +Desert Stone Stair=Öken Sten Trappa +Inner Desert Stone Stair=Inre Öken Sten Stair +Outer Desert Stone Stair=Outer Öken Sten Stair +Desert Stone Slab=Öken Sten Platta +Desert Cobblestone Stair=Öken Kullersten Trappa +Inner Desert Cobblestone Stair=Inre Öken Kullersten Trappa +Outer Desert Cobblestone Stair=Outer Öken Kullersten Trappa +Desert Cobblestone Slab=Öken Kullersten Platta +Desert Stone Brick Stair=Öken Sten Brick Trappa +Inner Desert Stone Brick Stair=Inre Öken Sten Brick Trappa +Outer Desert Stone Brick Stair=Outer Öken Sten Brick Trappa +Desert Stone Brick Slab=Öken Sten tegelplatta +Desert Stone Block Stair=Öken Sten Block Trappa +Inner Desert Stone Block Stair=Inre Öken Sten Block Stair +Outer Desert Stone Block Stair=Outer Öken Sten Block Trappa +Desert Stone Block Slab=Öken Sten Block Platta +Sandstone Stair=Sandstenstrappa +Inner Sandstone Stair=Inre Sandstenstrappa +Outer Sandstone Stair=Yttre Sandstenstrappa +Sandstone Slab=Sandstenplatta +Sandstone Brick Stair=Sandsten tegel trappa +Inner Sandstone Brick Stair=Inre Sandsten tegel trappa +Outer Sandstone Brick Stair=Yttre Sandsten tegel trappa +Sandstone Brick Slab=Sandsten tegelplatta +Sandstone Block Stair=Sandsten block trappa +Inner Sandstone Block Stair=Inre Sandsten block trappa +Outer Sandstone Block Stair=Yttre Sandsten block trappa +Sandstone Block Slab=Sandsten Block Platta +Desert Sandstone Stair=Öken Sandsten Trappa +Inner Desert Sandstone Stair=Inre Öken Sandsten Trappa +Outer Desert Sandstone Stair=Outer Öken Sandsten Trappa +Desert Sandstone Slab=Öken Sandsten Platta +Desert Sandstone Brick Stair=Öken Sandsten Brick Trappa +Inner Desert Sandstone Brick Stair=Inre Öken Sandsten Brick Trappa +Outer Desert Sandstone Brick Stair=Outer Öken Sandsten Brick Trappa +Desert Sandstone Brick Slab=Öken Sandsten Tegelplatta +Desert Sandstone Block Stair=Öken Sandsten Block Trappa +Inner Desert Sandstone Block Stair=Inre Öken Sandsten Block Trappa +Outer Desert Sandstone Block Stair=Outer Öken Sandsten Block Trappa +Desert Sandstone Block Slab=Öken Sandsten Block Platta +Silver Sandstone Stair=Silver Sandsten trappa +Inner Silver Sandstone Stair=Inre silver Sandsten trappa +Outer Silver Sandstone Stair=Yttre silver Sandsten trappa +Silver Sandstone Slab=Silver Sandsten platta +Silver Sandstone Brick Stair=Silver Sandsten tegel trappa +Inner Silver Sandstone Brick Stair=Inre silver Sandsten tegel trappa +Outer Silver Sandstone Brick Stair=Yttre silver Sandsten tegel trappa +Silver Sandstone Brick Slab=Silver Sandsten tegelplatta +Silver Sandstone Block Stair=Silver Sandsten block trappa +Inner Silver Sandstone Block Stair=Inre silver Sandsten block trappa +Outer Silver Sandstone Block Stair=Yttre silver Sandsten block trappa +Silver Sandstone Block Slab=Silver Sandsten block platta +Obsidian Stair=Obsidian Trappa +Inner Obsidian Stair=Inre Obsidian Trappa +Outer Obsidian Stair=Yttre Obsidian Trappa +Obsidian Slab=Obsidian Platta +Obsidian Brick Stair=Obsidian Brick Stair +Inner Obsidian Brick Stair=Inre Obsidian Brick Trappa +Outer Obsidian Brick Stair=Yttre Obsidian Brick Trappa +Obsidian Brick Slab=Obsidian tegelplatta +Obsidian Block Stair=Obsidian Block Stair +Inner Obsidian Block Stair=Inre Obsidian Block Trappa +Outer Obsidian Block Stair=Yttre Obsidian Block Trappa +Obsidian Block Slab=Obsidian Block Slab +Brick Stair=Tegel trappa +Inner Brick Stair=Inre tegel trappa +Outer Brick Stair=Yttre tegel trappa +Brick Slab=Tegelplatta +Steel Block Stair=Stålblock trappa +Inner Steel Block Stair=Inre stålblock trappa +Outer Steel Block Stair=Yttre stålblocktrappa +Steel Block Slab=Stålblockplatta +Tin Block Stair=Tinn Block Trappa +Inner Tin Block Stair=Inre tennblock trappa +Outer Tin Block Stair=Yttre tennblock trappa +Tin Block Slab=Tennblockplatta +Copper Block Stair=Kopparblock trappa +Inner Copper Block Stair=Inre kopparblock trappa +Outer Copper Block Stair=Yttre kopparblock trappa +Copper Block Slab=Kopparblockplatta +Bronze Block Stair=Bronze Block Trappa +Inner Bronze Block Stair=Inre bronsblock trappa +Outer Bronze Block Stair=Yttre bronsblock trappa +Bronze Block Slab=Bronsblockplatta +Gold Block Stair=Guldblockstrappa +Inner Gold Block Stair=Inre guldblock trappa +Outer Gold Block Stair=Yttre guldblock trappa +Gold Block Slab=Guldblockplatta +Ice Stair=Ice Stair +Inner Ice Stair=Inre istrappa +Outer Ice Stair=Yttre istrappa +Ice Slab=Isplatta +Snow Block Stair=Snow Block Stair +Inner Snow Block Stair=Inre snöblock trappa +Outer Snow Block Stair=Yttre snöblock trappa +Snow Block Slab= diff --git a/mods/stairs/locale/stairs.sk.tr b/mods/stairs/locale/stairs.sk.tr new file mode 100644 index 00000000..b006fdb5 --- /dev/null +++ b/mods/stairs/locale/stairs.sk.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Sklenené schod +Glass Slab=Sklenený stupienok +Inner Glass Stair=Vnútorný sklenené schod +Outer Glass Stair=Vonkajší sklenené schod +Obsidian Glass Stair=Obsidiánové sklenené schod +Obsidian Glass Slab=Obsidiánový sklenený stupienok +Inner Obsidian Glass Stair=Vnútorný obsidiánové sklenené schod +Outer Obsidian Glass Stair=Vonkajší obsidiánové sklenené schod +Wooden Stair=Drevené schod +Inner Wooden Stair=Vnútorný drevené schod +Outer Wooden Stair=Vonkajší drevené schod +Wooden Slab=Drevený stupienok +Jungle Wood Stair=Drevené schod z džungľového dreva +Inner Jungle Wood Stair=Vnútorný drevené schod z džungľového dreva +Outer Jungle Wood Stair=Vonkajší drevené schod z džungľového dreva +Jungle Wood Slab=Stupienok z džungľového dreva +Pine Wood Stair=Drevené schod z borovicového dreva +Inner Pine Wood Stair=Vnútorný drevené schod z borovicového dreva +Outer Pine Wood Stair=Vonkajší drevené schod z borovicového dreva +Pine Wood Slab=Stupienok z borovicového dreva +Acacia Wood Stair=Drevené schod z akáciového dreva +Inner Acacia Wood Stair=Vnútorný drevené schod z akáciového dreva +Outer Acacia Wood Stair=Vonkajší drevené schod z akáciového dreva +Acacia Wood Slab=Stupienok z akáciového dreva +Aspen Wood Stair=Drevené schod z osiky +Inner Aspen Wood Stair=Vnútorný drevené schod z osiky +Outer Aspen Wood Stair=Vonkajší drevené schod z osiky +Aspen Wood Slab=Stupienok z osiky +Stone Stair=Kamenné schod +Inner Stone Stair=Vnútorný kamenné schod +Outer Stone Stair=Vonkajší kamenné schod +Stone Slab=Kamenný stupienok +Cobblestone Stair=Schod z dlažbového kameňa +Inner Cobblestone Stair=Vnútorný schod z dlažbového kameňa +Outer Cobblestone Stair=Vonkajší schod z dlažbového kameňa +Cobblestone Slab=Stupienok z dlažbového kameňa +Mossy Cobblestone Stair=Schod dlažbového kameňa obrastené machom +Inner Mossy Cobblestone Stair=Vnútorný schod dlažbového kameňa obrastené machom +Outer Mossy Cobblestone Stair=Vonkajší schod dlažbového kameňa obrastené machom +Mossy Cobblestone Slab=Stupienok z dlažbového kameňa obrastený machom +Stone Brick Stair=Schod z kamenných tehál +Inner Stone Brick Stair=Vnútorný schod z kamenných tehál +Outer Stone Brick Stair=Vonkajší schod z kamenných tehál +Stone Brick Slab=Stupienok z kamenných tehál +Stone Block Stair=Schod z kameňa +Inner Stone Block Stair=Vnútorný schod z kameňa +Outer Stone Block Stair=Vonkajší schod z kameňa +Stone Block Slab=Stupienok z kameňa +Desert Stone Stair=Schod z púštneho kameňa +Inner Desert Stone Stair=Vnútorný schod z púštneho kameňa +Outer Desert Stone Stair=Vonkajší schod z púštneho kameňa +Desert Stone Slab=Stupienok z púštneho kameňa +Desert Cobblestone Stair=Schod z púštneho dlažbového kameňa +Inner Desert Cobblestone Stair=Vnútorný schod z púštneho dlažbového kameňa +Outer Desert Cobblestone Stair=Vonkajší schod z púštneho dlažbového kameňa +Desert Cobblestone Slab=Stupienok z púštneho dlažbového kameňa +Desert Stone Brick Stair=Schod z tehiel z púštneho kameňa +Inner Desert Stone Brick Stair=Vnútorný schod z tehiel z púštneho kameňa +Outer Desert Stone Brick Stair=Vonkajší schod z tehiel z púštneho kameňa +Desert Stone Brick Slab=Stupienok z tehiel z púštneho kameňa +Desert Stone Block Stair=Schod z blokov púštneho kameňa +Inner Desert Stone Block Stair=Vnútorný schod z blokov púštneho kameňa +Outer Desert Stone Block Stair=Vonkajší schod z blokov púštneho kameňa +Desert Stone Block Slab=Stupienok z blokov púštneho kameňa +Sandstone Stair=Schod z pieskovca +Inner Sandstone Stair=Vnútorný schod z pieskovca +Outer Sandstone Stair=Vonkajší schod z pieskovca +Sandstone Slab=Stupienok z pieskovca +Sandstone Brick Stair=Schod z tehál pieskovca +Inner Sandstone Brick Stair=Vnútorný schod z tehál pieskovca +Outer Sandstone Brick Stair=Vonkajší schod z tehál pieskovca +Sandstone Brick Slab=Stupienok z tehál pieskovca +Sandstone Block Stair=Schod z blokov pieskovca +Inner Sandstone Block Stair=Vnútorný schod z blokov pieskovca +Outer Sandstone Block Stair=Vonkajší schod z blokov pieskovca +Sandstone Block Slab=Stupienok z blokov pieskovca +Desert Sandstone Stair=Schod z púštneho pieskovca +Inner Desert Sandstone Stair=Vnútorný schod z púštneho pieskovca +Outer Desert Sandstone Stair=Vonkajší schod z púštneho pieskovca +Desert Sandstone Slab=Stupienok z púštneho pieskovca +Desert Sandstone Brick Stair=Schod z tehál z púštneho pieskovca +Inner Desert Sandstone Brick Stair=Vnútorný schod z tehál z púštneho pieskovca +Outer Desert Sandstone Brick Stair=Vonkajší schod z tehál z púštneho pieskovca +Desert Sandstone Brick Slab=Stupienok z tehál z púštneho pieskovca +Desert Sandstone Block Stair=Schod z blokov púštneho pieskovca +Inner Desert Sandstone Block Stair=Vnútorný schod z blokov púštneho pieskovca +Outer Desert Sandstone Block Stair=Vonkajší schod z blokov púštneho pieskovca +Desert Sandstone Block Slab=Stupienok z blokov púštneho pieskovca +Silver Sandstone Stair=Schod zo strieborného pieskovca +Inner Silver Sandstone Stair=Vnútorný schod zo strieborného pieskovca +Outer Silver Sandstone Stair=Vonkajší schod zo strieborného pieskovca +Silver Sandstone Slab=Stupienok zo strieborného pieskovca +Silver Sandstone Brick Stair=Schod z tehál zo strieborného pieskovca +Inner Silver Sandstone Brick Stair=Vnútorný schod z tehál zo strieborného pieskovca +Outer Silver Sandstone Brick Stair=Vonkajší schod z tehál zo strieborného pieskovca +Silver Sandstone Brick Slab=Stupienok z tehál zo strieborného pieskovca +Silver Sandstone Block Stair=Schod z blokov strieborného pieskovca +Inner Silver Sandstone Block Stair=Vnútorný schod z blokov strieborného pieskovca +Outer Silver Sandstone Block Stair=Vonkajší schod z blokov strieborného pieskovca +Silver Sandstone Block Slab=Stupienok z blokov strieborného pieskovca +Obsidian Stair=Schod z obsidiánu +Inner Obsidian Stair=Vnútorný schod z obsidiánu +Outer Obsidian Stair=Vonkajší schod z obsidiánu +Obsidian Slab=Stupienok z obsidiánu +Obsidian Brick Stair=Schod z tehál obsidiánu +Inner Obsidian Brick Stair=Vnútorný schod z tehál obsidiánu +Outer Obsidian Brick Stair=Vonkajší schod z tehál obsidiánu +Obsidian Brick Slab=Stupienok z tehál obsidiánu +Obsidian Block Stair=Schod z bloku obsidiánu +Inner Obsidian Block Stair=Vnútorný schod z bloku obsidiánu +Outer Obsidian Block Stair=Vonkajší schod z bloku obsidiánu +Obsidian Block Slab=Stupienok z bloku obsidiánu +Brick Stair=Schod z tehál +Inner Brick Stair=Vnútorný schod z tehál +Outer Brick Stair=Vonkajší schod z tehál +Brick Slab=Stupienok z tehál +Steel Block Stair=Oceľový schod +Inner Steel Block Stair=Vnútorný oceľový schod +Outer Steel Block Stair=Vonkajší oceľový schod +Steel Block Slab=Oceľový stupienok +Tin Block Stair=Cínový schod +Inner Tin Block Stair=Vnútorný cínový schod +Outer Tin Block Stair=Vonkajší cínový schod +Tin Block Slab=Cínový stupienok +Copper Block Stair=Medený schod +Inner Copper Block Stair=Vnútorný medený schod +Outer Copper Block Stair=Vonkajší medený schod +Copper Block Slab=Medený stupienok +Bronze Block Stair=Bronzový schod +Inner Bronze Block Stair=Vnútorný bronzový schod +Outer Bronze Block Stair=Vonkajší bronzový schod +Bronze Block Slab=Bronzový stupienok +Gold Block Stair=Zlatý schod +Inner Gold Block Stair=Vnútorný zlatý schod +Outer Gold Block Stair=Vonkajší zlatý schod +Gold Block Slab=Zlatý stupienok +Ice Stair=Ľadový schod +Inner Ice Stair=Vnútorný ľadový schod +Outer Ice Stair=Vonkajší ľadový schod +Ice Slab=Ľadový stupienok +Snow Block Stair=Snehový schod +Inner Snow Block Stair=Vnútorný snehový schod +Outer Snow Block Stair=Vonkajší snehový schod +Snow Block Slab=Snehový stupienok diff --git a/mods/stairs/locale/stairs.zh_CN.tr b/mods/stairs/locale/stairs.zh_CN.tr new file mode 100644 index 00000000..85646657 --- /dev/null +++ b/mods/stairs/locale/stairs.zh_CN.tr @@ -0,0 +1,153 @@ +# textdomain: stairs +Glass Stair=玻璃楼梯 +Glass Slab=玻璃台阶 +Inner Glass Stair=玻璃楼梯(内) +Outer Glass Stair=玻璃楼梯(外) +Obsidian Glass Stair=黑曜石玻璃楼梯 +Obsidian Glass Slab=黑曜石玻璃台阶 +Inner Obsidian Glass Stair=黑曜石玻璃楼梯(内) +Outer Obsidian Glass Stair=黑曜石玻璃楼梯(外) +Wooden Stair=木制楼梯 +Inner Wooden Stair=木楼梯(内) +Outer Wooden Stair=木楼梯(外) +Wooden Slab=木制台阶 +Jungle Wood Stair=丛林木楼梯 +Inner Jungle Wood Stair=丛林木楼梯(内) +Outer Jungle Wood Stair=丛林木楼梯(外) +Jungle Wood Slab=丛林木台阶 +Pine Wood Stair=松木楼梯 +Inner Pine Wood Stair=松木楼梯(内) +Outer Pine Wood Stair=松木楼梯(外) +Pine Wood Slab=松木台阶 +Acacia Wood Stair=金合欢木楼梯 +Inner Acacia Wood Stair=金合欢木楼梯(内) +Outer Acacia Wood Stair=金合欢木楼梯(外) +Acacia Wood Slab=金合欢木台阶 +Aspen Wood Stair=白杨木楼梯 +Inner Aspen Wood Stair=白杨木楼梯(内) +Outer Aspen Wood Stair=白杨木楼梯(外) +Aspen Wood Slab=白杨木台阶 +Stone Stair=石楼梯 +Inner Stone Stair=石楼梯(内) +Outer Stone Stair=石楼梯(外) +Stone Slab=石台阶 +Cobblestone Stair=圆石楼梯 +Inner Cobblestone Stair=圆石楼梯(内) +Outer Cobblestone Stair=圆石楼梯(外) +Cobblestone Slab=圆石台阶 +Mossy Cobblestone Stair=苔石楼梯 +Inner Mossy Cobblestone Stair=苔石楼梯(内) +Outer Mossy Cobblestone Stair=苔石楼梯(外) +Mossy Cobblestone Slab=苔石台阶 +Stone Brick Stair=石砖楼梯 +Inner Stone Brick Stair=石砖楼梯(内) +Outer Stone Brick Stair=石砖楼梯(外) +Stone Brick Slab=石砖台阶 +Stone Block Stair=石块楼梯 +Inner Stone Block Stair=石块楼梯(内) +Outer Stone Block Stair=石块楼梯(外) +Stone Block Slab=石块台阶 +Desert Stone Stair=沙漠石楼梯 +Inner Desert Stone Stair=沙漠石楼梯(内) +Outer Desert Stone Stair=沙漠石楼梯(外) +Desert Stone Slab=沙漠石台阶 +Desert Cobblestone Stair=沙漠圆石楼梯 +Inner Desert Cobblestone Stair=沙漠圆石楼梯(内) +Outer Desert Cobblestone Stair=沙漠圆石楼梯(外) +Desert Cobblestone Slab=沙漠圆石台阶 +Desert Stone Brick Stair=沙漠石砖楼梯 +Inner Desert Stone Brick Stair=沙漠石砖楼梯(内) +Outer Desert Stone Brick Stair=沙漠石砖楼梯(外) +Desert Stone Brick Slab=沙漠石砖台阶 +Desert Stone Block Stair=沙漠石块楼梯 +Inner Desert Stone Block Stair=沙漠石块楼梯(内) +Outer Desert Stone Block Stair=沙漠石块楼梯(外) +Desert Stone Block Slab=沙漠石块台阶 +Sandstone Stair=沙石楼梯 +Inner Sandstone Stair=沙石楼梯(内) +Outer Sandstone Stair=沙石楼梯(外) +Sandstone Slab=沙石台阶 +Sandstone Brick Stair=沙石砖楼梯 +Inner Sandstone Brick Stair=沙石砖楼梯(内) +Outer Sandstone Brick Stair=沙石砖楼梯(外) +Sandstone Brick Slab=沙石砖台阶 +Sandstone Block Stair=沙石块楼梯 +Inner Sandstone Block Stair=沙石块楼梯(内) +Outer Sandstone Block Stair=沙石块楼梯(外) +Sandstone Block Slab=沙石块台阶 +Desert Sandstone Stair=沙漠沙石楼梯 +Inner Desert Sandstone Stair=沙漠沙石楼梯(内) +Outer Desert Sandstone Stair=沙漠沙石楼梯(外) +Desert Sandstone Slab=沙漠沙石台阶 +Desert Sandstone Brick Stair=沙漠沙石砖楼梯 +Inner Desert Sandstone Brick Stair=沙漠沙石砖楼梯(内) +Outer Desert Sandstone Brick Stair=沙漠沙石砖楼梯(外) +Desert Sandstone Brick Slab=沙漠沙石砖台阶 +Desert Sandstone Block Stair=沙漠沙石块楼梯 +Inner Desert Sandstone Block Stair=沙漠沙石块楼梯(内) +Outer Desert Sandstone Block Stair=沙漠沙石块楼梯(外) +Desert Sandstone Block Slab=沙漠沙石块台阶 +Silver Sandstone Stair=银沙石楼梯 +Inner Silver Sandstone Stair=银沙石楼梯(内) +Outer Silver Sandstone Stair=银沙石楼梯(外) +Silver Sandstone Slab=银沙石台阶 +Silver Sandstone Brick Stair=银沙石砖楼梯 +Inner Silver Sandstone Brick Stair=银沙石砖楼梯(内) +Outer Silver Sandstone Brick Stair=银沙石砖楼梯(外) +Silver Sandstone Brick Slab=银沙石砖台阶 +Silver Sandstone Block Stair=银沙石块楼梯 +Inner Silver Sandstone Block Stair=银沙石块楼梯(内) +Outer Silver Sandstone Block Stair=银沙石块楼梯(外) +Silver Sandstone Block Slab=银沙石块台阶 +Obsidian Stair=黑曜石楼梯 +Inner Obsidian Stair=黑曜石楼梯(内) +Outer Obsidian Stair=黑曜石楼梯(外) +Obsidian Slab=黑曜石台阶 +Obsidian Brick Stair=黑曜石砖楼梯 +Inner Obsidian Brick Stair=黑曜石砖楼梯(内) +Outer Obsidian Brick Stair=黑曜石砖楼梯(外) +Obsidian Brick Slab=黑曜石砖台阶 +Obsidian Block Stair=黑曜石块楼梯 +Inner Obsidian Block Stair=黑曜石块楼梯(内) +Outer Obsidian Block Stair=黑曜石块楼梯(外) +Obsidian Block Slab=黑曜石块台阶 +Brick Stair=砖楼梯 +Inner Brick Stair=砖楼梯(内) +Outer Brick Stair=砖楼梯(外) +Brick Slab=砖制台阶 +Steel Block Stair=铁块楼梯 +Inner Steel Block Stair=铁块楼梯(内) +Outer Steel Block Stair=铁块楼梯(外) +Steel Block Slab=铁块台阶 +Tin Block Stair=锡块楼梯 +Inner Tin Block Stair=锡块楼梯(内) +Outer Tin Block Stair=锡块楼梯(外) +Tin Block Slab=锡块台阶 +Copper Block Stair=铜块楼梯 +Inner Copper Block Stair=铜块楼梯(内) +Outer Copper Block Stair=铜块楼梯(外) +Copper Block Slab=铜块台阶 +Bronze Block Stair=青铜块楼梯 +Inner Bronze Block Stair=青铜块楼梯(内) +Outer Bronze Block Stair=青铜块楼梯(外) +Bronze Block Slab=青铜块台阶 +Gold Block Stair=金块楼梯 +Inner Gold Block Stair=金块楼梯(内) +Outer Gold Block Stair=金块楼梯(外) +Gold Block Slab=金块台阶 +Ice Stair=冰阶梯 +Inner Ice Stair=冰块楼梯(内) +Outer Ice Stair=冰块楼梯(外) +Ice Slab=冰台阶 +Snow Block Stair=雪块楼梯 +Inner Snow Block Stair=雪块楼梯(内) +Outer Snow Block Stair=雪块楼梯(外) +Snow Block Slab=雪块台阶 + + +##### not used anymore ##### + +Blue Stained Stair=蓝木楼梯 +Inner Blue Stained Stair=蓝木楼梯(内) +Outer Blue Stained Stair=蓝木楼梯(外) +Blue Stained Slab=蓝木台阶 diff --git a/mods/stairs/locale/stairs.zh_TW.tr b/mods/stairs/locale/stairs.zh_TW.tr new file mode 100644 index 00000000..eaed61f9 --- /dev/null +++ b/mods/stairs/locale/stairs.zh_TW.tr @@ -0,0 +1,153 @@ +# textdomain: stairs +Glass Stair=玻璃樓梯 +Glass Slab=玻璃臺階 +Inner Glass Stair=玻璃樓梯(內) +Outer Glass Stair=玻璃樓梯(外) +Obsidian Glass Stair=黑曜石玻璃樓梯 +Obsidian Glass Slab=黑曜石玻璃臺階 +Inner Obsidian Glass Stair=黑曜石玻璃樓梯(內) +Outer Obsidian Glass Stair=黑曜石玻璃樓梯(外) +Wooden Stair=木製樓梯 +Inner Wooden Stair=木樓梯(內) +Outer Wooden Stair=木樓梯(外) +Wooden Slab=木製臺階 +Jungle Wood Stair=叢林木樓梯 +Inner Jungle Wood Stair=叢林木樓梯(內) +Outer Jungle Wood Stair=叢林木樓梯(外) +Jungle Wood Slab=叢林木臺階 +Pine Wood Stair=松木樓梯 +Inner Pine Wood Stair=松木樓梯(內) +Outer Pine Wood Stair=松木樓梯(外) +Pine Wood Slab=松木臺階 +Acacia Wood Stair=金合歡木樓梯 +Inner Acacia Wood Stair=金合歡木樓梯(內) +Outer Acacia Wood Stair=金合歡木樓梯(外) +Acacia Wood Slab=金合歡木臺階 +Aspen Wood Stair=白楊木樓梯 +Inner Aspen Wood Stair=白楊木樓梯(內) +Outer Aspen Wood Stair=白楊木樓梯(外) +Aspen Wood Slab=白楊木臺階 +Stone Stair=石樓梯 +Inner Stone Stair=石樓梯(內) +Outer Stone Stair=石樓梯(外) +Stone Slab=石臺階 +Cobblestone Stair=圓石樓梯 +Inner Cobblestone Stair=圓石樓梯(內) +Outer Cobblestone Stair=圓石樓梯(外) +Cobblestone Slab=圓石臺階 +Mossy Cobblestone Stair=苔石樓梯 +Inner Mossy Cobblestone Stair=苔石樓梯(內) +Outer Mossy Cobblestone Stair=苔石樓梯(外) +Mossy Cobblestone Slab=苔石臺階 +Stone Brick Stair=石磚樓梯 +Inner Stone Brick Stair=石磚樓梯(內) +Outer Stone Brick Stair=石磚樓梯(外) +Stone Brick Slab=石磚臺階 +Stone Block Stair=石塊樓梯 +Inner Stone Block Stair=石塊樓梯(內) +Outer Stone Block Stair=石塊樓梯(外) +Stone Block Slab=石塊臺階 +Desert Stone Stair=沙漠石樓梯 +Inner Desert Stone Stair=沙漠石樓梯(內) +Outer Desert Stone Stair=沙漠石樓梯(外) +Desert Stone Slab=沙漠石臺階 +Desert Cobblestone Stair=沙漠圓石樓梯 +Inner Desert Cobblestone Stair=沙漠圓石樓梯(內) +Outer Desert Cobblestone Stair=沙漠圓石樓梯(外) +Desert Cobblestone Slab=沙漠圓石臺階 +Desert Stone Brick Stair=沙漠石磚樓梯 +Inner Desert Stone Brick Stair=沙漠石磚樓梯(內) +Outer Desert Stone Brick Stair=沙漠石磚樓梯(外) +Desert Stone Brick Slab=沙漠石磚臺階 +Desert Stone Block Stair=沙漠石塊樓梯 +Inner Desert Stone Block Stair=沙漠石塊樓梯(內) +Outer Desert Stone Block Stair=沙漠石塊樓梯(外) +Desert Stone Block Slab=沙漠石塊臺階 +Sandstone Stair=沙石樓梯 +Inner Sandstone Stair=沙石樓梯(內) +Outer Sandstone Stair=沙石樓梯(外) +Sandstone Slab=沙石臺階 +Sandstone Brick Stair=沙石磚樓梯 +Inner Sandstone Brick Stair=沙石磚樓梯(內) +Outer Sandstone Brick Stair=沙石磚樓梯(外) +Sandstone Brick Slab=沙石磚臺階 +Sandstone Block Stair=沙石塊樓梯 +Inner Sandstone Block Stair=沙石塊樓梯(內) +Outer Sandstone Block Stair=沙石塊樓梯(外) +Sandstone Block Slab=沙石塊臺階 +Desert Sandstone Stair=沙漠沙石樓梯 +Inner Desert Sandstone Stair=沙漠沙石樓梯(內) +Outer Desert Sandstone Stair=沙漠沙石樓梯(外) +Desert Sandstone Slab=沙漠沙石臺階 +Desert Sandstone Brick Stair=沙漠沙石磚樓梯 +Inner Desert Sandstone Brick Stair=沙漠沙石磚樓梯(內) +Outer Desert Sandstone Brick Stair=沙漠沙石磚樓梯(外) +Desert Sandstone Brick Slab=沙漠沙石磚臺階 +Desert Sandstone Block Stair=沙漠沙石塊樓梯 +Inner Desert Sandstone Block Stair=沙漠沙石塊樓梯(內) +Outer Desert Sandstone Block Stair=沙漠沙石塊樓梯(外) +Desert Sandstone Block Slab=沙漠沙石塊臺階 +Silver Sandstone Stair=銀沙石樓梯 +Inner Silver Sandstone Stair=銀沙石樓梯(內) +Outer Silver Sandstone Stair=銀沙石樓梯(外) +Silver Sandstone Slab=銀沙石臺階 +Silver Sandstone Brick Stair=銀沙石磚樓梯 +Inner Silver Sandstone Brick Stair=銀沙石磚樓梯(內) +Outer Silver Sandstone Brick Stair=銀沙石磚樓梯(外) +Silver Sandstone Brick Slab=銀沙石磚臺階 +Silver Sandstone Block Stair=銀沙石塊樓梯 +Inner Silver Sandstone Block Stair=銀沙石塊樓梯(內) +Outer Silver Sandstone Block Stair=銀沙石塊樓梯(外) +Silver Sandstone Block Slab=銀沙石塊臺階 +Obsidian Stair=黑曜石樓梯 +Inner Obsidian Stair=黑曜石樓梯(內) +Outer Obsidian Stair=黑曜石樓梯(外) +Obsidian Slab=黑曜石臺階 +Obsidian Brick Stair=黑曜石磚樓梯 +Inner Obsidian Brick Stair=黑曜石磚樓梯(內) +Outer Obsidian Brick Stair=黑曜石磚樓梯(外) +Obsidian Brick Slab=黑曜石磚臺階 +Obsidian Block Stair=黑曜石塊樓梯 +Inner Obsidian Block Stair=黑曜石塊樓梯(內) +Outer Obsidian Block Stair=黑曜石塊樓梯(外) +Obsidian Block Slab=黑曜石塊臺階 +Brick Stair=磚樓梯 +Inner Brick Stair=磚樓梯(內) +Outer Brick Stair=磚樓梯(外) +Brick Slab=磚制臺階 +Steel Block Stair=鐵塊樓梯 +Inner Steel Block Stair=鐵塊樓梯(內) +Outer Steel Block Stair=鐵塊樓梯(外) +Steel Block Slab=鐵塊臺階 +Tin Block Stair=錫塊樓梯 +Inner Tin Block Stair=錫塊樓梯(內) +Outer Tin Block Stair=錫塊樓梯(外) +Tin Block Slab=錫塊臺階 +Copper Block Stair=銅塊樓梯 +Inner Copper Block Stair=銅塊樓梯(內) +Outer Copper Block Stair=銅塊樓梯(外) +Copper Block Slab=銅塊臺階 +Bronze Block Stair=青銅塊樓梯 +Inner Bronze Block Stair=青銅塊樓梯(內) +Outer Bronze Block Stair=青銅塊樓梯(外) +Bronze Block Slab=青銅塊臺階 +Gold Block Stair=金塊樓梯 +Inner Gold Block Stair=金塊樓梯(內) +Outer Gold Block Stair=金塊樓梯(外) +Gold Block Slab=金塊臺階 +Ice Stair=冰階梯 +Inner Ice Stair=冰塊樓梯(內) +Outer Ice Stair=冰塊樓梯(外) +Ice Slab=冰臺階 +Snow Block Stair=雪塊樓梯 +Inner Snow Block Stair=雪塊樓梯(內) +Outer Snow Block Stair=雪塊樓梯(外) +Snow Block Slab=雪塊臺階 + + +##### not used anymore ##### + +Blue Stained Stair=藍木樓梯 +Inner Blue Stained Stair=藍木樓梯(內) +Outer Blue Stained Stair=藍木樓梯(外) +Blue Stained Slab=藍木臺階 diff --git a/mods/stairs/locale/template.txt b/mods/stairs/locale/template.txt new file mode 100644 index 00000000..ca2c8657 --- /dev/null +++ b/mods/stairs/locale/template.txt @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair= +Glass Slab= +Inner Glass Stair= +Outer Glass Stair= +Obsidian Glass Stair= +Obsidian Glass Slab= +Inner Obsidian Glass Stair= +Outer Obsidian Glass Stair= +Wooden Stair= +Inner Wooden Stair= +Outer Wooden Stair= +Wooden Slab= +Jungle Wood Stair= +Inner Jungle Wood Stair= +Outer Jungle Wood Stair= +Jungle Wood Slab= +Pine Wood Stair= +Inner Pine Wood Stair= +Outer Pine Wood Stair= +Pine Wood Slab= +Acacia Wood Stair= +Inner Acacia Wood Stair= +Outer Acacia Wood Stair= +Acacia Wood Slab= +Aspen Wood Stair= +Inner Aspen Wood Stair= +Outer Aspen Wood Stair= +Aspen Wood Slab= +Stone Stair= +Inner Stone Stair= +Outer Stone Stair= +Stone Slab= +Cobblestone Stair= +Inner Cobblestone Stair= +Outer Cobblestone Stair= +Cobblestone Slab= +Mossy Cobblestone Stair= +Inner Mossy Cobblestone Stair= +Outer Mossy Cobblestone Stair= +Mossy Cobblestone Slab= +Stone Brick Stair= +Inner Stone Brick Stair= +Outer Stone Brick Stair= +Stone Brick Slab= +Stone Block Stair= +Inner Stone Block Stair= +Outer Stone Block Stair= +Stone Block Slab= +Desert Stone Stair= +Inner Desert Stone Stair= +Outer Desert Stone Stair= +Desert Stone Slab= +Desert Cobblestone Stair= +Inner Desert Cobblestone Stair= +Outer Desert Cobblestone Stair= +Desert Cobblestone Slab= +Desert Stone Brick Stair= +Inner Desert Stone Brick Stair= +Outer Desert Stone Brick Stair= +Desert Stone Brick Slab= +Desert Stone Block Stair= +Inner Desert Stone Block Stair= +Outer Desert Stone Block Stair= +Desert Stone Block Slab= +Sandstone Stair= +Inner Sandstone Stair= +Outer Sandstone Stair= +Sandstone Slab= +Sandstone Brick Stair= +Inner Sandstone Brick Stair= +Outer Sandstone Brick Stair= +Sandstone Brick Slab= +Sandstone Block Stair= +Inner Sandstone Block Stair= +Outer Sandstone Block Stair= +Sandstone Block Slab= +Desert Sandstone Stair= +Inner Desert Sandstone Stair= +Outer Desert Sandstone Stair= +Desert Sandstone Slab= +Desert Sandstone Brick Stair= +Inner Desert Sandstone Brick Stair= +Outer Desert Sandstone Brick Stair= +Desert Sandstone Brick Slab= +Desert Sandstone Block Stair= +Inner Desert Sandstone Block Stair= +Outer Desert Sandstone Block Stair= +Desert Sandstone Block Slab= +Silver Sandstone Stair= +Inner Silver Sandstone Stair= +Outer Silver Sandstone Stair= +Silver Sandstone Slab= +Silver Sandstone Brick Stair= +Inner Silver Sandstone Brick Stair= +Outer Silver Sandstone Brick Stair= +Silver Sandstone Brick Slab= +Silver Sandstone Block Stair= +Inner Silver Sandstone Block Stair= +Outer Silver Sandstone Block Stair= +Silver Sandstone Block Slab= +Obsidian Stair= +Inner Obsidian Stair= +Outer Obsidian Stair= +Obsidian Slab= +Obsidian Brick Stair= +Inner Obsidian Brick Stair= +Outer Obsidian Brick Stair= +Obsidian Brick Slab= +Obsidian Block Stair= +Inner Obsidian Block Stair= +Outer Obsidian Block Stair= +Obsidian Block Slab= +Brick Stair= +Inner Brick Stair= +Outer Brick Stair= +Brick Slab= +Steel Block Stair= +Inner Steel Block Stair= +Outer Steel Block Stair= +Steel Block Slab= +Tin Block Stair= +Inner Tin Block Stair= +Outer Tin Block Stair= +Tin Block Slab= +Copper Block Stair= +Inner Copper Block Stair= +Outer Copper Block Stair= +Copper Block Slab= +Bronze Block Stair= +Inner Bronze Block Stair= +Outer Bronze Block Stair= +Bronze Block Slab= +Gold Block Stair= +Inner Gold Block Stair= +Outer Gold Block Stair= +Gold Block Slab= +Ice Stair= +Inner Ice Stair= +Outer Ice Stair= +Ice Slab= +Snow Block Stair= +Inner Snow Block Stair= +Outer Snow Block Stair= +Snow Block Slab= diff --git a/mods/stairs/mod.conf b/mods/stairs/mod.conf new file mode 100644 index 00000000..7548fa72 --- /dev/null +++ b/mods/stairs/mod.conf @@ -0,0 +1,3 @@ +name = stairs +description = Minetest Game mod: stairs +depends = default diff --git a/mods/stairs/textures/stairs_glass_outer_stairside.png b/mods/stairs/textures/stairs_glass_outer_stairside.png new file mode 100644 index 00000000..9b298c8b Binary files /dev/null and b/mods/stairs/textures/stairs_glass_outer_stairside.png differ diff --git a/mods/stairs/textures/stairs_glass_split.png b/mods/stairs/textures/stairs_glass_split.png new file mode 100644 index 00000000..62879597 Binary files /dev/null and b/mods/stairs/textures/stairs_glass_split.png differ diff --git a/mods/stairs/textures/stairs_glass_stairside.png b/mods/stairs/textures/stairs_glass_stairside.png new file mode 100644 index 00000000..c4242943 Binary files /dev/null and b/mods/stairs/textures/stairs_glass_stairside.png differ diff --git a/mods/stairs/textures/stairs_obsidian_glass_outer_stairside.png b/mods/stairs/textures/stairs_obsidian_glass_outer_stairside.png new file mode 100644 index 00000000..0098f683 Binary files /dev/null and b/mods/stairs/textures/stairs_obsidian_glass_outer_stairside.png differ diff --git a/mods/stairs/textures/stairs_obsidian_glass_split.png b/mods/stairs/textures/stairs_obsidian_glass_split.png new file mode 100644 index 00000000..7647b9b0 Binary files /dev/null and b/mods/stairs/textures/stairs_obsidian_glass_split.png differ diff --git a/mods/stairs/textures/stairs_obsidian_glass_stairside.png b/mods/stairs/textures/stairs_obsidian_glass_stairside.png new file mode 100644 index 00000000..40b17545 Binary files /dev/null and b/mods/stairs/textures/stairs_obsidian_glass_stairside.png differ diff --git a/steel/README.md b/mods/steel/README.md similarity index 100% rename from steel/README.md rename to mods/steel/README.md diff --git a/steel/depends.txt b/mods/steel/depends.txt similarity index 100% rename from steel/depends.txt rename to mods/steel/depends.txt diff --git a/steel/description.txt b/mods/steel/description.txt similarity index 100% rename from steel/description.txt rename to mods/steel/description.txt diff --git a/steel/init.lua b/mods/steel/init.lua similarity index 100% rename from steel/init.lua rename to mods/steel/init.lua diff --git a/steel/mod.conf b/mods/steel/mod.conf similarity index 100% rename from steel/mod.conf rename to mods/steel/mod.conf diff --git a/steel/models/steel_cube.obj b/mods/steel/models/steel_cube.obj similarity index 100% rename from steel/models/steel_cube.obj rename to mods/steel/models/steel_cube.obj diff --git a/steel/recipes.png b/mods/steel/recipes.png similarity index 100% rename from steel/recipes.png rename to mods/steel/recipes.png diff --git a/steel/rust.lua b/mods/steel/rust.lua similarity index 100% rename from steel/rust.lua rename to mods/steel/rust.lua diff --git a/steel/textures/corrugated_steel.png b/mods/steel/textures/corrugated_steel.png similarity index 100% rename from steel/textures/corrugated_steel.png rename to mods/steel/textures/corrugated_steel.png diff --git a/steel/textures/gratehard.png b/mods/steel/textures/gratehard.png similarity index 100% rename from steel/textures/gratehard.png rename to mods/steel/textures/gratehard.png diff --git a/steel/textures/gratesoft.png b/mods/steel/textures/gratesoft.png similarity index 100% rename from steel/textures/gratesoft.png rename to mods/steel/textures/gratesoft.png diff --git a/steel/textures/scrap.png b/mods/steel/textures/scrap.png similarity index 100% rename from steel/textures/scrap.png rename to mods/steel/textures/scrap.png diff --git a/steel/textures/steel_default_steel_block.png b/mods/steel/textures/steel_default_steel_block.png similarity index 100% rename from steel/textures/steel_default_steel_block.png rename to mods/steel/textures/steel_default_steel_block.png diff --git a/steel/textures/steel_rusted.png b/mods/steel/textures/steel_rusted.png similarity index 100% rename from steel/textures/steel_rusted.png rename to mods/steel/textures/steel_rusted.png diff --git a/steel/textures/steel_strut_overlay.png b/mods/steel/textures/steel_strut_overlay.png similarity index 100% rename from steel/textures/steel_strut_overlay.png rename to mods/steel/textures/steel_strut_overlay.png diff --git a/steel/textures/steelplatehard.png b/mods/steel/textures/steelplatehard.png similarity index 100% rename from steel/textures/steelplatehard.png rename to mods/steel/textures/steelplatehard.png diff --git a/steel/textures/steelplatesoft.png b/mods/steel/textures/steelplatesoft.png similarity index 100% rename from steel/textures/steelplatesoft.png rename to mods/steel/textures/steelplatesoft.png diff --git a/steel/textures/strut.png b/mods/steel/textures/strut.png similarity index 100% rename from steel/textures/strut.png rename to mods/steel/textures/strut.png diff --git a/steel/textures/worldgratehard.png b/mods/steel/textures/worldgratehard.png similarity index 100% rename from steel/textures/worldgratehard.png rename to mods/steel/textures/worldgratehard.png diff --git a/steel/textures/worldgratesoft.png b/mods/steel/textures/worldgratesoft.png similarity index 100% rename from steel/textures/worldgratesoft.png rename to mods/steel/textures/worldgratesoft.png diff --git a/steelsupport/depends.txt b/mods/steelsupport/depends.txt similarity index 100% rename from steelsupport/depends.txt rename to mods/steelsupport/depends.txt diff --git a/steelsupport/init.lua b/mods/steelsupport/init.lua similarity index 100% rename from steelsupport/init.lua rename to mods/steelsupport/init.lua diff --git a/street_signs/LICENSE b/mods/street_signs/LICENSE similarity index 100% rename from street_signs/LICENSE rename to mods/street_signs/LICENSE diff --git a/street_signs/compat_convert.lua b/mods/street_signs/compat_convert.lua similarity index 100% rename from street_signs/compat_convert.lua rename to mods/street_signs/compat_convert.lua diff --git a/street_signs/crafting.lua b/mods/street_signs/crafting.lua similarity index 100% rename from street_signs/crafting.lua rename to mods/street_signs/crafting.lua diff --git a/street_signs/depends.txt b/mods/street_signs/depends.txt similarity index 100% rename from street_signs/depends.txt rename to mods/street_signs/depends.txt diff --git a/street_signs/description.txt b/mods/street_signs/description.txt similarity index 100% rename from street_signs/description.txt rename to mods/street_signs/description.txt diff --git a/street_signs/init.lua b/mods/street_signs/init.lua similarity index 100% rename from street_signs/init.lua rename to mods/street_signs/init.lua diff --git a/street_signs/intllib.lua b/mods/street_signs/intllib.lua similarity index 100% rename from street_signs/intllib.lua rename to mods/street_signs/intllib.lua diff --git a/street_signs/locale/de.po b/mods/street_signs/locale/de.po similarity index 100% rename from street_signs/locale/de.po rename to mods/street_signs/locale/de.po diff --git a/street_signs/locale/es.po b/mods/street_signs/locale/es.po similarity index 100% rename from street_signs/locale/es.po rename to mods/street_signs/locale/es.po diff --git a/street_signs/locale/fr.po b/mods/street_signs/locale/fr.po similarity index 100% rename from street_signs/locale/fr.po rename to mods/street_signs/locale/fr.po diff --git a/street_signs/locale/ms.po b/mods/street_signs/locale/ms.po similarity index 100% rename from street_signs/locale/ms.po rename to mods/street_signs/locale/ms.po diff --git a/street_signs/locale/ru.po b/mods/street_signs/locale/ru.po similarity index 100% rename from street_signs/locale/ru.po rename to mods/street_signs/locale/ru.po diff --git a/street_signs/locale/template.pot b/mods/street_signs/locale/template.pot similarity index 100% rename from street_signs/locale/template.pot rename to mods/street_signs/locale/template.pot diff --git a/street_signs/mod.conf b/mods/street_signs/mod.conf similarity index 100% rename from street_signs/mod.conf rename to mods/street_signs/mod.conf diff --git a/street_signs/models/street_signs_basic.obj b/mods/street_signs/models/street_signs_basic.obj similarity index 100% rename from street_signs/models/street_signs_basic.obj rename to mods/street_signs/models/street_signs_basic.obj diff --git a/street_signs/models/street_signs_basic_entity.obj b/mods/street_signs/models/street_signs_basic_entity.obj similarity index 100% rename from street_signs/models/street_signs_basic_entity.obj rename to mods/street_signs/models/street_signs_basic_entity.obj diff --git a/street_signs/models/street_signs_basic_top_only.obj b/mods/street_signs/models/street_signs_basic_top_only.obj similarity index 100% rename from street_signs/models/street_signs_basic_top_only.obj rename to mods/street_signs/models/street_signs_basic_top_only.obj diff --git a/street_signs/models/street_signs_basic_top_only_entity.obj b/mods/street_signs/models/street_signs_basic_top_only_entity.obj similarity index 100% rename from street_signs/models/street_signs_basic_top_only_entity.obj rename to mods/street_signs/models/street_signs_basic_top_only_entity.obj diff --git a/street_signs/models/street_signs_generic_highway_large_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_highway_large_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_large_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_highway_large_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_highway_large_entity_wall.obj b/mods/street_signs/models/street_signs_generic_highway_large_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_large_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_highway_large_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_highway_large_onpole.obj b/mods/street_signs/models/street_signs_generic_highway_large_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_large_onpole.obj rename to mods/street_signs/models/street_signs_generic_highway_large_onpole.obj diff --git a/street_signs/models/street_signs_generic_highway_large_wall.obj b/mods/street_signs/models/street_signs_generic_highway_large_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_large_wall.obj rename to mods/street_signs/models/street_signs_generic_highway_large_wall.obj diff --git a/street_signs/models/street_signs_generic_highway_medium_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_highway_medium_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_medium_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_highway_medium_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_highway_medium_entity_wall.obj b/mods/street_signs/models/street_signs_generic_highway_medium_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_medium_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_highway_medium_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_highway_medium_onpole.obj b/mods/street_signs/models/street_signs_generic_highway_medium_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_medium_onpole.obj rename to mods/street_signs/models/street_signs_generic_highway_medium_onpole.obj diff --git a/street_signs/models/street_signs_generic_highway_medium_wall.obj b/mods/street_signs/models/street_signs_generic_highway_medium_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_medium_wall.obj rename to mods/street_signs/models/street_signs_generic_highway_medium_wall.obj diff --git a/street_signs/models/street_signs_generic_highway_small_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_highway_small_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_small_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_highway_small_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_highway_small_entity_wall.obj b/mods/street_signs/models/street_signs_generic_highway_small_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_small_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_highway_small_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_highway_small_onpole.obj b/mods/street_signs/models/street_signs_generic_highway_small_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_small_onpole.obj rename to mods/street_signs/models/street_signs_generic_highway_small_onpole.obj diff --git a/street_signs/models/street_signs_generic_highway_small_wall.obj b/mods/street_signs/models/street_signs_generic_highway_small_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_highway_small_wall.obj rename to mods/street_signs/models/street_signs_generic_highway_small_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_18x18_top_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_18x18_top_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_18x18_top_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_18x18_top_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_18x18_top_entity_wall.obj b/mods/street_signs/models/street_signs_generic_sign_18x18_top_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_18x18_top_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_18x18_top_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_18x18_top_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_18x18_top_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_18x18_top_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_18x18_top_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_18x18_top_wall.obj b/mods/street_signs/models/street_signs_generic_sign_18x18_top_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_18x18_top_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_18x18_top_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x12_top_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x12_top_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x12_top_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x12_top_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x12_top_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x12_top_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x12_top_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x12_top_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_entity_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_top_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_top_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_top_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_top_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_top_entity_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_top_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_top_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_top_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_top_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_top_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_top_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_top_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_top_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_top_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_top_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_top_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x18_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x18_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x18_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x18_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x24_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x24_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x24_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x24_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x24_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x24_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x24_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x24_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x30_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x30_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x30_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x30_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x30_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x30_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x30_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x30_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_24x36_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_24x36_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x36_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_24x36_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_24x36_wall.obj b/mods/street_signs/models/street_signs_generic_sign_24x36_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_24x36_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_24x36_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_30dia_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_30dia_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30dia_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_30dia_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_30dia_wall.obj b/mods/street_signs/models/street_signs_generic_sign_30dia_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30dia_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_30dia_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_30x24_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_30x24_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x24_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_30x24_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_30x24_wall.obj b/mods/street_signs/models/street_signs_generic_sign_30x24_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x24_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_30x24_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_30x30_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_30x30_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x30_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_30x30_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_30x30_wall.obj b/mods/street_signs/models/street_signs_generic_sign_30x30_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x30_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_30x30_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_30x36_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_30x36_entity_wall.obj b/mods/street_signs/models/street_signs_generic_sign_30x36_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x36_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_30x36_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_30x36_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_30x36_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x36_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_30x36_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_30x36_wall.obj b/mods/street_signs/models/street_signs_generic_sign_30x36_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_30x36_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_30x36_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_36x36_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_36x36_entity_wall.obj b/mods/street_signs/models/street_signs_generic_sign_36x36_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x36_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_36x36_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_36x36_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_36x36_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x36_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_36x36_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_36x36_wall.obj b/mods/street_signs/models/street_signs_generic_sign_36x36_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x36_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_36x36_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_36x42_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_36x42_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x42_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_36x42_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_36x42_wall.obj b/mods/street_signs/models/street_signs_generic_sign_36x42_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x42_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_36x42_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_36x48_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_36x48_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x48_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_36x48_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_36x48_wall.obj b/mods/street_signs/models/street_signs_generic_sign_36x48_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_36x48_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_36x48_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_42x30_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_42x30_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_42x30_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_42x30_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_42x30_wall.obj b/mods/street_signs/models/street_signs_generic_sign_42x30_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_42x30_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_42x30_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_48x18_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_48x18_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_48x18_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_48x18_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_48x18_wall.obj b/mods/street_signs/models/street_signs_generic_sign_48x18_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_48x18_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_48x18_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_48x24_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_48x24_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_48x24_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_48x24_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_48x24_wall.obj b/mods/street_signs/models/street_signs_generic_sign_48x24_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_48x24_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_48x24_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_54x18_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_54x18_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_54x18_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_54x18_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_54x18_wall.obj b/mods/street_signs/models/street_signs_generic_sign_54x18_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_54x18_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_54x18_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_60x24_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_60x24_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_60x24_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_60x24_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_60x24_wall.obj b/mods/street_signs/models/street_signs_generic_sign_60x24_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_60x24_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_60x24_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_9x12_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_9x12_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_9x12_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_9x12_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_9x12_wall.obj b/mods/street_signs/models/street_signs_generic_sign_9x12_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_9x12_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_9x12_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_9x15_entity_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_9x15_entity_wall.obj b/mods/street_signs/models/street_signs_generic_sign_9x15_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_9x15_entity_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_9x15_entity_wall.obj diff --git a/street_signs/models/street_signs_generic_sign_9x15_onpole.obj b/mods/street_signs/models/street_signs_generic_sign_9x15_onpole.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_9x15_onpole.obj rename to mods/street_signs/models/street_signs_generic_sign_9x15_onpole.obj diff --git a/street_signs/models/street_signs_generic_sign_9x15_wall.obj b/mods/street_signs/models/street_signs_generic_sign_9x15_wall.obj similarity index 100% rename from street_signs/models/street_signs_generic_sign_9x15_wall.obj rename to mods/street_signs/models/street_signs_generic_sign_9x15_wall.obj diff --git a/street_signs/models/street_signs_interstate_shield_entity_onpole.obj b/mods/street_signs/models/street_signs_interstate_shield_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_interstate_shield_entity_onpole.obj rename to mods/street_signs/models/street_signs_interstate_shield_entity_onpole.obj diff --git a/street_signs/models/street_signs_interstate_shield_entity_wall.obj b/mods/street_signs/models/street_signs_interstate_shield_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_interstate_shield_entity_wall.obj rename to mods/street_signs/models/street_signs_interstate_shield_entity_wall.obj diff --git a/street_signs/models/street_signs_interstate_shield_onpole.obj b/mods/street_signs/models/street_signs_interstate_shield_onpole.obj similarity index 100% rename from street_signs/models/street_signs_interstate_shield_onpole.obj rename to mods/street_signs/models/street_signs_interstate_shield_onpole.obj diff --git a/street_signs/models/street_signs_interstate_shield_wall.obj b/mods/street_signs/models/street_signs_interstate_shield_wall.obj similarity index 100% rename from street_signs/models/street_signs_interstate_shield_wall.obj rename to mods/street_signs/models/street_signs_interstate_shield_wall.obj diff --git a/street_signs/models/street_signs_object_marker_type_3_onpole.obj b/mods/street_signs/models/street_signs_object_marker_type_3_onpole.obj similarity index 100% rename from street_signs/models/street_signs_object_marker_type_3_onpole.obj rename to mods/street_signs/models/street_signs_object_marker_type_3_onpole.obj diff --git a/street_signs/models/street_signs_object_marker_type_3_wall.obj b/mods/street_signs/models/street_signs_object_marker_type_3_wall.obj similarity index 100% rename from street_signs/models/street_signs_object_marker_type_3_wall.obj rename to mods/street_signs/models/street_signs_object_marker_type_3_wall.obj diff --git a/street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj b/mods/street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj similarity index 100% rename from street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj rename to mods/street_signs/models/street_signs_rr_grade_crossbuck_onpole.obj diff --git a/street_signs/models/street_signs_rr_grade_crossbuck_wall.obj b/mods/street_signs/models/street_signs_rr_grade_crossbuck_wall.obj similarity index 100% rename from street_signs/models/street_signs_rr_grade_crossbuck_wall.obj rename to mods/street_signs/models/street_signs_rr_grade_crossbuck_wall.obj diff --git a/street_signs/models/street_signs_stop_all_way_onpole.obj b/mods/street_signs/models/street_signs_stop_all_way_onpole.obj similarity index 100% rename from street_signs/models/street_signs_stop_all_way_onpole.obj rename to mods/street_signs/models/street_signs_stop_all_way_onpole.obj diff --git a/street_signs/models/street_signs_stop_all_way_wall.obj b/mods/street_signs/models/street_signs_stop_all_way_wall.obj similarity index 100% rename from street_signs/models/street_signs_stop_all_way_wall.obj rename to mods/street_signs/models/street_signs_stop_all_way_wall.obj diff --git a/street_signs/models/street_signs_stop_for_ped.obj b/mods/street_signs/models/street_signs_stop_for_ped.obj similarity index 100% rename from street_signs/models/street_signs_stop_for_ped.obj rename to mods/street_signs/models/street_signs_stop_for_ped.obj diff --git a/street_signs/models/street_signs_stop_onpole.obj b/mods/street_signs/models/street_signs_stop_onpole.obj similarity index 100% rename from street_signs/models/street_signs_stop_onpole.obj rename to mods/street_signs/models/street_signs_stop_onpole.obj diff --git a/street_signs/models/street_signs_stop_wall.obj b/mods/street_signs/models/street_signs_stop_wall.obj similarity index 100% rename from street_signs/models/street_signs_stop_wall.obj rename to mods/street_signs/models/street_signs_stop_wall.obj diff --git a/street_signs/models/street_signs_warning_36x36_entity_onpole.obj b/mods/street_signs/models/street_signs_warning_36x36_entity_onpole.obj similarity index 100% rename from street_signs/models/street_signs_warning_36x36_entity_onpole.obj rename to mods/street_signs/models/street_signs_warning_36x36_entity_onpole.obj diff --git a/street_signs/models/street_signs_warning_36x36_entity_wall.obj b/mods/street_signs/models/street_signs_warning_36x36_entity_wall.obj similarity index 100% rename from street_signs/models/street_signs_warning_36x36_entity_wall.obj rename to mods/street_signs/models/street_signs_warning_36x36_entity_wall.obj diff --git a/street_signs/models/street_signs_warning_36x36_onpole.obj b/mods/street_signs/models/street_signs_warning_36x36_onpole.obj similarity index 100% rename from street_signs/models/street_signs_warning_36x36_onpole.obj rename to mods/street_signs/models/street_signs_warning_36x36_onpole.obj diff --git a/street_signs/models/street_signs_warning_36x36_wall.obj b/mods/street_signs/models/street_signs_warning_36x36_wall.obj similarity index 100% rename from street_signs/models/street_signs_warning_36x36_wall.obj rename to mods/street_signs/models/street_signs_warning_36x36_wall.obj diff --git a/street_signs/models/street_signs_yield_onpole.obj b/mods/street_signs/models/street_signs_yield_onpole.obj similarity index 100% rename from street_signs/models/street_signs_yield_onpole.obj rename to mods/street_signs/models/street_signs_yield_onpole.obj diff --git a/street_signs/models/street_signs_yield_wall.obj b/mods/street_signs/models/street_signs_yield_wall.obj similarity index 100% rename from street_signs/models/street_signs_yield_wall.obj rename to mods/street_signs/models/street_signs_yield_wall.obj diff --git a/street_signs/screenshot.png b/mods/street_signs/screenshot.png similarity index 100% rename from street_signs/screenshot.png rename to mods/street_signs/screenshot.png diff --git a/street_signs/signs_class_d.lua b/mods/street_signs/signs_class_d.lua similarity index 100% rename from street_signs/signs_class_d.lua rename to mods/street_signs/signs_class_d.lua diff --git a/street_signs/signs_class_m.lua b/mods/street_signs/signs_class_m.lua similarity index 100% rename from street_signs/signs_class_m.lua rename to mods/street_signs/signs_class_m.lua diff --git a/street_signs/signs_class_om.lua b/mods/street_signs/signs_class_om.lua similarity index 100% rename from street_signs/signs_class_om.lua rename to mods/street_signs/signs_class_om.lua diff --git a/street_signs/signs_class_r.lua b/mods/street_signs/signs_class_r.lua similarity index 100% rename from street_signs/signs_class_r.lua rename to mods/street_signs/signs_class_r.lua diff --git a/street_signs/signs_class_w.lua b/mods/street_signs/signs_class_w.lua similarity index 100% rename from street_signs/signs_class_w.lua rename to mods/street_signs/signs_class_w.lua diff --git a/street_signs/signs_misc_generic.lua b/mods/street_signs/signs_misc_generic.lua similarity index 100% rename from street_signs/signs_misc_generic.lua rename to mods/street_signs/signs_misc_generic.lua diff --git a/street_signs/textures/street_signs_advisory_speed_kmh.png b/mods/street_signs/textures/street_signs_advisory_speed_kmh.png similarity index 100% rename from street_signs/textures/street_signs_advisory_speed_kmh.png rename to mods/street_signs/textures/street_signs_advisory_speed_kmh.png diff --git a/street_signs/textures/street_signs_advisory_speed_kmh_inv.png b/mods/street_signs/textures/street_signs_advisory_speed_kmh_inv.png similarity index 100% rename from street_signs/textures/street_signs_advisory_speed_kmh_inv.png rename to mods/street_signs/textures/street_signs_advisory_speed_kmh_inv.png diff --git a/street_signs/textures/street_signs_advisory_speed_mph.png b/mods/street_signs/textures/street_signs_advisory_speed_mph.png similarity index 100% rename from street_signs/textures/street_signs_advisory_speed_mph.png rename to mods/street_signs/textures/street_signs_advisory_speed_mph.png diff --git a/street_signs/textures/street_signs_advisory_speed_mph_inv.png b/mods/street_signs/textures/street_signs_advisory_speed_mph_inv.png similarity index 100% rename from street_signs/textures/street_signs_advisory_speed_mph_inv.png rename to mods/street_signs/textures/street_signs_advisory_speed_mph_inv.png diff --git a/street_signs/textures/street_signs_advisory_speed_ms.png b/mods/street_signs/textures/street_signs_advisory_speed_ms.png similarity index 100% rename from street_signs/textures/street_signs_advisory_speed_ms.png rename to mods/street_signs/textures/street_signs_advisory_speed_ms.png diff --git a/street_signs/textures/street_signs_advisory_speed_ms_inv.png b/mods/street_signs/textures/street_signs_advisory_speed_ms_inv.png similarity index 100% rename from street_signs/textures/street_signs_advisory_speed_ms_inv.png rename to mods/street_signs/textures/street_signs_advisory_speed_ms_inv.png diff --git a/street_signs/textures/street_signs_basic.png b/mods/street_signs/textures/street_signs_basic.png similarity index 100% rename from street_signs/textures/street_signs_basic.png rename to mods/street_signs/textures/street_signs_basic.png diff --git a/street_signs/textures/street_signs_bg.png b/mods/street_signs/textures/street_signs_bg.png similarity index 100% rename from street_signs/textures/street_signs_bg.png rename to mods/street_signs/textures/street_signs_bg.png diff --git a/street_signs/textures/street_signs_circular_intersection_ahead.png b/mods/street_signs/textures/street_signs_circular_intersection_ahead.png similarity index 100% rename from street_signs/textures/street_signs_circular_intersection_ahead.png rename to mods/street_signs/textures/street_signs_circular_intersection_ahead.png diff --git a/street_signs/textures/street_signs_circular_intersection_ahead_inv.png b/mods/street_signs/textures/street_signs_circular_intersection_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_circular_intersection_ahead_inv.png rename to mods/street_signs/textures/street_signs_circular_intersection_ahead_inv.png diff --git a/street_signs/textures/street_signs_cross_road_ahead.png b/mods/street_signs/textures/street_signs_cross_road_ahead.png similarity index 100% rename from street_signs/textures/street_signs_cross_road_ahead.png rename to mods/street_signs/textures/street_signs_cross_road_ahead.png diff --git a/street_signs/textures/street_signs_cross_road_ahead_inv.png b/mods/street_signs/textures/street_signs_cross_road_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_cross_road_ahead_inv.png rename to mods/street_signs/textures/street_signs_cross_road_ahead_inv.png diff --git a/street_signs/textures/street_signs_crosswalk_stop_on_red_light.png b/mods/street_signs/textures/street_signs_crosswalk_stop_on_red_light.png similarity index 100% rename from street_signs/textures/street_signs_crosswalk_stop_on_red_light.png rename to mods/street_signs/textures/street_signs_crosswalk_stop_on_red_light.png diff --git a/street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png b/mods/street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png similarity index 100% rename from street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png rename to mods/street_signs/textures/street_signs_crosswalk_stop_on_red_light_inv.png diff --git a/street_signs/textures/street_signs_detour_left_m4_10.png b/mods/street_signs/textures/street_signs_detour_left_m4_10.png similarity index 100% rename from street_signs/textures/street_signs_detour_left_m4_10.png rename to mods/street_signs/textures/street_signs_detour_left_m4_10.png diff --git a/street_signs/textures/street_signs_detour_left_m4_10_inv.png b/mods/street_signs/textures/street_signs_detour_left_m4_10_inv.png similarity index 100% rename from street_signs/textures/street_signs_detour_left_m4_10_inv.png rename to mods/street_signs/textures/street_signs_detour_left_m4_10_inv.png diff --git a/street_signs/textures/street_signs_detour_right_m4_10.png b/mods/street_signs/textures/street_signs_detour_right_m4_10.png similarity index 100% rename from street_signs/textures/street_signs_detour_right_m4_10.png rename to mods/street_signs/textures/street_signs_detour_right_m4_10.png diff --git a/street_signs/textures/street_signs_detour_right_m4_10_inv.png b/mods/street_signs/textures/street_signs_detour_right_m4_10_inv.png similarity index 100% rename from street_signs/textures/street_signs_detour_right_m4_10_inv.png rename to mods/street_signs/textures/street_signs_detour_right_m4_10_inv.png diff --git a/street_signs/textures/street_signs_distance_2_lines.png b/mods/street_signs/textures/street_signs_distance_2_lines.png similarity index 100% rename from street_signs/textures/street_signs_distance_2_lines.png rename to mods/street_signs/textures/street_signs_distance_2_lines.png diff --git a/street_signs/textures/street_signs_distance_2_lines_inv.png b/mods/street_signs/textures/street_signs_distance_2_lines_inv.png similarity index 100% rename from street_signs/textures/street_signs_distance_2_lines_inv.png rename to mods/street_signs/textures/street_signs_distance_2_lines_inv.png diff --git a/street_signs/textures/street_signs_distance_2_lines_orange.png b/mods/street_signs/textures/street_signs_distance_2_lines_orange.png similarity index 100% rename from street_signs/textures/street_signs_distance_2_lines_orange.png rename to mods/street_signs/textures/street_signs_distance_2_lines_orange.png diff --git a/street_signs/textures/street_signs_distance_2_lines_orange_inv.png b/mods/street_signs/textures/street_signs_distance_2_lines_orange_inv.png similarity index 100% rename from street_signs/textures/street_signs_distance_2_lines_orange_inv.png rename to mods/street_signs/textures/street_signs_distance_2_lines_orange_inv.png diff --git a/street_signs/textures/street_signs_divided_highway_begins.png b/mods/street_signs/textures/street_signs_divided_highway_begins.png similarity index 100% rename from street_signs/textures/street_signs_divided_highway_begins.png rename to mods/street_signs/textures/street_signs_divided_highway_begins.png diff --git a/street_signs/textures/street_signs_divided_highway_begins_inv.png b/mods/street_signs/textures/street_signs_divided_highway_begins_inv.png similarity index 100% rename from street_signs/textures/street_signs_divided_highway_begins_inv.png rename to mods/street_signs/textures/street_signs_divided_highway_begins_inv.png diff --git a/street_signs/textures/street_signs_divided_highway_ends.png b/mods/street_signs/textures/street_signs_divided_highway_ends.png similarity index 100% rename from street_signs/textures/street_signs_divided_highway_ends.png rename to mods/street_signs/textures/street_signs_divided_highway_ends.png diff --git a/street_signs/textures/street_signs_divided_highway_ends_inv.png b/mods/street_signs/textures/street_signs_divided_highway_ends_inv.png similarity index 100% rename from street_signs/textures/street_signs_divided_highway_ends_inv.png rename to mods/street_signs/textures/street_signs_divided_highway_ends_inv.png diff --git a/street_signs/textures/street_signs_divided_highway_with_cross_road.png b/mods/street_signs/textures/street_signs_divided_highway_with_cross_road.png similarity index 100% rename from street_signs/textures/street_signs_divided_highway_with_cross_road.png rename to mods/street_signs/textures/street_signs_divided_highway_with_cross_road.png diff --git a/street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png b/mods/street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png similarity index 100% rename from street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png rename to mods/street_signs/textures/street_signs_divided_highway_with_cross_road_inv.png diff --git a/street_signs/textures/street_signs_do_not_enter.png b/mods/street_signs/textures/street_signs_do_not_enter.png similarity index 100% rename from street_signs/textures/street_signs_do_not_enter.png rename to mods/street_signs/textures/street_signs_do_not_enter.png diff --git a/street_signs/textures/street_signs_do_not_enter_inv.png b/mods/street_signs/textures/street_signs_do_not_enter_inv.png similarity index 100% rename from street_signs/textures/street_signs_do_not_enter_inv.png rename to mods/street_signs/textures/street_signs_do_not_enter_inv.png diff --git a/street_signs/textures/street_signs_do_not_stop_on_tracks.png b/mods/street_signs/textures/street_signs_do_not_stop_on_tracks.png similarity index 100% rename from street_signs/textures/street_signs_do_not_stop_on_tracks.png rename to mods/street_signs/textures/street_signs_do_not_stop_on_tracks.png diff --git a/street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png b/mods/street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png similarity index 100% rename from street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png rename to mods/street_signs/textures/street_signs_do_not_stop_on_tracks_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_edges.png b/mods/street_signs/textures/street_signs_generic_highway_edges.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_edges.png rename to mods/street_signs/textures/street_signs_generic_highway_edges.png diff --git a/street_signs/textures/street_signs_generic_highway_large_blue.png b/mods/street_signs/textures/street_signs_generic_highway_large_blue.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_blue.png rename to mods/street_signs/textures/street_signs_generic_highway_large_blue.png diff --git a/street_signs/textures/street_signs_generic_highway_large_blue_inv.png b/mods/street_signs/textures/street_signs_generic_highway_large_blue_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_blue_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_large_blue_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_large_green.png b/mods/street_signs/textures/street_signs_generic_highway_large_green.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_green.png rename to mods/street_signs/textures/street_signs_generic_highway_large_green.png diff --git a/street_signs/textures/street_signs_generic_highway_large_green_inv.png b/mods/street_signs/textures/street_signs_generic_highway_large_green_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_green_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_large_green_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_large_orange.png b/mods/street_signs/textures/street_signs_generic_highway_large_orange.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_orange.png rename to mods/street_signs/textures/street_signs_generic_highway_large_orange.png diff --git a/street_signs/textures/street_signs_generic_highway_large_orange_inv.png b/mods/street_signs/textures/street_signs_generic_highway_large_orange_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_orange_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_large_orange_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_large_yellow.png b/mods/street_signs/textures/street_signs_generic_highway_large_yellow.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_yellow.png rename to mods/street_signs/textures/street_signs_generic_highway_large_yellow.png diff --git a/street_signs/textures/street_signs_generic_highway_large_yellow_inv.png b/mods/street_signs/textures/street_signs_generic_highway_large_yellow_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_large_yellow_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_large_yellow_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_blue.png b/mods/street_signs/textures/street_signs_generic_highway_medium_blue.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_blue.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_blue.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_blue_inv.png b/mods/street_signs/textures/street_signs_generic_highway_medium_blue_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_blue_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_blue_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_green.png b/mods/street_signs/textures/street_signs_generic_highway_medium_green.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_green.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_green.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_green_inv.png b/mods/street_signs/textures/street_signs_generic_highway_medium_green_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_green_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_green_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_orange.png b/mods/street_signs/textures/street_signs_generic_highway_medium_orange.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_orange.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_orange.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_orange_inv.png b/mods/street_signs/textures/street_signs_generic_highway_medium_orange_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_orange_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_orange_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_yellow.png b/mods/street_signs/textures/street_signs_generic_highway_medium_yellow.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_yellow.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_yellow.png diff --git a/street_signs/textures/street_signs_generic_highway_medium_yellow_inv.png b/mods/street_signs/textures/street_signs_generic_highway_medium_yellow_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_medium_yellow_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_medium_yellow_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_small_blue.png b/mods/street_signs/textures/street_signs_generic_highway_small_blue.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_blue.png rename to mods/street_signs/textures/street_signs_generic_highway_small_blue.png diff --git a/street_signs/textures/street_signs_generic_highway_small_blue_inv.png b/mods/street_signs/textures/street_signs_generic_highway_small_blue_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_blue_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_small_blue_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_small_green.png b/mods/street_signs/textures/street_signs_generic_highway_small_green.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_green.png rename to mods/street_signs/textures/street_signs_generic_highway_small_green.png diff --git a/street_signs/textures/street_signs_generic_highway_small_green_inv.png b/mods/street_signs/textures/street_signs_generic_highway_small_green_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_green_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_small_green_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_small_orange.png b/mods/street_signs/textures/street_signs_generic_highway_small_orange.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_orange.png rename to mods/street_signs/textures/street_signs_generic_highway_small_orange.png diff --git a/street_signs/textures/street_signs_generic_highway_small_orange_inv.png b/mods/street_signs/textures/street_signs_generic_highway_small_orange_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_orange_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_small_orange_inv.png diff --git a/street_signs/textures/street_signs_generic_highway_small_yellow.png b/mods/street_signs/textures/street_signs_generic_highway_small_yellow.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_yellow.png rename to mods/street_signs/textures/street_signs_generic_highway_small_yellow.png diff --git a/street_signs/textures/street_signs_generic_highway_small_yellow_inv.png b/mods/street_signs/textures/street_signs_generic_highway_small_yellow_inv.png similarity index 100% rename from street_signs/textures/street_signs_generic_highway_small_yellow_inv.png rename to mods/street_signs/textures/street_signs_generic_highway_small_yellow_inv.png diff --git a/street_signs/textures/street_signs_hill_with_grade_ahead.png b/mods/street_signs/textures/street_signs_hill_with_grade_ahead.png similarity index 100% rename from street_signs/textures/street_signs_hill_with_grade_ahead.png rename to mods/street_signs/textures/street_signs_hill_with_grade_ahead.png diff --git a/street_signs/textures/street_signs_hill_with_grade_ahead_inv.png b/mods/street_signs/textures/street_signs_hill_with_grade_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_hill_with_grade_ahead_inv.png rename to mods/street_signs/textures/street_signs_hill_with_grade_ahead_inv.png diff --git a/street_signs/textures/street_signs_keep_left.png b/mods/street_signs/textures/street_signs_keep_left.png similarity index 100% rename from street_signs/textures/street_signs_keep_left.png rename to mods/street_signs/textures/street_signs_keep_left.png diff --git a/street_signs/textures/street_signs_keep_left_inv.png b/mods/street_signs/textures/street_signs_keep_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_keep_left_inv.png rename to mods/street_signs/textures/street_signs_keep_left_inv.png diff --git a/street_signs/textures/street_signs_keep_right.png b/mods/street_signs/textures/street_signs_keep_right.png similarity index 100% rename from street_signs/textures/street_signs_keep_right.png rename to mods/street_signs/textures/street_signs_keep_right.png diff --git a/street_signs/textures/street_signs_keep_right_inv.png b/mods/street_signs/textures/street_signs_keep_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_keep_right_inv.png rename to mods/street_signs/textures/street_signs_keep_right_inv.png diff --git a/street_signs/textures/street_signs_large_arrow_left.png b/mods/street_signs/textures/street_signs_large_arrow_left.png similarity index 100% rename from street_signs/textures/street_signs_large_arrow_left.png rename to mods/street_signs/textures/street_signs_large_arrow_left.png diff --git a/street_signs/textures/street_signs_large_arrow_left_inv.png b/mods/street_signs/textures/street_signs_large_arrow_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_large_arrow_left_inv.png rename to mods/street_signs/textures/street_signs_large_arrow_left_inv.png diff --git a/street_signs/textures/street_signs_large_arrow_right.png b/mods/street_signs/textures/street_signs_large_arrow_right.png similarity index 100% rename from street_signs/textures/street_signs_large_arrow_right.png rename to mods/street_signs/textures/street_signs_large_arrow_right.png diff --git a/street_signs/textures/street_signs_large_arrow_right_inv.png b/mods/street_signs/textures/street_signs_large_arrow_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_large_arrow_right_inv.png rename to mods/street_signs/textures/street_signs_large_arrow_right_inv.png diff --git a/street_signs/textures/street_signs_left_lane_ends.png b/mods/street_signs/textures/street_signs_left_lane_ends.png similarity index 100% rename from street_signs/textures/street_signs_left_lane_ends.png rename to mods/street_signs/textures/street_signs_left_lane_ends.png diff --git a/street_signs/textures/street_signs_left_lane_ends_inv.png b/mods/street_signs/textures/street_signs_left_lane_ends_inv.png similarity index 100% rename from street_signs/textures/street_signs_left_lane_ends_inv.png rename to mods/street_signs/textures/street_signs_left_lane_ends_inv.png diff --git a/street_signs/textures/street_signs_left_lane_must_turn_left.png b/mods/street_signs/textures/street_signs_left_lane_must_turn_left.png similarity index 100% rename from street_signs/textures/street_signs_left_lane_must_turn_left.png rename to mods/street_signs/textures/street_signs_left_lane_must_turn_left.png diff --git a/street_signs/textures/street_signs_left_lane_must_turn_left_inv.png b/mods/street_signs/textures/street_signs_left_lane_must_turn_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_left_lane_must_turn_left_inv.png rename to mods/street_signs/textures/street_signs_left_lane_must_turn_left_inv.png diff --git a/street_signs/textures/street_signs_left_on_green_arrow_only.png b/mods/street_signs/textures/street_signs_left_on_green_arrow_only.png similarity index 100% rename from street_signs/textures/street_signs_left_on_green_arrow_only.png rename to mods/street_signs/textures/street_signs_left_on_green_arrow_only.png diff --git a/street_signs/textures/street_signs_left_on_green_arrow_only_inv.png b/mods/street_signs/textures/street_signs_left_on_green_arrow_only_inv.png similarity index 100% rename from street_signs/textures/street_signs_left_on_green_arrow_only_inv.png rename to mods/street_signs/textures/street_signs_left_on_green_arrow_only_inv.png diff --git a/street_signs/textures/street_signs_left_turn_only.png b/mods/street_signs/textures/street_signs_left_turn_only.png similarity index 100% rename from street_signs/textures/street_signs_left_turn_only.png rename to mods/street_signs/textures/street_signs_left_turn_only.png diff --git a/street_signs/textures/street_signs_left_turn_only_inv.png b/mods/street_signs/textures/street_signs_left_turn_only_inv.png similarity index 100% rename from street_signs/textures/street_signs_left_turn_only_inv.png rename to mods/street_signs/textures/street_signs_left_turn_only_inv.png diff --git a/street_signs/textures/street_signs_left_turn_or_straight.png b/mods/street_signs/textures/street_signs_left_turn_or_straight.png similarity index 100% rename from street_signs/textures/street_signs_left_turn_or_straight.png rename to mods/street_signs/textures/street_signs_left_turn_or_straight.png diff --git a/street_signs/textures/street_signs_left_turn_or_straight_inv.png b/mods/street_signs/textures/street_signs_left_turn_or_straight_inv.png similarity index 100% rename from street_signs/textures/street_signs_left_turn_or_straight_inv.png rename to mods/street_signs/textures/street_signs_left_turn_or_straight_inv.png diff --git a/street_signs/textures/street_signs_left_turn_yield_on_green_light.png b/mods/street_signs/textures/street_signs_left_turn_yield_on_green_light.png similarity index 100% rename from street_signs/textures/street_signs_left_turn_yield_on_green_light.png rename to mods/street_signs/textures/street_signs_left_turn_yield_on_green_light.png diff --git a/street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png b/mods/street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png similarity index 100% rename from street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png rename to mods/street_signs/textures/street_signs_left_turn_yield_on_green_light_inv.png diff --git a/street_signs/textures/street_signs_low_clearance.png b/mods/street_signs/textures/street_signs_low_clearance.png similarity index 100% rename from street_signs/textures/street_signs_low_clearance.png rename to mods/street_signs/textures/street_signs_low_clearance.png diff --git a/street_signs/textures/street_signs_low_clearance_inv.png b/mods/street_signs/textures/street_signs_low_clearance_inv.png similarity index 100% rename from street_signs/textures/street_signs_low_clearance_inv.png rename to mods/street_signs/textures/street_signs_low_clearance_inv.png diff --git a/street_signs/textures/street_signs_merging_traffic.png b/mods/street_signs/textures/street_signs_merging_traffic.png similarity index 100% rename from street_signs/textures/street_signs_merging_traffic.png rename to mods/street_signs/textures/street_signs_merging_traffic.png diff --git a/street_signs/textures/street_signs_merging_traffic_inv.png b/mods/street_signs/textures/street_signs_merging_traffic_inv.png similarity index 100% rename from street_signs/textures/street_signs_merging_traffic_inv.png rename to mods/street_signs/textures/street_signs_merging_traffic_inv.png diff --git a/street_signs/textures/street_signs_no_left_turn.png b/mods/street_signs/textures/street_signs_no_left_turn.png similarity index 100% rename from street_signs/textures/street_signs_no_left_turn.png rename to mods/street_signs/textures/street_signs_no_left_turn.png diff --git a/street_signs/textures/street_signs_no_left_turn_inv.png b/mods/street_signs/textures/street_signs_no_left_turn_inv.png similarity index 100% rename from street_signs/textures/street_signs_no_left_turn_inv.png rename to mods/street_signs/textures/street_signs_no_left_turn_inv.png diff --git a/street_signs/textures/street_signs_no_right_turn.png b/mods/street_signs/textures/street_signs_no_right_turn.png similarity index 100% rename from street_signs/textures/street_signs_no_right_turn.png rename to mods/street_signs/textures/street_signs_no_right_turn.png diff --git a/street_signs/textures/street_signs_no_right_turn_inv.png b/mods/street_signs/textures/street_signs_no_right_turn_inv.png similarity index 100% rename from street_signs/textures/street_signs_no_right_turn_inv.png rename to mods/street_signs/textures/street_signs_no_right_turn_inv.png diff --git a/street_signs/textures/street_signs_no_straight_through.png b/mods/street_signs/textures/street_signs_no_straight_through.png similarity index 100% rename from street_signs/textures/street_signs_no_straight_through.png rename to mods/street_signs/textures/street_signs_no_straight_through.png diff --git a/street_signs/textures/street_signs_no_straight_through_inv.png b/mods/street_signs/textures/street_signs_no_straight_through_inv.png similarity index 100% rename from street_signs/textures/street_signs_no_straight_through_inv.png rename to mods/street_signs/textures/street_signs_no_straight_through_inv.png diff --git a/street_signs/textures/street_signs_no_turn_on_red_light.png b/mods/street_signs/textures/street_signs_no_turn_on_red_light.png similarity index 100% rename from street_signs/textures/street_signs_no_turn_on_red_light.png rename to mods/street_signs/textures/street_signs_no_turn_on_red_light.png diff --git a/street_signs/textures/street_signs_no_turn_on_red_light_inv.png b/mods/street_signs/textures/street_signs_no_turn_on_red_light_inv.png similarity index 100% rename from street_signs/textures/street_signs_no_turn_on_red_light_inv.png rename to mods/street_signs/textures/street_signs_no_turn_on_red_light_inv.png diff --git a/street_signs/textures/street_signs_no_u_turn.png b/mods/street_signs/textures/street_signs_no_u_turn.png similarity index 100% rename from street_signs/textures/street_signs_no_u_turn.png rename to mods/street_signs/textures/street_signs_no_u_turn.png diff --git a/street_signs/textures/street_signs_no_u_turn_inv.png b/mods/street_signs/textures/street_signs_no_u_turn_inv.png similarity index 100% rename from street_signs/textures/street_signs_no_u_turn_inv.png rename to mods/street_signs/textures/street_signs_no_u_turn_inv.png diff --git a/street_signs/textures/street_signs_object_marker_type3_c.png b/mods/street_signs/textures/street_signs_object_marker_type3_c.png similarity index 100% rename from street_signs/textures/street_signs_object_marker_type3_c.png rename to mods/street_signs/textures/street_signs_object_marker_type3_c.png diff --git a/street_signs/textures/street_signs_object_marker_type3_c_inv.png b/mods/street_signs/textures/street_signs_object_marker_type3_c_inv.png similarity index 100% rename from street_signs/textures/street_signs_object_marker_type3_c_inv.png rename to mods/street_signs/textures/street_signs_object_marker_type3_c_inv.png diff --git a/street_signs/textures/street_signs_object_marker_type3_l.png b/mods/street_signs/textures/street_signs_object_marker_type3_l.png similarity index 100% rename from street_signs/textures/street_signs_object_marker_type3_l.png rename to mods/street_signs/textures/street_signs_object_marker_type3_l.png diff --git a/street_signs/textures/street_signs_object_marker_type3_l_inv.png b/mods/street_signs/textures/street_signs_object_marker_type3_l_inv.png similarity index 100% rename from street_signs/textures/street_signs_object_marker_type3_l_inv.png rename to mods/street_signs/textures/street_signs_object_marker_type3_l_inv.png diff --git a/street_signs/textures/street_signs_object_marker_type3_r.png b/mods/street_signs/textures/street_signs_object_marker_type3_r.png similarity index 100% rename from street_signs/textures/street_signs_object_marker_type3_r.png rename to mods/street_signs/textures/street_signs_object_marker_type3_r.png diff --git a/street_signs/textures/street_signs_object_marker_type3_r_inv.png b/mods/street_signs/textures/street_signs_object_marker_type3_r_inv.png similarity index 100% rename from street_signs/textures/street_signs_object_marker_type3_r_inv.png rename to mods/street_signs/textures/street_signs_object_marker_type3_r_inv.png diff --git a/street_signs/textures/street_signs_offset_side_road_left_ahead.png b/mods/street_signs/textures/street_signs_offset_side_road_left_ahead.png similarity index 100% rename from street_signs/textures/street_signs_offset_side_road_left_ahead.png rename to mods/street_signs/textures/street_signs_offset_side_road_left_ahead.png diff --git a/street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png b/mods/street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png rename to mods/street_signs/textures/street_signs_offset_side_road_left_ahead_inv.png diff --git a/street_signs/textures/street_signs_offset_side_road_right_ahead.png b/mods/street_signs/textures/street_signs_offset_side_road_right_ahead.png similarity index 100% rename from street_signs/textures/street_signs_offset_side_road_right_ahead.png rename to mods/street_signs/textures/street_signs_offset_side_road_right_ahead.png diff --git a/street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png b/mods/street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png rename to mods/street_signs/textures/street_signs_offset_side_road_right_ahead_inv.png diff --git a/street_signs/textures/street_signs_one_way_left.png b/mods/street_signs/textures/street_signs_one_way_left.png similarity index 100% rename from street_signs/textures/street_signs_one_way_left.png rename to mods/street_signs/textures/street_signs_one_way_left.png diff --git a/street_signs/textures/street_signs_one_way_left_inv.png b/mods/street_signs/textures/street_signs_one_way_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_one_way_left_inv.png rename to mods/street_signs/textures/street_signs_one_way_left_inv.png diff --git a/street_signs/textures/street_signs_one_way_right.png b/mods/street_signs/textures/street_signs_one_way_right.png similarity index 100% rename from street_signs/textures/street_signs_one_way_right.png rename to mods/street_signs/textures/street_signs_one_way_right.png diff --git a/street_signs/textures/street_signs_one_way_right_inv.png b/mods/street_signs/textures/street_signs_one_way_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_one_way_right_inv.png rename to mods/street_signs/textures/street_signs_one_way_right_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_both_ways_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3a_right_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3e_left_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_cross_r10_3i_left_inv.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png b/mods/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights.png diff --git a/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png b/mods/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png similarity index 100% rename from street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png rename to mods/street_signs/textures/street_signs_ped_push_button_to_turn_on_warning_lights_inv.png diff --git a/street_signs/textures/street_signs_pedestrian_crossing.png b/mods/street_signs/textures/street_signs_pedestrian_crossing.png similarity index 100% rename from street_signs/textures/street_signs_pedestrian_crossing.png rename to mods/street_signs/textures/street_signs_pedestrian_crossing.png diff --git a/street_signs/textures/street_signs_pedestrian_crossing_inv.png b/mods/street_signs/textures/street_signs_pedestrian_crossing_inv.png similarity index 100% rename from street_signs/textures/street_signs_pedestrian_crossing_inv.png rename to mods/street_signs/textures/street_signs_pedestrian_crossing_inv.png diff --git a/street_signs/textures/street_signs_right_lane_ends.png b/mods/street_signs/textures/street_signs_right_lane_ends.png similarity index 100% rename from street_signs/textures/street_signs_right_lane_ends.png rename to mods/street_signs/textures/street_signs_right_lane_ends.png diff --git a/street_signs/textures/street_signs_right_lane_ends_inv.png b/mods/street_signs/textures/street_signs_right_lane_ends_inv.png similarity index 100% rename from street_signs/textures/street_signs_right_lane_ends_inv.png rename to mods/street_signs/textures/street_signs_right_lane_ends_inv.png diff --git a/street_signs/textures/street_signs_right_lane_must_turn_right.png b/mods/street_signs/textures/street_signs_right_lane_must_turn_right.png similarity index 100% rename from street_signs/textures/street_signs_right_lane_must_turn_right.png rename to mods/street_signs/textures/street_signs_right_lane_must_turn_right.png diff --git a/street_signs/textures/street_signs_right_lane_must_turn_right_inv.png b/mods/street_signs/textures/street_signs_right_lane_must_turn_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_right_lane_must_turn_right_inv.png rename to mods/street_signs/textures/street_signs_right_lane_must_turn_right_inv.png diff --git a/street_signs/textures/street_signs_right_turn_only.png b/mods/street_signs/textures/street_signs_right_turn_only.png similarity index 100% rename from street_signs/textures/street_signs_right_turn_only.png rename to mods/street_signs/textures/street_signs_right_turn_only.png diff --git a/street_signs/textures/street_signs_right_turn_only_inv.png b/mods/street_signs/textures/street_signs_right_turn_only_inv.png similarity index 100% rename from street_signs/textures/street_signs_right_turn_only_inv.png rename to mods/street_signs/textures/street_signs_right_turn_only_inv.png diff --git a/street_signs/textures/street_signs_right_turn_or_straight.png b/mods/street_signs/textures/street_signs_right_turn_or_straight.png similarity index 100% rename from street_signs/textures/street_signs_right_turn_or_straight.png rename to mods/street_signs/textures/street_signs_right_turn_or_straight.png diff --git a/street_signs/textures/street_signs_right_turn_or_straight_inv.png b/mods/street_signs/textures/street_signs_right_turn_or_straight_inv.png similarity index 100% rename from street_signs/textures/street_signs_right_turn_or_straight_inv.png rename to mods/street_signs/textures/street_signs_right_turn_or_straight_inv.png diff --git a/street_signs/textures/street_signs_road_turns_270_left.png b/mods/street_signs/textures/street_signs_road_turns_270_left.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_270_left.png rename to mods/street_signs/textures/street_signs_road_turns_270_left.png diff --git a/street_signs/textures/street_signs_road_turns_270_left_inv.png b/mods/street_signs/textures/street_signs_road_turns_270_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_270_left_inv.png rename to mods/street_signs/textures/street_signs_road_turns_270_left_inv.png diff --git a/street_signs/textures/street_signs_road_turns_270_right.png b/mods/street_signs/textures/street_signs_road_turns_270_right.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_270_right.png rename to mods/street_signs/textures/street_signs_road_turns_270_right.png diff --git a/street_signs/textures/street_signs_road_turns_270_right_inv.png b/mods/street_signs/textures/street_signs_road_turns_270_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_270_right_inv.png rename to mods/street_signs/textures/street_signs_road_turns_270_right_inv.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_curve_left.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_left.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_curve_left.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_left.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_curve_left_inv.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_curve_left_inv.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_left_inv.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_curve_right.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_right.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_curve_right.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_right.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_curve_right_inv.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_curve_right_inv.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_curve_right_inv.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_left.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_left.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_left.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_left.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_left_inv.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_left_inv.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_left_inv.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_right.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_right.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_right.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_right.png diff --git a/street_signs/textures/street_signs_road_turns_dog_leg_right_inv.png b/mods/street_signs/textures/street_signs_road_turns_dog_leg_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_dog_leg_right_inv.png rename to mods/street_signs/textures/street_signs_road_turns_dog_leg_right_inv.png diff --git a/street_signs/textures/street_signs_road_turns_hairpin_left.png b/mods/street_signs/textures/street_signs_road_turns_hairpin_left.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_hairpin_left.png rename to mods/street_signs/textures/street_signs_road_turns_hairpin_left.png diff --git a/street_signs/textures/street_signs_road_turns_hairpin_left_inv.png b/mods/street_signs/textures/street_signs_road_turns_hairpin_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_hairpin_left_inv.png rename to mods/street_signs/textures/street_signs_road_turns_hairpin_left_inv.png diff --git a/street_signs/textures/street_signs_road_turns_hairpin_right.png b/mods/street_signs/textures/street_signs_road_turns_hairpin_right.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_hairpin_right.png rename to mods/street_signs/textures/street_signs_road_turns_hairpin_right.png diff --git a/street_signs/textures/street_signs_road_turns_hairpin_right_inv.png b/mods/street_signs/textures/street_signs_road_turns_hairpin_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_hairpin_right_inv.png rename to mods/street_signs/textures/street_signs_road_turns_hairpin_right_inv.png diff --git a/street_signs/textures/street_signs_road_turns_left.png b/mods/street_signs/textures/street_signs_road_turns_left.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_left.png rename to mods/street_signs/textures/street_signs_road_turns_left.png diff --git a/street_signs/textures/street_signs_road_turns_left_inv.png b/mods/street_signs/textures/street_signs_road_turns_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_left_inv.png rename to mods/street_signs/textures/street_signs_road_turns_left_inv.png diff --git a/street_signs/textures/street_signs_road_turns_right.png b/mods/street_signs/textures/street_signs_road_turns_right.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_right.png rename to mods/street_signs/textures/street_signs_road_turns_right.png diff --git a/street_signs/textures/street_signs_road_turns_right_inv.png b/mods/street_signs/textures/street_signs_road_turns_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_right_inv.png rename to mods/street_signs/textures/street_signs_road_turns_right_inv.png diff --git a/street_signs/textures/street_signs_road_turns_sharp_left.png b/mods/street_signs/textures/street_signs_road_turns_sharp_left.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_sharp_left.png rename to mods/street_signs/textures/street_signs_road_turns_sharp_left.png diff --git a/street_signs/textures/street_signs_road_turns_sharp_left_inv.png b/mods/street_signs/textures/street_signs_road_turns_sharp_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_sharp_left_inv.png rename to mods/street_signs/textures/street_signs_road_turns_sharp_left_inv.png diff --git a/street_signs/textures/street_signs_road_turns_sharp_right.png b/mods/street_signs/textures/street_signs_road_turns_sharp_right.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_sharp_right.png rename to mods/street_signs/textures/street_signs_road_turns_sharp_right.png diff --git a/street_signs/textures/street_signs_road_turns_sharp_right_inv.png b/mods/street_signs/textures/street_signs_road_turns_sharp_right_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_turns_sharp_right_inv.png rename to mods/street_signs/textures/street_signs_road_turns_sharp_right_inv.png diff --git a/street_signs/textures/street_signs_road_winding.png b/mods/street_signs/textures/street_signs_road_winding.png similarity index 100% rename from street_signs/textures/street_signs_road_winding.png rename to mods/street_signs/textures/street_signs_road_winding.png diff --git a/street_signs/textures/street_signs_road_winding_inv.png b/mods/street_signs/textures/street_signs_road_winding_inv.png similarity index 100% rename from street_signs/textures/street_signs_road_winding_inv.png rename to mods/street_signs/textures/street_signs_road_winding_inv.png diff --git a/street_signs/textures/street_signs_roundabout_clockwise.png b/mods/street_signs/textures/street_signs_roundabout_clockwise.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_clockwise.png rename to mods/street_signs/textures/street_signs_roundabout_clockwise.png diff --git a/street_signs/textures/street_signs_roundabout_clockwise_inv.png b/mods/street_signs/textures/street_signs_roundabout_clockwise_inv.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_clockwise_inv.png rename to mods/street_signs/textures/street_signs_roundabout_clockwise_inv.png diff --git a/street_signs/textures/street_signs_roundabout_counter_clockwise.png b/mods/street_signs/textures/street_signs_roundabout_counter_clockwise.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_counter_clockwise.png rename to mods/street_signs/textures/street_signs_roundabout_counter_clockwise.png diff --git a/street_signs/textures/street_signs_roundabout_counter_clockwise_inv.png b/mods/street_signs/textures/street_signs_roundabout_counter_clockwise_inv.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_counter_clockwise_inv.png rename to mods/street_signs/textures/street_signs_roundabout_counter_clockwise_inv.png diff --git a/street_signs/textures/street_signs_roundabout_directional.png b/mods/street_signs/textures/street_signs_roundabout_directional.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_directional.png rename to mods/street_signs/textures/street_signs_roundabout_directional.png diff --git a/street_signs/textures/street_signs_roundabout_directional_inv.png b/mods/street_signs/textures/street_signs_roundabout_directional_inv.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_directional_inv.png rename to mods/street_signs/textures/street_signs_roundabout_directional_inv.png diff --git a/street_signs/textures/street_signs_roundabout_directional_left.png b/mods/street_signs/textures/street_signs_roundabout_directional_left.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_directional_left.png rename to mods/street_signs/textures/street_signs_roundabout_directional_left.png diff --git a/street_signs/textures/street_signs_roundabout_directional_left_inv.png b/mods/street_signs/textures/street_signs_roundabout_directional_left_inv.png similarity index 100% rename from street_signs/textures/street_signs_roundabout_directional_left_inv.png rename to mods/street_signs/textures/street_signs_roundabout_directional_left_inv.png diff --git a/street_signs/textures/street_signs_rr_exempt_r15_3p.png b/mods/street_signs/textures/street_signs_rr_exempt_r15_3p.png similarity index 100% rename from street_signs/textures/street_signs_rr_exempt_r15_3p.png rename to mods/street_signs/textures/street_signs_rr_exempt_r15_3p.png diff --git a/street_signs/textures/street_signs_rr_exempt_r15_3p_inv.png b/mods/street_signs/textures/street_signs_rr_exempt_r15_3p_inv.png similarity index 100% rename from street_signs/textures/street_signs_rr_exempt_r15_3p_inv.png rename to mods/street_signs/textures/street_signs_rr_exempt_r15_3p_inv.png diff --git a/street_signs/textures/street_signs_rr_exempt_w10_1ap.png b/mods/street_signs/textures/street_signs_rr_exempt_w10_1ap.png similarity index 100% rename from street_signs/textures/street_signs_rr_exempt_w10_1ap.png rename to mods/street_signs/textures/street_signs_rr_exempt_w10_1ap.png diff --git a/street_signs/textures/street_signs_rr_exempt_w10_1ap_inv.png b/mods/street_signs/textures/street_signs_rr_exempt_w10_1ap_inv.png similarity index 100% rename from street_signs/textures/street_signs_rr_exempt_w10_1ap_inv.png rename to mods/street_signs/textures/street_signs_rr_exempt_w10_1ap_inv.png diff --git a/street_signs/textures/street_signs_rr_grade_crossbuck.png b/mods/street_signs/textures/street_signs_rr_grade_crossbuck.png similarity index 100% rename from street_signs/textures/street_signs_rr_grade_crossbuck.png rename to mods/street_signs/textures/street_signs_rr_grade_crossbuck.png diff --git a/street_signs/textures/street_signs_rr_grade_crossbuck_inv.png b/mods/street_signs/textures/street_signs_rr_grade_crossbuck_inv.png similarity index 100% rename from street_signs/textures/street_signs_rr_grade_crossbuck_inv.png rename to mods/street_signs/textures/street_signs_rr_grade_crossbuck_inv.png diff --git a/street_signs/textures/street_signs_rr_grade_crossing_advance.png b/mods/street_signs/textures/street_signs_rr_grade_crossing_advance.png similarity index 100% rename from street_signs/textures/street_signs_rr_grade_crossing_advance.png rename to mods/street_signs/textures/street_signs_rr_grade_crossing_advance.png diff --git a/street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png b/mods/street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png similarity index 100% rename from street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png rename to mods/street_signs/textures/street_signs_rr_grade_crossing_advance_inv.png diff --git a/street_signs/textures/street_signs_service_ev_charging.png b/mods/street_signs/textures/street_signs_service_ev_charging.png similarity index 100% rename from street_signs/textures/street_signs_service_ev_charging.png rename to mods/street_signs/textures/street_signs_service_ev_charging.png diff --git a/street_signs/textures/street_signs_service_ev_charging_inv.png b/mods/street_signs/textures/street_signs_service_ev_charging_inv.png similarity index 100% rename from street_signs/textures/street_signs_service_ev_charging_inv.png rename to mods/street_signs/textures/street_signs_service_ev_charging_inv.png diff --git a/street_signs/textures/street_signs_service_food.png b/mods/street_signs/textures/street_signs_service_food.png similarity index 100% rename from street_signs/textures/street_signs_service_food.png rename to mods/street_signs/textures/street_signs_service_food.png diff --git a/street_signs/textures/street_signs_service_food_inv.png b/mods/street_signs/textures/street_signs_service_food_inv.png similarity index 100% rename from street_signs/textures/street_signs_service_food_inv.png rename to mods/street_signs/textures/street_signs_service_food_inv.png diff --git a/street_signs/textures/street_signs_service_fuel.png b/mods/street_signs/textures/street_signs_service_fuel.png similarity index 100% rename from street_signs/textures/street_signs_service_fuel.png rename to mods/street_signs/textures/street_signs_service_fuel.png diff --git a/street_signs/textures/street_signs_service_fuel_inv.png b/mods/street_signs/textures/street_signs_service_fuel_inv.png similarity index 100% rename from street_signs/textures/street_signs_service_fuel_inv.png rename to mods/street_signs/textures/street_signs_service_fuel_inv.png diff --git a/street_signs/textures/street_signs_service_handicapped.png b/mods/street_signs/textures/street_signs_service_handicapped.png similarity index 100% rename from street_signs/textures/street_signs_service_handicapped.png rename to mods/street_signs/textures/street_signs_service_handicapped.png diff --git a/street_signs/textures/street_signs_service_handicapped_inv.png b/mods/street_signs/textures/street_signs_service_handicapped_inv.png similarity index 100% rename from street_signs/textures/street_signs_service_handicapped_inv.png rename to mods/street_signs/textures/street_signs_service_handicapped_inv.png diff --git a/street_signs/textures/street_signs_service_hospital.png b/mods/street_signs/textures/street_signs_service_hospital.png similarity index 100% rename from street_signs/textures/street_signs_service_hospital.png rename to mods/street_signs/textures/street_signs_service_hospital.png diff --git a/street_signs/textures/street_signs_service_hospital_inv.png b/mods/street_signs/textures/street_signs_service_hospital_inv.png similarity index 100% rename from street_signs/textures/street_signs_service_hospital_inv.png rename to mods/street_signs/textures/street_signs_service_hospital_inv.png diff --git a/street_signs/textures/street_signs_service_lodging.png b/mods/street_signs/textures/street_signs_service_lodging.png similarity index 100% rename from street_signs/textures/street_signs_service_lodging.png rename to mods/street_signs/textures/street_signs_service_lodging.png diff --git a/street_signs/textures/street_signs_service_lodging_inv.png b/mods/street_signs/textures/street_signs_service_lodging_inv.png similarity index 100% rename from street_signs/textures/street_signs_service_lodging_inv.png rename to mods/street_signs/textures/street_signs_service_lodging_inv.png diff --git a/street_signs/textures/street_signs_side_road_left_ahead.png b/mods/street_signs/textures/street_signs_side_road_left_ahead.png similarity index 100% rename from street_signs/textures/street_signs_side_road_left_ahead.png rename to mods/street_signs/textures/street_signs_side_road_left_ahead.png diff --git a/street_signs/textures/street_signs_side_road_left_ahead_inv.png b/mods/street_signs/textures/street_signs_side_road_left_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_side_road_left_ahead_inv.png rename to mods/street_signs/textures/street_signs_side_road_left_ahead_inv.png diff --git a/street_signs/textures/street_signs_side_road_right_ahead.png b/mods/street_signs/textures/street_signs_side_road_right_ahead.png similarity index 100% rename from street_signs/textures/street_signs_side_road_right_ahead.png rename to mods/street_signs/textures/street_signs_side_road_right_ahead.png diff --git a/street_signs/textures/street_signs_side_road_right_ahead_inv.png b/mods/street_signs/textures/street_signs_side_road_right_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_side_road_right_ahead_inv.png rename to mods/street_signs/textures/street_signs_side_road_right_ahead_inv.png diff --git a/street_signs/textures/street_signs_sign_edge.png b/mods/street_signs/textures/street_signs_sign_edge.png similarity index 100% rename from street_signs/textures/street_signs_sign_edge.png rename to mods/street_signs/textures/street_signs_sign_edge.png diff --git a/street_signs/textures/street_signs_signal_ahead.png b/mods/street_signs/textures/street_signs_signal_ahead.png similarity index 100% rename from street_signs/textures/street_signs_signal_ahead.png rename to mods/street_signs/textures/street_signs_signal_ahead.png diff --git a/street_signs/textures/street_signs_signal_ahead_inv.png b/mods/street_signs/textures/street_signs_signal_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_signal_ahead_inv.png rename to mods/street_signs/textures/street_signs_signal_ahead_inv.png diff --git a/street_signs/textures/street_signs_speed_limit.png b/mods/street_signs/textures/street_signs_speed_limit.png similarity index 100% rename from street_signs/textures/street_signs_speed_limit.png rename to mods/street_signs/textures/street_signs_speed_limit.png diff --git a/street_signs/textures/street_signs_speed_limit_inv.png b/mods/street_signs/textures/street_signs_speed_limit_inv.png similarity index 100% rename from street_signs/textures/street_signs_speed_limit_inv.png rename to mods/street_signs/textures/street_signs_speed_limit_inv.png diff --git a/street_signs/textures/street_signs_stop.png b/mods/street_signs/textures/street_signs_stop.png similarity index 100% rename from street_signs/textures/street_signs_stop.png rename to mods/street_signs/textures/street_signs_stop.png diff --git a/street_signs/textures/street_signs_stop_ahead.png b/mods/street_signs/textures/street_signs_stop_ahead.png similarity index 100% rename from street_signs/textures/street_signs_stop_ahead.png rename to mods/street_signs/textures/street_signs_stop_ahead.png diff --git a/street_signs/textures/street_signs_stop_ahead_inv.png b/mods/street_signs/textures/street_signs_stop_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_stop_ahead_inv.png rename to mods/street_signs/textures/street_signs_stop_ahead_inv.png diff --git a/street_signs/textures/street_signs_stop_all_way_inv.png b/mods/street_signs/textures/street_signs_stop_all_way_inv.png similarity index 100% rename from street_signs/textures/street_signs_stop_all_way_inv.png rename to mods/street_signs/textures/street_signs_stop_all_way_inv.png diff --git a/street_signs/textures/street_signs_stop_for_ped.png b/mods/street_signs/textures/street_signs_stop_for_ped.png similarity index 100% rename from street_signs/textures/street_signs_stop_for_ped.png rename to mods/street_signs/textures/street_signs_stop_for_ped.png diff --git a/street_signs/textures/street_signs_stop_for_ped_inv.png b/mods/street_signs/textures/street_signs_stop_for_ped_inv.png similarity index 100% rename from street_signs/textures/street_signs_stop_for_ped_inv.png rename to mods/street_signs/textures/street_signs_stop_for_ped_inv.png diff --git a/street_signs/textures/street_signs_stop_here_on_red.png b/mods/street_signs/textures/street_signs_stop_here_on_red.png similarity index 100% rename from street_signs/textures/street_signs_stop_here_on_red.png rename to mods/street_signs/textures/street_signs_stop_here_on_red.png diff --git a/street_signs/textures/street_signs_stop_here_on_red_inv.png b/mods/street_signs/textures/street_signs_stop_here_on_red_inv.png similarity index 100% rename from street_signs/textures/street_signs_stop_here_on_red_inv.png rename to mods/street_signs/textures/street_signs_stop_here_on_red_inv.png diff --git a/street_signs/textures/street_signs_stop_inv.png b/mods/street_signs/textures/street_signs_stop_inv.png similarity index 100% rename from street_signs/textures/street_signs_stop_inv.png rename to mods/street_signs/textures/street_signs_stop_inv.png diff --git a/street_signs/textures/street_signs_straight_through_only.png b/mods/street_signs/textures/street_signs_straight_through_only.png similarity index 100% rename from street_signs/textures/street_signs_straight_through_only.png rename to mods/street_signs/textures/street_signs_straight_through_only.png diff --git a/street_signs/textures/street_signs_straight_through_only_inv.png b/mods/street_signs/textures/street_signs_straight_through_only_inv.png similarity index 100% rename from street_signs/textures/street_signs_straight_through_only_inv.png rename to mods/street_signs/textures/street_signs_straight_through_only_inv.png diff --git a/street_signs/textures/street_signs_t_junction_ahead.png b/mods/street_signs/textures/street_signs_t_junction_ahead.png similarity index 100% rename from street_signs/textures/street_signs_t_junction_ahead.png rename to mods/street_signs/textures/street_signs_t_junction_ahead.png diff --git a/street_signs/textures/street_signs_t_junction_ahead_inv.png b/mods/street_signs/textures/street_signs_t_junction_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_t_junction_ahead_inv.png rename to mods/street_signs/textures/street_signs_t_junction_ahead_inv.png diff --git a/street_signs/textures/street_signs_two_direction_large_arrow.png b/mods/street_signs/textures/street_signs_two_direction_large_arrow.png similarity index 100% rename from street_signs/textures/street_signs_two_direction_large_arrow.png rename to mods/street_signs/textures/street_signs_two_direction_large_arrow.png diff --git a/street_signs/textures/street_signs_two_direction_large_arrow_inv.png b/mods/street_signs/textures/street_signs_two_direction_large_arrow_inv.png similarity index 100% rename from street_signs/textures/street_signs_two_direction_large_arrow_inv.png rename to mods/street_signs/textures/street_signs_two_direction_large_arrow_inv.png diff --git a/street_signs/textures/street_signs_two_way_traffic.png b/mods/street_signs/textures/street_signs_two_way_traffic.png similarity index 100% rename from street_signs/textures/street_signs_two_way_traffic.png rename to mods/street_signs/textures/street_signs_two_way_traffic.png diff --git a/street_signs/textures/street_signs_two_way_traffic_inv.png b/mods/street_signs/textures/street_signs_two_way_traffic_inv.png similarity index 100% rename from street_signs/textures/street_signs_two_way_traffic_inv.png rename to mods/street_signs/textures/street_signs_two_way_traffic_inv.png diff --git a/street_signs/textures/street_signs_u_turn_here.png b/mods/street_signs/textures/street_signs_u_turn_here.png similarity index 100% rename from street_signs/textures/street_signs_u_turn_here.png rename to mods/street_signs/textures/street_signs_u_turn_here.png diff --git a/street_signs/textures/street_signs_u_turn_here_inv.png b/mods/street_signs/textures/street_signs_u_turn_here_inv.png similarity index 100% rename from street_signs/textures/street_signs_u_turn_here_inv.png rename to mods/street_signs/textures/street_signs_u_turn_here_inv.png diff --git a/street_signs/textures/street_signs_us_interstate.png b/mods/street_signs/textures/street_signs_us_interstate.png similarity index 100% rename from street_signs/textures/street_signs_us_interstate.png rename to mods/street_signs/textures/street_signs_us_interstate.png diff --git a/street_signs/textures/street_signs_us_interstate_inv.png b/mods/street_signs/textures/street_signs_us_interstate_inv.png similarity index 100% rename from street_signs/textures/street_signs_us_interstate_inv.png rename to mods/street_signs/textures/street_signs_us_interstate_inv.png diff --git a/street_signs/textures/street_signs_us_route.png b/mods/street_signs/textures/street_signs_us_route.png similarity index 100% rename from street_signs/textures/street_signs_us_route.png rename to mods/street_signs/textures/street_signs_us_route.png diff --git a/street_signs/textures/street_signs_us_route_inv.png b/mods/street_signs/textures/street_signs_us_route_inv.png similarity index 100% rename from street_signs/textures/street_signs_us_route_inv.png rename to mods/street_signs/textures/street_signs_us_route_inv.png diff --git a/street_signs/textures/street_signs_use_lane_with_green_arrow.png b/mods/street_signs/textures/street_signs_use_lane_with_green_arrow.png similarity index 100% rename from street_signs/textures/street_signs_use_lane_with_green_arrow.png rename to mods/street_signs/textures/street_signs_use_lane_with_green_arrow.png diff --git a/street_signs/textures/street_signs_use_lane_with_green_arrow_inv.png b/mods/street_signs/textures/street_signs_use_lane_with_green_arrow_inv.png similarity index 100% rename from street_signs/textures/street_signs_use_lane_with_green_arrow_inv.png rename to mods/street_signs/textures/street_signs_use_lane_with_green_arrow_inv.png diff --git a/street_signs/textures/street_signs_warning.png b/mods/street_signs/textures/street_signs_warning.png similarity index 100% rename from street_signs/textures/street_signs_warning.png rename to mods/street_signs/textures/street_signs_warning.png diff --git a/street_signs/textures/street_signs_warning_3_line_inv.png b/mods/street_signs/textures/street_signs_warning_3_line_inv.png similarity index 100% rename from street_signs/textures/street_signs_warning_3_line_inv.png rename to mods/street_signs/textures/street_signs_warning_3_line_inv.png diff --git a/street_signs/textures/street_signs_warning_4_line_inv.png b/mods/street_signs/textures/street_signs_warning_4_line_inv.png similarity index 100% rename from street_signs/textures/street_signs_warning_4_line_inv.png rename to mods/street_signs/textures/street_signs_warning_4_line_inv.png diff --git a/street_signs/textures/street_signs_warning_orange.png b/mods/street_signs/textures/street_signs_warning_orange.png similarity index 100% rename from street_signs/textures/street_signs_warning_orange.png rename to mods/street_signs/textures/street_signs_warning_orange.png diff --git a/street_signs/textures/street_signs_warning_orange_3_line_inv.png b/mods/street_signs/textures/street_signs_warning_orange_3_line_inv.png similarity index 100% rename from street_signs/textures/street_signs_warning_orange_3_line_inv.png rename to mods/street_signs/textures/street_signs_warning_orange_3_line_inv.png diff --git a/street_signs/textures/street_signs_warning_orange_4_line_inv.png b/mods/street_signs/textures/street_signs_warning_orange_4_line_inv.png similarity index 100% rename from street_signs/textures/street_signs_warning_orange_4_line_inv.png rename to mods/street_signs/textures/street_signs_warning_orange_4_line_inv.png diff --git a/street_signs/textures/street_signs_wrong_way.png b/mods/street_signs/textures/street_signs_wrong_way.png similarity index 100% rename from street_signs/textures/street_signs_wrong_way.png rename to mods/street_signs/textures/street_signs_wrong_way.png diff --git a/street_signs/textures/street_signs_wrong_way_inv.png b/mods/street_signs/textures/street_signs_wrong_way_inv.png similarity index 100% rename from street_signs/textures/street_signs_wrong_way_inv.png rename to mods/street_signs/textures/street_signs_wrong_way_inv.png diff --git a/street_signs/textures/street_signs_yield.png b/mods/street_signs/textures/street_signs_yield.png similarity index 100% rename from street_signs/textures/street_signs_yield.png rename to mods/street_signs/textures/street_signs_yield.png diff --git a/street_signs/textures/street_signs_yield_ahead.png b/mods/street_signs/textures/street_signs_yield_ahead.png similarity index 100% rename from street_signs/textures/street_signs_yield_ahead.png rename to mods/street_signs/textures/street_signs_yield_ahead.png diff --git a/street_signs/textures/street_signs_yield_ahead_inv.png b/mods/street_signs/textures/street_signs_yield_ahead_inv.png similarity index 100% rename from street_signs/textures/street_signs_yield_ahead_inv.png rename to mods/street_signs/textures/street_signs_yield_ahead_inv.png diff --git a/street_signs/textures/street_signs_yield_inv.png b/mods/street_signs/textures/street_signs_yield_inv.png similarity index 100% rename from street_signs/textures/street_signs_yield_inv.png rename to mods/street_signs/textures/street_signs_yield_inv.png diff --git a/streetlamps/depends.txt b/mods/streetlamps/depends.txt similarity index 100% rename from streetlamps/depends.txt rename to mods/streetlamps/depends.txt diff --git a/streetlamps/init.lua b/mods/streetlamps/init.lua similarity index 100% rename from streetlamps/init.lua rename to mods/streetlamps/init.lua diff --git a/streetsawards/depends.txt b/mods/streetsawards/depends.txt similarity index 100% rename from streetsawards/depends.txt rename to mods/streetsawards/depends.txt diff --git a/streetsawards/init.lua b/mods/streetsawards/init.lua similarity index 100% rename from streetsawards/init.lua rename to mods/streetsawards/init.lua diff --git a/streetsconcrete/depends.txt b/mods/streetsconcrete/depends.txt similarity index 100% rename from streetsconcrete/depends.txt rename to mods/streetsconcrete/depends.txt diff --git a/streetsconcrete/init.lua b/mods/streetsconcrete/init.lua similarity index 100% rename from streetsconcrete/init.lua rename to mods/streetsconcrete/init.lua diff --git a/streetshotfix/depends.txt b/mods/streetshotfix/depends.txt similarity index 100% rename from streetshotfix/depends.txt rename to mods/streetshotfix/depends.txt diff --git a/streetshotfix/init.lua b/mods/streetshotfix/init.lua similarity index 100% rename from streetshotfix/init.lua rename to mods/streetshotfix/init.lua diff --git a/streetsmod/depends.txt b/mods/streetsmod/depends.txt similarity index 100% rename from streetsmod/depends.txt rename to mods/streetsmod/depends.txt diff --git a/streetsmod/forms.lua b/mods/streetsmod/forms.lua similarity index 100% rename from streetsmod/forms.lua rename to mods/streetsmod/forms.lua diff --git a/streetsmod/forms/cmd_streets.smartfs b/mods/streetsmod/forms/cmd_streets.smartfs similarity index 100% rename from streetsmod/forms/cmd_streets.smartfs rename to mods/streetsmod/forms/cmd_streets.smartfs diff --git a/streetsmod/init.lua b/mods/streetsmod/init.lua similarity index 100% rename from streetsmod/init.lua rename to mods/streetsmod/init.lua diff --git a/streetsmod/libs/smartfs/README.md b/mods/streetsmod/libs/smartfs/README.md similarity index 100% rename from streetsmod/libs/smartfs/README.md rename to mods/streetsmod/libs/smartfs/README.md diff --git a/streetsmod/libs/smartfs/api.md b/mods/streetsmod/libs/smartfs/api.md similarity index 100% rename from streetsmod/libs/smartfs/api.md rename to mods/streetsmod/libs/smartfs/api.md diff --git a/streetsmod/libs/smartfs/depends.txt b/mods/streetsmod/libs/smartfs/depends.txt similarity index 100% rename from streetsmod/libs/smartfs/depends.txt rename to mods/streetsmod/libs/smartfs/depends.txt diff --git a/streetsmod/libs/smartfs/example.lua b/mods/streetsmod/libs/smartfs/example.lua similarity index 100% rename from streetsmod/libs/smartfs/example.lua rename to mods/streetsmod/libs/smartfs/example.lua diff --git a/streetsmod/libs/smartfs/example.smartfs b/mods/streetsmod/libs/smartfs/example.smartfs similarity index 100% rename from streetsmod/libs/smartfs/example.smartfs rename to mods/streetsmod/libs/smartfs/example.smartfs diff --git a/streetsmod/libs/smartfs/init.lua b/mods/streetsmod/libs/smartfs/init.lua similarity index 100% rename from streetsmod/libs/smartfs/init.lua rename to mods/streetsmod/libs/smartfs/init.lua diff --git a/streetsmod/libs/smartfs/smartfs.lua b/mods/streetsmod/libs/smartfs/smartfs.lua similarity index 100% rename from streetsmod/libs/smartfs/smartfs.lua rename to mods/streetsmod/libs/smartfs/smartfs.lua diff --git a/streetsmod/locale/de.txt b/mods/streetsmod/locale/de.txt similarity index 100% rename from streetsmod/locale/de.txt rename to mods/streetsmod/locale/de.txt diff --git a/streetsmod/locale/pt.txt b/mods/streetsmod/locale/pt.txt similarity index 100% rename from streetsmod/locale/pt.txt rename to mods/streetsmod/locale/pt.txt diff --git a/streetsmod/locale/pt_br.txt b/mods/streetsmod/locale/pt_br.txt similarity index 100% rename from streetsmod/locale/pt_br.txt rename to mods/streetsmod/locale/pt_br.txt diff --git a/streetsmod/locale/template.txt.txt b/mods/streetsmod/locale/template.txt.txt similarity index 100% rename from streetsmod/locale/template.txt.txt rename to mods/streetsmod/locale/template.txt.txt diff --git a/streetsmod/nodeboxes/trafficlight.nbe b/mods/streetsmod/nodeboxes/trafficlight.nbe similarity index 100% rename from streetsmod/nodeboxes/trafficlight.nbe rename to mods/streetsmod/nodeboxes/trafficlight.nbe diff --git a/streetsmod/readme.txt b/mods/streetsmod/readme.txt similarity index 100% rename from streetsmod/readme.txt rename to mods/streetsmod/readme.txt diff --git a/streetsmod/textures/streets_asphalt.png b/mods/streetsmod/textures/streets_asphalt.png similarity index 100% rename from streetsmod/textures/streets_asphalt.png rename to mods/streetsmod/textures/streets_asphalt.png diff --git a/streetsmod/textures/streets_concrete.png b/mods/streetsmod/textures/streets_concrete.png similarity index 100% rename from streetsmod/textures/streets_concrete.png rename to mods/streetsmod/textures/streets_concrete.png diff --git a/streetsmod/textures/streets_delineator.png b/mods/streetsmod/textures/streets_delineator.png similarity index 100% rename from streetsmod/textures/streets_delineator.png rename to mods/streetsmod/textures/streets_delineator.png diff --git a/streetsmod/textures/streets_delineator_top.png b/mods/streetsmod/textures/streets_delineator_top.png similarity index 100% rename from streetsmod/textures/streets_delineator_top.png rename to mods/streetsmod/textures/streets_delineator_top.png diff --git a/streetsmod/textures/streets_fence_bottom.png b/mods/streetsmod/textures/streets_fence_bottom.png similarity index 100% rename from streetsmod/textures/streets_fence_bottom.png rename to mods/streetsmod/textures/streets_fence_bottom.png diff --git a/streetsmod/textures/streets_fence_fromtop.png b/mods/streetsmod/textures/streets_fence_fromtop.png similarity index 100% rename from streetsmod/textures/streets_fence_fromtop.png rename to mods/streetsmod/textures/streets_fence_fromtop.png diff --git a/streetsmod/textures/streets_fence_inv.png b/mods/streetsmod/textures/streets_fence_inv.png similarity index 100% rename from streetsmod/textures/streets_fence_inv.png rename to mods/streetsmod/textures/streets_fence_inv.png diff --git a/streetsmod/textures/streets_fence_top.png b/mods/streetsmod/textures/streets_fence_top.png similarity index 100% rename from streetsmod/textures/streets_fence_top.png rename to mods/streetsmod/textures/streets_fence_top.png diff --git a/streetsmod/textures/streets_lampcontroller_bottom.png b/mods/streetsmod/textures/streets_lampcontroller_bottom.png similarity index 100% rename from streetsmod/textures/streets_lampcontroller_bottom.png rename to mods/streetsmod/textures/streets_lampcontroller_bottom.png diff --git a/streetsmod/textures/streets_lampcontroller_sides.png b/mods/streetsmod/textures/streets_lampcontroller_sides.png similarity index 100% rename from streetsmod/textures/streets_lampcontroller_sides.png rename to mods/streetsmod/textures/streets_lampcontroller_sides.png diff --git a/streetsmod/textures/streets_lampcontroller_top.png b/mods/streetsmod/textures/streets_lampcontroller_top.png similarity index 100% rename from streetsmod/textures/streets_lampcontroller_top.png rename to mods/streetsmod/textures/streets_lampcontroller_top.png diff --git a/streetsmod/textures/streets_lamps_basi_inv.png b/mods/streetsmod/textures/streets_lamps_basi_inv.png similarity index 100% rename from streetsmod/textures/streets_lamps_basi_inv.png rename to mods/streetsmod/textures/streets_lamps_basi_inv.png diff --git a/streetsmod/textures/streets_lamps_basic_bottom.png b/mods/streetsmod/textures/streets_lamps_basic_bottom.png similarity index 100% rename from streetsmod/textures/streets_lamps_basic_bottom.png rename to mods/streetsmod/textures/streets_lamps_basic_bottom.png diff --git a/streetsmod/textures/streets_lamps_basic_middle.png b/mods/streetsmod/textures/streets_lamps_basic_middle.png similarity index 100% rename from streetsmod/textures/streets_lamps_basic_middle.png rename to mods/streetsmod/textures/streets_lamps_basic_middle.png diff --git a/streetsmod/textures/streets_lamps_basic_top.png b/mods/streetsmod/textures/streets_lamps_basic_top.png similarity index 100% rename from streetsmod/textures/streets_lamps_basic_top.png rename to mods/streetsmod/textures/streets_lamps_basic_top.png diff --git a/streetsmod/textures/streets_lamps_basic_top_top.png b/mods/streetsmod/textures/streets_lamps_basic_top_top.png similarity index 100% rename from streetsmod/textures/streets_lamps_basic_top_top.png rename to mods/streetsmod/textures/streets_lamps_basic_top_top.png diff --git a/streetsmod/textures/streets_manhole.png b/mods/streetsmod/textures/streets_manhole.png similarity index 100% rename from streetsmod/textures/streets_manhole.png rename to mods/streetsmod/textures/streets_manhole.png diff --git a/streetsmod/textures/streets_manhole_advanced.png b/mods/streetsmod/textures/streets_manhole_advanced.png similarity index 100% rename from streetsmod/textures/streets_manhole_advanced.png rename to mods/streetsmod/textures/streets_manhole_advanced.png diff --git a/streetsmod/textures/streets_pole.png b/mods/streetsmod/textures/streets_pole.png similarity index 100% rename from streetsmod/textures/streets_pole.png rename to mods/streetsmod/textures/streets_pole.png diff --git a/streetsmod/textures/streets_pole_inv.png b/mods/streetsmod/textures/streets_pole_inv.png similarity index 100% rename from streetsmod/textures/streets_pole_inv.png rename to mods/streetsmod/textures/streets_pole_inv.png diff --git a/streetsmod/textures/streets_rw_arrow_alldirs.png b/mods/streetsmod/textures/streets_rw_arrow_alldirs.png similarity index 100% rename from streetsmod/textures/streets_rw_arrow_alldirs.png rename to mods/streetsmod/textures/streets_rw_arrow_alldirs.png diff --git a/streetsmod/textures/streets_sign_back.png b/mods/streetsmod/textures/streets_sign_back.png similarity index 100% rename from streetsmod/textures/streets_sign_back.png rename to mods/streetsmod/textures/streets_sign_back.png diff --git a/streetsmod/textures/streets_sign_construction.png b/mods/streetsmod/textures/streets_sign_construction.png similarity index 100% rename from streetsmod/textures/streets_sign_construction.png rename to mods/streetsmod/textures/streets_sign_construction.png diff --git a/streetsmod/textures/streets_sign_grasswalk.png b/mods/streetsmod/textures/streets_sign_grasswalk.png similarity index 100% rename from streetsmod/textures/streets_sign_grasswalk.png rename to mods/streetsmod/textures/streets_sign_grasswalk.png diff --git a/streetsmod/textures/streets_sign_lava.png b/mods/streetsmod/textures/streets_sign_lava.png similarity index 100% rename from streetsmod/textures/streets_sign_lava.png rename to mods/streetsmod/textures/streets_sign_lava.png diff --git a/streetsmod/textures/streets_sign_mine.png b/mods/streetsmod/textures/streets_sign_mine.png similarity index 100% rename from streetsmod/textures/streets_sign_mine.png rename to mods/streetsmod/textures/streets_sign_mine.png diff --git a/streetsmod/textures/streets_sign_shop.png b/mods/streetsmod/textures/streets_sign_shop.png similarity index 100% rename from streetsmod/textures/streets_sign_shop.png rename to mods/streetsmod/textures/streets_sign_shop.png diff --git a/streetsmod/textures/streets_sign_water.png b/mods/streetsmod/textures/streets_sign_water.png similarity index 100% rename from streetsmod/textures/streets_sign_water.png rename to mods/streetsmod/textures/streets_sign_water.png diff --git a/streetsmod/textures/streets_sign_workshop.png b/mods/streetsmod/textures/streets_sign_workshop.png similarity index 100% rename from streetsmod/textures/streets_sign_workshop.png rename to mods/streetsmod/textures/streets_sign_workshop.png diff --git a/streetsmod/textures/streets_signworkshop_bottom.png b/mods/streetsmod/textures/streets_signworkshop_bottom.png similarity index 100% rename from streetsmod/textures/streets_signworkshop_bottom.png rename to mods/streetsmod/textures/streets_signworkshop_bottom.png diff --git a/streetsmod/textures/streets_signworkshop_front.png b/mods/streetsmod/textures/streets_signworkshop_front.png similarity index 100% rename from streetsmod/textures/streets_signworkshop_front.png rename to mods/streetsmod/textures/streets_signworkshop_front.png diff --git a/streetsmod/textures/streets_signworkshop_side.png b/mods/streetsmod/textures/streets_signworkshop_side.png similarity index 100% rename from streetsmod/textures/streets_signworkshop_side.png rename to mods/streetsmod/textures/streets_signworkshop_side.png diff --git a/streetsmod/textures/streets_signworkshop_top.png b/mods/streetsmod/textures/streets_signworkshop_top.png similarity index 100% rename from streetsmod/textures/streets_signworkshop_top.png rename to mods/streetsmod/textures/streets_signworkshop_top.png diff --git a/streetsmod/textures/streets_sos_bottom.png b/mods/streetsmod/textures/streets_sos_bottom.png similarity index 100% rename from streetsmod/textures/streets_sos_bottom.png rename to mods/streetsmod/textures/streets_sos_bottom.png diff --git a/streetsmod/textures/streets_sos_front.png b/mods/streetsmod/textures/streets_sos_front.png similarity index 100% rename from streetsmod/textures/streets_sos_front.png rename to mods/streetsmod/textures/streets_sos_front.png diff --git a/streetsmod/textures/streets_sos_side.png b/mods/streetsmod/textures/streets_sos_side.png similarity index 100% rename from streetsmod/textures/streets_sos_side.png rename to mods/streetsmod/textures/streets_sos_side.png diff --git a/streetsmod/textures/streets_sos_top.png b/mods/streetsmod/textures/streets_sos_top.png similarity index 100% rename from streetsmod/textures/streets_sos_top.png rename to mods/streetsmod/textures/streets_sos_top.png diff --git a/streetsmod/textures/streets_support.png b/mods/streetsmod/textures/streets_support.png similarity index 100% rename from streetsmod/textures/streets_support.png rename to mods/streetsmod/textures/streets_support.png diff --git a/streetspoles/depends.txt b/mods/streetspoles/depends.txt similarity index 100% rename from streetspoles/depends.txt rename to mods/streetspoles/depends.txt diff --git a/streetspoles/init.lua b/mods/streetspoles/init.lua similarity index 100% rename from streetspoles/init.lua rename to mods/streetspoles/init.lua diff --git a/technic/README.md b/mods/technic/README.md similarity index 100% rename from technic/README.md rename to mods/technic/README.md diff --git a/technic/config.lua b/mods/technic/config.lua similarity index 100% rename from technic/config.lua rename to mods/technic/config.lua diff --git a/technic/crafts.lua b/mods/technic/crafts.lua similarity index 100% rename from technic/crafts.lua rename to mods/technic/crafts.lua diff --git a/technic/depends.txt b/mods/technic/depends.txt similarity index 100% rename from technic/depends.txt rename to mods/technic/depends.txt diff --git a/technic/doc/api.md b/mods/technic/doc/api.md similarity index 100% rename from technic/doc/api.md rename to mods/technic/doc/api.md diff --git a/technic/helpers.lua b/mods/technic/helpers.lua similarity index 100% rename from technic/helpers.lua rename to mods/technic/helpers.lua diff --git a/technic/init.lua b/mods/technic/init.lua similarity index 100% rename from technic/init.lua rename to mods/technic/init.lua diff --git a/technic/items.lua b/mods/technic/items.lua similarity index 100% rename from technic/items.lua rename to mods/technic/items.lua diff --git a/technic/legacy.lua b/mods/technic/legacy.lua similarity index 100% rename from technic/legacy.lua rename to mods/technic/legacy.lua diff --git a/technic/locale/de.txt b/mods/technic/locale/de.txt similarity index 100% rename from technic/locale/de.txt rename to mods/technic/locale/de.txt diff --git a/technic/locale/es.txt b/mods/technic/locale/es.txt similarity index 100% rename from technic/locale/es.txt rename to mods/technic/locale/es.txt diff --git a/technic/locale/fr.txt b/mods/technic/locale/fr.txt similarity index 100% rename from technic/locale/fr.txt rename to mods/technic/locale/fr.txt diff --git a/technic/locale/it.txt b/mods/technic/locale/it.txt similarity index 100% rename from technic/locale/it.txt rename to mods/technic/locale/it.txt diff --git a/technic/locale/pl.txt b/mods/technic/locale/pl.txt similarity index 100% rename from technic/locale/pl.txt rename to mods/technic/locale/pl.txt diff --git a/technic/locale/pt_BR.txt b/mods/technic/locale/pt_BR.txt similarity index 100% rename from technic/locale/pt_BR.txt rename to mods/technic/locale/pt_BR.txt diff --git a/technic/locale/template.txt b/mods/technic/locale/template.txt similarity index 100% rename from technic/locale/template.txt rename to mods/technic/locale/template.txt diff --git a/technic/machines/HV/battery_box.lua b/mods/technic/machines/HV/battery_box.lua similarity index 100% rename from technic/machines/HV/battery_box.lua rename to mods/technic/machines/HV/battery_box.lua diff --git a/technic/machines/HV/cables.lua b/mods/technic/machines/HV/cables.lua similarity index 100% rename from technic/machines/HV/cables.lua rename to mods/technic/machines/HV/cables.lua diff --git a/technic/machines/HV/forcefield.lua b/mods/technic/machines/HV/forcefield.lua similarity index 100% rename from technic/machines/HV/forcefield.lua rename to mods/technic/machines/HV/forcefield.lua diff --git a/technic/machines/HV/generator.lua b/mods/technic/machines/HV/generator.lua similarity index 100% rename from technic/machines/HV/generator.lua rename to mods/technic/machines/HV/generator.lua diff --git a/technic/machines/HV/init.lua b/mods/technic/machines/HV/init.lua similarity index 100% rename from technic/machines/HV/init.lua rename to mods/technic/machines/HV/init.lua diff --git a/technic/machines/HV/nuclear_reactor.lua b/mods/technic/machines/HV/nuclear_reactor.lua similarity index 100% rename from technic/machines/HV/nuclear_reactor.lua rename to mods/technic/machines/HV/nuclear_reactor.lua diff --git a/technic/machines/HV/quarry.lua b/mods/technic/machines/HV/quarry.lua similarity index 100% rename from technic/machines/HV/quarry.lua rename to mods/technic/machines/HV/quarry.lua diff --git a/technic/machines/HV/solar_array.lua b/mods/technic/machines/HV/solar_array.lua similarity index 100% rename from technic/machines/HV/solar_array.lua rename to mods/technic/machines/HV/solar_array.lua diff --git a/technic/machines/LV/alloy_furnace.lua b/mods/technic/machines/LV/alloy_furnace.lua similarity index 100% rename from technic/machines/LV/alloy_furnace.lua rename to mods/technic/machines/LV/alloy_furnace.lua diff --git a/technic/machines/LV/battery_box.lua b/mods/technic/machines/LV/battery_box.lua similarity index 100% rename from technic/machines/LV/battery_box.lua rename to mods/technic/machines/LV/battery_box.lua diff --git a/technic/machines/LV/cables.lua b/mods/technic/machines/LV/cables.lua similarity index 100% rename from technic/machines/LV/cables.lua rename to mods/technic/machines/LV/cables.lua diff --git a/technic/machines/LV/compressor.lua b/mods/technic/machines/LV/compressor.lua similarity index 100% rename from technic/machines/LV/compressor.lua rename to mods/technic/machines/LV/compressor.lua diff --git a/technic/machines/LV/electric_furnace.lua b/mods/technic/machines/LV/electric_furnace.lua similarity index 100% rename from technic/machines/LV/electric_furnace.lua rename to mods/technic/machines/LV/electric_furnace.lua diff --git a/technic/machines/LV/extractor.lua b/mods/technic/machines/LV/extractor.lua similarity index 100% rename from technic/machines/LV/extractor.lua rename to mods/technic/machines/LV/extractor.lua diff --git a/technic/machines/LV/generator.lua b/mods/technic/machines/LV/generator.lua similarity index 100% rename from technic/machines/LV/generator.lua rename to mods/technic/machines/LV/generator.lua diff --git a/technic/machines/LV/geothermal.lua b/mods/technic/machines/LV/geothermal.lua similarity index 100% rename from technic/machines/LV/geothermal.lua rename to mods/technic/machines/LV/geothermal.lua diff --git a/technic/machines/LV/grinder.lua b/mods/technic/machines/LV/grinder.lua similarity index 100% rename from technic/machines/LV/grinder.lua rename to mods/technic/machines/LV/grinder.lua diff --git a/technic/machines/LV/init.lua b/mods/technic/machines/LV/init.lua similarity index 100% rename from technic/machines/LV/init.lua rename to mods/technic/machines/LV/init.lua diff --git a/technic/machines/LV/music_player.lua b/mods/technic/machines/LV/music_player.lua similarity index 100% rename from technic/machines/LV/music_player.lua rename to mods/technic/machines/LV/music_player.lua diff --git a/technic/machines/LV/solar_array.lua b/mods/technic/machines/LV/solar_array.lua similarity index 100% rename from technic/machines/LV/solar_array.lua rename to mods/technic/machines/LV/solar_array.lua diff --git a/technic/machines/LV/solar_panel.lua b/mods/technic/machines/LV/solar_panel.lua similarity index 100% rename from technic/machines/LV/solar_panel.lua rename to mods/technic/machines/LV/solar_panel.lua diff --git a/technic/machines/LV/water_mill.lua b/mods/technic/machines/LV/water_mill.lua similarity index 100% rename from technic/machines/LV/water_mill.lua rename to mods/technic/machines/LV/water_mill.lua diff --git a/technic/machines/MV/alloy_furnace.lua b/mods/technic/machines/MV/alloy_furnace.lua similarity index 100% rename from technic/machines/MV/alloy_furnace.lua rename to mods/technic/machines/MV/alloy_furnace.lua diff --git a/technic/machines/MV/battery_box.lua b/mods/technic/machines/MV/battery_box.lua similarity index 100% rename from technic/machines/MV/battery_box.lua rename to mods/technic/machines/MV/battery_box.lua diff --git a/technic/machines/MV/cables.lua b/mods/technic/machines/MV/cables.lua similarity index 100% rename from technic/machines/MV/cables.lua rename to mods/technic/machines/MV/cables.lua diff --git a/technic/machines/MV/centrifuge.lua b/mods/technic/machines/MV/centrifuge.lua similarity index 100% rename from technic/machines/MV/centrifuge.lua rename to mods/technic/machines/MV/centrifuge.lua diff --git a/technic/machines/MV/compressor.lua b/mods/technic/machines/MV/compressor.lua similarity index 100% rename from technic/machines/MV/compressor.lua rename to mods/technic/machines/MV/compressor.lua diff --git a/technic/machines/MV/electric_furnace.lua b/mods/technic/machines/MV/electric_furnace.lua similarity index 100% rename from technic/machines/MV/electric_furnace.lua rename to mods/technic/machines/MV/electric_furnace.lua diff --git a/technic/machines/MV/extractor.lua b/mods/technic/machines/MV/extractor.lua similarity index 100% rename from technic/machines/MV/extractor.lua rename to mods/technic/machines/MV/extractor.lua diff --git a/technic/machines/MV/freezer.lua b/mods/technic/machines/MV/freezer.lua similarity index 100% rename from technic/machines/MV/freezer.lua rename to mods/technic/machines/MV/freezer.lua diff --git a/technic/machines/MV/generator.lua b/mods/technic/machines/MV/generator.lua similarity index 100% rename from technic/machines/MV/generator.lua rename to mods/technic/machines/MV/generator.lua diff --git a/technic/machines/MV/grinder.lua b/mods/technic/machines/MV/grinder.lua similarity index 100% rename from technic/machines/MV/grinder.lua rename to mods/technic/machines/MV/grinder.lua diff --git a/technic/machines/MV/hydro_turbine.lua b/mods/technic/machines/MV/hydro_turbine.lua similarity index 100% rename from technic/machines/MV/hydro_turbine.lua rename to mods/technic/machines/MV/hydro_turbine.lua diff --git a/technic/machines/MV/init.lua b/mods/technic/machines/MV/init.lua similarity index 100% rename from technic/machines/MV/init.lua rename to mods/technic/machines/MV/init.lua diff --git a/technic/machines/MV/lighting.lua b/mods/technic/machines/MV/lighting.lua similarity index 100% rename from technic/machines/MV/lighting.lua rename to mods/technic/machines/MV/lighting.lua diff --git a/technic/machines/MV/power_radiator.lua b/mods/technic/machines/MV/power_radiator.lua similarity index 100% rename from technic/machines/MV/power_radiator.lua rename to mods/technic/machines/MV/power_radiator.lua diff --git a/technic/machines/MV/solar_array.lua b/mods/technic/machines/MV/solar_array.lua similarity index 100% rename from technic/machines/MV/solar_array.lua rename to mods/technic/machines/MV/solar_array.lua diff --git a/technic/machines/MV/tool_workshop.lua b/mods/technic/machines/MV/tool_workshop.lua similarity index 100% rename from technic/machines/MV/tool_workshop.lua rename to mods/technic/machines/MV/tool_workshop.lua diff --git a/technic/machines/MV/wind_mill.lua b/mods/technic/machines/MV/wind_mill.lua similarity index 100% rename from technic/machines/MV/wind_mill.lua rename to mods/technic/machines/MV/wind_mill.lua diff --git a/technic/machines/init.lua b/mods/technic/machines/init.lua similarity index 100% rename from technic/machines/init.lua rename to mods/technic/machines/init.lua diff --git a/technic/machines/other/anchor.lua b/mods/technic/machines/other/anchor.lua similarity index 100% rename from technic/machines/other/anchor.lua rename to mods/technic/machines/other/anchor.lua diff --git a/technic/machines/other/coal_alloy_furnace.lua b/mods/technic/machines/other/coal_alloy_furnace.lua similarity index 100% rename from technic/machines/other/coal_alloy_furnace.lua rename to mods/technic/machines/other/coal_alloy_furnace.lua diff --git a/technic/machines/other/coal_furnace.lua b/mods/technic/machines/other/coal_furnace.lua similarity index 100% rename from technic/machines/other/coal_furnace.lua rename to mods/technic/machines/other/coal_furnace.lua diff --git a/technic/machines/other/constructor.lua b/mods/technic/machines/other/constructor.lua similarity index 100% rename from technic/machines/other/constructor.lua rename to mods/technic/machines/other/constructor.lua diff --git a/technic/machines/other/frames.lua b/mods/technic/machines/other/frames.lua similarity index 100% rename from technic/machines/other/frames.lua rename to mods/technic/machines/other/frames.lua diff --git a/technic/machines/other/init.lua b/mods/technic/machines/other/init.lua similarity index 100% rename from technic/machines/other/init.lua rename to mods/technic/machines/other/init.lua diff --git a/technic/machines/other/injector.lua b/mods/technic/machines/other/injector.lua similarity index 100% rename from technic/machines/other/injector.lua rename to mods/technic/machines/other/injector.lua diff --git a/technic/machines/power_monitor.lua b/mods/technic/machines/power_monitor.lua similarity index 100% rename from technic/machines/power_monitor.lua rename to mods/technic/machines/power_monitor.lua diff --git a/technic/machines/register/alloy_furnace.lua b/mods/technic/machines/register/alloy_furnace.lua similarity index 100% rename from technic/machines/register/alloy_furnace.lua rename to mods/technic/machines/register/alloy_furnace.lua diff --git a/technic/machines/register/alloy_recipes.lua b/mods/technic/machines/register/alloy_recipes.lua similarity index 100% rename from technic/machines/register/alloy_recipes.lua rename to mods/technic/machines/register/alloy_recipes.lua diff --git a/technic/machines/register/battery_box.lua b/mods/technic/machines/register/battery_box.lua similarity index 100% rename from technic/machines/register/battery_box.lua rename to mods/technic/machines/register/battery_box.lua diff --git a/technic/machines/register/cables.lua b/mods/technic/machines/register/cables.lua similarity index 100% rename from technic/machines/register/cables.lua rename to mods/technic/machines/register/cables.lua diff --git a/technic/machines/register/centrifuge.lua b/mods/technic/machines/register/centrifuge.lua similarity index 100% rename from technic/machines/register/centrifuge.lua rename to mods/technic/machines/register/centrifuge.lua diff --git a/technic/machines/register/centrifuge_recipes.lua b/mods/technic/machines/register/centrifuge_recipes.lua similarity index 100% rename from technic/machines/register/centrifuge_recipes.lua rename to mods/technic/machines/register/centrifuge_recipes.lua diff --git a/technic/machines/register/common.lua b/mods/technic/machines/register/common.lua similarity index 100% rename from technic/machines/register/common.lua rename to mods/technic/machines/register/common.lua diff --git a/technic/machines/register/compressor.lua b/mods/technic/machines/register/compressor.lua similarity index 100% rename from technic/machines/register/compressor.lua rename to mods/technic/machines/register/compressor.lua diff --git a/technic/machines/register/compressor_recipes.lua b/mods/technic/machines/register/compressor_recipes.lua similarity index 100% rename from technic/machines/register/compressor_recipes.lua rename to mods/technic/machines/register/compressor_recipes.lua diff --git a/technic/machines/register/electric_furnace.lua b/mods/technic/machines/register/electric_furnace.lua similarity index 100% rename from technic/machines/register/electric_furnace.lua rename to mods/technic/machines/register/electric_furnace.lua diff --git a/technic/machines/register/extractor.lua b/mods/technic/machines/register/extractor.lua similarity index 100% rename from technic/machines/register/extractor.lua rename to mods/technic/machines/register/extractor.lua diff --git a/technic/machines/register/extractor_recipes.lua b/mods/technic/machines/register/extractor_recipes.lua similarity index 100% rename from technic/machines/register/extractor_recipes.lua rename to mods/technic/machines/register/extractor_recipes.lua diff --git a/technic/machines/register/freezer.lua b/mods/technic/machines/register/freezer.lua similarity index 100% rename from technic/machines/register/freezer.lua rename to mods/technic/machines/register/freezer.lua diff --git a/technic/machines/register/freezer_recipes.lua b/mods/technic/machines/register/freezer_recipes.lua similarity index 100% rename from technic/machines/register/freezer_recipes.lua rename to mods/technic/machines/register/freezer_recipes.lua diff --git a/technic/machines/register/generator.lua b/mods/technic/machines/register/generator.lua similarity index 100% rename from technic/machines/register/generator.lua rename to mods/technic/machines/register/generator.lua diff --git a/technic/machines/register/grinder.lua b/mods/technic/machines/register/grinder.lua similarity index 100% rename from technic/machines/register/grinder.lua rename to mods/technic/machines/register/grinder.lua diff --git a/technic/machines/register/grinder_recipes.lua b/mods/technic/machines/register/grinder_recipes.lua similarity index 100% rename from technic/machines/register/grinder_recipes.lua rename to mods/technic/machines/register/grinder_recipes.lua diff --git a/technic/machines/register/grindings.lua b/mods/technic/machines/register/grindings.lua similarity index 100% rename from technic/machines/register/grindings.lua rename to mods/technic/machines/register/grindings.lua diff --git a/technic/machines/register/init.lua b/mods/technic/machines/register/init.lua similarity index 100% rename from technic/machines/register/init.lua rename to mods/technic/machines/register/init.lua diff --git a/technic/machines/register/machine_base.lua b/mods/technic/machines/register/machine_base.lua similarity index 100% rename from technic/machines/register/machine_base.lua rename to mods/technic/machines/register/machine_base.lua diff --git a/technic/machines/register/recipes.lua b/mods/technic/machines/register/recipes.lua similarity index 100% rename from technic/machines/register/recipes.lua rename to mods/technic/machines/register/recipes.lua diff --git a/technic/machines/register/solar_array.lua b/mods/technic/machines/register/solar_array.lua similarity index 100% rename from technic/machines/register/solar_array.lua rename to mods/technic/machines/register/solar_array.lua diff --git a/technic/machines/supply_converter.lua b/mods/technic/machines/supply_converter.lua similarity index 100% rename from technic/machines/supply_converter.lua rename to mods/technic/machines/supply_converter.lua diff --git a/technic/machines/switching_station.lua b/mods/technic/machines/switching_station.lua similarity index 100% rename from technic/machines/switching_station.lua rename to mods/technic/machines/switching_station.lua diff --git a/technic/mod.conf b/mods/technic/mod.conf similarity index 100% rename from technic/mod.conf rename to mods/technic/mod.conf diff --git a/technic/models/technic_reactor.obj b/mods/technic/models/technic_reactor.obj similarity index 100% rename from technic/models/technic_reactor.obj rename to mods/technic/models/technic_reactor.obj diff --git a/technic/radiation.lua b/mods/technic/radiation.lua similarity index 100% rename from technic/radiation.lua rename to mods/technic/radiation.lua diff --git a/technic/register.lua b/mods/technic/register.lua similarity index 100% rename from technic/register.lua rename to mods/technic/register.lua diff --git a/technic/sounds/chainsaw.ogg b/mods/technic/sounds/chainsaw.ogg similarity index 100% rename from technic/sounds/chainsaw.ogg rename to mods/technic/sounds/chainsaw.ogg diff --git a/technic/sounds/item_drop_pickup.1.ogg b/mods/technic/sounds/item_drop_pickup.1.ogg similarity index 100% rename from technic/sounds/item_drop_pickup.1.ogg rename to mods/technic/sounds/item_drop_pickup.1.ogg diff --git a/technic/sounds/item_drop_pickup.2.ogg b/mods/technic/sounds/item_drop_pickup.2.ogg similarity index 100% rename from technic/sounds/item_drop_pickup.2.ogg rename to mods/technic/sounds/item_drop_pickup.2.ogg diff --git a/technic/sounds/item_drop_pickup.3.ogg b/mods/technic/sounds/item_drop_pickup.3.ogg similarity index 100% rename from technic/sounds/item_drop_pickup.3.ogg rename to mods/technic/sounds/item_drop_pickup.3.ogg diff --git a/technic/sounds/item_drop_pickup.4.ogg b/mods/technic/sounds/item_drop_pickup.4.ogg similarity index 100% rename from technic/sounds/item_drop_pickup.4.ogg rename to mods/technic/sounds/item_drop_pickup.4.ogg diff --git a/technic/sounds/mining_drill.ogg b/mods/technic/sounds/mining_drill.ogg similarity index 100% rename from technic/sounds/mining_drill.ogg rename to mods/technic/sounds/mining_drill.ogg diff --git a/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg b/mods/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg similarity index 100% rename from technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg rename to mods/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg diff --git a/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg b/mods/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg similarity index 100% rename from technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg rename to mods/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg diff --git a/technic/sounds/technic_laser_mk1.0.ogg b/mods/technic/sounds/technic_laser_mk1.0.ogg similarity index 100% rename from technic/sounds/technic_laser_mk1.0.ogg rename to mods/technic/sounds/technic_laser_mk1.0.ogg diff --git a/technic/sounds/technic_laser_mk1.1.ogg b/mods/technic/sounds/technic_laser_mk1.1.ogg similarity index 100% rename from technic/sounds/technic_laser_mk1.1.ogg rename to mods/technic/sounds/technic_laser_mk1.1.ogg diff --git a/technic/sounds/technic_laser_mk2.0.ogg b/mods/technic/sounds/technic_laser_mk2.0.ogg similarity index 100% rename from technic/sounds/technic_laser_mk2.0.ogg rename to mods/technic/sounds/technic_laser_mk2.0.ogg diff --git a/technic/sounds/technic_laser_mk2.1.ogg b/mods/technic/sounds/technic_laser_mk2.1.ogg similarity index 100% rename from technic/sounds/technic_laser_mk2.1.ogg rename to mods/technic/sounds/technic_laser_mk2.1.ogg diff --git a/technic/sounds/technic_laser_mk2.2.ogg b/mods/technic/sounds/technic_laser_mk2.2.ogg similarity index 100% rename from technic/sounds/technic_laser_mk2.2.ogg rename to mods/technic/sounds/technic_laser_mk2.2.ogg diff --git a/technic/sounds/technic_laser_mk3.1.ogg b/mods/technic/sounds/technic_laser_mk3.1.ogg similarity index 100% rename from technic/sounds/technic_laser_mk3.1.ogg rename to mods/technic/sounds/technic_laser_mk3.1.ogg diff --git a/technic/sounds/technic_laser_mk3.2.ogg b/mods/technic/sounds/technic_laser_mk3.2.ogg similarity index 100% rename from technic/sounds/technic_laser_mk3.2.ogg rename to mods/technic/sounds/technic_laser_mk3.2.ogg diff --git a/technic/sounds/technic_prospector_hit.ogg b/mods/technic/sounds/technic_prospector_hit.ogg similarity index 100% rename from technic/sounds/technic_prospector_hit.ogg rename to mods/technic/sounds/technic_prospector_hit.ogg diff --git a/technic/sounds/technic_prospector_miss.ogg b/mods/technic/sounds/technic_prospector_miss.ogg similarity index 100% rename from technic/sounds/technic_prospector_miss.ogg rename to mods/technic/sounds/technic_prospector_miss.ogg diff --git a/technic/sounds/technic_sonic_screwdriver.ogg b/mods/technic/sounds/technic_sonic_screwdriver.ogg similarity index 100% rename from technic/sounds/technic_sonic_screwdriver.ogg rename to mods/technic/sounds/technic_sonic_screwdriver.ogg diff --git a/technic/sounds/vacuumcleaner.ogg b/mods/technic/sounds/vacuumcleaner.ogg similarity index 100% rename from technic/sounds/vacuumcleaner.ogg rename to mods/technic/sounds/vacuumcleaner.ogg diff --git a/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png b/mods/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png similarity index 100% rename from technic/textures/hires/technic_hv_nuclear_reactor_core_128.png rename to mods/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png diff --git a/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png b/mods/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png similarity index 100% rename from technic/textures/hires/technic_hv_nuclear_reactor_core_16.png rename to mods/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png diff --git a/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png b/mods/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png similarity index 100% rename from technic/textures/hires/technic_hv_nuclear_reactor_core_256.png rename to mods/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png diff --git a/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png b/mods/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png similarity index 100% rename from technic/textures/hires/technic_hv_nuclear_reactor_core_32.png rename to mods/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png diff --git a/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png b/mods/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png similarity index 100% rename from technic/textures/hires/technic_hv_nuclear_reactor_core_512.png rename to mods/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png diff --git a/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png b/mods/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png similarity index 100% rename from technic/textures/hires/technic_hv_nuclear_reactor_core_64.png rename to mods/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png diff --git a/technic/textures/power_meter.png b/mods/technic/textures/power_meter.png similarity index 100% rename from technic/textures/power_meter.png rename to mods/technic/textures/power_meter.png diff --git a/technic/textures/technic_acacia_grindings.png b/mods/technic/textures/technic_acacia_grindings.png similarity index 100% rename from technic/textures/technic_acacia_grindings.png rename to mods/technic/textures/technic_acacia_grindings.png diff --git a/technic/textures/technic_admin_anchor.png b/mods/technic/textures/technic_admin_anchor.png similarity index 100% rename from technic/textures/technic_admin_anchor.png rename to mods/technic/textures/technic_admin_anchor.png diff --git a/technic/textures/technic_akalin_dust.png b/mods/technic/textures/technic_akalin_dust.png similarity index 100% rename from technic/textures/technic_akalin_dust.png rename to mods/technic/textures/technic_akalin_dust.png diff --git a/technic/textures/technic_alatro_dust.png b/mods/technic/textures/technic_alatro_dust.png similarity index 100% rename from technic/textures/technic_alatro_dust.png rename to mods/technic/textures/technic_alatro_dust.png diff --git a/technic/textures/technic_arol_dust.png b/mods/technic/textures/technic_arol_dust.png similarity index 100% rename from technic/textures/technic_arol_dust.png rename to mods/technic/textures/technic_arol_dust.png diff --git a/technic/textures/technic_battery.png b/mods/technic/textures/technic_battery.png similarity index 100% rename from technic/textures/technic_battery.png rename to mods/technic/textures/technic_battery.png diff --git a/technic/textures/technic_battery_meter_fg.png b/mods/technic/textures/technic_battery_meter_fg.png similarity index 100% rename from technic/textures/technic_battery_meter_fg.png rename to mods/technic/textures/technic_battery_meter_fg.png diff --git a/technic/textures/technic_battery_reload.png b/mods/technic/textures/technic_battery_reload.png similarity index 100% rename from technic/textures/technic_battery_reload.png rename to mods/technic/textures/technic_battery_reload.png diff --git a/technic/textures/technic_bronze_dust.png b/mods/technic/textures/technic_bronze_dust.png similarity index 100% rename from technic/textures/technic_bronze_dust.png rename to mods/technic/textures/technic_bronze_dust.png diff --git a/technic/textures/technic_bucket_corium.png b/mods/technic/textures/technic_bucket_corium.png similarity index 100% rename from technic/textures/technic_bucket_corium.png rename to mods/technic/textures/technic_bucket_corium.png diff --git a/technic/textures/technic_cable_connection_overlay.png b/mods/technic/textures/technic_cable_connection_overlay.png similarity index 100% rename from technic/textures/technic_cable_connection_overlay.png rename to mods/technic/textures/technic_cable_connection_overlay.png diff --git a/technic/textures/technic_carbon_cloth.png b/mods/technic/textures/technic_carbon_cloth.png similarity index 100% rename from technic/textures/technic_carbon_cloth.png rename to mods/technic/textures/technic_carbon_cloth.png diff --git a/technic/textures/technic_carbon_plate.png b/mods/technic/textures/technic_carbon_plate.png similarity index 100% rename from technic/textures/technic_carbon_plate.png rename to mods/technic/textures/technic_carbon_plate.png diff --git a/technic/textures/technic_carbon_steel_dust.png b/mods/technic/textures/technic_carbon_steel_dust.png similarity index 100% rename from technic/textures/technic_carbon_steel_dust.png rename to mods/technic/textures/technic_carbon_steel_dust.png diff --git a/technic/textures/technic_cast_iron_dust.png b/mods/technic/textures/technic_cast_iron_dust.png similarity index 100% rename from technic/textures/technic_cast_iron_dust.png rename to mods/technic/textures/technic_cast_iron_dust.png diff --git a/technic/textures/technic_chainsaw.png b/mods/technic/textures/technic_chainsaw.png similarity index 100% rename from technic/textures/technic_chainsaw.png rename to mods/technic/textures/technic_chainsaw.png diff --git a/technic/textures/technic_chernobylite_block.png b/mods/technic/textures/technic_chernobylite_block.png similarity index 100% rename from technic/textures/technic_chernobylite_block.png rename to mods/technic/textures/technic_chernobylite_block.png diff --git a/technic/textures/technic_chernobylite_dust.png b/mods/technic/textures/technic_chernobylite_dust.png similarity index 100% rename from technic/textures/technic_chernobylite_dust.png rename to mods/technic/textures/technic_chernobylite_dust.png diff --git a/technic/textures/technic_chromium_dust.png b/mods/technic/textures/technic_chromium_dust.png similarity index 100% rename from technic/textures/technic_chromium_dust.png rename to mods/technic/textures/technic_chromium_dust.png diff --git a/technic/textures/technic_coal_alloy_furnace_bottom.png b/mods/technic/textures/technic_coal_alloy_furnace_bottom.png similarity index 100% rename from technic/textures/technic_coal_alloy_furnace_bottom.png rename to mods/technic/textures/technic_coal_alloy_furnace_bottom.png diff --git a/technic/textures/technic_coal_alloy_furnace_front.png b/mods/technic/textures/technic_coal_alloy_furnace_front.png similarity index 100% rename from technic/textures/technic_coal_alloy_furnace_front.png rename to mods/technic/textures/technic_coal_alloy_furnace_front.png diff --git a/technic/textures/technic_coal_alloy_furnace_front_active.png b/mods/technic/textures/technic_coal_alloy_furnace_front_active.png similarity index 100% rename from technic/textures/technic_coal_alloy_furnace_front_active.png rename to mods/technic/textures/technic_coal_alloy_furnace_front_active.png diff --git a/technic/textures/technic_coal_alloy_furnace_side.png b/mods/technic/textures/technic_coal_alloy_furnace_side.png similarity index 100% rename from technic/textures/technic_coal_alloy_furnace_side.png rename to mods/technic/textures/technic_coal_alloy_furnace_side.png diff --git a/technic/textures/technic_coal_alloy_furnace_top.png b/mods/technic/textures/technic_coal_alloy_furnace_top.png similarity index 100% rename from technic/textures/technic_coal_alloy_furnace_top.png rename to mods/technic/textures/technic_coal_alloy_furnace_top.png diff --git a/technic/textures/technic_coal_dust.png b/mods/technic/textures/technic_coal_dust.png similarity index 100% rename from technic/textures/technic_coal_dust.png rename to mods/technic/textures/technic_coal_dust.png diff --git a/technic/textures/technic_common_tree_grindings.png b/mods/technic/textures/technic_common_tree_grindings.png similarity index 100% rename from technic/textures/technic_common_tree_grindings.png rename to mods/technic/textures/technic_common_tree_grindings.png diff --git a/technic/textures/technic_composite_plate.png b/mods/technic/textures/technic_composite_plate.png similarity index 100% rename from technic/textures/technic_composite_plate.png rename to mods/technic/textures/technic_composite_plate.png diff --git a/technic/textures/technic_constructor_back.png b/mods/technic/textures/technic_constructor_back.png similarity index 100% rename from technic/textures/technic_constructor_back.png rename to mods/technic/textures/technic_constructor_back.png diff --git a/technic/textures/technic_constructor_front_off.png b/mods/technic/textures/technic_constructor_front_off.png similarity index 100% rename from technic/textures/technic_constructor_front_off.png rename to mods/technic/textures/technic_constructor_front_off.png diff --git a/technic/textures/technic_constructor_front_on.png b/mods/technic/textures/technic_constructor_front_on.png similarity index 100% rename from technic/textures/technic_constructor_front_on.png rename to mods/technic/textures/technic_constructor_front_on.png diff --git a/technic/textures/technic_constructor_mk1_bottom_off.png b/mods/technic/textures/technic_constructor_mk1_bottom_off.png similarity index 100% rename from technic/textures/technic_constructor_mk1_bottom_off.png rename to mods/technic/textures/technic_constructor_mk1_bottom_off.png diff --git a/technic/textures/technic_constructor_mk1_bottom_on.png b/mods/technic/textures/technic_constructor_mk1_bottom_on.png similarity index 100% rename from technic/textures/technic_constructor_mk1_bottom_on.png rename to mods/technic/textures/technic_constructor_mk1_bottom_on.png diff --git a/technic/textures/technic_constructor_mk1_side1_off.png b/mods/technic/textures/technic_constructor_mk1_side1_off.png similarity index 100% rename from technic/textures/technic_constructor_mk1_side1_off.png rename to mods/technic/textures/technic_constructor_mk1_side1_off.png diff --git a/technic/textures/technic_constructor_mk1_side1_on.png b/mods/technic/textures/technic_constructor_mk1_side1_on.png similarity index 100% rename from technic/textures/technic_constructor_mk1_side1_on.png rename to mods/technic/textures/technic_constructor_mk1_side1_on.png diff --git a/technic/textures/technic_constructor_mk1_side2_off.png b/mods/technic/textures/technic_constructor_mk1_side2_off.png similarity index 100% rename from technic/textures/technic_constructor_mk1_side2_off.png rename to mods/technic/textures/technic_constructor_mk1_side2_off.png diff --git a/technic/textures/technic_constructor_mk1_side2_on.png b/mods/technic/textures/technic_constructor_mk1_side2_on.png similarity index 100% rename from technic/textures/technic_constructor_mk1_side2_on.png rename to mods/technic/textures/technic_constructor_mk1_side2_on.png diff --git a/technic/textures/technic_constructor_mk1_top_off.png b/mods/technic/textures/technic_constructor_mk1_top_off.png similarity index 100% rename from technic/textures/technic_constructor_mk1_top_off.png rename to mods/technic/textures/technic_constructor_mk1_top_off.png diff --git a/technic/textures/technic_constructor_mk1_top_on.png b/mods/technic/textures/technic_constructor_mk1_top_on.png similarity index 100% rename from technic/textures/technic_constructor_mk1_top_on.png rename to mods/technic/textures/technic_constructor_mk1_top_on.png diff --git a/technic/textures/technic_constructor_mk2_bottom_off.png b/mods/technic/textures/technic_constructor_mk2_bottom_off.png similarity index 100% rename from technic/textures/technic_constructor_mk2_bottom_off.png rename to mods/technic/textures/technic_constructor_mk2_bottom_off.png diff --git a/technic/textures/technic_constructor_mk2_bottom_on.png b/mods/technic/textures/technic_constructor_mk2_bottom_on.png similarity index 100% rename from technic/textures/technic_constructor_mk2_bottom_on.png rename to mods/technic/textures/technic_constructor_mk2_bottom_on.png diff --git a/technic/textures/technic_constructor_mk2_side1_off.png b/mods/technic/textures/technic_constructor_mk2_side1_off.png similarity index 100% rename from technic/textures/technic_constructor_mk2_side1_off.png rename to mods/technic/textures/technic_constructor_mk2_side1_off.png diff --git a/technic/textures/technic_constructor_mk2_side1_on.png b/mods/technic/textures/technic_constructor_mk2_side1_on.png similarity index 100% rename from technic/textures/technic_constructor_mk2_side1_on.png rename to mods/technic/textures/technic_constructor_mk2_side1_on.png diff --git a/technic/textures/technic_constructor_mk2_side2_off.png b/mods/technic/textures/technic_constructor_mk2_side2_off.png similarity index 100% rename from technic/textures/technic_constructor_mk2_side2_off.png rename to mods/technic/textures/technic_constructor_mk2_side2_off.png diff --git a/technic/textures/technic_constructor_mk2_side2_on.png b/mods/technic/textures/technic_constructor_mk2_side2_on.png similarity index 100% rename from technic/textures/technic_constructor_mk2_side2_on.png rename to mods/technic/textures/technic_constructor_mk2_side2_on.png diff --git a/technic/textures/technic_constructor_mk2_top_off.png b/mods/technic/textures/technic_constructor_mk2_top_off.png similarity index 100% rename from technic/textures/technic_constructor_mk2_top_off.png rename to mods/technic/textures/technic_constructor_mk2_top_off.png diff --git a/technic/textures/technic_constructor_mk2_top_on.png b/mods/technic/textures/technic_constructor_mk2_top_on.png similarity index 100% rename from technic/textures/technic_constructor_mk2_top_on.png rename to mods/technic/textures/technic_constructor_mk2_top_on.png diff --git a/technic/textures/technic_constructor_mk3_bottom_off.png b/mods/technic/textures/technic_constructor_mk3_bottom_off.png similarity index 100% rename from technic/textures/technic_constructor_mk3_bottom_off.png rename to mods/technic/textures/technic_constructor_mk3_bottom_off.png diff --git a/technic/textures/technic_constructor_mk3_bottom_on.png b/mods/technic/textures/technic_constructor_mk3_bottom_on.png similarity index 100% rename from technic/textures/technic_constructor_mk3_bottom_on.png rename to mods/technic/textures/technic_constructor_mk3_bottom_on.png diff --git a/technic/textures/technic_constructor_mk3_side1_off.png b/mods/technic/textures/technic_constructor_mk3_side1_off.png similarity index 100% rename from technic/textures/technic_constructor_mk3_side1_off.png rename to mods/technic/textures/technic_constructor_mk3_side1_off.png diff --git a/technic/textures/technic_constructor_mk3_side1_on.png b/mods/technic/textures/technic_constructor_mk3_side1_on.png similarity index 100% rename from technic/textures/technic_constructor_mk3_side1_on.png rename to mods/technic/textures/technic_constructor_mk3_side1_on.png diff --git a/technic/textures/technic_constructor_mk3_side2_off.png b/mods/technic/textures/technic_constructor_mk3_side2_off.png similarity index 100% rename from technic/textures/technic_constructor_mk3_side2_off.png rename to mods/technic/textures/technic_constructor_mk3_side2_off.png diff --git a/technic/textures/technic_constructor_mk3_side2_on.png b/mods/technic/textures/technic_constructor_mk3_side2_on.png similarity index 100% rename from technic/textures/technic_constructor_mk3_side2_on.png rename to mods/technic/textures/technic_constructor_mk3_side2_on.png diff --git a/technic/textures/technic_constructor_mk3_top_off.png b/mods/technic/textures/technic_constructor_mk3_top_off.png similarity index 100% rename from technic/textures/technic_constructor_mk3_top_off.png rename to mods/technic/textures/technic_constructor_mk3_top_off.png diff --git a/technic/textures/technic_constructor_mk3_top_on.png b/mods/technic/textures/technic_constructor_mk3_top_on.png similarity index 100% rename from technic/textures/technic_constructor_mk3_top_on.png rename to mods/technic/textures/technic_constructor_mk3_top_on.png diff --git a/technic/textures/technic_control_logic_unit.png b/mods/technic/textures/technic_control_logic_unit.png similarity index 100% rename from technic/textures/technic_control_logic_unit.png rename to mods/technic/textures/technic_control_logic_unit.png diff --git a/technic/textures/technic_copper_coil.png b/mods/technic/textures/technic_copper_coil.png similarity index 100% rename from technic/textures/technic_copper_coil.png rename to mods/technic/textures/technic_copper_coil.png diff --git a/technic/textures/technic_copper_dust.png b/mods/technic/textures/technic_copper_dust.png similarity index 100% rename from technic/textures/technic_copper_dust.png rename to mods/technic/textures/technic_copper_dust.png diff --git a/technic/textures/technic_copper_plate.png b/mods/technic/textures/technic_copper_plate.png similarity index 100% rename from technic/textures/technic_copper_plate.png rename to mods/technic/textures/technic_copper_plate.png diff --git a/technic/textures/technic_corium_flowing_animated.png b/mods/technic/textures/technic_corium_flowing_animated.png similarity index 100% rename from technic/textures/technic_corium_flowing_animated.png rename to mods/technic/textures/technic_corium_flowing_animated.png diff --git a/technic/textures/technic_corium_source_animated.png b/mods/technic/textures/technic_corium_source_animated.png similarity index 100% rename from technic/textures/technic_corium_source_animated.png rename to mods/technic/textures/technic_corium_source_animated.png diff --git a/technic/textures/technic_deployer_back.png b/mods/technic/textures/technic_deployer_back.png similarity index 100% rename from technic/textures/technic_deployer_back.png rename to mods/technic/textures/technic_deployer_back.png diff --git a/technic/textures/technic_deployer_bottom.png b/mods/technic/textures/technic_deployer_bottom.png similarity index 100% rename from technic/textures/technic_deployer_bottom.png rename to mods/technic/textures/technic_deployer_bottom.png diff --git a/technic/textures/technic_deployer_front_off.png b/mods/technic/textures/technic_deployer_front_off.png similarity index 100% rename from technic/textures/technic_deployer_front_off.png rename to mods/technic/textures/technic_deployer_front_off.png diff --git a/technic/textures/technic_deployer_front_on.png b/mods/technic/textures/technic_deployer_front_on.png similarity index 100% rename from technic/textures/technic_deployer_front_on.png rename to mods/technic/textures/technic_deployer_front_on.png diff --git a/technic/textures/technic_deployer_side.png b/mods/technic/textures/technic_deployer_side.png similarity index 100% rename from technic/textures/technic_deployer_side.png rename to mods/technic/textures/technic_deployer_side.png diff --git a/technic/textures/technic_deployer_side1.png b/mods/technic/textures/technic_deployer_side1.png similarity index 100% rename from technic/textures/technic_deployer_side1.png rename to mods/technic/textures/technic_deployer_side1.png diff --git a/technic/textures/technic_deployer_side2.png b/mods/technic/textures/technic_deployer_side2.png similarity index 100% rename from technic/textures/technic_deployer_side2.png rename to mods/technic/textures/technic_deployer_side2.png diff --git a/technic/textures/technic_deployer_top.png b/mods/technic/textures/technic_deployer_top.png similarity index 100% rename from technic/textures/technic_deployer_top.png rename to mods/technic/textures/technic_deployer_top.png diff --git a/technic/textures/technic_diamond_block_blue.png b/mods/technic/textures/technic_diamond_block_blue.png similarity index 100% rename from technic/textures/technic_diamond_block_blue.png rename to mods/technic/textures/technic_diamond_block_blue.png diff --git a/technic/textures/technic_diamond_block_green.png b/mods/technic/textures/technic_diamond_block_green.png similarity index 100% rename from technic/textures/technic_diamond_block_green.png rename to mods/technic/textures/technic_diamond_block_green.png diff --git a/technic/textures/technic_diamond_block_red.png b/mods/technic/textures/technic_diamond_block_red.png similarity index 100% rename from technic/textures/technic_diamond_block_red.png rename to mods/technic/textures/technic_diamond_block_red.png diff --git a/technic/textures/technic_diamond_drill_head.png b/mods/technic/textures/technic_diamond_drill_head.png similarity index 100% rename from technic/textures/technic_diamond_drill_head.png rename to mods/technic/textures/technic_diamond_drill_head.png diff --git a/technic/textures/technic_doped_silicon_wafer.png b/mods/technic/textures/technic_doped_silicon_wafer.png similarity index 100% rename from technic/textures/technic_doped_silicon_wafer.png rename to mods/technic/textures/technic_doped_silicon_wafer.png diff --git a/technic/textures/technic_flashlight.png b/mods/technic/textures/technic_flashlight.png similarity index 100% rename from technic/textures/technic_flashlight.png rename to mods/technic/textures/technic_flashlight.png diff --git a/technic/textures/technic_forcefield_animated.png b/mods/technic/textures/technic_forcefield_animated.png similarity index 100% rename from technic/textures/technic_forcefield_animated.png rename to mods/technic/textures/technic_forcefield_animated.png diff --git a/technic/textures/technic_forcefield_emitter_off.png b/mods/technic/textures/technic_forcefield_emitter_off.png similarity index 100% rename from technic/textures/technic_forcefield_emitter_off.png rename to mods/technic/textures/technic_forcefield_emitter_off.png diff --git a/technic/textures/technic_forcefield_emitter_on.png b/mods/technic/textures/technic_forcefield_emitter_on.png similarity index 100% rename from technic/textures/technic_forcefield_emitter_on.png rename to mods/technic/textures/technic_forcefield_emitter_on.png diff --git a/technic/textures/technic_frame.png b/mods/technic/textures/technic_frame.png similarity index 100% rename from technic/textures/technic_frame.png rename to mods/technic/textures/technic_frame.png diff --git a/technic/textures/technic_geothermal_side.png b/mods/technic/textures/technic_geothermal_side.png similarity index 100% rename from technic/textures/technic_geothermal_side.png rename to mods/technic/textures/technic_geothermal_side.png diff --git a/technic/textures/technic_geothermal_top.png b/mods/technic/textures/technic_geothermal_top.png similarity index 100% rename from technic/textures/technic_geothermal_top.png rename to mods/technic/textures/technic_geothermal_top.png diff --git a/technic/textures/technic_geothermal_top_active.png b/mods/technic/textures/technic_geothermal_top_active.png similarity index 100% rename from technic/textures/technic_geothermal_top_active.png rename to mods/technic/textures/technic_geothermal_top_active.png diff --git a/technic/textures/technic_gold_dust.png b/mods/technic/textures/technic_gold_dust.png similarity index 100% rename from technic/textures/technic_gold_dust.png rename to mods/technic/textures/technic_gold_dust.png diff --git a/technic/textures/technic_graphite.png b/mods/technic/textures/technic_graphite.png similarity index 100% rename from technic/textures/technic_graphite.png rename to mods/technic/textures/technic_graphite.png diff --git a/technic/textures/technic_grinder_front.png b/mods/technic/textures/technic_grinder_front.png similarity index 100% rename from technic/textures/technic_grinder_front.png rename to mods/technic/textures/technic_grinder_front.png diff --git a/technic/textures/technic_grinder_side.png b/mods/technic/textures/technic_grinder_side.png similarity index 100% rename from technic/textures/technic_grinder_side.png rename to mods/technic/textures/technic_grinder_side.png diff --git a/technic/textures/technic_grinder_top.png b/mods/technic/textures/technic_grinder_top.png similarity index 100% rename from technic/textures/technic_grinder_top.png rename to mods/technic/textures/technic_grinder_top.png diff --git a/technic/textures/technic_homedecor_glowlight_cube_white_sides.png b/mods/technic/textures/technic_homedecor_glowlight_cube_white_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_cube_white_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_cube_white_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png b/mods/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png rename to mods/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png diff --git a/technic/textures/technic_homedecor_glowlight_cube_white_tb.png b/mods/technic/textures/technic_homedecor_glowlight_cube_white_tb.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_cube_white_tb.png rename to mods/technic/textures/technic_homedecor_glowlight_cube_white_tb.png diff --git a/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png b/mods/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png b/mods/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png rename to mods/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png diff --git a/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png b/mods/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png rename to mods/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png diff --git a/technic/textures/technic_homedecor_glowlight_thick_white_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thick_white_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thick_white_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thick_white_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thin_white_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thin_white_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thin_white_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thin_white_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png b/mods/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png rename to mods/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png diff --git a/technic/textures/technic_homedecor_glowlight_white_tb.png b/mods/technic/textures/technic_homedecor_glowlight_white_tb.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_white_tb.png rename to mods/technic/textures/technic_homedecor_glowlight_white_tb.png diff --git a/technic/textures/technic_homedecor_glowlight_yellow_tb.png b/mods/technic/textures/technic_homedecor_glowlight_yellow_tb.png similarity index 100% rename from technic/textures/technic_homedecor_glowlight_yellow_tb.png rename to mods/technic/textures/technic_homedecor_glowlight_yellow_tb.png diff --git a/technic/textures/technic_hv_battery_box_bottom.png b/mods/technic/textures/technic_hv_battery_box_bottom.png similarity index 100% rename from technic/textures/technic_hv_battery_box_bottom.png rename to mods/technic/textures/technic_hv_battery_box_bottom.png diff --git a/technic/textures/technic_hv_battery_box_front.png b/mods/technic/textures/technic_hv_battery_box_front.png similarity index 100% rename from technic/textures/technic_hv_battery_box_front.png rename to mods/technic/textures/technic_hv_battery_box_front.png diff --git a/technic/textures/technic_hv_battery_box_side.png b/mods/technic/textures/technic_hv_battery_box_side.png similarity index 100% rename from technic/textures/technic_hv_battery_box_side.png rename to mods/technic/textures/technic_hv_battery_box_side.png diff --git a/technic/textures/technic_hv_battery_box_top.png b/mods/technic/textures/technic_hv_battery_box_top.png similarity index 100% rename from technic/textures/technic_hv_battery_box_top.png rename to mods/technic/textures/technic_hv_battery_box_top.png diff --git a/technic/textures/technic_hv_cable.png b/mods/technic/textures/technic_hv_cable.png similarity index 100% rename from technic/textures/technic_hv_cable.png rename to mods/technic/textures/technic_hv_cable.png diff --git a/technic/textures/technic_hv_cable_wield.png b/mods/technic/textures/technic_hv_cable_wield.png similarity index 100% rename from technic/textures/technic_hv_cable_wield.png rename to mods/technic/textures/technic_hv_cable_wield.png diff --git a/technic/textures/technic_hv_down_converter_bottom.png b/mods/technic/textures/technic_hv_down_converter_bottom.png similarity index 100% rename from technic/textures/technic_hv_down_converter_bottom.png rename to mods/technic/textures/technic_hv_down_converter_bottom.png diff --git a/technic/textures/technic_hv_down_converter_side.png b/mods/technic/textures/technic_hv_down_converter_side.png similarity index 100% rename from technic/textures/technic_hv_down_converter_side.png rename to mods/technic/textures/technic_hv_down_converter_side.png diff --git a/technic/textures/technic_hv_down_converter_top.png b/mods/technic/textures/technic_hv_down_converter_top.png similarity index 100% rename from technic/textures/technic_hv_down_converter_top.png rename to mods/technic/textures/technic_hv_down_converter_top.png diff --git a/technic/textures/technic_hv_generator_front.png b/mods/technic/textures/technic_hv_generator_front.png similarity index 100% rename from technic/textures/technic_hv_generator_front.png rename to mods/technic/textures/technic_hv_generator_front.png diff --git a/technic/textures/technic_hv_generator_front_active.png b/mods/technic/textures/technic_hv_generator_front_active.png similarity index 100% rename from technic/textures/technic_hv_generator_front_active.png rename to mods/technic/textures/technic_hv_generator_front_active.png diff --git a/technic/textures/technic_hv_generator_side.png b/mods/technic/textures/technic_hv_generator_side.png similarity index 100% rename from technic/textures/technic_hv_generator_side.png rename to mods/technic/textures/technic_hv_generator_side.png diff --git a/technic/textures/technic_hv_generator_top.png b/mods/technic/textures/technic_hv_generator_top.png similarity index 100% rename from technic/textures/technic_hv_generator_top.png rename to mods/technic/textures/technic_hv_generator_top.png diff --git a/technic/textures/technic_hv_grinder_bottom.png b/mods/technic/textures/technic_hv_grinder_bottom.png similarity index 100% rename from technic/textures/technic_hv_grinder_bottom.png rename to mods/technic/textures/technic_hv_grinder_bottom.png diff --git a/technic/textures/technic_hv_grinder_front.png b/mods/technic/textures/technic_hv_grinder_front.png similarity index 100% rename from technic/textures/technic_hv_grinder_front.png rename to mods/technic/textures/technic_hv_grinder_front.png diff --git a/technic/textures/technic_hv_grinder_front_active.png b/mods/technic/textures/technic_hv_grinder_front_active.png similarity index 100% rename from technic/textures/technic_hv_grinder_front_active.png rename to mods/technic/textures/technic_hv_grinder_front_active.png diff --git a/technic/textures/technic_hv_grinder_side.png b/mods/technic/textures/technic_hv_grinder_side.png similarity index 100% rename from technic/textures/technic_hv_grinder_side.png rename to mods/technic/textures/technic_hv_grinder_side.png diff --git a/technic/textures/technic_hv_grinder_side_tube.png b/mods/technic/textures/technic_hv_grinder_side_tube.png similarity index 100% rename from technic/textures/technic_hv_grinder_side_tube.png rename to mods/technic/textures/technic_hv_grinder_side_tube.png diff --git a/technic/textures/technic_hv_grinder_top.png b/mods/technic/textures/technic_hv_grinder_top.png similarity index 100% rename from technic/textures/technic_hv_grinder_top.png rename to mods/technic/textures/technic_hv_grinder_top.png diff --git a/technic/textures/technic_hv_nuclear_reactor_core.png b/mods/technic/textures/technic_hv_nuclear_reactor_core.png similarity index 100% rename from technic/textures/technic_hv_nuclear_reactor_core.png rename to mods/technic/textures/technic_hv_nuclear_reactor_core.png diff --git a/technic/textures/technic_hv_solar_array_bottom.png b/mods/technic/textures/technic_hv_solar_array_bottom.png similarity index 100% rename from technic/textures/technic_hv_solar_array_bottom.png rename to mods/technic/textures/technic_hv_solar_array_bottom.png diff --git a/technic/textures/technic_hv_solar_array_side.png b/mods/technic/textures/technic_hv_solar_array_side.png similarity index 100% rename from technic/textures/technic_hv_solar_array_side.png rename to mods/technic/textures/technic_hv_solar_array_side.png diff --git a/technic/textures/technic_hv_solar_array_top.png b/mods/technic/textures/technic_hv_solar_array_top.png similarity index 100% rename from technic/textures/technic_hv_solar_array_top.png rename to mods/technic/textures/technic_hv_solar_array_top.png diff --git a/technic/textures/technic_hv_transformer.png b/mods/technic/textures/technic_hv_transformer.png similarity index 100% rename from technic/textures/technic_hv_transformer.png rename to mods/technic/textures/technic_hv_transformer.png diff --git a/technic/textures/technic_hydro_turbine_side.png b/mods/technic/textures/technic_hydro_turbine_side.png similarity index 100% rename from technic/textures/technic_hydro_turbine_side.png rename to mods/technic/textures/technic_hydro_turbine_side.png diff --git a/technic/textures/technic_hydro_turbine_top.png b/mods/technic/textures/technic_hydro_turbine_top.png similarity index 100% rename from technic/textures/technic_hydro_turbine_top.png rename to mods/technic/textures/technic_hydro_turbine_top.png diff --git a/technic/textures/technic_hydro_turbine_top_active.png b/mods/technic/textures/technic_hydro_turbine_top_active.png similarity index 100% rename from technic/textures/technic_hydro_turbine_top_active.png rename to mods/technic/textures/technic_hydro_turbine_top_active.png diff --git a/technic/textures/technic_injector_bottom.png b/mods/technic/textures/technic_injector_bottom.png similarity index 100% rename from technic/textures/technic_injector_bottom.png rename to mods/technic/textures/technic_injector_bottom.png diff --git a/technic/textures/technic_injector_side.png b/mods/technic/textures/technic_injector_side.png similarity index 100% rename from technic/textures/technic_injector_side.png rename to mods/technic/textures/technic_injector_side.png diff --git a/technic/textures/technic_injector_top.png b/mods/technic/textures/technic_injector_top.png similarity index 100% rename from technic/textures/technic_injector_top.png rename to mods/technic/textures/technic_injector_top.png diff --git a/technic/textures/technic_kalite_dust.png b/mods/technic/textures/technic_kalite_dust.png similarity index 100% rename from technic/textures/technic_kalite_dust.png rename to mods/technic/textures/technic_kalite_dust.png diff --git a/technic/textures/technic_laser_beam_mk1.png b/mods/technic/textures/technic_laser_beam_mk1.png similarity index 100% rename from technic/textures/technic_laser_beam_mk1.png rename to mods/technic/textures/technic_laser_beam_mk1.png diff --git a/technic/textures/technic_laser_beam_mk2.png b/mods/technic/textures/technic_laser_beam_mk2.png similarity index 100% rename from technic/textures/technic_laser_beam_mk2.png rename to mods/technic/textures/technic_laser_beam_mk2.png diff --git a/technic/textures/technic_laser_beam_mk3.png b/mods/technic/textures/technic_laser_beam_mk3.png similarity index 100% rename from technic/textures/technic_laser_beam_mk3.png rename to mods/technic/textures/technic_laser_beam_mk3.png diff --git a/technic/textures/technic_lava_can.png b/mods/technic/textures/technic_lava_can.png similarity index 100% rename from technic/textures/technic_lava_can.png rename to mods/technic/textures/technic_lava_can.png diff --git a/technic/textures/technic_light.png b/mods/technic/textures/technic_light.png similarity index 100% rename from technic/textures/technic_light.png rename to mods/technic/textures/technic_light.png diff --git a/technic/textures/technic_lv_alloy_furnace_bottom.png b/mods/technic/textures/technic_lv_alloy_furnace_bottom.png similarity index 100% rename from technic/textures/technic_lv_alloy_furnace_bottom.png rename to mods/technic/textures/technic_lv_alloy_furnace_bottom.png diff --git a/technic/textures/technic_lv_alloy_furnace_front.png b/mods/technic/textures/technic_lv_alloy_furnace_front.png similarity index 100% rename from technic/textures/technic_lv_alloy_furnace_front.png rename to mods/technic/textures/technic_lv_alloy_furnace_front.png diff --git a/technic/textures/technic_lv_alloy_furnace_front_active.png b/mods/technic/textures/technic_lv_alloy_furnace_front_active.png similarity index 100% rename from technic/textures/technic_lv_alloy_furnace_front_active.png rename to mods/technic/textures/technic_lv_alloy_furnace_front_active.png diff --git a/technic/textures/technic_lv_alloy_furnace_side.png b/mods/technic/textures/technic_lv_alloy_furnace_side.png similarity index 100% rename from technic/textures/technic_lv_alloy_furnace_side.png rename to mods/technic/textures/technic_lv_alloy_furnace_side.png diff --git a/technic/textures/technic_lv_alloy_furnace_top.png b/mods/technic/textures/technic_lv_alloy_furnace_top.png similarity index 100% rename from technic/textures/technic_lv_alloy_furnace_top.png rename to mods/technic/textures/technic_lv_alloy_furnace_top.png diff --git a/technic/textures/technic_lv_battery_box_bottom.png b/mods/technic/textures/technic_lv_battery_box_bottom.png similarity index 100% rename from technic/textures/technic_lv_battery_box_bottom.png rename to mods/technic/textures/technic_lv_battery_box_bottom.png diff --git a/technic/textures/technic_lv_battery_box_side.png b/mods/technic/textures/technic_lv_battery_box_side.png similarity index 100% rename from technic/textures/technic_lv_battery_box_side.png rename to mods/technic/textures/technic_lv_battery_box_side.png diff --git a/technic/textures/technic_lv_battery_box_top.png b/mods/technic/textures/technic_lv_battery_box_top.png similarity index 100% rename from technic/textures/technic_lv_battery_box_top.png rename to mods/technic/textures/technic_lv_battery_box_top.png diff --git a/technic/textures/technic_lv_cable.png b/mods/technic/textures/technic_lv_cable.png similarity index 100% rename from technic/textures/technic_lv_cable.png rename to mods/technic/textures/technic_lv_cable.png diff --git a/technic/textures/technic_lv_cable_wield.png b/mods/technic/textures/technic_lv_cable_wield.png similarity index 100% rename from technic/textures/technic_lv_cable_wield.png rename to mods/technic/textures/technic_lv_cable_wield.png diff --git a/technic/textures/technic_lv_compressor_back.png b/mods/technic/textures/technic_lv_compressor_back.png similarity index 100% rename from technic/textures/technic_lv_compressor_back.png rename to mods/technic/textures/technic_lv_compressor_back.png diff --git a/technic/textures/technic_lv_compressor_bottom.png b/mods/technic/textures/technic_lv_compressor_bottom.png similarity index 100% rename from technic/textures/technic_lv_compressor_bottom.png rename to mods/technic/textures/technic_lv_compressor_bottom.png diff --git a/technic/textures/technic_lv_compressor_front.png b/mods/technic/textures/technic_lv_compressor_front.png similarity index 100% rename from technic/textures/technic_lv_compressor_front.png rename to mods/technic/textures/technic_lv_compressor_front.png diff --git a/technic/textures/technic_lv_compressor_front_active.png b/mods/technic/textures/technic_lv_compressor_front_active.png similarity index 100% rename from technic/textures/technic_lv_compressor_front_active.png rename to mods/technic/textures/technic_lv_compressor_front_active.png diff --git a/technic/textures/technic_lv_compressor_side.png b/mods/technic/textures/technic_lv_compressor_side.png similarity index 100% rename from technic/textures/technic_lv_compressor_side.png rename to mods/technic/textures/technic_lv_compressor_side.png diff --git a/technic/textures/technic_lv_compressor_top.png b/mods/technic/textures/technic_lv_compressor_top.png similarity index 100% rename from technic/textures/technic_lv_compressor_top.png rename to mods/technic/textures/technic_lv_compressor_top.png diff --git a/technic/textures/technic_lv_electric_furnace_bottom.png b/mods/technic/textures/technic_lv_electric_furnace_bottom.png similarity index 100% rename from technic/textures/technic_lv_electric_furnace_bottom.png rename to mods/technic/textures/technic_lv_electric_furnace_bottom.png diff --git a/technic/textures/technic_lv_electric_furnace_front.png b/mods/technic/textures/technic_lv_electric_furnace_front.png similarity index 100% rename from technic/textures/technic_lv_electric_furnace_front.png rename to mods/technic/textures/technic_lv_electric_furnace_front.png diff --git a/technic/textures/technic_lv_electric_furnace_front_active.png b/mods/technic/textures/technic_lv_electric_furnace_front_active.png similarity index 100% rename from technic/textures/technic_lv_electric_furnace_front_active.png rename to mods/technic/textures/technic_lv_electric_furnace_front_active.png diff --git a/technic/textures/technic_lv_electric_furnace_side.png b/mods/technic/textures/technic_lv_electric_furnace_side.png similarity index 100% rename from technic/textures/technic_lv_electric_furnace_side.png rename to mods/technic/textures/technic_lv_electric_furnace_side.png diff --git a/technic/textures/technic_lv_electric_furnace_top.png b/mods/technic/textures/technic_lv_electric_furnace_top.png similarity index 100% rename from technic/textures/technic_lv_electric_furnace_top.png rename to mods/technic/textures/technic_lv_electric_furnace_top.png diff --git a/technic/textures/technic_lv_extractor_bottom.png b/mods/technic/textures/technic_lv_extractor_bottom.png similarity index 100% rename from technic/textures/technic_lv_extractor_bottom.png rename to mods/technic/textures/technic_lv_extractor_bottom.png diff --git a/technic/textures/technic_lv_extractor_front.png b/mods/technic/textures/technic_lv_extractor_front.png similarity index 100% rename from technic/textures/technic_lv_extractor_front.png rename to mods/technic/textures/technic_lv_extractor_front.png diff --git a/technic/textures/technic_lv_extractor_front_active.png b/mods/technic/textures/technic_lv_extractor_front_active.png similarity index 100% rename from technic/textures/technic_lv_extractor_front_active.png rename to mods/technic/textures/technic_lv_extractor_front_active.png diff --git a/technic/textures/technic_lv_extractor_side.png b/mods/technic/textures/technic_lv_extractor_side.png similarity index 100% rename from technic/textures/technic_lv_extractor_side.png rename to mods/technic/textures/technic_lv_extractor_side.png diff --git a/technic/textures/technic_lv_extractor_top.png b/mods/technic/textures/technic_lv_extractor_top.png similarity index 100% rename from technic/textures/technic_lv_extractor_top.png rename to mods/technic/textures/technic_lv_extractor_top.png diff --git a/technic/textures/technic_lv_generator_front.png b/mods/technic/textures/technic_lv_generator_front.png similarity index 100% rename from technic/textures/technic_lv_generator_front.png rename to mods/technic/textures/technic_lv_generator_front.png diff --git a/technic/textures/technic_lv_generator_front_active.png b/mods/technic/textures/technic_lv_generator_front_active.png similarity index 100% rename from technic/textures/technic_lv_generator_front_active.png rename to mods/technic/textures/technic_lv_generator_front_active.png diff --git a/technic/textures/technic_lv_generator_side.png b/mods/technic/textures/technic_lv_generator_side.png similarity index 100% rename from technic/textures/technic_lv_generator_side.png rename to mods/technic/textures/technic_lv_generator_side.png diff --git a/technic/textures/technic_lv_generator_top.png b/mods/technic/textures/technic_lv_generator_top.png similarity index 100% rename from technic/textures/technic_lv_generator_top.png rename to mods/technic/textures/technic_lv_generator_top.png diff --git a/technic/textures/technic_lv_grinder_bottom.png b/mods/technic/textures/technic_lv_grinder_bottom.png similarity index 100% rename from technic/textures/technic_lv_grinder_bottom.png rename to mods/technic/textures/technic_lv_grinder_bottom.png diff --git a/technic/textures/technic_lv_grinder_front.png b/mods/technic/textures/technic_lv_grinder_front.png similarity index 100% rename from technic/textures/technic_lv_grinder_front.png rename to mods/technic/textures/technic_lv_grinder_front.png diff --git a/technic/textures/technic_lv_grinder_front_active.png b/mods/technic/textures/technic_lv_grinder_front_active.png similarity index 100% rename from technic/textures/technic_lv_grinder_front_active.png rename to mods/technic/textures/technic_lv_grinder_front_active.png diff --git a/technic/textures/technic_lv_grinder_side.png b/mods/technic/textures/technic_lv_grinder_side.png similarity index 100% rename from technic/textures/technic_lv_grinder_side.png rename to mods/technic/textures/technic_lv_grinder_side.png diff --git a/technic/textures/technic_lv_grinder_top.png b/mods/technic/textures/technic_lv_grinder_top.png similarity index 100% rename from technic/textures/technic_lv_grinder_top.png rename to mods/technic/textures/technic_lv_grinder_top.png diff --git a/technic/textures/technic_lv_solar_array_bottom.png b/mods/technic/textures/technic_lv_solar_array_bottom.png similarity index 100% rename from technic/textures/technic_lv_solar_array_bottom.png rename to mods/technic/textures/technic_lv_solar_array_bottom.png diff --git a/technic/textures/technic_lv_solar_array_side.png b/mods/technic/textures/technic_lv_solar_array_side.png similarity index 100% rename from technic/textures/technic_lv_solar_array_side.png rename to mods/technic/textures/technic_lv_solar_array_side.png diff --git a/technic/textures/technic_lv_solar_array_top.png b/mods/technic/textures/technic_lv_solar_array_top.png similarity index 100% rename from technic/textures/technic_lv_solar_array_top.png rename to mods/technic/textures/technic_lv_solar_array_top.png diff --git a/technic/textures/technic_lv_transformer.png b/mods/technic/textures/technic_lv_transformer.png similarity index 100% rename from technic/textures/technic_lv_transformer.png rename to mods/technic/textures/technic_lv_transformer.png diff --git a/technic/textures/technic_machine_bottom.png b/mods/technic/textures/technic_machine_bottom.png similarity index 100% rename from technic/textures/technic_machine_bottom.png rename to mods/technic/textures/technic_machine_bottom.png diff --git a/technic/textures/technic_machine_casing.png b/mods/technic/textures/technic_machine_casing.png similarity index 100% rename from technic/textures/technic_machine_casing.png rename to mods/technic/textures/technic_machine_casing.png diff --git a/technic/textures/technic_mining_drill.png b/mods/technic/textures/technic_mining_drill.png similarity index 100% rename from technic/textures/technic_mining_drill.png rename to mods/technic/textures/technic_mining_drill.png diff --git a/technic/textures/technic_mining_drill_mk2.png b/mods/technic/textures/technic_mining_drill_mk2.png similarity index 100% rename from technic/textures/technic_mining_drill_mk2.png rename to mods/technic/textures/technic_mining_drill_mk2.png diff --git a/technic/textures/technic_mining_drill_mk3.png b/mods/technic/textures/technic_mining_drill_mk3.png similarity index 100% rename from technic/textures/technic_mining_drill_mk3.png rename to mods/technic/textures/technic_mining_drill_mk3.png diff --git a/technic/textures/technic_mining_laser_mk1.png b/mods/technic/textures/technic_mining_laser_mk1.png similarity index 100% rename from technic/textures/technic_mining_laser_mk1.png rename to mods/technic/textures/technic_mining_laser_mk1.png diff --git a/technic/textures/technic_mining_laser_mk2.png b/mods/technic/textures/technic_mining_laser_mk2.png similarity index 100% rename from technic/textures/technic_mining_laser_mk2.png rename to mods/technic/textures/technic_mining_laser_mk2.png diff --git a/technic/textures/technic_mining_laser_mk3.png b/mods/technic/textures/technic_mining_laser_mk3.png similarity index 100% rename from technic/textures/technic_mining_laser_mk3.png rename to mods/technic/textures/technic_mining_laser_mk3.png diff --git a/technic/textures/technic_mithril_dust.png b/mods/technic/textures/technic_mithril_dust.png similarity index 100% rename from technic/textures/technic_mithril_dust.png rename to mods/technic/textures/technic_mithril_dust.png diff --git a/technic/textures/technic_mixed_metal_ingot.png b/mods/technic/textures/technic_mixed_metal_ingot.png similarity index 100% rename from technic/textures/technic_mixed_metal_ingot.png rename to mods/technic/textures/technic_mixed_metal_ingot.png diff --git a/technic/textures/technic_music_player_bottom.png b/mods/technic/textures/technic_music_player_bottom.png similarity index 100% rename from technic/textures/technic_music_player_bottom.png rename to mods/technic/textures/technic_music_player_bottom.png diff --git a/technic/textures/technic_music_player_side.png b/mods/technic/textures/technic_music_player_side.png similarity index 100% rename from technic/textures/technic_music_player_side.png rename to mods/technic/textures/technic_music_player_side.png diff --git a/technic/textures/technic_music_player_top.png b/mods/technic/textures/technic_music_player_top.png similarity index 100% rename from technic/textures/technic_music_player_top.png rename to mods/technic/textures/technic_music_player_top.png diff --git a/technic/textures/technic_mv_alloy_furnace_bottom.png b/mods/technic/textures/technic_mv_alloy_furnace_bottom.png similarity index 100% rename from technic/textures/technic_mv_alloy_furnace_bottom.png rename to mods/technic/textures/technic_mv_alloy_furnace_bottom.png diff --git a/technic/textures/technic_mv_alloy_furnace_front.png b/mods/technic/textures/technic_mv_alloy_furnace_front.png similarity index 100% rename from technic/textures/technic_mv_alloy_furnace_front.png rename to mods/technic/textures/technic_mv_alloy_furnace_front.png diff --git a/technic/textures/technic_mv_alloy_furnace_front_active.png b/mods/technic/textures/technic_mv_alloy_furnace_front_active.png similarity index 100% rename from technic/textures/technic_mv_alloy_furnace_front_active.png rename to mods/technic/textures/technic_mv_alloy_furnace_front_active.png diff --git a/technic/textures/technic_mv_alloy_furnace_side.png b/mods/technic/textures/technic_mv_alloy_furnace_side.png similarity index 100% rename from technic/textures/technic_mv_alloy_furnace_side.png rename to mods/technic/textures/technic_mv_alloy_furnace_side.png diff --git a/technic/textures/technic_mv_alloy_furnace_side_tube.png b/mods/technic/textures/technic_mv_alloy_furnace_side_tube.png similarity index 100% rename from technic/textures/technic_mv_alloy_furnace_side_tube.png rename to mods/technic/textures/technic_mv_alloy_furnace_side_tube.png diff --git a/technic/textures/technic_mv_alloy_furnace_top.png b/mods/technic/textures/technic_mv_alloy_furnace_top.png similarity index 100% rename from technic/textures/technic_mv_alloy_furnace_top.png rename to mods/technic/textures/technic_mv_alloy_furnace_top.png diff --git a/technic/textures/technic_mv_battery_box_bottom.png b/mods/technic/textures/technic_mv_battery_box_bottom.png similarity index 100% rename from technic/textures/technic_mv_battery_box_bottom.png rename to mods/technic/textures/technic_mv_battery_box_bottom.png diff --git a/technic/textures/technic_mv_battery_box_front.png b/mods/technic/textures/technic_mv_battery_box_front.png similarity index 100% rename from technic/textures/technic_mv_battery_box_front.png rename to mods/technic/textures/technic_mv_battery_box_front.png diff --git a/technic/textures/technic_mv_battery_box_side.png b/mods/technic/textures/technic_mv_battery_box_side.png similarity index 100% rename from technic/textures/technic_mv_battery_box_side.png rename to mods/technic/textures/technic_mv_battery_box_side.png diff --git a/technic/textures/technic_mv_battery_box_top.png b/mods/technic/textures/technic_mv_battery_box_top.png similarity index 100% rename from technic/textures/technic_mv_battery_box_top.png rename to mods/technic/textures/technic_mv_battery_box_top.png diff --git a/technic/textures/technic_mv_cable.png b/mods/technic/textures/technic_mv_cable.png similarity index 100% rename from technic/textures/technic_mv_cable.png rename to mods/technic/textures/technic_mv_cable.png diff --git a/technic/textures/technic_mv_cable_wield.png b/mods/technic/textures/technic_mv_cable_wield.png similarity index 100% rename from technic/textures/technic_mv_cable_wield.png rename to mods/technic/textures/technic_mv_cable_wield.png diff --git a/technic/textures/technic_mv_centrifuge_bottom.png b/mods/technic/textures/technic_mv_centrifuge_bottom.png similarity index 100% rename from technic/textures/technic_mv_centrifuge_bottom.png rename to mods/technic/textures/technic_mv_centrifuge_bottom.png diff --git a/technic/textures/technic_mv_centrifuge_front.png b/mods/technic/textures/technic_mv_centrifuge_front.png similarity index 100% rename from technic/textures/technic_mv_centrifuge_front.png rename to mods/technic/textures/technic_mv_centrifuge_front.png diff --git a/technic/textures/technic_mv_centrifuge_front_active.png b/mods/technic/textures/technic_mv_centrifuge_front_active.png similarity index 100% rename from technic/textures/technic_mv_centrifuge_front_active.png rename to mods/technic/textures/technic_mv_centrifuge_front_active.png diff --git a/technic/textures/technic_mv_centrifuge_side.png b/mods/technic/textures/technic_mv_centrifuge_side.png similarity index 100% rename from technic/textures/technic_mv_centrifuge_side.png rename to mods/technic/textures/technic_mv_centrifuge_side.png diff --git a/technic/textures/technic_mv_centrifuge_top.png b/mods/technic/textures/technic_mv_centrifuge_top.png similarity index 100% rename from technic/textures/technic_mv_centrifuge_top.png rename to mods/technic/textures/technic_mv_centrifuge_top.png diff --git a/technic/textures/technic_mv_compressor_back.png b/mods/technic/textures/technic_mv_compressor_back.png similarity index 100% rename from technic/textures/technic_mv_compressor_back.png rename to mods/technic/textures/technic_mv_compressor_back.png diff --git a/technic/textures/technic_mv_compressor_bottom.png b/mods/technic/textures/technic_mv_compressor_bottom.png similarity index 100% rename from technic/textures/technic_mv_compressor_bottom.png rename to mods/technic/textures/technic_mv_compressor_bottom.png diff --git a/technic/textures/technic_mv_compressor_front.png b/mods/technic/textures/technic_mv_compressor_front.png similarity index 100% rename from technic/textures/technic_mv_compressor_front.png rename to mods/technic/textures/technic_mv_compressor_front.png diff --git a/technic/textures/technic_mv_compressor_front_active.png b/mods/technic/textures/technic_mv_compressor_front_active.png similarity index 100% rename from technic/textures/technic_mv_compressor_front_active.png rename to mods/technic/textures/technic_mv_compressor_front_active.png diff --git a/technic/textures/technic_mv_compressor_side.png b/mods/technic/textures/technic_mv_compressor_side.png similarity index 100% rename from technic/textures/technic_mv_compressor_side.png rename to mods/technic/textures/technic_mv_compressor_side.png diff --git a/technic/textures/technic_mv_compressor_top.png b/mods/technic/textures/technic_mv_compressor_top.png similarity index 100% rename from technic/textures/technic_mv_compressor_top.png rename to mods/technic/textures/technic_mv_compressor_top.png diff --git a/technic/textures/technic_mv_down_converter_bottom.png b/mods/technic/textures/technic_mv_down_converter_bottom.png similarity index 100% rename from technic/textures/technic_mv_down_converter_bottom.png rename to mods/technic/textures/technic_mv_down_converter_bottom.png diff --git a/technic/textures/technic_mv_down_converter_side.png b/mods/technic/textures/technic_mv_down_converter_side.png similarity index 100% rename from technic/textures/technic_mv_down_converter_side.png rename to mods/technic/textures/technic_mv_down_converter_side.png diff --git a/technic/textures/technic_mv_down_converter_top.png b/mods/technic/textures/technic_mv_down_converter_top.png similarity index 100% rename from technic/textures/technic_mv_down_converter_top.png rename to mods/technic/textures/technic_mv_down_converter_top.png diff --git a/technic/textures/technic_mv_electric_furnace_bottom.png b/mods/technic/textures/technic_mv_electric_furnace_bottom.png similarity index 100% rename from technic/textures/technic_mv_electric_furnace_bottom.png rename to mods/technic/textures/technic_mv_electric_furnace_bottom.png diff --git a/technic/textures/technic_mv_electric_furnace_front.png b/mods/technic/textures/technic_mv_electric_furnace_front.png similarity index 100% rename from technic/textures/technic_mv_electric_furnace_front.png rename to mods/technic/textures/technic_mv_electric_furnace_front.png diff --git a/technic/textures/technic_mv_electric_furnace_front_active.png b/mods/technic/textures/technic_mv_electric_furnace_front_active.png similarity index 100% rename from technic/textures/technic_mv_electric_furnace_front_active.png rename to mods/technic/textures/technic_mv_electric_furnace_front_active.png diff --git a/technic/textures/technic_mv_electric_furnace_side.png b/mods/technic/textures/technic_mv_electric_furnace_side.png similarity index 100% rename from technic/textures/technic_mv_electric_furnace_side.png rename to mods/technic/textures/technic_mv_electric_furnace_side.png diff --git a/technic/textures/technic_mv_electric_furnace_side_tube.png b/mods/technic/textures/technic_mv_electric_furnace_side_tube.png similarity index 100% rename from technic/textures/technic_mv_electric_furnace_side_tube.png rename to mods/technic/textures/technic_mv_electric_furnace_side_tube.png diff --git a/technic/textures/technic_mv_electric_furnace_top.png b/mods/technic/textures/technic_mv_electric_furnace_top.png similarity index 100% rename from technic/textures/technic_mv_electric_furnace_top.png rename to mods/technic/textures/technic_mv_electric_furnace_top.png diff --git a/technic/textures/technic_mv_extractor_bottom.png b/mods/technic/textures/technic_mv_extractor_bottom.png similarity index 100% rename from technic/textures/technic_mv_extractor_bottom.png rename to mods/technic/textures/technic_mv_extractor_bottom.png diff --git a/technic/textures/technic_mv_extractor_front.png b/mods/technic/textures/technic_mv_extractor_front.png similarity index 100% rename from technic/textures/technic_mv_extractor_front.png rename to mods/technic/textures/technic_mv_extractor_front.png diff --git a/technic/textures/technic_mv_extractor_front_active.png b/mods/technic/textures/technic_mv_extractor_front_active.png similarity index 100% rename from technic/textures/technic_mv_extractor_front_active.png rename to mods/technic/textures/technic_mv_extractor_front_active.png diff --git a/technic/textures/technic_mv_extractor_side.png b/mods/technic/textures/technic_mv_extractor_side.png similarity index 100% rename from technic/textures/technic_mv_extractor_side.png rename to mods/technic/textures/technic_mv_extractor_side.png diff --git a/technic/textures/technic_mv_extractor_top.png b/mods/technic/textures/technic_mv_extractor_top.png similarity index 100% rename from technic/textures/technic_mv_extractor_top.png rename to mods/technic/textures/technic_mv_extractor_top.png diff --git a/technic/textures/technic_mv_freezer_bottom.png b/mods/technic/textures/technic_mv_freezer_bottom.png similarity index 100% rename from technic/textures/technic_mv_freezer_bottom.png rename to mods/technic/textures/technic_mv_freezer_bottom.png diff --git a/technic/textures/technic_mv_freezer_front.png b/mods/technic/textures/technic_mv_freezer_front.png similarity index 100% rename from technic/textures/technic_mv_freezer_front.png rename to mods/technic/textures/technic_mv_freezer_front.png diff --git a/technic/textures/technic_mv_freezer_front_active.png b/mods/technic/textures/technic_mv_freezer_front_active.png similarity index 100% rename from technic/textures/technic_mv_freezer_front_active.png rename to mods/technic/textures/technic_mv_freezer_front_active.png diff --git a/technic/textures/technic_mv_freezer_side.png b/mods/technic/textures/technic_mv_freezer_side.png similarity index 100% rename from technic/textures/technic_mv_freezer_side.png rename to mods/technic/textures/technic_mv_freezer_side.png diff --git a/technic/textures/technic_mv_freezer_top.png b/mods/technic/textures/technic_mv_freezer_top.png similarity index 100% rename from technic/textures/technic_mv_freezer_top.png rename to mods/technic/textures/technic_mv_freezer_top.png diff --git a/technic/textures/technic_mv_generator_front.png b/mods/technic/textures/technic_mv_generator_front.png similarity index 100% rename from technic/textures/technic_mv_generator_front.png rename to mods/technic/textures/technic_mv_generator_front.png diff --git a/technic/textures/technic_mv_generator_front_active.png b/mods/technic/textures/technic_mv_generator_front_active.png similarity index 100% rename from technic/textures/technic_mv_generator_front_active.png rename to mods/technic/textures/technic_mv_generator_front_active.png diff --git a/technic/textures/technic_mv_generator_side.png b/mods/technic/textures/technic_mv_generator_side.png similarity index 100% rename from technic/textures/technic_mv_generator_side.png rename to mods/technic/textures/technic_mv_generator_side.png diff --git a/technic/textures/technic_mv_generator_top.png b/mods/technic/textures/technic_mv_generator_top.png similarity index 100% rename from technic/textures/technic_mv_generator_top.png rename to mods/technic/textures/technic_mv_generator_top.png diff --git a/technic/textures/technic_mv_grinder_bottom.png b/mods/technic/textures/technic_mv_grinder_bottom.png similarity index 100% rename from technic/textures/technic_mv_grinder_bottom.png rename to mods/technic/textures/technic_mv_grinder_bottom.png diff --git a/technic/textures/technic_mv_grinder_front.png b/mods/technic/textures/technic_mv_grinder_front.png similarity index 100% rename from technic/textures/technic_mv_grinder_front.png rename to mods/technic/textures/technic_mv_grinder_front.png diff --git a/technic/textures/technic_mv_grinder_front_active.png b/mods/technic/textures/technic_mv_grinder_front_active.png similarity index 100% rename from technic/textures/technic_mv_grinder_front_active.png rename to mods/technic/textures/technic_mv_grinder_front_active.png diff --git a/technic/textures/technic_mv_grinder_side.png b/mods/technic/textures/technic_mv_grinder_side.png similarity index 100% rename from technic/textures/technic_mv_grinder_side.png rename to mods/technic/textures/technic_mv_grinder_side.png diff --git a/technic/textures/technic_mv_grinder_side_tube.png b/mods/technic/textures/technic_mv_grinder_side_tube.png similarity index 100% rename from technic/textures/technic_mv_grinder_side_tube.png rename to mods/technic/textures/technic_mv_grinder_side_tube.png diff --git a/technic/textures/technic_mv_grinder_top.png b/mods/technic/textures/technic_mv_grinder_top.png similarity index 100% rename from technic/textures/technic_mv_grinder_top.png rename to mods/technic/textures/technic_mv_grinder_top.png diff --git a/technic/textures/technic_mv_solar_array_bottom.png b/mods/technic/textures/technic_mv_solar_array_bottom.png similarity index 100% rename from technic/textures/technic_mv_solar_array_bottom.png rename to mods/technic/textures/technic_mv_solar_array_bottom.png diff --git a/technic/textures/technic_mv_solar_array_side.png b/mods/technic/textures/technic_mv_solar_array_side.png similarity index 100% rename from technic/textures/technic_mv_solar_array_side.png rename to mods/technic/textures/technic_mv_solar_array_side.png diff --git a/technic/textures/technic_mv_solar_array_top.png b/mods/technic/textures/technic_mv_solar_array_top.png similarity index 100% rename from technic/textures/technic_mv_solar_array_top.png rename to mods/technic/textures/technic_mv_solar_array_top.png diff --git a/technic/textures/technic_mv_transformer.png b/mods/technic/textures/technic_mv_transformer.png similarity index 100% rename from technic/textures/technic_mv_transformer.png rename to mods/technic/textures/technic_mv_transformer.png diff --git a/technic/textures/technic_nodebreaker_back.png b/mods/technic/textures/technic_nodebreaker_back.png similarity index 100% rename from technic/textures/technic_nodebreaker_back.png rename to mods/technic/textures/technic_nodebreaker_back.png diff --git a/technic/textures/technic_nodebreaker_bottom.png b/mods/technic/textures/technic_nodebreaker_bottom.png similarity index 100% rename from technic/textures/technic_nodebreaker_bottom.png rename to mods/technic/textures/technic_nodebreaker_bottom.png diff --git a/technic/textures/technic_nodebreaker_bottom_off.png b/mods/technic/textures/technic_nodebreaker_bottom_off.png similarity index 100% rename from technic/textures/technic_nodebreaker_bottom_off.png rename to mods/technic/textures/technic_nodebreaker_bottom_off.png diff --git a/technic/textures/technic_nodebreaker_bottom_on.png b/mods/technic/textures/technic_nodebreaker_bottom_on.png similarity index 100% rename from technic/textures/technic_nodebreaker_bottom_on.png rename to mods/technic/textures/technic_nodebreaker_bottom_on.png diff --git a/technic/textures/technic_nodebreaker_front_off.png b/mods/technic/textures/technic_nodebreaker_front_off.png similarity index 100% rename from technic/textures/technic_nodebreaker_front_off.png rename to mods/technic/textures/technic_nodebreaker_front_off.png diff --git a/technic/textures/technic_nodebreaker_front_on.png b/mods/technic/textures/technic_nodebreaker_front_on.png similarity index 100% rename from technic/textures/technic_nodebreaker_front_on.png rename to mods/technic/textures/technic_nodebreaker_front_on.png diff --git a/technic/textures/technic_nodebreaker_side.png b/mods/technic/textures/technic_nodebreaker_side.png similarity index 100% rename from technic/textures/technic_nodebreaker_side.png rename to mods/technic/textures/technic_nodebreaker_side.png diff --git a/technic/textures/technic_nodebreaker_side1.png b/mods/technic/textures/technic_nodebreaker_side1.png similarity index 100% rename from technic/textures/technic_nodebreaker_side1.png rename to mods/technic/textures/technic_nodebreaker_side1.png diff --git a/technic/textures/technic_nodebreaker_side1_off.png b/mods/technic/textures/technic_nodebreaker_side1_off.png similarity index 100% rename from technic/textures/technic_nodebreaker_side1_off.png rename to mods/technic/textures/technic_nodebreaker_side1_off.png diff --git a/technic/textures/technic_nodebreaker_side1_on.png b/mods/technic/textures/technic_nodebreaker_side1_on.png similarity index 100% rename from technic/textures/technic_nodebreaker_side1_on.png rename to mods/technic/textures/technic_nodebreaker_side1_on.png diff --git a/technic/textures/technic_nodebreaker_side2.png b/mods/technic/textures/technic_nodebreaker_side2.png similarity index 100% rename from technic/textures/technic_nodebreaker_side2.png rename to mods/technic/textures/technic_nodebreaker_side2.png diff --git a/technic/textures/technic_nodebreaker_side2_off.png b/mods/technic/textures/technic_nodebreaker_side2_off.png similarity index 100% rename from technic/textures/technic_nodebreaker_side2_off.png rename to mods/technic/textures/technic_nodebreaker_side2_off.png diff --git a/technic/textures/technic_nodebreaker_side2_on.png b/mods/technic/textures/technic_nodebreaker_side2_on.png similarity index 100% rename from technic/textures/technic_nodebreaker_side2_on.png rename to mods/technic/textures/technic_nodebreaker_side2_on.png diff --git a/technic/textures/technic_nodebreaker_top.png b/mods/technic/textures/technic_nodebreaker_top.png similarity index 100% rename from technic/textures/technic_nodebreaker_top.png rename to mods/technic/textures/technic_nodebreaker_top.png diff --git a/technic/textures/technic_nodebreaker_top_off.png b/mods/technic/textures/technic_nodebreaker_top_off.png similarity index 100% rename from technic/textures/technic_nodebreaker_top_off.png rename to mods/technic/textures/technic_nodebreaker_top_off.png diff --git a/technic/textures/technic_nodebreaker_top_on.png b/mods/technic/textures/technic_nodebreaker_top_on.png similarity index 100% rename from technic/textures/technic_nodebreaker_top_on.png rename to mods/technic/textures/technic_nodebreaker_top_on.png diff --git a/technic/textures/technic_power_meter.png b/mods/technic/textures/technic_power_meter.png similarity index 100% rename from technic/textures/technic_power_meter.png rename to mods/technic/textures/technic_power_meter.png diff --git a/technic/textures/technic_power_meter0.png b/mods/technic/textures/technic_power_meter0.png similarity index 100% rename from technic/textures/technic_power_meter0.png rename to mods/technic/textures/technic_power_meter0.png diff --git a/technic/textures/technic_power_meter1.png b/mods/technic/textures/technic_power_meter1.png similarity index 100% rename from technic/textures/technic_power_meter1.png rename to mods/technic/textures/technic_power_meter1.png diff --git a/technic/textures/technic_power_meter2.png b/mods/technic/textures/technic_power_meter2.png similarity index 100% rename from technic/textures/technic_power_meter2.png rename to mods/technic/textures/technic_power_meter2.png diff --git a/technic/textures/technic_power_meter3.png b/mods/technic/textures/technic_power_meter3.png similarity index 100% rename from technic/textures/technic_power_meter3.png rename to mods/technic/textures/technic_power_meter3.png diff --git a/technic/textures/technic_power_meter4.png b/mods/technic/textures/technic_power_meter4.png similarity index 100% rename from technic/textures/technic_power_meter4.png rename to mods/technic/textures/technic_power_meter4.png diff --git a/technic/textures/technic_power_meter5.png b/mods/technic/textures/technic_power_meter5.png similarity index 100% rename from technic/textures/technic_power_meter5.png rename to mods/technic/textures/technic_power_meter5.png diff --git a/technic/textures/technic_power_meter6.png b/mods/technic/textures/technic_power_meter6.png similarity index 100% rename from technic/textures/technic_power_meter6.png rename to mods/technic/textures/technic_power_meter6.png diff --git a/technic/textures/technic_power_meter7.png b/mods/technic/textures/technic_power_meter7.png similarity index 100% rename from technic/textures/technic_power_meter7.png rename to mods/technic/textures/technic_power_meter7.png diff --git a/technic/textures/technic_power_meter8.png b/mods/technic/textures/technic_power_meter8.png similarity index 100% rename from technic/textures/technic_power_meter8.png rename to mods/technic/textures/technic_power_meter8.png diff --git a/technic/textures/technic_power_meter_bg.png b/mods/technic/textures/technic_power_meter_bg.png similarity index 100% rename from technic/textures/technic_power_meter_bg.png rename to mods/technic/textures/technic_power_meter_bg.png diff --git a/technic/textures/technic_power_meter_fg.png b/mods/technic/textures/technic_power_meter_fg.png similarity index 100% rename from technic/textures/technic_power_meter_fg.png rename to mods/technic/textures/technic_power_meter_fg.png diff --git a/technic/textures/technic_power_monitor_front.png b/mods/technic/textures/technic_power_monitor_front.png similarity index 100% rename from technic/textures/technic_power_monitor_front.png rename to mods/technic/textures/technic_power_monitor_front.png diff --git a/technic/textures/technic_power_monitor_sides.png b/mods/technic/textures/technic_power_monitor_sides.png similarity index 100% rename from technic/textures/technic_power_monitor_sides.png rename to mods/technic/textures/technic_power_monitor_sides.png diff --git a/technic/textures/technic_prospector.png b/mods/technic/textures/technic_prospector.png similarity index 100% rename from technic/textures/technic_prospector.png rename to mods/technic/textures/technic_prospector.png diff --git a/technic/textures/technic_raw_latex.png b/mods/technic/textures/technic_raw_latex.png similarity index 100% rename from technic/textures/technic_raw_latex.png rename to mods/technic/textures/technic_raw_latex.png diff --git a/technic/textures/technic_river_water_can.png b/mods/technic/textures/technic_river_water_can.png similarity index 100% rename from technic/textures/technic_river_water_can.png rename to mods/technic/textures/technic_river_water_can.png diff --git a/technic/textures/technic_rubber.png b/mods/technic/textures/technic_rubber.png similarity index 100% rename from technic/textures/technic_rubber.png rename to mods/technic/textures/technic_rubber.png diff --git a/technic/textures/technic_rubber_goo.png b/mods/technic/textures/technic_rubber_goo.png similarity index 100% rename from technic/textures/technic_rubber_goo.png rename to mods/technic/textures/technic_rubber_goo.png diff --git a/technic/textures/technic_rubber_leaves.png b/mods/technic/textures/technic_rubber_leaves.png similarity index 100% rename from technic/textures/technic_rubber_leaves.png rename to mods/technic/textures/technic_rubber_leaves.png diff --git a/technic/textures/technic_rubber_sapling.png b/mods/technic/textures/technic_rubber_sapling.png similarity index 100% rename from technic/textures/technic_rubber_sapling.png rename to mods/technic/textures/technic_rubber_sapling.png diff --git a/technic/textures/technic_rubber_tree_empty.png b/mods/technic/textures/technic_rubber_tree_empty.png similarity index 100% rename from technic/textures/technic_rubber_tree_empty.png rename to mods/technic/textures/technic_rubber_tree_empty.png diff --git a/technic/textures/technic_rubber_tree_full.png b/mods/technic/textures/technic_rubber_tree_full.png similarity index 100% rename from technic/textures/technic_rubber_tree_full.png rename to mods/technic/textures/technic_rubber_tree_full.png diff --git a/technic/textures/technic_rubber_tree_grindings.png b/mods/technic/textures/technic_rubber_tree_grindings.png similarity index 100% rename from technic/textures/technic_rubber_tree_grindings.png rename to mods/technic/textures/technic_rubber_tree_grindings.png diff --git a/technic/textures/technic_sawdust.png b/mods/technic/textures/technic_sawdust.png similarity index 100% rename from technic/textures/technic_sawdust.png rename to mods/technic/textures/technic_sawdust.png diff --git a/technic/textures/technic_screwdriver.png b/mods/technic/textures/technic_screwdriver.png similarity index 100% rename from technic/textures/technic_screwdriver.png rename to mods/technic/textures/technic_screwdriver.png diff --git a/technic/textures/technic_silicon_wafer.png b/mods/technic/textures/technic_silicon_wafer.png similarity index 100% rename from technic/textures/technic_silicon_wafer.png rename to mods/technic/textures/technic_silicon_wafer.png diff --git a/technic/textures/technic_silver_dust.png b/mods/technic/textures/technic_silver_dust.png similarity index 100% rename from technic/textures/technic_silver_dust.png rename to mods/technic/textures/technic_silver_dust.png diff --git a/technic/textures/technic_solar_panel_bottom.png b/mods/technic/textures/technic_solar_panel_bottom.png similarity index 100% rename from technic/textures/technic_solar_panel_bottom.png rename to mods/technic/textures/technic_solar_panel_bottom.png diff --git a/technic/textures/technic_solar_panel_side.png b/mods/technic/textures/technic_solar_panel_side.png similarity index 100% rename from technic/textures/technic_solar_panel_side.png rename to mods/technic/textures/technic_solar_panel_side.png diff --git a/technic/textures/technic_solar_panel_top.png b/mods/technic/textures/technic_solar_panel_top.png similarity index 100% rename from technic/textures/technic_solar_panel_top.png rename to mods/technic/textures/technic_solar_panel_top.png diff --git a/technic/textures/technic_sonic_screwdriver.png b/mods/technic/textures/technic_sonic_screwdriver.png similarity index 100% rename from technic/textures/technic_sonic_screwdriver.png rename to mods/technic/textures/technic_sonic_screwdriver.png diff --git a/technic/textures/technic_stainless_steel_dust.png b/mods/technic/textures/technic_stainless_steel_dust.png similarity index 100% rename from technic/textures/technic_stainless_steel_dust.png rename to mods/technic/textures/technic_stainless_steel_dust.png diff --git a/technic/textures/technic_stainless_steel_ingot.png b/mods/technic/textures/technic_stainless_steel_ingot.png similarity index 100% rename from technic/textures/technic_stainless_steel_ingot.png rename to mods/technic/textures/technic_stainless_steel_ingot.png diff --git a/technic/textures/technic_stone_dust.png b/mods/technic/textures/technic_stone_dust.png similarity index 100% rename from technic/textures/technic_stone_dust.png rename to mods/technic/textures/technic_stone_dust.png diff --git a/technic/textures/technic_supply_converter_side.png b/mods/technic/textures/technic_supply_converter_side.png similarity index 100% rename from technic/textures/technic_supply_converter_side.png rename to mods/technic/textures/technic_supply_converter_side.png diff --git a/technic/textures/technic_supply_converter_tb.png b/mods/technic/textures/technic_supply_converter_tb.png similarity index 100% rename from technic/textures/technic_supply_converter_tb.png rename to mods/technic/textures/technic_supply_converter_tb.png diff --git a/technic/textures/technic_talinite_dust.png b/mods/technic/textures/technic_talinite_dust.png similarity index 100% rename from technic/textures/technic_talinite_dust.png rename to mods/technic/textures/technic_talinite_dust.png diff --git a/technic/textures/technic_tin_dust.png b/mods/technic/textures/technic_tin_dust.png similarity index 100% rename from technic/textures/technic_tin_dust.png rename to mods/technic/textures/technic_tin_dust.png diff --git a/technic/textures/technic_tool_mode1.png b/mods/technic/textures/technic_tool_mode1.png similarity index 100% rename from technic/textures/technic_tool_mode1.png rename to mods/technic/textures/technic_tool_mode1.png diff --git a/technic/textures/technic_tool_mode2.png b/mods/technic/textures/technic_tool_mode2.png similarity index 100% rename from technic/textures/technic_tool_mode2.png rename to mods/technic/textures/technic_tool_mode2.png diff --git a/technic/textures/technic_tool_mode3.png b/mods/technic/textures/technic_tool_mode3.png similarity index 100% rename from technic/textures/technic_tool_mode3.png rename to mods/technic/textures/technic_tool_mode3.png diff --git a/technic/textures/technic_tool_mode4.png b/mods/technic/textures/technic_tool_mode4.png similarity index 100% rename from technic/textures/technic_tool_mode4.png rename to mods/technic/textures/technic_tool_mode4.png diff --git a/technic/textures/technic_tool_mode5.png b/mods/technic/textures/technic_tool_mode5.png similarity index 100% rename from technic/textures/technic_tool_mode5.png rename to mods/technic/textures/technic_tool_mode5.png diff --git a/technic/textures/technic_tool_mode6.png b/mods/technic/textures/technic_tool_mode6.png similarity index 100% rename from technic/textures/technic_tool_mode6.png rename to mods/technic/textures/technic_tool_mode6.png diff --git a/technic/textures/technic_tool_mode7.png b/mods/technic/textures/technic_tool_mode7.png similarity index 100% rename from technic/textures/technic_tool_mode7.png rename to mods/technic/textures/technic_tool_mode7.png diff --git a/technic/textures/technic_tool_mode8.png b/mods/technic/textures/technic_tool_mode8.png similarity index 100% rename from technic/textures/technic_tool_mode8.png rename to mods/technic/textures/technic_tool_mode8.png diff --git a/technic/textures/technic_tool_mode9.png b/mods/technic/textures/technic_tool_mode9.png similarity index 100% rename from technic/textures/technic_tool_mode9.png rename to mods/technic/textures/technic_tool_mode9.png diff --git a/technic/textures/technic_tree_tap.png b/mods/technic/textures/technic_tree_tap.png similarity index 100% rename from technic/textures/technic_tree_tap.png rename to mods/technic/textures/technic_tree_tap.png diff --git a/technic/textures/technic_uranium_dust.png b/mods/technic/textures/technic_uranium_dust.png similarity index 100% rename from technic/textures/technic_uranium_dust.png rename to mods/technic/textures/technic_uranium_dust.png diff --git a/technic/textures/technic_uranium_fuel.png b/mods/technic/textures/technic_uranium_fuel.png similarity index 100% rename from technic/textures/technic_uranium_fuel.png rename to mods/technic/textures/technic_uranium_fuel.png diff --git a/technic/textures/technic_vacuum.png b/mods/technic/textures/technic_vacuum.png similarity index 100% rename from technic/textures/technic_vacuum.png rename to mods/technic/textures/technic_vacuum.png diff --git a/technic/textures/technic_water_can.png b/mods/technic/textures/technic_water_can.png similarity index 100% rename from technic/textures/technic_water_can.png rename to mods/technic/textures/technic_water_can.png diff --git a/technic/textures/technic_water_mill_side.png b/mods/technic/textures/technic_water_mill_side.png similarity index 100% rename from technic/textures/technic_water_mill_side.png rename to mods/technic/textures/technic_water_mill_side.png diff --git a/technic/textures/technic_water_mill_top.png b/mods/technic/textures/technic_water_mill_top.png similarity index 100% rename from technic/textures/technic_water_mill_top.png rename to mods/technic/textures/technic_water_mill_top.png diff --git a/technic/textures/technic_water_mill_top_active.png b/mods/technic/textures/technic_water_mill_top_active.png similarity index 100% rename from technic/textures/technic_water_mill_top_active.png rename to mods/technic/textures/technic_water_mill_top_active.png diff --git a/technic/textures/technic_workshop_bottom.png b/mods/technic/textures/technic_workshop_bottom.png similarity index 100% rename from technic/textures/technic_workshop_bottom.png rename to mods/technic/textures/technic_workshop_bottom.png diff --git a/technic/textures/technic_workshop_side.png b/mods/technic/textures/technic_workshop_side.png similarity index 100% rename from technic/textures/technic_workshop_side.png rename to mods/technic/textures/technic_workshop_side.png diff --git a/technic/textures/technic_workshop_top.png b/mods/technic/textures/technic_workshop_top.png similarity index 100% rename from technic/textures/technic_workshop_top.png rename to mods/technic/textures/technic_workshop_top.png diff --git a/technic/textures/technic_wrought_iron_dust.png b/mods/technic/textures/technic_wrought_iron_dust.png similarity index 100% rename from technic/textures/technic_wrought_iron_dust.png rename to mods/technic/textures/technic_wrought_iron_dust.png diff --git a/technic/textures/technic_zinc_dust.png b/mods/technic/textures/technic_zinc_dust.png similarity index 100% rename from technic/textures/technic_zinc_dust.png rename to mods/technic/textures/technic_zinc_dust.png diff --git a/technic/textures/technicx32/technic_akalin_dust.png b/mods/technic/textures/technicx32/technic_akalin_dust.png similarity index 100% rename from technic/textures/technicx32/technic_akalin_dust.png rename to mods/technic/textures/technicx32/technic_akalin_dust.png diff --git a/technic/textures/technicx32/technic_alatro_dust.png b/mods/technic/textures/technicx32/technic_alatro_dust.png similarity index 100% rename from technic/textures/technicx32/technic_alatro_dust.png rename to mods/technic/textures/technicx32/technic_alatro_dust.png diff --git a/technic/textures/technicx32/technic_alloy_furnace_front.png b/mods/technic/textures/technicx32/technic_alloy_furnace_front.png similarity index 100% rename from technic/textures/technicx32/technic_alloy_furnace_front.png rename to mods/technic/textures/technicx32/technic_alloy_furnace_front.png diff --git a/technic/textures/technicx32/technic_alloy_furnace_front_active.png b/mods/technic/textures/technicx32/technic_alloy_furnace_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_alloy_furnace_front_active.png rename to mods/technic/textures/technicx32/technic_alloy_furnace_front_active.png diff --git a/technic/textures/technicx32/technic_alloy_furnace_side.png b/mods/technic/textures/technicx32/technic_alloy_furnace_side.png similarity index 100% rename from technic/textures/technicx32/technic_alloy_furnace_side.png rename to mods/technic/textures/technicx32/technic_alloy_furnace_side.png diff --git a/technic/textures/technicx32/technic_alloy_furnace_top.png b/mods/technic/textures/technicx32/technic_alloy_furnace_top.png similarity index 100% rename from technic/textures/technicx32/technic_alloy_furnace_top.png rename to mods/technic/textures/technicx32/technic_alloy_furnace_top.png diff --git a/technic/textures/technicx32/technic_arol_dust.png b/mods/technic/textures/technicx32/technic_arol_dust.png similarity index 100% rename from technic/textures/technicx32/technic_arol_dust.png rename to mods/technic/textures/technicx32/technic_arol_dust.png diff --git a/technic/textures/technicx32/technic_battery.png b/mods/technic/textures/technicx32/technic_battery.png similarity index 100% rename from technic/textures/technicx32/technic_battery.png rename to mods/technic/textures/technicx32/technic_battery.png diff --git a/technic/textures/technicx32/technic_battery_box_bottom.png b/mods/technic/textures/technicx32/technic_battery_box_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_battery_box_bottom.png rename to mods/technic/textures/technicx32/technic_battery_box_bottom.png diff --git a/technic/textures/technicx32/technic_battery_box_side0.png b/mods/technic/textures/technicx32/technic_battery_box_side0.png similarity index 100% rename from technic/textures/technicx32/technic_battery_box_side0.png rename to mods/technic/textures/technicx32/technic_battery_box_side0.png diff --git a/technic/textures/technicx32/technic_battery_box_top.png b/mods/technic/textures/technicx32/technic_battery_box_top.png similarity index 100% rename from technic/textures/technicx32/technic_battery_box_top.png rename to mods/technic/textures/technicx32/technic_battery_box_top.png diff --git a/technic/textures/technicx32/technic_battery_reload.png b/mods/technic/textures/technicx32/technic_battery_reload.png similarity index 100% rename from technic/textures/technicx32/technic_battery_reload.png rename to mods/technic/textures/technicx32/technic_battery_reload.png diff --git a/technic/textures/technicx32/technic_brass_dust.png b/mods/technic/textures/technicx32/technic_brass_dust.png similarity index 100% rename from technic/textures/technicx32/technic_brass_dust.png rename to mods/technic/textures/technicx32/technic_brass_dust.png diff --git a/technic/textures/technicx32/technic_bronze_dust.png b/mods/technic/textures/technicx32/technic_bronze_dust.png similarity index 100% rename from technic/textures/technicx32/technic_bronze_dust.png rename to mods/technic/textures/technicx32/technic_bronze_dust.png diff --git a/technic/textures/technicx32/technic_carbon_steel_dust.png b/mods/technic/textures/technicx32/technic_carbon_steel_dust.png similarity index 100% rename from technic/textures/technicx32/technic_carbon_steel_dust.png rename to mods/technic/textures/technicx32/technic_carbon_steel_dust.png diff --git a/technic/textures/technicx32/technic_cast_iron_dust.png b/mods/technic/textures/technicx32/technic_cast_iron_dust.png similarity index 100% rename from technic/textures/technicx32/technic_cast_iron_dust.png rename to mods/technic/textures/technicx32/technic_cast_iron_dust.png diff --git a/technic/textures/technicx32/technic_chainsaw.png b/mods/technic/textures/technicx32/technic_chainsaw.png similarity index 100% rename from technic/textures/technicx32/technic_chainsaw.png rename to mods/technic/textures/technicx32/technic_chainsaw.png diff --git a/technic/textures/technicx32/technic_chernobylite_dust.png b/mods/technic/textures/technicx32/technic_chernobylite_dust.png similarity index 100% rename from technic/textures/technicx32/technic_chernobylite_dust.png rename to mods/technic/textures/technicx32/technic_chernobylite_dust.png diff --git a/technic/textures/technicx32/technic_chromium_dust.png b/mods/technic/textures/technicx32/technic_chromium_dust.png similarity index 100% rename from technic/textures/technicx32/technic_chromium_dust.png rename to mods/technic/textures/technicx32/technic_chromium_dust.png diff --git a/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png b/mods/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png rename to mods/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png diff --git a/technic/textures/technicx32/technic_coal_alloy_furnace_front.png b/mods/technic/textures/technicx32/technic_coal_alloy_furnace_front.png similarity index 100% rename from technic/textures/technicx32/technic_coal_alloy_furnace_front.png rename to mods/technic/textures/technicx32/technic_coal_alloy_furnace_front.png diff --git a/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png b/mods/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png rename to mods/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png diff --git a/technic/textures/technicx32/technic_coal_alloy_furnace_side.png b/mods/technic/textures/technicx32/technic_coal_alloy_furnace_side.png similarity index 100% rename from technic/textures/technicx32/technic_coal_alloy_furnace_side.png rename to mods/technic/textures/technicx32/technic_coal_alloy_furnace_side.png diff --git a/technic/textures/technicx32/technic_coal_alloy_furnace_top.png b/mods/technic/textures/technicx32/technic_coal_alloy_furnace_top.png similarity index 100% rename from technic/textures/technicx32/technic_coal_alloy_furnace_top.png rename to mods/technic/textures/technicx32/technic_coal_alloy_furnace_top.png diff --git a/technic/textures/technicx32/technic_coal_dust.png b/mods/technic/textures/technicx32/technic_coal_dust.png similarity index 100% rename from technic/textures/technicx32/technic_coal_dust.png rename to mods/technic/textures/technicx32/technic_coal_dust.png diff --git a/technic/textures/technicx32/technic_constructor_back.png b/mods/technic/textures/technicx32/technic_constructor_back.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_back.png rename to mods/technic/textures/technicx32/technic_constructor_back.png diff --git a/technic/textures/technicx32/technic_constructor_front_off.png b/mods/technic/textures/technicx32/technic_constructor_front_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_front_off.png rename to mods/technic/textures/technicx32/technic_constructor_front_off.png diff --git a/technic/textures/technicx32/technic_constructor_front_on.png b/mods/technic/textures/technicx32/technic_constructor_front_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_front_on.png rename to mods/technic/textures/technicx32/technic_constructor_front_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png b/mods/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_bottom_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png b/mods/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_bottom_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_side1_off.png b/mods/technic/textures/technicx32/technic_constructor_mk1_side1_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_side1_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_side1_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_side1_on.png b/mods/technic/textures/technicx32/technic_constructor_mk1_side1_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_side1_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_side1_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_side2_off.png b/mods/technic/textures/technicx32/technic_constructor_mk1_side2_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_side2_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_side2_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_side2_on.png b/mods/technic/textures/technicx32/technic_constructor_mk1_side2_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_side2_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_side2_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_top_off.png b/mods/technic/textures/technicx32/technic_constructor_mk1_top_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_top_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_top_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk1_top_on.png b/mods/technic/textures/technicx32/technic_constructor_mk1_top_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk1_top_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk1_top_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png b/mods/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_bottom_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png b/mods/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_bottom_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_side1_off.png b/mods/technic/textures/technicx32/technic_constructor_mk2_side1_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_side1_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_side1_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_side1_on.png b/mods/technic/textures/technicx32/technic_constructor_mk2_side1_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_side1_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_side1_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_side2_off.png b/mods/technic/textures/technicx32/technic_constructor_mk2_side2_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_side2_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_side2_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_side2_on.png b/mods/technic/textures/technicx32/technic_constructor_mk2_side2_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_side2_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_side2_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_top_off.png b/mods/technic/textures/technicx32/technic_constructor_mk2_top_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_top_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_top_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk2_top_on.png b/mods/technic/textures/technicx32/technic_constructor_mk2_top_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk2_top_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk2_top_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png b/mods/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_bottom_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png b/mods/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_bottom_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_side1_off.png b/mods/technic/textures/technicx32/technic_constructor_mk3_side1_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_side1_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_side1_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_side1_on.png b/mods/technic/textures/technicx32/technic_constructor_mk3_side1_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_side1_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_side1_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_side2_off.png b/mods/technic/textures/technicx32/technic_constructor_mk3_side2_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_side2_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_side2_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_side2_on.png b/mods/technic/textures/technicx32/technic_constructor_mk3_side2_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_side2_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_side2_on.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_top_off.png b/mods/technic/textures/technicx32/technic_constructor_mk3_top_off.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_top_off.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_top_off.png diff --git a/technic/textures/technicx32/technic_constructor_mk3_top_on.png b/mods/technic/textures/technicx32/technic_constructor_mk3_top_on.png similarity index 100% rename from technic/textures/technicx32/technic_constructor_mk3_top_on.png rename to mods/technic/textures/technicx32/technic_constructor_mk3_top_on.png diff --git a/technic/textures/technicx32/technic_control_logic_unit.png b/mods/technic/textures/technicx32/technic_control_logic_unit.png similarity index 100% rename from technic/textures/technicx32/technic_control_logic_unit.png rename to mods/technic/textures/technicx32/technic_control_logic_unit.png diff --git a/technic/textures/technicx32/technic_copper_coil.png b/mods/technic/textures/technicx32/technic_copper_coil.png similarity index 100% rename from technic/textures/technicx32/technic_copper_coil.png rename to mods/technic/textures/technicx32/technic_copper_coil.png diff --git a/technic/textures/technicx32/technic_copper_dust.png b/mods/technic/textures/technicx32/technic_copper_dust.png similarity index 100% rename from technic/textures/technicx32/technic_copper_dust.png rename to mods/technic/textures/technicx32/technic_copper_dust.png diff --git a/technic/textures/technicx32/technic_deployer_back.png b/mods/technic/textures/technicx32/technic_deployer_back.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_back.png rename to mods/technic/textures/technicx32/technic_deployer_back.png diff --git a/technic/textures/technicx32/technic_deployer_bottom.png b/mods/technic/textures/technicx32/technic_deployer_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_bottom.png rename to mods/technic/textures/technicx32/technic_deployer_bottom.png diff --git a/technic/textures/technicx32/technic_deployer_front_off.png b/mods/technic/textures/technicx32/technic_deployer_front_off.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_front_off.png rename to mods/technic/textures/technicx32/technic_deployer_front_off.png diff --git a/technic/textures/technicx32/technic_deployer_front_on.png b/mods/technic/textures/technicx32/technic_deployer_front_on.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_front_on.png rename to mods/technic/textures/technicx32/technic_deployer_front_on.png diff --git a/technic/textures/technicx32/technic_deployer_side.png b/mods/technic/textures/technicx32/technic_deployer_side.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_side.png rename to mods/technic/textures/technicx32/technic_deployer_side.png diff --git a/technic/textures/technicx32/technic_deployer_side1.png b/mods/technic/textures/technicx32/technic_deployer_side1.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_side1.png rename to mods/technic/textures/technicx32/technic_deployer_side1.png diff --git a/technic/textures/technicx32/technic_deployer_side2.png b/mods/technic/textures/technicx32/technic_deployer_side2.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_side2.png rename to mods/technic/textures/technicx32/technic_deployer_side2.png diff --git a/technic/textures/technicx32/technic_deployer_top.png b/mods/technic/textures/technicx32/technic_deployer_top.png similarity index 100% rename from technic/textures/technicx32/technic_deployer_top.png rename to mods/technic/textures/technicx32/technic_deployer_top.png diff --git a/technic/textures/technicx32/technic_diamond_block_blue.png b/mods/technic/textures/technicx32/technic_diamond_block_blue.png similarity index 100% rename from technic/textures/technicx32/technic_diamond_block_blue.png rename to mods/technic/textures/technicx32/technic_diamond_block_blue.png diff --git a/technic/textures/technicx32/technic_diamond_block_green.png b/mods/technic/textures/technicx32/technic_diamond_block_green.png similarity index 100% rename from technic/textures/technicx32/technic_diamond_block_green.png rename to mods/technic/textures/technicx32/technic_diamond_block_green.png diff --git a/technic/textures/technicx32/technic_diamond_block_red.png b/mods/technic/textures/technicx32/technic_diamond_block_red.png similarity index 100% rename from technic/textures/technicx32/technic_diamond_block_red.png rename to mods/technic/textures/technicx32/technic_diamond_block_red.png diff --git a/technic/textures/technicx32/technic_diamond_drill_head.png b/mods/technic/textures/technicx32/technic_diamond_drill_head.png similarity index 100% rename from technic/textures/technicx32/technic_diamond_drill_head.png rename to mods/technic/textures/technicx32/technic_diamond_drill_head.png diff --git a/technic/textures/technicx32/technic_doped_silicon_wafer.png b/mods/technic/textures/technicx32/technic_doped_silicon_wafer.png similarity index 100% rename from technic/textures/technicx32/technic_doped_silicon_wafer.png rename to mods/technic/textures/technicx32/technic_doped_silicon_wafer.png diff --git a/technic/textures/technicx32/technic_electric_furnace_bottom.png b/mods/technic/textures/technicx32/technic_electric_furnace_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_electric_furnace_bottom.png rename to mods/technic/textures/technicx32/technic_electric_furnace_bottom.png diff --git a/technic/textures/technicx32/technic_electric_furnace_front.png b/mods/technic/textures/technicx32/technic_electric_furnace_front.png similarity index 100% rename from technic/textures/technicx32/technic_electric_furnace_front.png rename to mods/technic/textures/technicx32/technic_electric_furnace_front.png diff --git a/technic/textures/technicx32/technic_electric_furnace_front_active.png b/mods/technic/textures/technicx32/technic_electric_furnace_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_electric_furnace_front_active.png rename to mods/technic/textures/technicx32/technic_electric_furnace_front_active.png diff --git a/technic/textures/technicx32/technic_electric_furnace_side.png b/mods/technic/textures/technicx32/technic_electric_furnace_side.png similarity index 100% rename from technic/textures/technicx32/technic_electric_furnace_side.png rename to mods/technic/textures/technicx32/technic_electric_furnace_side.png diff --git a/technic/textures/technicx32/technic_electric_furnace_top.png b/mods/technic/textures/technicx32/technic_electric_furnace_top.png similarity index 100% rename from technic/textures/technicx32/technic_electric_furnace_top.png rename to mods/technic/textures/technicx32/technic_electric_furnace_top.png diff --git a/technic/textures/technicx32/technic_fine_copper_wire.png b/mods/technic/textures/technicx32/technic_fine_copper_wire.png similarity index 100% rename from technic/textures/technicx32/technic_fine_copper_wire.png rename to mods/technic/textures/technicx32/technic_fine_copper_wire.png diff --git a/technic/textures/technicx32/technic_fine_gold_wire.png b/mods/technic/textures/technicx32/technic_fine_gold_wire.png similarity index 100% rename from technic/textures/technicx32/technic_fine_gold_wire.png rename to mods/technic/textures/technicx32/technic_fine_gold_wire.png diff --git a/technic/textures/technicx32/technic_fine_silver_wire.png b/mods/technic/textures/technicx32/technic_fine_silver_wire.png similarity index 100% rename from technic/textures/technicx32/technic_fine_silver_wire.png rename to mods/technic/textures/technicx32/technic_fine_silver_wire.png diff --git a/technic/textures/technicx32/technic_flashlight.png b/mods/technic/textures/technicx32/technic_flashlight.png similarity index 100% rename from technic/textures/technicx32/technic_flashlight.png rename to mods/technic/textures/technicx32/technic_flashlight.png diff --git a/technic/textures/technicx32/technic_generator_front.png b/mods/technic/textures/technicx32/technic_generator_front.png similarity index 100% rename from technic/textures/technicx32/technic_generator_front.png rename to mods/technic/textures/technicx32/technic_generator_front.png diff --git a/technic/textures/technicx32/technic_generator_front_active.png b/mods/technic/textures/technicx32/technic_generator_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_generator_front_active.png rename to mods/technic/textures/technicx32/technic_generator_front_active.png diff --git a/technic/textures/technicx32/technic_generator_side.png b/mods/technic/textures/technicx32/technic_generator_side.png similarity index 100% rename from technic/textures/technicx32/technic_generator_side.png rename to mods/technic/textures/technicx32/technic_generator_side.png diff --git a/technic/textures/technicx32/technic_generator_top.png b/mods/technic/textures/technicx32/technic_generator_top.png similarity index 100% rename from technic/textures/technicx32/technic_generator_top.png rename to mods/technic/textures/technicx32/technic_generator_top.png diff --git a/technic/textures/technicx32/technic_geothermal_side.png b/mods/technic/textures/technicx32/technic_geothermal_side.png similarity index 100% rename from technic/textures/technicx32/technic_geothermal_side.png rename to mods/technic/textures/technicx32/technic_geothermal_side.png diff --git a/technic/textures/technicx32/technic_geothermal_top.png b/mods/technic/textures/technicx32/technic_geothermal_top.png similarity index 100% rename from technic/textures/technicx32/technic_geothermal_top.png rename to mods/technic/textures/technicx32/technic_geothermal_top.png diff --git a/technic/textures/technicx32/technic_geothermal_top_active.png b/mods/technic/textures/technicx32/technic_geothermal_top_active.png similarity index 100% rename from technic/textures/technicx32/technic_geothermal_top_active.png rename to mods/technic/textures/technicx32/technic_geothermal_top_active.png diff --git a/technic/textures/technicx32/technic_gold_dust.png b/mods/technic/textures/technicx32/technic_gold_dust.png similarity index 100% rename from technic/textures/technicx32/technic_gold_dust.png rename to mods/technic/textures/technicx32/technic_gold_dust.png diff --git a/technic/textures/technicx32/technic_grinder_front.png b/mods/technic/textures/technicx32/technic_grinder_front.png similarity index 100% rename from technic/textures/technicx32/technic_grinder_front.png rename to mods/technic/textures/technicx32/technic_grinder_front.png diff --git a/technic/textures/technicx32/technic_grinder_side.png b/mods/technic/textures/technicx32/technic_grinder_side.png similarity index 100% rename from technic/textures/technicx32/technic_grinder_side.png rename to mods/technic/textures/technicx32/technic_grinder_side.png diff --git a/technic/textures/technicx32/technic_grinder_top.png b/mods/technic/textures/technicx32/technic_grinder_top.png similarity index 100% rename from technic/textures/technicx32/technic_grinder_top.png rename to mods/technic/textures/technicx32/technic_grinder_top.png diff --git a/technic/textures/technicx32/technic_hv_grinder_bottom.png b/mods/technic/textures/technicx32/technic_hv_grinder_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_hv_grinder_bottom.png rename to mods/technic/textures/technicx32/technic_hv_grinder_bottom.png diff --git a/technic/textures/technicx32/technic_hv_grinder_front.png b/mods/technic/textures/technicx32/technic_hv_grinder_front.png similarity index 100% rename from technic/textures/technicx32/technic_hv_grinder_front.png rename to mods/technic/textures/technicx32/technic_hv_grinder_front.png diff --git a/technic/textures/technicx32/technic_hv_grinder_front_active.png b/mods/technic/textures/technicx32/technic_hv_grinder_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_hv_grinder_front_active.png rename to mods/technic/textures/technicx32/technic_hv_grinder_front_active.png diff --git a/technic/textures/technicx32/technic_hv_grinder_side.png b/mods/technic/textures/technicx32/technic_hv_grinder_side.png similarity index 100% rename from technic/textures/technicx32/technic_hv_grinder_side.png rename to mods/technic/textures/technicx32/technic_hv_grinder_side.png diff --git a/technic/textures/technicx32/technic_hv_grinder_side_tube.png b/mods/technic/textures/technicx32/technic_hv_grinder_side_tube.png similarity index 100% rename from technic/textures/technicx32/technic_hv_grinder_side_tube.png rename to mods/technic/textures/technicx32/technic_hv_grinder_side_tube.png diff --git a/technic/textures/technicx32/technic_hv_grinder_top.png b/mods/technic/textures/technicx32/technic_hv_grinder_top.png similarity index 100% rename from technic/textures/technicx32/technic_hv_grinder_top.png rename to mods/technic/textures/technicx32/technic_hv_grinder_top.png diff --git a/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png b/mods/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png similarity index 100% rename from technic/textures/technicx32/technic_hv_nuclear_reactor_core.png rename to mods/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png diff --git a/technic/textures/technicx32/technic_hv_solar_array_bottom.png b/mods/technic/textures/technicx32/technic_hv_solar_array_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_hv_solar_array_bottom.png rename to mods/technic/textures/technicx32/technic_hv_solar_array_bottom.png diff --git a/technic/textures/technicx32/technic_hv_solar_array_side.png b/mods/technic/textures/technicx32/technic_hv_solar_array_side.png similarity index 100% rename from technic/textures/technicx32/technic_hv_solar_array_side.png rename to mods/technic/textures/technicx32/technic_hv_solar_array_side.png diff --git a/technic/textures/technicx32/technic_hv_solar_array_top.png b/mods/technic/textures/technicx32/technic_hv_solar_array_top.png similarity index 100% rename from technic/textures/technicx32/technic_hv_solar_array_top.png rename to mods/technic/textures/technicx32/technic_hv_solar_array_top.png diff --git a/technic/textures/technicx32/technic_hv_transformer.png b/mods/technic/textures/technicx32/technic_hv_transformer.png similarity index 100% rename from technic/textures/technicx32/technic_hv_transformer.png rename to mods/technic/textures/technicx32/technic_hv_transformer.png diff --git a/technic/textures/technicx32/technic_injector_bottom.png b/mods/technic/textures/technicx32/technic_injector_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_injector_bottom.png rename to mods/technic/textures/technicx32/technic_injector_bottom.png diff --git a/technic/textures/technicx32/technic_injector_side.png b/mods/technic/textures/technicx32/technic_injector_side.png similarity index 100% rename from technic/textures/technicx32/technic_injector_side.png rename to mods/technic/textures/technicx32/technic_injector_side.png diff --git a/technic/textures/technicx32/technic_injector_top.png b/mods/technic/textures/technicx32/technic_injector_top.png similarity index 100% rename from technic/textures/technicx32/technic_injector_top.png rename to mods/technic/textures/technicx32/technic_injector_top.png diff --git a/technic/textures/technicx32/technic_kalite_dust.png b/mods/technic/textures/technicx32/technic_kalite_dust.png similarity index 100% rename from technic/textures/technicx32/technic_kalite_dust.png rename to mods/technic/textures/technicx32/technic_kalite_dust.png diff --git a/technic/textures/technicx32/technic_laser_beam.png b/mods/technic/textures/technicx32/technic_laser_beam.png similarity index 100% rename from technic/textures/technicx32/technic_laser_beam.png rename to mods/technic/textures/technicx32/technic_laser_beam.png diff --git a/technic/textures/technicx32/technic_lava_can.png b/mods/technic/textures/technicx32/technic_lava_can.png similarity index 100% rename from technic/textures/technicx32/technic_lava_can.png rename to mods/technic/textures/technicx32/technic_lava_can.png diff --git a/technic/textures/technicx32/technic_light.png b/mods/technic/textures/technicx32/technic_light.png similarity index 100% rename from technic/textures/technicx32/technic_light.png rename to mods/technic/textures/technicx32/technic_light.png diff --git a/technic/textures/technicx32/technic_lv_grinder_bottom.png b/mods/technic/textures/technicx32/technic_lv_grinder_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_lv_grinder_bottom.png rename to mods/technic/textures/technicx32/technic_lv_grinder_bottom.png diff --git a/technic/textures/technicx32/technic_lv_grinder_front.png b/mods/technic/textures/technicx32/technic_lv_grinder_front.png similarity index 100% rename from technic/textures/technicx32/technic_lv_grinder_front.png rename to mods/technic/textures/technicx32/technic_lv_grinder_front.png diff --git a/technic/textures/technicx32/technic_lv_grinder_front_active.png b/mods/technic/textures/technicx32/technic_lv_grinder_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_lv_grinder_front_active.png rename to mods/technic/textures/technicx32/technic_lv_grinder_front_active.png diff --git a/technic/textures/technicx32/technic_lv_grinder_side.png b/mods/technic/textures/technicx32/technic_lv_grinder_side.png similarity index 100% rename from technic/textures/technicx32/technic_lv_grinder_side.png rename to mods/technic/textures/technicx32/technic_lv_grinder_side.png diff --git a/technic/textures/technicx32/technic_lv_grinder_top.png b/mods/technic/textures/technicx32/technic_lv_grinder_top.png similarity index 100% rename from technic/textures/technicx32/technic_lv_grinder_top.png rename to mods/technic/textures/technicx32/technic_lv_grinder_top.png diff --git a/technic/textures/technicx32/technic_lv_solar_array_bottom.png b/mods/technic/textures/technicx32/technic_lv_solar_array_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_lv_solar_array_bottom.png rename to mods/technic/textures/technicx32/technic_lv_solar_array_bottom.png diff --git a/technic/textures/technicx32/technic_lv_solar_array_side.png b/mods/technic/textures/technicx32/technic_lv_solar_array_side.png similarity index 100% rename from technic/textures/technicx32/technic_lv_solar_array_side.png rename to mods/technic/textures/technicx32/technic_lv_solar_array_side.png diff --git a/technic/textures/technicx32/technic_lv_solar_array_top.png b/mods/technic/textures/technicx32/technic_lv_solar_array_top.png similarity index 100% rename from technic/textures/technicx32/technic_lv_solar_array_top.png rename to mods/technic/textures/technicx32/technic_lv_solar_array_top.png diff --git a/technic/textures/technicx32/technic_lv_transformer.png b/mods/technic/textures/technicx32/technic_lv_transformer.png similarity index 100% rename from technic/textures/technicx32/technic_lv_transformer.png rename to mods/technic/textures/technicx32/technic_lv_transformer.png diff --git a/technic/textures/technicx32/technic_machine_bottom.png b/mods/technic/textures/technicx32/technic_machine_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_machine_bottom.png rename to mods/technic/textures/technicx32/technic_machine_bottom.png diff --git a/technic/textures/technicx32/technic_mining_drill.png b/mods/technic/textures/technicx32/technic_mining_drill.png similarity index 100% rename from technic/textures/technicx32/technic_mining_drill.png rename to mods/technic/textures/technicx32/technic_mining_drill.png diff --git a/technic/textures/technicx32/technic_mining_laser_mk1.png b/mods/technic/textures/technicx32/technic_mining_laser_mk1.png similarity index 100% rename from technic/textures/technicx32/technic_mining_laser_mk1.png rename to mods/technic/textures/technicx32/technic_mining_laser_mk1.png diff --git a/technic/textures/technicx32/technic_mithril_dust.png b/mods/technic/textures/technicx32/technic_mithril_dust.png similarity index 100% rename from technic/textures/technicx32/technic_mithril_dust.png rename to mods/technic/textures/technicx32/technic_mithril_dust.png diff --git a/technic/textures/technicx32/technic_motor.png b/mods/technic/textures/technicx32/technic_motor.png similarity index 100% rename from technic/textures/technicx32/technic_motor.png rename to mods/technic/textures/technicx32/technic_motor.png diff --git a/technic/textures/technicx32/technic_music_player_bottom.png b/mods/technic/textures/technicx32/technic_music_player_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_music_player_bottom.png rename to mods/technic/textures/technicx32/technic_music_player_bottom.png diff --git a/technic/textures/technicx32/technic_music_player_side.png b/mods/technic/textures/technicx32/technic_music_player_side.png similarity index 100% rename from technic/textures/technicx32/technic_music_player_side.png rename to mods/technic/textures/technicx32/technic_music_player_side.png diff --git a/technic/textures/technicx32/technic_music_player_top.png b/mods/technic/textures/technicx32/technic_music_player_top.png similarity index 100% rename from technic/textures/technicx32/technic_music_player_top.png rename to mods/technic/textures/technicx32/technic_music_player_top.png diff --git a/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png b/mods/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png rename to mods/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png diff --git a/technic/textures/technicx32/technic_mv_alloy_furnace_front.png b/mods/technic/textures/technicx32/technic_mv_alloy_furnace_front.png similarity index 100% rename from technic/textures/technicx32/technic_mv_alloy_furnace_front.png rename to mods/technic/textures/technicx32/technic_mv_alloy_furnace_front.png diff --git a/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png b/mods/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png rename to mods/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png diff --git a/technic/textures/technicx32/technic_mv_alloy_furnace_side.png b/mods/technic/textures/technicx32/technic_mv_alloy_furnace_side.png similarity index 100% rename from technic/textures/technicx32/technic_mv_alloy_furnace_side.png rename to mods/technic/textures/technicx32/technic_mv_alloy_furnace_side.png diff --git a/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png b/mods/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png similarity index 100% rename from technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png rename to mods/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png diff --git a/technic/textures/technicx32/technic_mv_alloy_furnace_top.png b/mods/technic/textures/technicx32/technic_mv_alloy_furnace_top.png similarity index 100% rename from technic/textures/technicx32/technic_mv_alloy_furnace_top.png rename to mods/technic/textures/technicx32/technic_mv_alloy_furnace_top.png diff --git a/technic/textures/technicx32/technic_mv_battery_box_bottom.png b/mods/technic/textures/technicx32/technic_mv_battery_box_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_mv_battery_box_bottom.png rename to mods/technic/textures/technicx32/technic_mv_battery_box_bottom.png diff --git a/technic/textures/technicx32/technic_mv_battery_box_side0.png b/mods/technic/textures/technicx32/technic_mv_battery_box_side0.png similarity index 100% rename from technic/textures/technicx32/technic_mv_battery_box_side0.png rename to mods/technic/textures/technicx32/technic_mv_battery_box_side0.png diff --git a/technic/textures/technicx32/technic_mv_battery_box_top.png b/mods/technic/textures/technicx32/technic_mv_battery_box_top.png similarity index 100% rename from technic/textures/technicx32/technic_mv_battery_box_top.png rename to mods/technic/textures/technicx32/technic_mv_battery_box_top.png diff --git a/technic/textures/technicx32/technic_mv_cable_wield.png b/mods/technic/textures/technicx32/technic_mv_cable_wield.png similarity index 100% rename from technic/textures/technicx32/technic_mv_cable_wield.png rename to mods/technic/textures/technicx32/technic_mv_cable_wield.png diff --git a/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png b/mods/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_mv_electric_furnace_bottom.png rename to mods/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png diff --git a/technic/textures/technicx32/technic_mv_electric_furnace_front.png b/mods/technic/textures/technicx32/technic_mv_electric_furnace_front.png similarity index 100% rename from technic/textures/technicx32/technic_mv_electric_furnace_front.png rename to mods/technic/textures/technicx32/technic_mv_electric_furnace_front.png diff --git a/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png b/mods/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_mv_electric_furnace_front_active.png rename to mods/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png diff --git a/technic/textures/technicx32/technic_mv_electric_furnace_side.png b/mods/technic/textures/technicx32/technic_mv_electric_furnace_side.png similarity index 100% rename from technic/textures/technicx32/technic_mv_electric_furnace_side.png rename to mods/technic/textures/technicx32/technic_mv_electric_furnace_side.png diff --git a/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png b/mods/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png similarity index 100% rename from technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png rename to mods/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png diff --git a/technic/textures/technicx32/technic_mv_electric_furnace_top.png b/mods/technic/textures/technicx32/technic_mv_electric_furnace_top.png similarity index 100% rename from technic/textures/technicx32/technic_mv_electric_furnace_top.png rename to mods/technic/textures/technicx32/technic_mv_electric_furnace_top.png diff --git a/technic/textures/technicx32/technic_mv_freezer_bottom.png b/mods/technic/textures/technicx32/technic_mv_freezer_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_mv_freezer_bottom.png rename to mods/technic/textures/technicx32/technic_mv_freezer_bottom.png diff --git a/technic/textures/technicx32/technic_mv_freezer_front.png b/mods/technic/textures/technicx32/technic_mv_freezer_front.png similarity index 100% rename from technic/textures/technicx32/technic_mv_freezer_front.png rename to mods/technic/textures/technicx32/technic_mv_freezer_front.png diff --git a/technic/textures/technicx32/technic_mv_freezer_front_active.png b/mods/technic/textures/technicx32/technic_mv_freezer_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_mv_freezer_front_active.png rename to mods/technic/textures/technicx32/technic_mv_freezer_front_active.png diff --git a/technic/textures/technicx32/technic_mv_freezer_side.png b/mods/technic/textures/technicx32/technic_mv_freezer_side.png similarity index 100% rename from technic/textures/technicx32/technic_mv_freezer_side.png rename to mods/technic/textures/technicx32/technic_mv_freezer_side.png diff --git a/technic/textures/technicx32/technic_mv_freezer_top.png b/mods/technic/textures/technicx32/technic_mv_freezer_top.png similarity index 100% rename from technic/textures/technicx32/technic_mv_freezer_top.png rename to mods/technic/textures/technicx32/technic_mv_freezer_top.png diff --git a/technic/textures/technicx32/technic_mv_grinder_bottom.png b/mods/technic/textures/technicx32/technic_mv_grinder_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_mv_grinder_bottom.png rename to mods/technic/textures/technicx32/technic_mv_grinder_bottom.png diff --git a/technic/textures/technicx32/technic_mv_grinder_front.png b/mods/technic/textures/technicx32/technic_mv_grinder_front.png similarity index 100% rename from technic/textures/technicx32/technic_mv_grinder_front.png rename to mods/technic/textures/technicx32/technic_mv_grinder_front.png diff --git a/technic/textures/technicx32/technic_mv_grinder_front_active.png b/mods/technic/textures/technicx32/technic_mv_grinder_front_active.png similarity index 100% rename from technic/textures/technicx32/technic_mv_grinder_front_active.png rename to mods/technic/textures/technicx32/technic_mv_grinder_front_active.png diff --git a/technic/textures/technicx32/technic_mv_grinder_side.png b/mods/technic/textures/technicx32/technic_mv_grinder_side.png similarity index 100% rename from technic/textures/technicx32/technic_mv_grinder_side.png rename to mods/technic/textures/technicx32/technic_mv_grinder_side.png diff --git a/technic/textures/technicx32/technic_mv_grinder_side_tube.png b/mods/technic/textures/technicx32/technic_mv_grinder_side_tube.png similarity index 100% rename from technic/textures/technicx32/technic_mv_grinder_side_tube.png rename to mods/technic/textures/technicx32/technic_mv_grinder_side_tube.png diff --git a/technic/textures/technicx32/technic_mv_grinder_top.png b/mods/technic/textures/technicx32/technic_mv_grinder_top.png similarity index 100% rename from technic/textures/technicx32/technic_mv_grinder_top.png rename to mods/technic/textures/technicx32/technic_mv_grinder_top.png diff --git a/technic/textures/technicx32/technic_mv_solar_array_bottom.png b/mods/technic/textures/technicx32/technic_mv_solar_array_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_mv_solar_array_bottom.png rename to mods/technic/textures/technicx32/technic_mv_solar_array_bottom.png diff --git a/technic/textures/technicx32/technic_mv_solar_array_side.png b/mods/technic/textures/technicx32/technic_mv_solar_array_side.png similarity index 100% rename from technic/textures/technicx32/technic_mv_solar_array_side.png rename to mods/technic/textures/technicx32/technic_mv_solar_array_side.png diff --git a/technic/textures/technicx32/technic_mv_solar_array_top.png b/mods/technic/textures/technicx32/technic_mv_solar_array_top.png similarity index 100% rename from technic/textures/technicx32/technic_mv_solar_array_top.png rename to mods/technic/textures/technicx32/technic_mv_solar_array_top.png diff --git a/technic/textures/technicx32/technic_mv_transformer.png b/mods/technic/textures/technicx32/technic_mv_transformer.png similarity index 100% rename from technic/textures/technicx32/technic_mv_transformer.png rename to mods/technic/textures/technicx32/technic_mv_transformer.png diff --git a/technic/textures/technicx32/technic_nodebreaker_back.png b/mods/technic/textures/technicx32/technic_nodebreaker_back.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_back.png rename to mods/technic/textures/technicx32/technic_nodebreaker_back.png diff --git a/technic/textures/technicx32/technic_nodebreaker_bottom.png b/mods/technic/textures/technicx32/technic_nodebreaker_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_bottom.png rename to mods/technic/textures/technicx32/technic_nodebreaker_bottom.png diff --git a/technic/textures/technicx32/technic_nodebreaker_bottom_off.png b/mods/technic/textures/technicx32/technic_nodebreaker_bottom_off.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_bottom_off.png rename to mods/technic/textures/technicx32/technic_nodebreaker_bottom_off.png diff --git a/technic/textures/technicx32/technic_nodebreaker_bottom_on.png b/mods/technic/textures/technicx32/technic_nodebreaker_bottom_on.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_bottom_on.png rename to mods/technic/textures/technicx32/technic_nodebreaker_bottom_on.png diff --git a/technic/textures/technicx32/technic_nodebreaker_front_off.png b/mods/technic/textures/technicx32/technic_nodebreaker_front_off.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_front_off.png rename to mods/technic/textures/technicx32/technic_nodebreaker_front_off.png diff --git a/technic/textures/technicx32/technic_nodebreaker_front_on.png b/mods/technic/textures/technicx32/technic_nodebreaker_front_on.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_front_on.png rename to mods/technic/textures/technicx32/technic_nodebreaker_front_on.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side.png b/mods/technic/textures/technicx32/technic_nodebreaker_side.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side1.png b/mods/technic/textures/technicx32/technic_nodebreaker_side1.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side1.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side1.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side1_off.png b/mods/technic/textures/technicx32/technic_nodebreaker_side1_off.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side1_off.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side1_off.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side1_on.png b/mods/technic/textures/technicx32/technic_nodebreaker_side1_on.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side1_on.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side1_on.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side2.png b/mods/technic/textures/technicx32/technic_nodebreaker_side2.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side2.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side2.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side2_off.png b/mods/technic/textures/technicx32/technic_nodebreaker_side2_off.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side2_off.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side2_off.png diff --git a/technic/textures/technicx32/technic_nodebreaker_side2_on.png b/mods/technic/textures/technicx32/technic_nodebreaker_side2_on.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_side2_on.png rename to mods/technic/textures/technicx32/technic_nodebreaker_side2_on.png diff --git a/technic/textures/technicx32/technic_nodebreaker_top.png b/mods/technic/textures/technicx32/technic_nodebreaker_top.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_top.png rename to mods/technic/textures/technicx32/technic_nodebreaker_top.png diff --git a/technic/textures/technicx32/technic_nodebreaker_top_off.png b/mods/technic/textures/technicx32/technic_nodebreaker_top_off.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_top_off.png rename to mods/technic/textures/technicx32/technic_nodebreaker_top_off.png diff --git a/technic/textures/technicx32/technic_nodebreaker_top_on.png b/mods/technic/textures/technicx32/technic_nodebreaker_top_on.png similarity index 100% rename from technic/textures/technicx32/technic_nodebreaker_top_on.png rename to mods/technic/textures/technicx32/technic_nodebreaker_top_on.png diff --git a/technic/textures/technicx32/technic_power_meter.png b/mods/technic/textures/technicx32/technic_power_meter.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter.png rename to mods/technic/textures/technicx32/technic_power_meter.png diff --git a/technic/textures/technicx32/technic_power_meter1.png b/mods/technic/textures/technicx32/technic_power_meter1.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter1.png rename to mods/technic/textures/technicx32/technic_power_meter1.png diff --git a/technic/textures/technicx32/technic_power_meter2.png b/mods/technic/textures/technicx32/technic_power_meter2.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter2.png rename to mods/technic/textures/technicx32/technic_power_meter2.png diff --git a/technic/textures/technicx32/technic_power_meter3.png b/mods/technic/textures/technicx32/technic_power_meter3.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter3.png rename to mods/technic/textures/technicx32/technic_power_meter3.png diff --git a/technic/textures/technicx32/technic_power_meter4.png b/mods/technic/textures/technicx32/technic_power_meter4.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter4.png rename to mods/technic/textures/technicx32/technic_power_meter4.png diff --git a/technic/textures/technicx32/technic_power_meter5.png b/mods/technic/textures/technicx32/technic_power_meter5.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter5.png rename to mods/technic/textures/technicx32/technic_power_meter5.png diff --git a/technic/textures/technicx32/technic_power_meter6.png b/mods/technic/textures/technicx32/technic_power_meter6.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter6.png rename to mods/technic/textures/technicx32/technic_power_meter6.png diff --git a/technic/textures/technicx32/technic_power_meter7.png b/mods/technic/textures/technicx32/technic_power_meter7.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter7.png rename to mods/technic/textures/technicx32/technic_power_meter7.png diff --git a/technic/textures/technicx32/technic_power_meter8.png b/mods/technic/textures/technicx32/technic_power_meter8.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter8.png rename to mods/technic/textures/technicx32/technic_power_meter8.png diff --git a/technic/textures/technicx32/technic_power_meter_bg.png b/mods/technic/textures/technicx32/technic_power_meter_bg.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter_bg.png rename to mods/technic/textures/technicx32/technic_power_meter_bg.png diff --git a/technic/textures/technicx32/technic_power_meter_fg.png b/mods/technic/textures/technicx32/technic_power_meter_fg.png similarity index 100% rename from technic/textures/technicx32/technic_power_meter_fg.png rename to mods/technic/textures/technicx32/technic_power_meter_fg.png diff --git a/technic/textures/technicx32/technic_raw_latex.png b/mods/technic/textures/technicx32/technic_raw_latex.png similarity index 100% rename from technic/textures/technicx32/technic_raw_latex.png rename to mods/technic/textures/technicx32/technic_raw_latex.png diff --git a/technic/textures/technicx32/technic_rubber.png b/mods/technic/textures/technicx32/technic_rubber.png similarity index 100% rename from technic/textures/technicx32/technic_rubber.png rename to mods/technic/textures/technicx32/technic_rubber.png diff --git a/technic/textures/technicx32/technic_rubber_sapling.png b/mods/technic/textures/technicx32/technic_rubber_sapling.png similarity index 100% rename from technic/textures/technicx32/technic_rubber_sapling.png rename to mods/technic/textures/technicx32/technic_rubber_sapling.png diff --git a/technic/textures/technicx32/technic_rubber_tree_empty.png b/mods/technic/textures/technicx32/technic_rubber_tree_empty.png similarity index 100% rename from technic/textures/technicx32/technic_rubber_tree_empty.png rename to mods/technic/textures/technicx32/technic_rubber_tree_empty.png diff --git a/technic/textures/technicx32/technic_rubber_tree_full.png b/mods/technic/textures/technicx32/technic_rubber_tree_full.png similarity index 100% rename from technic/textures/technicx32/technic_rubber_tree_full.png rename to mods/technic/textures/technicx32/technic_rubber_tree_full.png diff --git a/technic/textures/technicx32/technic_screwdriver.png b/mods/technic/textures/technicx32/technic_screwdriver.png similarity index 100% rename from technic/textures/technicx32/technic_screwdriver.png rename to mods/technic/textures/technicx32/technic_screwdriver.png diff --git a/technic/textures/technicx32/technic_silicon_wafer.png b/mods/technic/textures/technicx32/technic_silicon_wafer.png similarity index 100% rename from technic/textures/technicx32/technic_silicon_wafer.png rename to mods/technic/textures/technicx32/technic_silicon_wafer.png diff --git a/technic/textures/technicx32/technic_silver_dust.png b/mods/technic/textures/technicx32/technic_silver_dust.png similarity index 100% rename from technic/textures/technicx32/technic_silver_dust.png rename to mods/technic/textures/technicx32/technic_silver_dust.png diff --git a/technic/textures/technicx32/technic_solar_panel_bottom.png b/mods/technic/textures/technicx32/technic_solar_panel_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_solar_panel_bottom.png rename to mods/technic/textures/technicx32/technic_solar_panel_bottom.png diff --git a/technic/textures/technicx32/technic_solar_panel_side.png b/mods/technic/textures/technicx32/technic_solar_panel_side.png similarity index 100% rename from technic/textures/technicx32/technic_solar_panel_side.png rename to mods/technic/textures/technicx32/technic_solar_panel_side.png diff --git a/technic/textures/technicx32/technic_solar_panel_top.png b/mods/technic/textures/technicx32/technic_solar_panel_top.png similarity index 100% rename from technic/textures/technicx32/technic_solar_panel_top.png rename to mods/technic/textures/technicx32/technic_solar_panel_top.png diff --git a/technic/textures/technicx32/technic_sonic_screwdriver.png b/mods/technic/textures/technicx32/technic_sonic_screwdriver.png similarity index 100% rename from technic/textures/technicx32/technic_sonic_screwdriver.png rename to mods/technic/textures/technicx32/technic_sonic_screwdriver.png diff --git a/technic/textures/technicx32/technic_stainless_steel_dust.png b/mods/technic/textures/technicx32/technic_stainless_steel_dust.png similarity index 100% rename from technic/textures/technicx32/technic_stainless_steel_dust.png rename to mods/technic/textures/technicx32/technic_stainless_steel_dust.png diff --git a/technic/textures/technicx32/technic_stone_dust.png b/mods/technic/textures/technicx32/technic_stone_dust.png similarity index 100% rename from technic/textures/technicx32/technic_stone_dust.png rename to mods/technic/textures/technicx32/technic_stone_dust.png diff --git a/technic/textures/technicx32/technic_talinite_dust.png b/mods/technic/textures/technicx32/technic_talinite_dust.png similarity index 100% rename from technic/textures/technicx32/technic_talinite_dust.png rename to mods/technic/textures/technicx32/technic_talinite_dust.png diff --git a/technic/textures/technicx32/technic_tin_dust.png b/mods/technic/textures/technicx32/technic_tin_dust.png similarity index 100% rename from technic/textures/technicx32/technic_tin_dust.png rename to mods/technic/textures/technicx32/technic_tin_dust.png diff --git a/technic/textures/technicx32/technic_tree_tap.png b/mods/technic/textures/technicx32/technic_tree_tap.png similarity index 100% rename from technic/textures/technicx32/technic_tree_tap.png rename to mods/technic/textures/technicx32/technic_tree_tap.png diff --git a/technic/textures/technicx32/technic_uranium_dust.png b/mods/technic/textures/technicx32/technic_uranium_dust.png similarity index 100% rename from technic/textures/technicx32/technic_uranium_dust.png rename to mods/technic/textures/technicx32/technic_uranium_dust.png diff --git a/technic/textures/technicx32/technic_water_can.png b/mods/technic/textures/technicx32/technic_water_can.png similarity index 100% rename from technic/textures/technicx32/technic_water_can.png rename to mods/technic/textures/technicx32/technic_water_can.png diff --git a/technic/textures/technicx32/technic_water_mill_side.png b/mods/technic/textures/technicx32/technic_water_mill_side.png similarity index 100% rename from technic/textures/technicx32/technic_water_mill_side.png rename to mods/technic/textures/technicx32/technic_water_mill_side.png diff --git a/technic/textures/technicx32/technic_water_mill_top.png b/mods/technic/textures/technicx32/technic_water_mill_top.png similarity index 100% rename from technic/textures/technicx32/technic_water_mill_top.png rename to mods/technic/textures/technicx32/technic_water_mill_top.png diff --git a/technic/textures/technicx32/technic_water_mill_top_active.png b/mods/technic/textures/technicx32/technic_water_mill_top_active.png similarity index 100% rename from technic/textures/technicx32/technic_water_mill_top_active.png rename to mods/technic/textures/technicx32/technic_water_mill_top_active.png diff --git a/technic/textures/technicx32/technic_workshop_bottom.png b/mods/technic/textures/technicx32/technic_workshop_bottom.png similarity index 100% rename from technic/textures/technicx32/technic_workshop_bottom.png rename to mods/technic/textures/technicx32/technic_workshop_bottom.png diff --git a/technic/textures/technicx32/technic_workshop_side.png b/mods/technic/textures/technicx32/technic_workshop_side.png similarity index 100% rename from technic/textures/technicx32/technic_workshop_side.png rename to mods/technic/textures/technicx32/technic_workshop_side.png diff --git a/technic/textures/technicx32/technic_workshop_top.png b/mods/technic/textures/technicx32/technic_workshop_top.png similarity index 100% rename from technic/textures/technicx32/technic_workshop_top.png rename to mods/technic/textures/technicx32/technic_workshop_top.png diff --git a/technic/textures/technicx32/technic_wrought_iron_dust.png b/mods/technic/textures/technicx32/technic_wrought_iron_dust.png similarity index 100% rename from technic/textures/technicx32/technic_wrought_iron_dust.png rename to mods/technic/textures/technicx32/technic_wrought_iron_dust.png diff --git a/technic/textures/technicx32/technic_zinc_dust.png b/mods/technic/textures/technicx32/technic_zinc_dust.png similarity index 100% rename from technic/textures/technicx32/technic_zinc_dust.png rename to mods/technic/textures/technicx32/technic_zinc_dust.png diff --git a/technic/tools/cans.lua b/mods/technic/tools/cans.lua similarity index 100% rename from technic/tools/cans.lua rename to mods/technic/tools/cans.lua diff --git a/technic/tools/chainsaw.lua b/mods/technic/tools/chainsaw.lua similarity index 100% rename from technic/tools/chainsaw.lua rename to mods/technic/tools/chainsaw.lua diff --git a/technic/tools/flashlight.lua b/mods/technic/tools/flashlight.lua similarity index 100% rename from technic/tools/flashlight.lua rename to mods/technic/tools/flashlight.lua diff --git a/technic/tools/init.lua b/mods/technic/tools/init.lua similarity index 100% rename from technic/tools/init.lua rename to mods/technic/tools/init.lua diff --git a/technic/tools/mining_drill.lua b/mods/technic/tools/mining_drill.lua similarity index 100% rename from technic/tools/mining_drill.lua rename to mods/technic/tools/mining_drill.lua diff --git a/technic/tools/mining_lasers.lua b/mods/technic/tools/mining_lasers.lua similarity index 100% rename from technic/tools/mining_lasers.lua rename to mods/technic/tools/mining_lasers.lua diff --git a/technic/tools/prospector.lua b/mods/technic/tools/prospector.lua similarity index 100% rename from technic/tools/prospector.lua rename to mods/technic/tools/prospector.lua diff --git a/technic/tools/sonic_screwdriver.lua b/mods/technic/tools/sonic_screwdriver.lua similarity index 100% rename from technic/tools/sonic_screwdriver.lua rename to mods/technic/tools/sonic_screwdriver.lua diff --git a/technic/tools/tree_tap.lua b/mods/technic/tools/tree_tap.lua similarity index 100% rename from technic/tools/tree_tap.lua rename to mods/technic/tools/tree_tap.lua diff --git a/technic/tools/vacuum.lua b/mods/technic/tools/vacuum.lua similarity index 100% rename from technic/tools/vacuum.lua rename to mods/technic/tools/vacuum.lua diff --git a/technic_chests/README.md b/mods/technic_chests/README.md similarity index 100% rename from technic_chests/README.md rename to mods/technic_chests/README.md diff --git a/technic_chests/common.lua b/mods/technic_chests/common.lua similarity index 100% rename from technic_chests/common.lua rename to mods/technic_chests/common.lua diff --git a/technic_chests/copper_chest.lua b/mods/technic_chests/copper_chest.lua similarity index 100% rename from technic_chests/copper_chest.lua rename to mods/technic_chests/copper_chest.lua diff --git a/technic_chests/depends.txt b/mods/technic_chests/depends.txt similarity index 100% rename from technic_chests/depends.txt rename to mods/technic_chests/depends.txt diff --git a/technic_chests/gold_chest.lua b/mods/technic_chests/gold_chest.lua similarity index 100% rename from technic_chests/gold_chest.lua rename to mods/technic_chests/gold_chest.lua diff --git a/technic_chests/init.lua b/mods/technic_chests/init.lua similarity index 100% rename from technic_chests/init.lua rename to mods/technic_chests/init.lua diff --git a/technic_chests/iron_chest.lua b/mods/technic_chests/iron_chest.lua similarity index 100% rename from technic_chests/iron_chest.lua rename to mods/technic_chests/iron_chest.lua diff --git a/technic_chests/locale/de.txt b/mods/technic_chests/locale/de.txt similarity index 100% rename from technic_chests/locale/de.txt rename to mods/technic_chests/locale/de.txt diff --git a/technic_chests/locale/es.txt b/mods/technic_chests/locale/es.txt similarity index 100% rename from technic_chests/locale/es.txt rename to mods/technic_chests/locale/es.txt diff --git a/technic_chests/locale/fr.txt b/mods/technic_chests/locale/fr.txt similarity index 100% rename from technic_chests/locale/fr.txt rename to mods/technic_chests/locale/fr.txt diff --git a/technic_chests/locale/pl.txt b/mods/technic_chests/locale/pl.txt similarity index 100% rename from technic_chests/locale/pl.txt rename to mods/technic_chests/locale/pl.txt diff --git a/technic_chests/locale/pt_BR.txt b/mods/technic_chests/locale/pt_BR.txt similarity index 100% rename from technic_chests/locale/pt_BR.txt rename to mods/technic_chests/locale/pt_BR.txt diff --git a/technic_chests/locale/template.txt b/mods/technic_chests/locale/template.txt similarity index 100% rename from technic_chests/locale/template.txt rename to mods/technic_chests/locale/template.txt diff --git a/technic_chests/locale/tr.txt b/mods/technic_chests/locale/tr.txt similarity index 100% rename from technic_chests/locale/tr.txt rename to mods/technic_chests/locale/tr.txt diff --git a/technic_chests/mithril_chest.lua b/mods/technic_chests/mithril_chest.lua similarity index 100% rename from technic_chests/mithril_chest.lua rename to mods/technic_chests/mithril_chest.lua diff --git a/technic_chests/mod.conf b/mods/technic_chests/mod.conf similarity index 100% rename from technic_chests/mod.conf rename to mods/technic_chests/mod.conf diff --git a/technic_chests/register.lua b/mods/technic_chests/register.lua similarity index 100% rename from technic_chests/register.lua rename to mods/technic_chests/register.lua diff --git a/technic_chests/silver_chest.lua b/mods/technic_chests/silver_chest.lua similarity index 100% rename from technic_chests/silver_chest.lua rename to mods/technic_chests/silver_chest.lua diff --git a/technic_chests/textures/technic_checkmark_icon.png b/mods/technic_chests/textures/technic_checkmark_icon.png similarity index 100% rename from technic_chests/textures/technic_checkmark_icon.png rename to mods/technic_chests/textures/technic_checkmark_icon.png diff --git a/technic_chests/textures/technic_chest_form_bg.png b/mods/technic_chests/textures/technic_chest_form_bg.png similarity index 100% rename from technic_chests/textures/technic_chest_form_bg.png rename to mods/technic_chests/textures/technic_chest_form_bg.png diff --git a/technic_chests/textures/technic_chest_overlay_black.png b/mods/technic_chests/textures/technic_chest_overlay_black.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_black.png rename to mods/technic_chests/textures/technic_chest_overlay_black.png diff --git a/technic_chests/textures/technic_chest_overlay_blue.png b/mods/technic_chests/textures/technic_chest_overlay_blue.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_blue.png rename to mods/technic_chests/textures/technic_chest_overlay_blue.png diff --git a/technic_chests/textures/technic_chest_overlay_brown.png b/mods/technic_chests/textures/technic_chest_overlay_brown.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_brown.png rename to mods/technic_chests/textures/technic_chest_overlay_brown.png diff --git a/technic_chests/textures/technic_chest_overlay_cyan.png b/mods/technic_chests/textures/technic_chest_overlay_cyan.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_cyan.png rename to mods/technic_chests/textures/technic_chest_overlay_cyan.png diff --git a/technic_chests/textures/technic_chest_overlay_dark_green.png b/mods/technic_chests/textures/technic_chest_overlay_dark_green.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_dark_green.png rename to mods/technic_chests/textures/technic_chest_overlay_dark_green.png diff --git a/technic_chests/textures/technic_chest_overlay_dark_grey.png b/mods/technic_chests/textures/technic_chest_overlay_dark_grey.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_dark_grey.png rename to mods/technic_chests/textures/technic_chest_overlay_dark_grey.png diff --git a/technic_chests/textures/technic_chest_overlay_green.png b/mods/technic_chests/textures/technic_chest_overlay_green.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_green.png rename to mods/technic_chests/textures/technic_chest_overlay_green.png diff --git a/technic_chests/textures/technic_chest_overlay_grey.png b/mods/technic_chests/textures/technic_chest_overlay_grey.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_grey.png rename to mods/technic_chests/textures/technic_chest_overlay_grey.png diff --git a/technic_chests/textures/technic_chest_overlay_magenta.png b/mods/technic_chests/textures/technic_chest_overlay_magenta.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_magenta.png rename to mods/technic_chests/textures/technic_chest_overlay_magenta.png diff --git a/technic_chests/textures/technic_chest_overlay_orange.png b/mods/technic_chests/textures/technic_chest_overlay_orange.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_orange.png rename to mods/technic_chests/textures/technic_chest_overlay_orange.png diff --git a/technic_chests/textures/technic_chest_overlay_pink.png b/mods/technic_chests/textures/technic_chest_overlay_pink.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_pink.png rename to mods/technic_chests/textures/technic_chest_overlay_pink.png diff --git a/technic_chests/textures/technic_chest_overlay_red.png b/mods/technic_chests/textures/technic_chest_overlay_red.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_red.png rename to mods/technic_chests/textures/technic_chest_overlay_red.png diff --git a/technic_chests/textures/technic_chest_overlay_violet.png b/mods/technic_chests/textures/technic_chest_overlay_violet.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_violet.png rename to mods/technic_chests/textures/technic_chest_overlay_violet.png diff --git a/technic_chests/textures/technic_chest_overlay_white.png b/mods/technic_chests/textures/technic_chest_overlay_white.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_white.png rename to mods/technic_chests/textures/technic_chest_overlay_white.png diff --git a/technic_chests/textures/technic_chest_overlay_yellow.png b/mods/technic_chests/textures/technic_chest_overlay_yellow.png similarity index 100% rename from technic_chests/textures/technic_chest_overlay_yellow.png rename to mods/technic_chests/textures/technic_chest_overlay_yellow.png diff --git a/technic_chests/textures/technic_colorbutton0.png b/mods/technic_chests/textures/technic_colorbutton0.png similarity index 100% rename from technic_chests/textures/technic_colorbutton0.png rename to mods/technic_chests/textures/technic_colorbutton0.png diff --git a/technic_chests/textures/technic_colorbutton1.png b/mods/technic_chests/textures/technic_colorbutton1.png similarity index 100% rename from technic_chests/textures/technic_colorbutton1.png rename to mods/technic_chests/textures/technic_colorbutton1.png diff --git a/technic_chests/textures/technic_colorbutton10.png b/mods/technic_chests/textures/technic_colorbutton10.png similarity index 100% rename from technic_chests/textures/technic_colorbutton10.png rename to mods/technic_chests/textures/technic_colorbutton10.png diff --git a/technic_chests/textures/technic_colorbutton11.png b/mods/technic_chests/textures/technic_colorbutton11.png similarity index 100% rename from technic_chests/textures/technic_colorbutton11.png rename to mods/technic_chests/textures/technic_colorbutton11.png diff --git a/technic_chests/textures/technic_colorbutton12.png b/mods/technic_chests/textures/technic_colorbutton12.png similarity index 100% rename from technic_chests/textures/technic_colorbutton12.png rename to mods/technic_chests/textures/technic_colorbutton12.png diff --git a/technic_chests/textures/technic_colorbutton13.png b/mods/technic_chests/textures/technic_colorbutton13.png similarity index 100% rename from technic_chests/textures/technic_colorbutton13.png rename to mods/technic_chests/textures/technic_colorbutton13.png diff --git a/technic_chests/textures/technic_colorbutton14.png b/mods/technic_chests/textures/technic_colorbutton14.png similarity index 100% rename from technic_chests/textures/technic_colorbutton14.png rename to mods/technic_chests/textures/technic_colorbutton14.png diff --git a/technic_chests/textures/technic_colorbutton15.png b/mods/technic_chests/textures/technic_colorbutton15.png similarity index 100% rename from technic_chests/textures/technic_colorbutton15.png rename to mods/technic_chests/textures/technic_colorbutton15.png diff --git a/technic_chests/textures/technic_colorbutton2.png b/mods/technic_chests/textures/technic_colorbutton2.png similarity index 100% rename from technic_chests/textures/technic_colorbutton2.png rename to mods/technic_chests/textures/technic_colorbutton2.png diff --git a/technic_chests/textures/technic_colorbutton3.png b/mods/technic_chests/textures/technic_colorbutton3.png similarity index 100% rename from technic_chests/textures/technic_colorbutton3.png rename to mods/technic_chests/textures/technic_colorbutton3.png diff --git a/technic_chests/textures/technic_colorbutton4.png b/mods/technic_chests/textures/technic_colorbutton4.png similarity index 100% rename from technic_chests/textures/technic_colorbutton4.png rename to mods/technic_chests/textures/technic_colorbutton4.png diff --git a/technic_chests/textures/technic_colorbutton5.png b/mods/technic_chests/textures/technic_colorbutton5.png similarity index 100% rename from technic_chests/textures/technic_colorbutton5.png rename to mods/technic_chests/textures/technic_colorbutton5.png diff --git a/technic_chests/textures/technic_colorbutton6.png b/mods/technic_chests/textures/technic_colorbutton6.png similarity index 100% rename from technic_chests/textures/technic_colorbutton6.png rename to mods/technic_chests/textures/technic_colorbutton6.png diff --git a/technic_chests/textures/technic_colorbutton7.png b/mods/technic_chests/textures/technic_colorbutton7.png similarity index 100% rename from technic_chests/textures/technic_colorbutton7.png rename to mods/technic_chests/textures/technic_colorbutton7.png diff --git a/technic_chests/textures/technic_colorbutton8.png b/mods/technic_chests/textures/technic_colorbutton8.png similarity index 100% rename from technic_chests/textures/technic_colorbutton8.png rename to mods/technic_chests/textures/technic_colorbutton8.png diff --git a/technic_chests/textures/technic_colorbutton9.png b/mods/technic_chests/textures/technic_colorbutton9.png similarity index 100% rename from technic_chests/textures/technic_colorbutton9.png rename to mods/technic_chests/textures/technic_colorbutton9.png diff --git a/technic_chests/textures/technic_copper_chest_front.png b/mods/technic_chests/textures/technic_copper_chest_front.png similarity index 100% rename from technic_chests/textures/technic_copper_chest_front.png rename to mods/technic_chests/textures/technic_copper_chest_front.png diff --git a/technic_chests/textures/technic_copper_chest_inventory.png b/mods/technic_chests/textures/technic_copper_chest_inventory.png similarity index 100% rename from technic_chests/textures/technic_copper_chest_inventory.png rename to mods/technic_chests/textures/technic_copper_chest_inventory.png diff --git a/technic_chests/textures/technic_copper_chest_lock_overlay.png b/mods/technic_chests/textures/technic_copper_chest_lock_overlay.png similarity index 100% rename from technic_chests/textures/technic_copper_chest_lock_overlay.png rename to mods/technic_chests/textures/technic_copper_chest_lock_overlay.png diff --git a/technic_chests/textures/technic_copper_chest_side.png b/mods/technic_chests/textures/technic_copper_chest_side.png similarity index 100% rename from technic_chests/textures/technic_copper_chest_side.png rename to mods/technic_chests/textures/technic_copper_chest_side.png diff --git a/technic_chests/textures/technic_copper_chest_top.png b/mods/technic_chests/textures/technic_copper_chest_top.png similarity index 100% rename from technic_chests/textures/technic_copper_chest_top.png rename to mods/technic_chests/textures/technic_copper_chest_top.png diff --git a/technic_chests/textures/technic_form_bg.png b/mods/technic_chests/textures/technic_form_bg.png similarity index 100% rename from technic_chests/textures/technic_form_bg.png rename to mods/technic_chests/textures/technic_form_bg.png diff --git a/technic_chests/textures/technic_gold_chest_front.png b/mods/technic_chests/textures/technic_gold_chest_front.png similarity index 100% rename from technic_chests/textures/technic_gold_chest_front.png rename to mods/technic_chests/textures/technic_gold_chest_front.png diff --git a/technic_chests/textures/technic_gold_chest_inventory.png b/mods/technic_chests/textures/technic_gold_chest_inventory.png similarity index 100% rename from technic_chests/textures/technic_gold_chest_inventory.png rename to mods/technic_chests/textures/technic_gold_chest_inventory.png diff --git a/technic_chests/textures/technic_gold_chest_lock_overlay.png b/mods/technic_chests/textures/technic_gold_chest_lock_overlay.png similarity index 100% rename from technic_chests/textures/technic_gold_chest_lock_overlay.png rename to mods/technic_chests/textures/technic_gold_chest_lock_overlay.png diff --git a/technic_chests/textures/technic_gold_chest_side.png b/mods/technic_chests/textures/technic_gold_chest_side.png similarity index 100% rename from technic_chests/textures/technic_gold_chest_side.png rename to mods/technic_chests/textures/technic_gold_chest_side.png diff --git a/technic_chests/textures/technic_gold_chest_top.png b/mods/technic_chests/textures/technic_gold_chest_top.png similarity index 100% rename from technic_chests/textures/technic_gold_chest_top.png rename to mods/technic_chests/textures/technic_gold_chest_top.png diff --git a/technic_chests/textures/technic_iron_chest_front.png b/mods/technic_chests/textures/technic_iron_chest_front.png similarity index 100% rename from technic_chests/textures/technic_iron_chest_front.png rename to mods/technic_chests/textures/technic_iron_chest_front.png diff --git a/technic_chests/textures/technic_iron_chest_inventory.png b/mods/technic_chests/textures/technic_iron_chest_inventory.png similarity index 100% rename from technic_chests/textures/technic_iron_chest_inventory.png rename to mods/technic_chests/textures/technic_iron_chest_inventory.png diff --git a/technic_chests/textures/technic_iron_chest_lock_overlay.png b/mods/technic_chests/textures/technic_iron_chest_lock_overlay.png similarity index 100% rename from technic_chests/textures/technic_iron_chest_lock_overlay.png rename to mods/technic_chests/textures/technic_iron_chest_lock_overlay.png diff --git a/technic_chests/textures/technic_iron_chest_side.png b/mods/technic_chests/textures/technic_iron_chest_side.png similarity index 100% rename from technic_chests/textures/technic_iron_chest_side.png rename to mods/technic_chests/textures/technic_iron_chest_side.png diff --git a/technic_chests/textures/technic_iron_chest_top.png b/mods/technic_chests/textures/technic_iron_chest_top.png similarity index 100% rename from technic_chests/textures/technic_iron_chest_top.png rename to mods/technic_chests/textures/technic_iron_chest_top.png diff --git a/technic_chests/textures/technic_main_inventory.png b/mods/technic_chests/textures/technic_main_inventory.png similarity index 100% rename from technic_chests/textures/technic_main_inventory.png rename to mods/technic_chests/textures/technic_main_inventory.png diff --git a/technic_chests/textures/technic_mithril_chest_front.png b/mods/technic_chests/textures/technic_mithril_chest_front.png similarity index 100% rename from technic_chests/textures/technic_mithril_chest_front.png rename to mods/technic_chests/textures/technic_mithril_chest_front.png diff --git a/technic_chests/textures/technic_mithril_chest_inventory.png b/mods/technic_chests/textures/technic_mithril_chest_inventory.png similarity index 100% rename from technic_chests/textures/technic_mithril_chest_inventory.png rename to mods/technic_chests/textures/technic_mithril_chest_inventory.png diff --git a/technic_chests/textures/technic_mithril_chest_lock_overlay.png b/mods/technic_chests/textures/technic_mithril_chest_lock_overlay.png similarity index 100% rename from technic_chests/textures/technic_mithril_chest_lock_overlay.png rename to mods/technic_chests/textures/technic_mithril_chest_lock_overlay.png diff --git a/technic_chests/textures/technic_mithril_chest_side.png b/mods/technic_chests/textures/technic_mithril_chest_side.png similarity index 100% rename from technic_chests/textures/technic_mithril_chest_side.png rename to mods/technic_chests/textures/technic_mithril_chest_side.png diff --git a/technic_chests/textures/technic_mithril_chest_top.png b/mods/technic_chests/textures/technic_mithril_chest_top.png similarity index 100% rename from technic_chests/textures/technic_mithril_chest_top.png rename to mods/technic_chests/textures/technic_mithril_chest_top.png diff --git a/technic_chests/textures/technic_pencil_icon.png b/mods/technic_chests/textures/technic_pencil_icon.png similarity index 100% rename from technic_chests/textures/technic_pencil_icon.png rename to mods/technic_chests/textures/technic_pencil_icon.png diff --git a/technic_chests/textures/technic_silver_chest_front.png b/mods/technic_chests/textures/technic_silver_chest_front.png similarity index 100% rename from technic_chests/textures/technic_silver_chest_front.png rename to mods/technic_chests/textures/technic_silver_chest_front.png diff --git a/technic_chests/textures/technic_silver_chest_inventory.png b/mods/technic_chests/textures/technic_silver_chest_inventory.png similarity index 100% rename from technic_chests/textures/technic_silver_chest_inventory.png rename to mods/technic_chests/textures/technic_silver_chest_inventory.png diff --git a/technic_chests/textures/technic_silver_chest_lock_overlay.png b/mods/technic_chests/textures/technic_silver_chest_lock_overlay.png similarity index 100% rename from technic_chests/textures/technic_silver_chest_lock_overlay.png rename to mods/technic_chests/textures/technic_silver_chest_lock_overlay.png diff --git a/technic_chests/textures/technic_silver_chest_side.png b/mods/technic_chests/textures/technic_silver_chest_side.png similarity index 100% rename from technic_chests/textures/technic_silver_chest_side.png rename to mods/technic_chests/textures/technic_silver_chest_side.png diff --git a/technic_chests/textures/technic_silver_chest_top.png b/mods/technic_chests/textures/technic_silver_chest_top.png similarity index 100% rename from technic_chests/textures/technic_silver_chest_top.png rename to mods/technic_chests/textures/technic_silver_chest_top.png diff --git a/technic_chests/textures/technic_wooden_chest_inventory.png b/mods/technic_chests/textures/technic_wooden_chest_inventory.png similarity index 100% rename from technic_chests/textures/technic_wooden_chest_inventory.png rename to mods/technic_chests/textures/technic_wooden_chest_inventory.png diff --git a/technic_chests/textures/x32/technic_copper_chest_front.png b/mods/technic_chests/textures/x32/technic_copper_chest_front.png similarity index 100% rename from technic_chests/textures/x32/technic_copper_chest_front.png rename to mods/technic_chests/textures/x32/technic_copper_chest_front.png diff --git a/technic_chests/textures/x32/technic_copper_chest_side.png b/mods/technic_chests/textures/x32/technic_copper_chest_side.png similarity index 100% rename from technic_chests/textures/x32/technic_copper_chest_side.png rename to mods/technic_chests/textures/x32/technic_copper_chest_side.png diff --git a/technic_chests/textures/x32/technic_copper_chest_top.png b/mods/technic_chests/textures/x32/technic_copper_chest_top.png similarity index 100% rename from technic_chests/textures/x32/technic_copper_chest_top.png rename to mods/technic_chests/textures/x32/technic_copper_chest_top.png diff --git a/technic_chests/textures/x32/technic_gold_chest_front.png b/mods/technic_chests/textures/x32/technic_gold_chest_front.png similarity index 100% rename from technic_chests/textures/x32/technic_gold_chest_front.png rename to mods/technic_chests/textures/x32/technic_gold_chest_front.png diff --git a/technic_chests/textures/x32/technic_gold_chest_side.png b/mods/technic_chests/textures/x32/technic_gold_chest_side.png similarity index 100% rename from technic_chests/textures/x32/technic_gold_chest_side.png rename to mods/technic_chests/textures/x32/technic_gold_chest_side.png diff --git a/technic_chests/textures/x32/technic_gold_chest_top.png b/mods/technic_chests/textures/x32/technic_gold_chest_top.png similarity index 100% rename from technic_chests/textures/x32/technic_gold_chest_top.png rename to mods/technic_chests/textures/x32/technic_gold_chest_top.png diff --git a/technic_chests/textures/x32/technic_iron_chest_front.png b/mods/technic_chests/textures/x32/technic_iron_chest_front.png similarity index 100% rename from technic_chests/textures/x32/technic_iron_chest_front.png rename to mods/technic_chests/textures/x32/technic_iron_chest_front.png diff --git a/technic_chests/textures/x32/technic_iron_chest_side.png b/mods/technic_chests/textures/x32/technic_iron_chest_side.png similarity index 100% rename from technic_chests/textures/x32/technic_iron_chest_side.png rename to mods/technic_chests/textures/x32/technic_iron_chest_side.png diff --git a/technic_chests/textures/x32/technic_iron_chest_top.png b/mods/technic_chests/textures/x32/technic_iron_chest_top.png similarity index 100% rename from technic_chests/textures/x32/technic_iron_chest_top.png rename to mods/technic_chests/textures/x32/technic_iron_chest_top.png diff --git a/technic_chests/textures/x32/technic_mithril_chest_front.png b/mods/technic_chests/textures/x32/technic_mithril_chest_front.png similarity index 100% rename from technic_chests/textures/x32/technic_mithril_chest_front.png rename to mods/technic_chests/textures/x32/technic_mithril_chest_front.png diff --git a/technic_chests/textures/x32/technic_mithril_chest_side.png b/mods/technic_chests/textures/x32/technic_mithril_chest_side.png similarity index 100% rename from technic_chests/textures/x32/technic_mithril_chest_side.png rename to mods/technic_chests/textures/x32/technic_mithril_chest_side.png diff --git a/technic_chests/textures/x32/technic_mithril_chest_top.png b/mods/technic_chests/textures/x32/technic_mithril_chest_top.png similarity index 100% rename from technic_chests/textures/x32/technic_mithril_chest_top.png rename to mods/technic_chests/textures/x32/technic_mithril_chest_top.png diff --git a/technic_chests/textures/x32/technic_silver_chest_front.png b/mods/technic_chests/textures/x32/technic_silver_chest_front.png similarity index 100% rename from technic_chests/textures/x32/technic_silver_chest_front.png rename to mods/technic_chests/textures/x32/technic_silver_chest_front.png diff --git a/technic_chests/textures/x32/technic_silver_chest_side.png b/mods/technic_chests/textures/x32/technic_silver_chest_side.png similarity index 100% rename from technic_chests/textures/x32/technic_silver_chest_side.png rename to mods/technic_chests/textures/x32/technic_silver_chest_side.png diff --git a/technic_chests/textures/x32/technic_silver_chest_top.png b/mods/technic_chests/textures/x32/technic_silver_chest_top.png similarity index 100% rename from technic_chests/textures/x32/technic_silver_chest_top.png rename to mods/technic_chests/textures/x32/technic_silver_chest_top.png diff --git a/technic_cnc/cnc.lua b/mods/technic_cnc/cnc.lua similarity index 100% rename from technic_cnc/cnc.lua rename to mods/technic_cnc/cnc.lua diff --git a/technic_cnc/cnc_api.lua b/mods/technic_cnc/cnc_api.lua similarity index 100% rename from technic_cnc/cnc_api.lua rename to mods/technic_cnc/cnc_api.lua diff --git a/technic_cnc/cnc_materials.lua b/mods/technic_cnc/cnc_materials.lua similarity index 100% rename from technic_cnc/cnc_materials.lua rename to mods/technic_cnc/cnc_materials.lua diff --git a/technic_cnc/depends.txt b/mods/technic_cnc/depends.txt similarity index 100% rename from technic_cnc/depends.txt rename to mods/technic_cnc/depends.txt diff --git a/technic_cnc/init.lua b/mods/technic_cnc/init.lua similarity index 100% rename from technic_cnc/init.lua rename to mods/technic_cnc/init.lua diff --git a/technic_cnc/locale/de.txt b/mods/technic_cnc/locale/de.txt similarity index 100% rename from technic_cnc/locale/de.txt rename to mods/technic_cnc/locale/de.txt diff --git a/technic_cnc/locale/es.txt b/mods/technic_cnc/locale/es.txt similarity index 100% rename from technic_cnc/locale/es.txt rename to mods/technic_cnc/locale/es.txt diff --git a/technic_cnc/locale/it.txt b/mods/technic_cnc/locale/it.txt similarity index 100% rename from technic_cnc/locale/it.txt rename to mods/technic_cnc/locale/it.txt diff --git a/technic_cnc/locale/pl.txt b/mods/technic_cnc/locale/pl.txt similarity index 100% rename from technic_cnc/locale/pl.txt rename to mods/technic_cnc/locale/pl.txt diff --git a/technic_cnc/locale/template.txt b/mods/technic_cnc/locale/template.txt similarity index 100% rename from technic_cnc/locale/template.txt rename to mods/technic_cnc/locale/template.txt diff --git a/technic_cnc/mod.conf b/mods/technic_cnc/mod.conf similarity index 100% rename from technic_cnc/mod.conf rename to mods/technic_cnc/mod.conf diff --git a/technic_cnc/models/technic_cnc_cylinder.obj b/mods/technic_cnc/models/technic_cnc_cylinder.obj similarity index 100% rename from technic_cnc/models/technic_cnc_cylinder.obj rename to mods/technic_cnc/models/technic_cnc_cylinder.obj diff --git a/technic_cnc/models/technic_cnc_cylinder_horizontal.obj b/mods/technic_cnc/models/technic_cnc_cylinder_horizontal.obj similarity index 100% rename from technic_cnc/models/technic_cnc_cylinder_horizontal.obj rename to mods/technic_cnc/models/technic_cnc_cylinder_horizontal.obj diff --git a/technic_cnc/models/technic_cnc_innercorner.obj b/mods/technic_cnc/models/technic_cnc_innercorner.obj similarity index 100% rename from technic_cnc/models/technic_cnc_innercorner.obj rename to mods/technic_cnc/models/technic_cnc_innercorner.obj diff --git a/technic_cnc/models/technic_cnc_innercorner_upsdown.obj b/mods/technic_cnc/models/technic_cnc_innercorner_upsdown.obj similarity index 100% rename from technic_cnc/models/technic_cnc_innercorner_upsdown.obj rename to mods/technic_cnc/models/technic_cnc_innercorner_upsdown.obj diff --git a/technic_cnc/models/technic_cnc_oblate_spheroid.obj b/mods/technic_cnc/models/technic_cnc_oblate_spheroid.obj similarity index 100% rename from technic_cnc/models/technic_cnc_oblate_spheroid.obj rename to mods/technic_cnc/models/technic_cnc_oblate_spheroid.obj diff --git a/technic_cnc/models/technic_cnc_one_curved_edge.obj b/mods/technic_cnc/models/technic_cnc_one_curved_edge.obj similarity index 100% rename from technic_cnc/models/technic_cnc_one_curved_edge.obj rename to mods/technic_cnc/models/technic_cnc_one_curved_edge.obj diff --git a/technic_cnc/models/technic_cnc_outercorner.obj b/mods/technic_cnc/models/technic_cnc_outercorner.obj similarity index 100% rename from technic_cnc/models/technic_cnc_outercorner.obj rename to mods/technic_cnc/models/technic_cnc_outercorner.obj diff --git a/technic_cnc/models/technic_cnc_outercorner_upsdown.obj b/mods/technic_cnc/models/technic_cnc_outercorner_upsdown.obj similarity index 100% rename from technic_cnc/models/technic_cnc_outercorner_upsdown.obj rename to mods/technic_cnc/models/technic_cnc_outercorner_upsdown.obj diff --git a/technic_cnc/models/technic_cnc_pyramid.obj b/mods/technic_cnc/models/technic_cnc_pyramid.obj similarity index 100% rename from technic_cnc/models/technic_cnc_pyramid.obj rename to mods/technic_cnc/models/technic_cnc_pyramid.obj diff --git a/technic_cnc/models/technic_cnc_pyramid_spike.obj b/mods/technic_cnc/models/technic_cnc_pyramid_spike.obj similarity index 100% rename from technic_cnc/models/technic_cnc_pyramid_spike.obj rename to mods/technic_cnc/models/technic_cnc_pyramid_spike.obj diff --git a/technic_cnc/models/technic_cnc_slope.obj b/mods/technic_cnc/models/technic_cnc_slope.obj similarity index 100% rename from technic_cnc/models/technic_cnc_slope.obj rename to mods/technic_cnc/models/technic_cnc_slope.obj diff --git a/technic_cnc/models/technic_cnc_slope_horizontal.obj b/mods/technic_cnc/models/technic_cnc_slope_horizontal.obj similarity index 100% rename from technic_cnc/models/technic_cnc_slope_horizontal.obj rename to mods/technic_cnc/models/technic_cnc_slope_horizontal.obj diff --git a/technic_cnc/models/technic_cnc_slope_upsdown.obj b/mods/technic_cnc/models/technic_cnc_slope_upsdown.obj similarity index 100% rename from technic_cnc/models/technic_cnc_slope_upsdown.obj rename to mods/technic_cnc/models/technic_cnc_slope_upsdown.obj diff --git a/technic_cnc/models/technic_cnc_sphere.obj b/mods/technic_cnc/models/technic_cnc_sphere.obj similarity index 100% rename from technic_cnc/models/technic_cnc_sphere.obj rename to mods/technic_cnc/models/technic_cnc_sphere.obj diff --git a/technic_cnc/models/technic_cnc_two_curved_edge.obj b/mods/technic_cnc/models/technic_cnc_two_curved_edge.obj similarity index 100% rename from technic_cnc/models/technic_cnc_two_curved_edge.obj rename to mods/technic_cnc/models/technic_cnc_two_curved_edge.obj diff --git a/technic_cnc/textures/technic_cnc_bottom.png b/mods/technic_cnc/textures/technic_cnc_bottom.png similarity index 100% rename from technic_cnc/textures/technic_cnc_bottom.png rename to mods/technic_cnc/textures/technic_cnc_bottom.png diff --git a/technic_cnc/textures/technic_cnc_cylinder.png b/mods/technic_cnc/textures/technic_cnc_cylinder.png similarity index 100% rename from technic_cnc/textures/technic_cnc_cylinder.png rename to mods/technic_cnc/textures/technic_cnc_cylinder.png diff --git a/technic_cnc/textures/technic_cnc_cylinder_horizontal.png b/mods/technic_cnc/textures/technic_cnc_cylinder_horizontal.png similarity index 100% rename from technic_cnc/textures/technic_cnc_cylinder_horizontal.png rename to mods/technic_cnc/textures/technic_cnc_cylinder_horizontal.png diff --git a/technic_cnc/textures/technic_cnc_element_cross.png b/mods/technic_cnc/textures/technic_cnc_element_cross.png similarity index 100% rename from technic_cnc/textures/technic_cnc_element_cross.png rename to mods/technic_cnc/textures/technic_cnc_element_cross.png diff --git a/technic_cnc/textures/technic_cnc_element_edge.png b/mods/technic_cnc/textures/technic_cnc_element_edge.png similarity index 100% rename from technic_cnc/textures/technic_cnc_element_edge.png rename to mods/technic_cnc/textures/technic_cnc_element_edge.png diff --git a/technic_cnc/textures/technic_cnc_element_end.png b/mods/technic_cnc/textures/technic_cnc_element_end.png similarity index 100% rename from technic_cnc/textures/technic_cnc_element_end.png rename to mods/technic_cnc/textures/technic_cnc_element_end.png diff --git a/technic_cnc/textures/technic_cnc_element_straight.png b/mods/technic_cnc/textures/technic_cnc_element_straight.png similarity index 100% rename from technic_cnc/textures/technic_cnc_element_straight.png rename to mods/technic_cnc/textures/technic_cnc_element_straight.png diff --git a/technic_cnc/textures/technic_cnc_element_t.png b/mods/technic_cnc/textures/technic_cnc_element_t.png similarity index 100% rename from technic_cnc/textures/technic_cnc_element_t.png rename to mods/technic_cnc/textures/technic_cnc_element_t.png diff --git a/technic_cnc/textures/technic_cnc_front.png b/mods/technic_cnc/textures/technic_cnc_front.png similarity index 100% rename from technic_cnc/textures/technic_cnc_front.png rename to mods/technic_cnc/textures/technic_cnc_front.png diff --git a/technic_cnc/textures/technic_cnc_front_active.png b/mods/technic_cnc/textures/technic_cnc_front_active.png similarity index 100% rename from technic_cnc/textures/technic_cnc_front_active.png rename to mods/technic_cnc/textures/technic_cnc_front_active.png diff --git a/technic_cnc/textures/technic_cnc_full.png b/mods/technic_cnc/textures/technic_cnc_full.png similarity index 100% rename from technic_cnc/textures/technic_cnc_full.png rename to mods/technic_cnc/textures/technic_cnc_full.png diff --git a/technic_cnc/textures/technic_cnc_half.png b/mods/technic_cnc/textures/technic_cnc_half.png similarity index 100% rename from technic_cnc/textures/technic_cnc_half.png rename to mods/technic_cnc/textures/technic_cnc_half.png diff --git a/technic_cnc/textures/technic_cnc_milling_background.png b/mods/technic_cnc/textures/technic_cnc_milling_background.png similarity index 100% rename from technic_cnc/textures/technic_cnc_milling_background.png rename to mods/technic_cnc/textures/technic_cnc_milling_background.png diff --git a/technic_cnc/textures/technic_cnc_oblate_spheroid.png b/mods/technic_cnc/textures/technic_cnc_oblate_spheroid.png similarity index 100% rename from technic_cnc/textures/technic_cnc_oblate_spheroid.png rename to mods/technic_cnc/textures/technic_cnc_oblate_spheroid.png diff --git a/technic_cnc/textures/technic_cnc_onecurvededge.png b/mods/technic_cnc/textures/technic_cnc_onecurvededge.png similarity index 100% rename from technic_cnc/textures/technic_cnc_onecurvededge.png rename to mods/technic_cnc/textures/technic_cnc_onecurvededge.png diff --git a/technic_cnc/textures/technic_cnc_pyramid.png b/mods/technic_cnc/textures/technic_cnc_pyramid.png similarity index 100% rename from technic_cnc/textures/technic_cnc_pyramid.png rename to mods/technic_cnc/textures/technic_cnc_pyramid.png diff --git a/technic_cnc/textures/technic_cnc_side.png b/mods/technic_cnc/textures/technic_cnc_side.png similarity index 100% rename from technic_cnc/textures/technic_cnc_side.png rename to mods/technic_cnc/textures/technic_cnc_side.png diff --git a/technic_cnc/textures/technic_cnc_slope.png b/mods/technic_cnc/textures/technic_cnc_slope.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope.png rename to mods/technic_cnc/textures/technic_cnc_slope.png diff --git a/technic_cnc/textures/technic_cnc_slope_edge.png b/mods/technic_cnc/textures/technic_cnc_slope_edge.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope_edge.png rename to mods/technic_cnc/textures/technic_cnc_slope_edge.png diff --git a/technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png b/mods/technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png rename to mods/technic_cnc/textures/technic_cnc_slope_edge_upsdwn.png diff --git a/technic_cnc/textures/technic_cnc_slope_inner_edge.png b/mods/technic_cnc/textures/technic_cnc_slope_inner_edge.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope_inner_edge.png rename to mods/technic_cnc/textures/technic_cnc_slope_inner_edge.png diff --git a/technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png b/mods/technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png rename to mods/technic_cnc/textures/technic_cnc_slope_inner_edge_upsdwn.png diff --git a/technic_cnc/textures/technic_cnc_slope_lying.png b/mods/technic_cnc/textures/technic_cnc_slope_lying.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope_lying.png rename to mods/technic_cnc/textures/technic_cnc_slope_lying.png diff --git a/technic_cnc/textures/technic_cnc_slope_upsdwn.png b/mods/technic_cnc/textures/technic_cnc_slope_upsdwn.png similarity index 100% rename from technic_cnc/textures/technic_cnc_slope_upsdwn.png rename to mods/technic_cnc/textures/technic_cnc_slope_upsdwn.png diff --git a/technic_cnc/textures/technic_cnc_sphere.png b/mods/technic_cnc/textures/technic_cnc_sphere.png similarity index 100% rename from technic_cnc/textures/technic_cnc_sphere.png rename to mods/technic_cnc/textures/technic_cnc_sphere.png diff --git a/technic_cnc/textures/technic_cnc_spike.png b/mods/technic_cnc/textures/technic_cnc_spike.png similarity index 100% rename from technic_cnc/textures/technic_cnc_spike.png rename to mods/technic_cnc/textures/technic_cnc_spike.png diff --git a/technic_cnc/textures/technic_cnc_stick.png b/mods/technic_cnc/textures/technic_cnc_stick.png similarity index 100% rename from technic_cnc/textures/technic_cnc_stick.png rename to mods/technic_cnc/textures/technic_cnc_stick.png diff --git a/technic_cnc/textures/technic_cnc_top.png b/mods/technic_cnc/textures/technic_cnc_top.png similarity index 100% rename from technic_cnc/textures/technic_cnc_top.png rename to mods/technic_cnc/textures/technic_cnc_top.png diff --git a/technic_cnc/textures/technic_cnc_top_active.png b/mods/technic_cnc/textures/technic_cnc_top_active.png similarity index 100% rename from technic_cnc/textures/technic_cnc_top_active.png rename to mods/technic_cnc/textures/technic_cnc_top_active.png diff --git a/technic_cnc/textures/technic_cnc_twocurvededge.png b/mods/technic_cnc/textures/technic_cnc_twocurvededge.png similarity index 100% rename from technic_cnc/textures/technic_cnc_twocurvededge.png rename to mods/technic_cnc/textures/technic_cnc_twocurvededge.png diff --git a/technic_worldgen/config.lua b/mods/technic_worldgen/config.lua similarity index 100% rename from technic_worldgen/config.lua rename to mods/technic_worldgen/config.lua diff --git a/technic_worldgen/crafts.lua b/mods/technic_worldgen/crafts.lua similarity index 100% rename from technic_worldgen/crafts.lua rename to mods/technic_worldgen/crafts.lua diff --git a/technic_worldgen/depends.txt b/mods/technic_worldgen/depends.txt similarity index 100% rename from technic_worldgen/depends.txt rename to mods/technic_worldgen/depends.txt diff --git a/technic_worldgen/init.lua b/mods/technic_worldgen/init.lua similarity index 100% rename from technic_worldgen/init.lua rename to mods/technic_worldgen/init.lua diff --git a/technic_worldgen/locale/de.txt b/mods/technic_worldgen/locale/de.txt similarity index 100% rename from technic_worldgen/locale/de.txt rename to mods/technic_worldgen/locale/de.txt diff --git a/technic_worldgen/locale/es.txt b/mods/technic_worldgen/locale/es.txt similarity index 100% rename from technic_worldgen/locale/es.txt rename to mods/technic_worldgen/locale/es.txt diff --git a/technic_worldgen/locale/fr.txt b/mods/technic_worldgen/locale/fr.txt similarity index 100% rename from technic_worldgen/locale/fr.txt rename to mods/technic_worldgen/locale/fr.txt diff --git a/technic_worldgen/locale/pl.txt b/mods/technic_worldgen/locale/pl.txt similarity index 100% rename from technic_worldgen/locale/pl.txt rename to mods/technic_worldgen/locale/pl.txt diff --git a/technic_worldgen/locale/pt_BR.txt b/mods/technic_worldgen/locale/pt_BR.txt similarity index 100% rename from technic_worldgen/locale/pt_BR.txt rename to mods/technic_worldgen/locale/pt_BR.txt diff --git a/technic_worldgen/locale/template.txt b/mods/technic_worldgen/locale/template.txt similarity index 100% rename from technic_worldgen/locale/template.txt rename to mods/technic_worldgen/locale/template.txt diff --git a/technic_worldgen/locale/tr.txt b/mods/technic_worldgen/locale/tr.txt similarity index 100% rename from technic_worldgen/locale/tr.txt rename to mods/technic_worldgen/locale/tr.txt diff --git a/technic_worldgen/mg.lua b/mods/technic_worldgen/mg.lua similarity index 100% rename from technic_worldgen/mg.lua rename to mods/technic_worldgen/mg.lua diff --git a/technic_worldgen/mod.conf b/mods/technic_worldgen/mod.conf similarity index 100% rename from technic_worldgen/mod.conf rename to mods/technic_worldgen/mod.conf diff --git a/technic_worldgen/nodes.lua b/mods/technic_worldgen/nodes.lua similarity index 100% rename from technic_worldgen/nodes.lua rename to mods/technic_worldgen/nodes.lua diff --git a/technic_worldgen/oregen.lua b/mods/technic_worldgen/oregen.lua similarity index 100% rename from technic_worldgen/oregen.lua rename to mods/technic_worldgen/oregen.lua diff --git a/technic_worldgen/rubber.lua b/mods/technic_worldgen/rubber.lua similarity index 100% rename from technic_worldgen/rubber.lua rename to mods/technic_worldgen/rubber.lua diff --git a/technic_worldgen/textures/technic_brass_dust.png b/mods/technic_worldgen/textures/technic_brass_dust.png similarity index 100% rename from technic_worldgen/textures/technic_brass_dust.png rename to mods/technic_worldgen/textures/technic_brass_dust.png diff --git a/technic_worldgen/textures/technic_carbon_steel_block.png b/mods/technic_worldgen/textures/technic_carbon_steel_block.png similarity index 100% rename from technic_worldgen/textures/technic_carbon_steel_block.png rename to mods/technic_worldgen/textures/technic_carbon_steel_block.png diff --git a/technic_worldgen/textures/technic_carbon_steel_ingot.png b/mods/technic_worldgen/textures/technic_carbon_steel_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_carbon_steel_ingot.png rename to mods/technic_worldgen/textures/technic_carbon_steel_ingot.png diff --git a/technic_worldgen/textures/technic_cast_iron_block.png b/mods/technic_worldgen/textures/technic_cast_iron_block.png similarity index 100% rename from technic_worldgen/textures/technic_cast_iron_block.png rename to mods/technic_worldgen/textures/technic_cast_iron_block.png diff --git a/technic_worldgen/textures/technic_cast_iron_ingot.png b/mods/technic_worldgen/textures/technic_cast_iron_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_cast_iron_ingot.png rename to mods/technic_worldgen/textures/technic_cast_iron_ingot.png diff --git a/technic_worldgen/textures/technic_chromium_block.png b/mods/technic_worldgen/textures/technic_chromium_block.png similarity index 100% rename from technic_worldgen/textures/technic_chromium_block.png rename to mods/technic_worldgen/textures/technic_chromium_block.png diff --git a/technic_worldgen/textures/technic_chromium_ingot.png b/mods/technic_worldgen/textures/technic_chromium_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_chromium_ingot.png rename to mods/technic_worldgen/textures/technic_chromium_ingot.png diff --git a/technic_worldgen/textures/technic_chromium_lump.png b/mods/technic_worldgen/textures/technic_chromium_lump.png similarity index 100% rename from technic_worldgen/textures/technic_chromium_lump.png rename to mods/technic_worldgen/textures/technic_chromium_lump.png diff --git a/technic_worldgen/textures/technic_granite.png b/mods/technic_worldgen/textures/technic_granite.png similarity index 100% rename from technic_worldgen/textures/technic_granite.png rename to mods/technic_worldgen/textures/technic_granite.png diff --git a/technic_worldgen/textures/technic_lead_block.png b/mods/technic_worldgen/textures/technic_lead_block.png similarity index 100% rename from technic_worldgen/textures/technic_lead_block.png rename to mods/technic_worldgen/textures/technic_lead_block.png diff --git a/technic_worldgen/textures/technic_lead_dust.png b/mods/technic_worldgen/textures/technic_lead_dust.png similarity index 100% rename from technic_worldgen/textures/technic_lead_dust.png rename to mods/technic_worldgen/textures/technic_lead_dust.png diff --git a/technic_worldgen/textures/technic_lead_ingot.png b/mods/technic_worldgen/textures/technic_lead_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_lead_ingot.png rename to mods/technic_worldgen/textures/technic_lead_ingot.png diff --git a/technic_worldgen/textures/technic_lead_lump.png b/mods/technic_worldgen/textures/technic_lead_lump.png similarity index 100% rename from technic_worldgen/textures/technic_lead_lump.png rename to mods/technic_worldgen/textures/technic_lead_lump.png diff --git a/technic_worldgen/textures/technic_marble.png b/mods/technic_worldgen/textures/technic_marble.png similarity index 100% rename from technic_worldgen/textures/technic_marble.png rename to mods/technic_worldgen/textures/technic_marble.png diff --git a/technic_worldgen/textures/technic_marble_bricks.png b/mods/technic_worldgen/textures/technic_marble_bricks.png similarity index 100% rename from technic_worldgen/textures/technic_marble_bricks.png rename to mods/technic_worldgen/textures/technic_marble_bricks.png diff --git a/technic_worldgen/textures/technic_mineral_chromium.png b/mods/technic_worldgen/textures/technic_mineral_chromium.png similarity index 100% rename from technic_worldgen/textures/technic_mineral_chromium.png rename to mods/technic_worldgen/textures/technic_mineral_chromium.png diff --git a/technic_worldgen/textures/technic_mineral_lead.png b/mods/technic_worldgen/textures/technic_mineral_lead.png similarity index 100% rename from technic_worldgen/textures/technic_mineral_lead.png rename to mods/technic_worldgen/textures/technic_mineral_lead.png diff --git a/technic_worldgen/textures/technic_mineral_sulfur.png b/mods/technic_worldgen/textures/technic_mineral_sulfur.png similarity index 100% rename from technic_worldgen/textures/technic_mineral_sulfur.png rename to mods/technic_worldgen/textures/technic_mineral_sulfur.png diff --git a/technic_worldgen/textures/technic_mineral_uranium.png b/mods/technic_worldgen/textures/technic_mineral_uranium.png similarity index 100% rename from technic_worldgen/textures/technic_mineral_uranium.png rename to mods/technic_worldgen/textures/technic_mineral_uranium.png diff --git a/technic_worldgen/textures/technic_mineral_zinc.png b/mods/technic_worldgen/textures/technic_mineral_zinc.png similarity index 100% rename from technic_worldgen/textures/technic_mineral_zinc.png rename to mods/technic_worldgen/textures/technic_mineral_zinc.png diff --git a/technic_worldgen/textures/technic_rubber.png b/mods/technic_worldgen/textures/technic_rubber.png similarity index 100% rename from technic_worldgen/textures/technic_rubber.png rename to mods/technic_worldgen/textures/technic_rubber.png diff --git a/technic_worldgen/textures/technic_rubber_leaves.png b/mods/technic_worldgen/textures/technic_rubber_leaves.png similarity index 100% rename from technic_worldgen/textures/technic_rubber_leaves.png rename to mods/technic_worldgen/textures/technic_rubber_leaves.png diff --git a/technic_worldgen/textures/technic_rubber_sapling.png b/mods/technic_worldgen/textures/technic_rubber_sapling.png similarity index 100% rename from technic_worldgen/textures/technic_rubber_sapling.png rename to mods/technic_worldgen/textures/technic_rubber_sapling.png diff --git a/technic_worldgen/textures/technic_rubber_tree_empty.png b/mods/technic_worldgen/textures/technic_rubber_tree_empty.png similarity index 100% rename from technic_worldgen/textures/technic_rubber_tree_empty.png rename to mods/technic_worldgen/textures/technic_rubber_tree_empty.png diff --git a/technic_worldgen/textures/technic_rubber_tree_full.png b/mods/technic_worldgen/textures/technic_rubber_tree_full.png similarity index 100% rename from technic_worldgen/textures/technic_rubber_tree_full.png rename to mods/technic_worldgen/textures/technic_rubber_tree_full.png diff --git a/technic_worldgen/textures/technic_rubber_tree_grindings.png b/mods/technic_worldgen/textures/technic_rubber_tree_grindings.png similarity index 100% rename from technic_worldgen/textures/technic_rubber_tree_grindings.png rename to mods/technic_worldgen/textures/technic_rubber_tree_grindings.png diff --git a/technic_worldgen/textures/technic_stainless_steel_block.png b/mods/technic_worldgen/textures/technic_stainless_steel_block.png similarity index 100% rename from technic_worldgen/textures/technic_stainless_steel_block.png rename to mods/technic_worldgen/textures/technic_stainless_steel_block.png diff --git a/technic_worldgen/textures/technic_sulfur_dust.png b/mods/technic_worldgen/textures/technic_sulfur_dust.png similarity index 100% rename from technic_worldgen/textures/technic_sulfur_dust.png rename to mods/technic_worldgen/textures/technic_sulfur_dust.png diff --git a/technic_worldgen/textures/technic_sulfur_lump.png b/mods/technic_worldgen/textures/technic_sulfur_lump.png similarity index 100% rename from technic_worldgen/textures/technic_sulfur_lump.png rename to mods/technic_worldgen/textures/technic_sulfur_lump.png diff --git a/technic_worldgen/textures/technic_uranium_block.png b/mods/technic_worldgen/textures/technic_uranium_block.png similarity index 100% rename from technic_worldgen/textures/technic_uranium_block.png rename to mods/technic_worldgen/textures/technic_uranium_block.png diff --git a/technic_worldgen/textures/technic_uranium_ingot.png b/mods/technic_worldgen/textures/technic_uranium_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_uranium_ingot.png rename to mods/technic_worldgen/textures/technic_uranium_ingot.png diff --git a/technic_worldgen/textures/technic_uranium_lump.png b/mods/technic_worldgen/textures/technic_uranium_lump.png similarity index 100% rename from technic_worldgen/textures/technic_uranium_lump.png rename to mods/technic_worldgen/textures/technic_uranium_lump.png diff --git a/technic_worldgen/textures/technic_wrought_iron_block.png b/mods/technic_worldgen/textures/technic_wrought_iron_block.png similarity index 100% rename from technic_worldgen/textures/technic_wrought_iron_block.png rename to mods/technic_worldgen/textures/technic_wrought_iron_block.png diff --git a/technic_worldgen/textures/technic_wrought_iron_ingot.png b/mods/technic_worldgen/textures/technic_wrought_iron_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_wrought_iron_ingot.png rename to mods/technic_worldgen/textures/technic_wrought_iron_ingot.png diff --git a/technic_worldgen/textures/technic_zinc_block.png b/mods/technic_worldgen/textures/technic_zinc_block.png similarity index 100% rename from technic_worldgen/textures/technic_zinc_block.png rename to mods/technic_worldgen/textures/technic_zinc_block.png diff --git a/technic_worldgen/textures/technic_zinc_ingot.png b/mods/technic_worldgen/textures/technic_zinc_ingot.png similarity index 100% rename from technic_worldgen/textures/technic_zinc_ingot.png rename to mods/technic_worldgen/textures/technic_zinc_ingot.png diff --git a/technic_worldgen/textures/technic_zinc_lump.png b/mods/technic_worldgen/textures/technic_zinc_lump.png similarity index 100% rename from technic_worldgen/textures/technic_zinc_lump.png rename to mods/technic_worldgen/textures/technic_zinc_lump.png diff --git a/technic_worldgen/textures/x32/technic_brass_ingot.png b/mods/technic_worldgen/textures/x32/technic_brass_ingot.png similarity index 100% rename from technic_worldgen/textures/x32/technic_brass_ingot.png rename to mods/technic_worldgen/textures/x32/technic_brass_ingot.png diff --git a/technic_worldgen/textures/x32/technic_chromium_ingot.png b/mods/technic_worldgen/textures/x32/technic_chromium_ingot.png similarity index 100% rename from technic_worldgen/textures/x32/technic_chromium_ingot.png rename to mods/technic_worldgen/textures/x32/technic_chromium_ingot.png diff --git a/technic_worldgen/textures/x32/technic_chromium_lump.png b/mods/technic_worldgen/textures/x32/technic_chromium_lump.png similarity index 100% rename from technic_worldgen/textures/x32/technic_chromium_lump.png rename to mods/technic_worldgen/textures/x32/technic_chromium_lump.png diff --git a/technic_worldgen/textures/x32/technic_concrete_block.png b/mods/technic_worldgen/textures/x32/technic_concrete_block.png similarity index 100% rename from technic_worldgen/textures/x32/technic_concrete_block.png rename to mods/technic_worldgen/textures/x32/technic_concrete_block.png diff --git a/technic_worldgen/textures/x32/technic_granite.png b/mods/technic_worldgen/textures/x32/technic_granite.png similarity index 100% rename from technic_worldgen/textures/x32/technic_granite.png rename to mods/technic_worldgen/textures/x32/technic_granite.png diff --git a/technic_worldgen/textures/x32/technic_marble.png b/mods/technic_worldgen/textures/x32/technic_marble.png similarity index 100% rename from technic_worldgen/textures/x32/technic_marble.png rename to mods/technic_worldgen/textures/x32/technic_marble.png diff --git a/technic_worldgen/textures/x32/technic_marble_bricks.png b/mods/technic_worldgen/textures/x32/technic_marble_bricks.png similarity index 100% rename from technic_worldgen/textures/x32/technic_marble_bricks.png rename to mods/technic_worldgen/textures/x32/technic_marble_bricks.png diff --git a/technic_worldgen/textures/x32/technic_mineral_chromium.png b/mods/technic_worldgen/textures/x32/technic_mineral_chromium.png similarity index 100% rename from technic_worldgen/textures/x32/technic_mineral_chromium.png rename to mods/technic_worldgen/textures/x32/technic_mineral_chromium.png diff --git a/technic_worldgen/textures/x32/technic_mineral_uranium.png b/mods/technic_worldgen/textures/x32/technic_mineral_uranium.png similarity index 100% rename from technic_worldgen/textures/x32/technic_mineral_uranium.png rename to mods/technic_worldgen/textures/x32/technic_mineral_uranium.png diff --git a/technic_worldgen/textures/x32/technic_mineral_zinc.png b/mods/technic_worldgen/textures/x32/technic_mineral_zinc.png similarity index 100% rename from technic_worldgen/textures/x32/technic_mineral_zinc.png rename to mods/technic_worldgen/textures/x32/technic_mineral_zinc.png diff --git a/technic_worldgen/textures/x32/technic_rebar.png b/mods/technic_worldgen/textures/x32/technic_rebar.png similarity index 100% rename from technic_worldgen/textures/x32/technic_rebar.png rename to mods/technic_worldgen/textures/x32/technic_rebar.png diff --git a/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png b/mods/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png similarity index 100% rename from technic_worldgen/textures/x32/technic_stainless_steel_ingot.png rename to mods/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png diff --git a/technic_worldgen/textures/x32/technic_uranium.png b/mods/technic_worldgen/textures/x32/technic_uranium.png similarity index 100% rename from technic_worldgen/textures/x32/technic_uranium.png rename to mods/technic_worldgen/textures/x32/technic_uranium.png diff --git a/technic_worldgen/textures/x32/technic_zinc_ingot.png b/mods/technic_worldgen/textures/x32/technic_zinc_ingot.png similarity index 100% rename from technic_worldgen/textures/x32/technic_zinc_ingot.png rename to mods/technic_worldgen/textures/x32/technic_zinc_ingot.png diff --git a/technic_worldgen/textures/x32/technic_zinc_lump.png b/mods/technic_worldgen/textures/x32/technic_zinc_lump.png similarity index 100% rename from technic_worldgen/textures/x32/technic_zinc_lump.png rename to mods/technic_worldgen/textures/x32/technic_zinc_lump.png diff --git a/titanium/depends.txt b/mods/titanium/depends.txt similarity index 100% rename from titanium/depends.txt rename to mods/titanium/depends.txt diff --git a/titanium/init.lua b/mods/titanium/init.lua similarity index 100% rename from titanium/init.lua rename to mods/titanium/init.lua diff --git a/titanium/screenshot_20190615_154830.png b/mods/titanium/screenshot_20190615_154830.png similarity index 100% rename from titanium/screenshot_20190615_154830.png rename to mods/titanium/screenshot_20190615_154830.png diff --git a/titanium/textures/sam_titanium.png b/mods/titanium/textures/sam_titanium.png similarity index 100% rename from titanium/textures/sam_titanium.png rename to mods/titanium/textures/sam_titanium.png diff --git a/titanium/textures/titanium_axe.png b/mods/titanium/textures/titanium_axe.png similarity index 100% rename from titanium/textures/titanium_axe.png rename to mods/titanium/textures/titanium_axe.png diff --git a/titanium/textures/titanium_block.png b/mods/titanium/textures/titanium_block.png similarity index 100% rename from titanium/textures/titanium_block.png rename to mods/titanium/textures/titanium_block.png diff --git a/titanium/textures/titanium_block_normal.png b/mods/titanium/textures/titanium_block_normal.png similarity index 100% rename from titanium/textures/titanium_block_normal.png rename to mods/titanium/textures/titanium_block_normal.png diff --git a/titanium/textures/titanium_glass.png b/mods/titanium/textures/titanium_glass.png similarity index 100% rename from titanium/textures/titanium_glass.png rename to mods/titanium/textures/titanium_glass.png diff --git a/titanium/textures/titanium_glass_stripes.png b/mods/titanium/textures/titanium_glass_stripes.png similarity index 100% rename from titanium/textures/titanium_glass_stripes.png rename to mods/titanium/textures/titanium_glass_stripes.png diff --git a/titanium/textures/titanium_pick.png b/mods/titanium/textures/titanium_pick.png similarity index 100% rename from titanium/textures/titanium_pick.png rename to mods/titanium/textures/titanium_pick.png diff --git a/titanium/textures/titanium_plate.png b/mods/titanium/textures/titanium_plate.png similarity index 100% rename from titanium/textures/titanium_plate.png rename to mods/titanium/textures/titanium_plate.png diff --git a/titanium/textures/titanium_plate_normal.png b/mods/titanium/textures/titanium_plate_normal.png similarity index 100% rename from titanium/textures/titanium_plate_normal.png rename to mods/titanium/textures/titanium_plate_normal.png diff --git a/titanium/textures/titanium_shovel.png b/mods/titanium/textures/titanium_shovel.png similarity index 100% rename from titanium/textures/titanium_shovel.png rename to mods/titanium/textures/titanium_shovel.png diff --git a/titanium/textures/titanium_sword.png b/mods/titanium/textures/titanium_sword.png similarity index 100% rename from titanium/textures/titanium_sword.png rename to mods/titanium/textures/titanium_sword.png diff --git a/titanium/textures/titanium_titanium.png b/mods/titanium/textures/titanium_titanium.png similarity index 100% rename from titanium/textures/titanium_titanium.png rename to mods/titanium/textures/titanium_titanium.png diff --git a/titanium/textures/titanium_titanium_in_ground.png b/mods/titanium/textures/titanium_titanium_in_ground.png similarity index 100% rename from titanium/textures/titanium_titanium_in_ground.png rename to mods/titanium/textures/titanium_titanium_in_ground.png diff --git a/titanium/textures/titanium_titanium_in_ground_normal.png b/mods/titanium/textures/titanium_titanium_in_ground_normal.png similarity index 100% rename from titanium/textures/titanium_titanium_in_ground_normal.png rename to mods/titanium/textures/titanium_titanium_in_ground_normal.png diff --git a/titanium/textures/titanium_tv_1.png b/mods/titanium/textures/titanium_tv_1.png similarity index 100% rename from titanium/textures/titanium_tv_1.png rename to mods/titanium/textures/titanium_tv_1.png diff --git a/titanium/textures/titanium_tv_2.png b/mods/titanium/textures/titanium_tv_2.png similarity index 100% rename from titanium/textures/titanium_tv_2.png rename to mods/titanium/textures/titanium_tv_2.png diff --git a/titanium/textures/tougher_titanium.png b/mods/titanium/textures/tougher_titanium.png similarity index 100% rename from titanium/textures/tougher_titanium.png rename to mods/titanium/textures/tougher_titanium.png diff --git a/trafficlight/depends.txt b/mods/trafficlight/depends.txt similarity index 100% rename from trafficlight/depends.txt rename to mods/trafficlight/depends.txt diff --git a/trafficlight/init.lua b/mods/trafficlight/init.lua similarity index 100% rename from trafficlight/init.lua rename to mods/trafficlight/init.lua diff --git a/trafficlight/old2new.lua b/mods/trafficlight/old2new.lua similarity index 100% rename from trafficlight/old2new.lua rename to mods/trafficlight/old2new.lua diff --git a/trafficlight/textures/streets_b_flashred.png b/mods/trafficlight/textures/streets_b_flashred.png similarity index 100% rename from trafficlight/textures/streets_b_flashred.png rename to mods/trafficlight/textures/streets_b_flashred.png diff --git a/trafficlight/textures/streets_b_red.png b/mods/trafficlight/textures/streets_b_red.png similarity index 100% rename from trafficlight/textures/streets_b_red.png rename to mods/trafficlight/textures/streets_b_red.png diff --git a/trafficlight/textures/streets_beacon_inv.png b/mods/trafficlight/textures/streets_beacon_inv.png similarity index 100% rename from trafficlight/textures/streets_beacon_inv.png rename to mods/trafficlight/textures/streets_beacon_inv.png diff --git a/trafficlight/textures/streets_hb_flashred.png b/mods/trafficlight/textures/streets_hb_flashred.png similarity index 100% rename from trafficlight/textures/streets_hb_flashred.png rename to mods/trafficlight/textures/streets_hb_flashred.png diff --git a/trafficlight/textures/streets_hb_flashyellow.png b/mods/trafficlight/textures/streets_hb_flashyellow.png similarity index 100% rename from trafficlight/textures/streets_hb_flashyellow.png rename to mods/trafficlight/textures/streets_hb_flashyellow.png diff --git a/trafficlight/textures/streets_hb_off.png b/mods/trafficlight/textures/streets_hb_off.png similarity index 100% rename from trafficlight/textures/streets_hb_off.png rename to mods/trafficlight/textures/streets_hb_off.png diff --git a/trafficlight/textures/streets_hb_red.png b/mods/trafficlight/textures/streets_hb_red.png similarity index 100% rename from trafficlight/textures/streets_hb_red.png rename to mods/trafficlight/textures/streets_hb_red.png diff --git a/trafficlight/textures/streets_hb_yellow.png b/mods/trafficlight/textures/streets_hb_yellow.png similarity index 100% rename from trafficlight/textures/streets_hb_yellow.png rename to mods/trafficlight/textures/streets_hb_yellow.png diff --git a/trafficlight/textures/streets_hybrid_beacon_inv.png b/mods/trafficlight/textures/streets_hybrid_beacon_inv.png similarity index 100% rename from trafficlight/textures/streets_hybrid_beacon_inv.png rename to mods/trafficlight/textures/streets_hybrid_beacon_inv.png diff --git a/trafficlight/textures/streets_pedlight_inv.png b/mods/trafficlight/textures/streets_pedlight_inv.png similarity index 100% rename from trafficlight/textures/streets_pedlight_inv.png rename to mods/trafficlight/textures/streets_pedlight_inv.png diff --git a/trafficlight/textures/streets_pl_dontwalk.png b/mods/trafficlight/textures/streets_pl_dontwalk.png similarity index 100% rename from trafficlight/textures/streets_pl_dontwalk.png rename to mods/trafficlight/textures/streets_pl_dontwalk.png diff --git a/trafficlight/textures/streets_pl_flashingdontwalk.png b/mods/trafficlight/textures/streets_pl_flashingdontwalk.png similarity index 100% rename from trafficlight/textures/streets_pl_flashingdontwalk.png rename to mods/trafficlight/textures/streets_pl_flashingdontwalk.png diff --git a/trafficlight/textures/streets_pl_flashingwalk.png b/mods/trafficlight/textures/streets_pl_flashingwalk.png similarity index 100% rename from trafficlight/textures/streets_pl_flashingwalk.png rename to mods/trafficlight/textures/streets_pl_flashingwalk.png diff --git a/trafficlight/textures/streets_pl_number_0l.png b/mods/trafficlight/textures/streets_pl_number_0l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_0l.png rename to mods/trafficlight/textures/streets_pl_number_0l.png diff --git a/trafficlight/textures/streets_pl_number_0r.png b/mods/trafficlight/textures/streets_pl_number_0r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_0r.png rename to mods/trafficlight/textures/streets_pl_number_0r.png diff --git a/trafficlight/textures/streets_pl_number_1l.png b/mods/trafficlight/textures/streets_pl_number_1l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_1l.png rename to mods/trafficlight/textures/streets_pl_number_1l.png diff --git a/trafficlight/textures/streets_pl_number_1r.png b/mods/trafficlight/textures/streets_pl_number_1r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_1r.png rename to mods/trafficlight/textures/streets_pl_number_1r.png diff --git a/trafficlight/textures/streets_pl_number_2l.png b/mods/trafficlight/textures/streets_pl_number_2l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_2l.png rename to mods/trafficlight/textures/streets_pl_number_2l.png diff --git a/trafficlight/textures/streets_pl_number_2r.png b/mods/trafficlight/textures/streets_pl_number_2r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_2r.png rename to mods/trafficlight/textures/streets_pl_number_2r.png diff --git a/trafficlight/textures/streets_pl_number_3l.png b/mods/trafficlight/textures/streets_pl_number_3l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_3l.png rename to mods/trafficlight/textures/streets_pl_number_3l.png diff --git a/trafficlight/textures/streets_pl_number_3r.png b/mods/trafficlight/textures/streets_pl_number_3r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_3r.png rename to mods/trafficlight/textures/streets_pl_number_3r.png diff --git a/trafficlight/textures/streets_pl_number_4l.png b/mods/trafficlight/textures/streets_pl_number_4l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_4l.png rename to mods/trafficlight/textures/streets_pl_number_4l.png diff --git a/trafficlight/textures/streets_pl_number_4r.png b/mods/trafficlight/textures/streets_pl_number_4r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_4r.png rename to mods/trafficlight/textures/streets_pl_number_4r.png diff --git a/trafficlight/textures/streets_pl_number_5l.png b/mods/trafficlight/textures/streets_pl_number_5l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_5l.png rename to mods/trafficlight/textures/streets_pl_number_5l.png diff --git a/trafficlight/textures/streets_pl_number_5r.png b/mods/trafficlight/textures/streets_pl_number_5r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_5r.png rename to mods/trafficlight/textures/streets_pl_number_5r.png diff --git a/trafficlight/textures/streets_pl_number_6l.png b/mods/trafficlight/textures/streets_pl_number_6l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_6l.png rename to mods/trafficlight/textures/streets_pl_number_6l.png diff --git a/trafficlight/textures/streets_pl_number_6r.png b/mods/trafficlight/textures/streets_pl_number_6r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_6r.png rename to mods/trafficlight/textures/streets_pl_number_6r.png diff --git a/trafficlight/textures/streets_pl_number_7l.png b/mods/trafficlight/textures/streets_pl_number_7l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_7l.png rename to mods/trafficlight/textures/streets_pl_number_7l.png diff --git a/trafficlight/textures/streets_pl_number_7r.png b/mods/trafficlight/textures/streets_pl_number_7r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_7r.png rename to mods/trafficlight/textures/streets_pl_number_7r.png diff --git a/trafficlight/textures/streets_pl_number_8l.png b/mods/trafficlight/textures/streets_pl_number_8l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_8l.png rename to mods/trafficlight/textures/streets_pl_number_8l.png diff --git a/trafficlight/textures/streets_pl_number_8r.png b/mods/trafficlight/textures/streets_pl_number_8r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_8r.png rename to mods/trafficlight/textures/streets_pl_number_8r.png diff --git a/trafficlight/textures/streets_pl_number_9l.png b/mods/trafficlight/textures/streets_pl_number_9l.png similarity index 100% rename from trafficlight/textures/streets_pl_number_9l.png rename to mods/trafficlight/textures/streets_pl_number_9l.png diff --git a/trafficlight/textures/streets_pl_number_9r.png b/mods/trafficlight/textures/streets_pl_number_9r.png similarity index 100% rename from trafficlight/textures/streets_pl_number_9r.png rename to mods/trafficlight/textures/streets_pl_number_9r.png diff --git a/trafficlight/textures/streets_pl_number_template.png b/mods/trafficlight/textures/streets_pl_number_template.png similarity index 100% rename from trafficlight/textures/streets_pl_number_template.png rename to mods/trafficlight/textures/streets_pl_number_template.png diff --git a/trafficlight/textures/streets_pl_off.png b/mods/trafficlight/textures/streets_pl_off.png similarity index 100% rename from trafficlight/textures/streets_pl_off.png rename to mods/trafficlight/textures/streets_pl_off.png diff --git a/trafficlight/textures/streets_pl_walk.png b/mods/trafficlight/textures/streets_pl_walk.png similarity index 100% rename from trafficlight/textures/streets_pl_walk.png rename to mods/trafficlight/textures/streets_pl_walk.png diff --git a/trafficlight/textures/streets_rrfb_inv.png b/mods/trafficlight/textures/streets_rrfb_inv.png similarity index 100% rename from trafficlight/textures/streets_rrfb_inv.png rename to mods/trafficlight/textures/streets_rrfb_inv.png diff --git a/trafficlight/textures/streets_rrfb_off.png b/mods/trafficlight/textures/streets_rrfb_off.png similarity index 100% rename from trafficlight/textures/streets_rrfb_off.png rename to mods/trafficlight/textures/streets_rrfb_off.png diff --git a/trafficlight/textures/streets_rrfb_on.png b/mods/trafficlight/textures/streets_rrfb_on.png similarity index 100% rename from trafficlight/textures/streets_rrfb_on.png rename to mods/trafficlight/textures/streets_rrfb_on.png diff --git a/trafficlight/textures/streets_tl_bg.png b/mods/trafficlight/textures/streets_tl_bg.png similarity index 100% rename from trafficlight/textures/streets_tl_bg.png rename to mods/trafficlight/textures/streets_tl_bg.png diff --git a/trafficlight/textures/streets_tl_flashgreen.png b/mods/trafficlight/textures/streets_tl_flashgreen.png similarity index 100% rename from trafficlight/textures/streets_tl_flashgreen.png rename to mods/trafficlight/textures/streets_tl_flashgreen.png diff --git a/trafficlight/textures/streets_tl_flashred.png b/mods/trafficlight/textures/streets_tl_flashred.png similarity index 100% rename from trafficlight/textures/streets_tl_flashred.png rename to mods/trafficlight/textures/streets_tl_flashred.png diff --git a/trafficlight/textures/streets_tl_flashred_alt.png b/mods/trafficlight/textures/streets_tl_flashred_alt.png similarity index 100% rename from trafficlight/textures/streets_tl_flashred_alt.png rename to mods/trafficlight/textures/streets_tl_flashred_alt.png diff --git a/trafficlight/textures/streets_tl_green.png b/mods/trafficlight/textures/streets_tl_green.png similarity index 100% rename from trafficlight/textures/streets_tl_green.png rename to mods/trafficlight/textures/streets_tl_green.png diff --git a/trafficlight/textures/streets_tl_left_flashgreen.png b/mods/trafficlight/textures/streets_tl_left_flashgreen.png similarity index 100% rename from trafficlight/textures/streets_tl_left_flashgreen.png rename to mods/trafficlight/textures/streets_tl_left_flashgreen.png diff --git a/trafficlight/textures/streets_tl_left_flashred.png b/mods/trafficlight/textures/streets_tl_left_flashred.png similarity index 100% rename from trafficlight/textures/streets_tl_left_flashred.png rename to mods/trafficlight/textures/streets_tl_left_flashred.png diff --git a/trafficlight/textures/streets_tl_left_flashred_alt.png b/mods/trafficlight/textures/streets_tl_left_flashred_alt.png similarity index 100% rename from trafficlight/textures/streets_tl_left_flashred_alt.png rename to mods/trafficlight/textures/streets_tl_left_flashred_alt.png diff --git a/trafficlight/textures/streets_tl_left_green.png b/mods/trafficlight/textures/streets_tl_left_green.png similarity index 100% rename from trafficlight/textures/streets_tl_left_green.png rename to mods/trafficlight/textures/streets_tl_left_green.png diff --git a/trafficlight/textures/streets_tl_left_off.png b/mods/trafficlight/textures/streets_tl_left_off.png similarity index 100% rename from trafficlight/textures/streets_tl_left_off.png rename to mods/trafficlight/textures/streets_tl_left_off.png diff --git a/trafficlight/textures/streets_tl_left_red.png b/mods/trafficlight/textures/streets_tl_left_red.png similarity index 100% rename from trafficlight/textures/streets_tl_left_red.png rename to mods/trafficlight/textures/streets_tl_left_red.png diff --git a/trafficlight/textures/streets_tl_left_redyellow.png b/mods/trafficlight/textures/streets_tl_left_redyellow.png similarity index 100% rename from trafficlight/textures/streets_tl_left_redyellow.png rename to mods/trafficlight/textures/streets_tl_left_redyellow.png diff --git a/trafficlight/textures/streets_tl_left_warn.png b/mods/trafficlight/textures/streets_tl_left_warn.png similarity index 100% rename from trafficlight/textures/streets_tl_left_warn.png rename to mods/trafficlight/textures/streets_tl_left_warn.png diff --git a/trafficlight/textures/streets_tl_left_warn_alt.png b/mods/trafficlight/textures/streets_tl_left_warn_alt.png similarity index 100% rename from trafficlight/textures/streets_tl_left_warn_alt.png rename to mods/trafficlight/textures/streets_tl_left_warn_alt.png diff --git a/trafficlight/textures/streets_tl_left_yellow.png b/mods/trafficlight/textures/streets_tl_left_yellow.png similarity index 100% rename from trafficlight/textures/streets_tl_left_yellow.png rename to mods/trafficlight/textures/streets_tl_left_yellow.png diff --git a/trafficlight/textures/streets_tl_off.png b/mods/trafficlight/textures/streets_tl_off.png similarity index 100% rename from trafficlight/textures/streets_tl_off.png rename to mods/trafficlight/textures/streets_tl_off.png diff --git a/trafficlight/textures/streets_tl_red.png b/mods/trafficlight/textures/streets_tl_red.png similarity index 100% rename from trafficlight/textures/streets_tl_red.png rename to mods/trafficlight/textures/streets_tl_red.png diff --git a/trafficlight/textures/streets_tl_redyellow.png b/mods/trafficlight/textures/streets_tl_redyellow.png similarity index 100% rename from trafficlight/textures/streets_tl_redyellow.png rename to mods/trafficlight/textures/streets_tl_redyellow.png diff --git a/trafficlight/textures/streets_tl_right_flashgreen.png b/mods/trafficlight/textures/streets_tl_right_flashgreen.png similarity index 100% rename from trafficlight/textures/streets_tl_right_flashgreen.png rename to mods/trafficlight/textures/streets_tl_right_flashgreen.png diff --git a/trafficlight/textures/streets_tl_right_flashred.png b/mods/trafficlight/textures/streets_tl_right_flashred.png similarity index 100% rename from trafficlight/textures/streets_tl_right_flashred.png rename to mods/trafficlight/textures/streets_tl_right_flashred.png diff --git a/trafficlight/textures/streets_tl_right_flashred_alt.png b/mods/trafficlight/textures/streets_tl_right_flashred_alt.png similarity index 100% rename from trafficlight/textures/streets_tl_right_flashred_alt.png rename to mods/trafficlight/textures/streets_tl_right_flashred_alt.png diff --git a/trafficlight/textures/streets_tl_right_green.png b/mods/trafficlight/textures/streets_tl_right_green.png similarity index 100% rename from trafficlight/textures/streets_tl_right_green.png rename to mods/trafficlight/textures/streets_tl_right_green.png diff --git a/trafficlight/textures/streets_tl_right_off.png b/mods/trafficlight/textures/streets_tl_right_off.png similarity index 100% rename from trafficlight/textures/streets_tl_right_off.png rename to mods/trafficlight/textures/streets_tl_right_off.png diff --git a/trafficlight/textures/streets_tl_right_red.png b/mods/trafficlight/textures/streets_tl_right_red.png similarity index 100% rename from trafficlight/textures/streets_tl_right_red.png rename to mods/trafficlight/textures/streets_tl_right_red.png diff --git a/trafficlight/textures/streets_tl_right_redyellow.png b/mods/trafficlight/textures/streets_tl_right_redyellow.png similarity index 100% rename from trafficlight/textures/streets_tl_right_redyellow.png rename to mods/trafficlight/textures/streets_tl_right_redyellow.png diff --git a/trafficlight/textures/streets_tl_right_warn.png b/mods/trafficlight/textures/streets_tl_right_warn.png similarity index 100% rename from trafficlight/textures/streets_tl_right_warn.png rename to mods/trafficlight/textures/streets_tl_right_warn.png diff --git a/trafficlight/textures/streets_tl_right_warn_alt.png b/mods/trafficlight/textures/streets_tl_right_warn_alt.png similarity index 100% rename from trafficlight/textures/streets_tl_right_warn_alt.png rename to mods/trafficlight/textures/streets_tl_right_warn_alt.png diff --git a/trafficlight/textures/streets_tl_right_yellow.png b/mods/trafficlight/textures/streets_tl_right_yellow.png similarity index 100% rename from trafficlight/textures/streets_tl_right_yellow.png rename to mods/trafficlight/textures/streets_tl_right_yellow.png diff --git a/trafficlight/textures/streets_tl_straight_green.png b/mods/trafficlight/textures/streets_tl_straight_green.png similarity index 100% rename from trafficlight/textures/streets_tl_straight_green.png rename to mods/trafficlight/textures/streets_tl_straight_green.png diff --git a/trafficlight/textures/streets_tl_warn.png b/mods/trafficlight/textures/streets_tl_warn.png similarity index 100% rename from trafficlight/textures/streets_tl_warn.png rename to mods/trafficlight/textures/streets_tl_warn.png diff --git a/trafficlight/textures/streets_tl_warn_alt.png b/mods/trafficlight/textures/streets_tl_warn_alt.png similarity index 100% rename from trafficlight/textures/streets_tl_warn_alt.png rename to mods/trafficlight/textures/streets_tl_warn_alt.png diff --git a/trafficlight/textures/streets_tl_yellow.png b/mods/trafficlight/textures/streets_tl_yellow.png similarity index 100% rename from trafficlight/textures/streets_tl_yellow.png rename to mods/trafficlight/textures/streets_tl_yellow.png diff --git a/trafficlight/textures/streets_tle_left_flashgreen.png b/mods/trafficlight/textures/streets_tle_left_flashgreen.png similarity index 100% rename from trafficlight/textures/streets_tle_left_flashgreen.png rename to mods/trafficlight/textures/streets_tle_left_flashgreen.png diff --git a/trafficlight/textures/streets_tle_left_green.png b/mods/trafficlight/textures/streets_tle_left_green.png similarity index 100% rename from trafficlight/textures/streets_tle_left_green.png rename to mods/trafficlight/textures/streets_tle_left_green.png diff --git a/trafficlight/textures/streets_tle_left_yellow.png b/mods/trafficlight/textures/streets_tle_left_yellow.png similarity index 100% rename from trafficlight/textures/streets_tle_left_yellow.png rename to mods/trafficlight/textures/streets_tle_left_yellow.png diff --git a/trafficlight/textures/streets_tle_right_flashgreen.png b/mods/trafficlight/textures/streets_tle_right_flashgreen.png similarity index 100% rename from trafficlight/textures/streets_tle_right_flashgreen.png rename to mods/trafficlight/textures/streets_tle_right_flashgreen.png diff --git a/trafficlight/textures/streets_tle_right_green.png b/mods/trafficlight/textures/streets_tle_right_green.png similarity index 100% rename from trafficlight/textures/streets_tle_right_green.png rename to mods/trafficlight/textures/streets_tle_right_green.png diff --git a/trafficlight/textures/streets_tle_right_yellow.png b/mods/trafficlight/textures/streets_tle_right_yellow.png similarity index 100% rename from trafficlight/textures/streets_tle_right_yellow.png rename to mods/trafficlight/textures/streets_tle_right_yellow.png diff --git a/trafficlight/textures/streets_trafficlight_inv.png b/mods/trafficlight/textures/streets_trafficlight_inv.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv.png rename to mods/trafficlight/textures/streets_trafficlight_inv.png diff --git a/trafficlight/textures/streets_trafficlight_inv_extender_left.png b/mods/trafficlight/textures/streets_trafficlight_inv_extender_left.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv_extender_left.png rename to mods/trafficlight/textures/streets_trafficlight_inv_extender_left.png diff --git a/trafficlight/textures/streets_trafficlight_inv_extender_right.png b/mods/trafficlight/textures/streets_trafficlight_inv_extender_right.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv_extender_right.png rename to mods/trafficlight/textures/streets_trafficlight_inv_extender_right.png diff --git a/trafficlight/textures/streets_trafficlight_inv_greenarrow.png b/mods/trafficlight/textures/streets_trafficlight_inv_greenarrow.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv_greenarrow.png rename to mods/trafficlight/textures/streets_trafficlight_inv_greenarrow.png diff --git a/trafficlight/textures/streets_trafficlight_inv_left.png b/mods/trafficlight/textures/streets_trafficlight_inv_left.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv_left.png rename to mods/trafficlight/textures/streets_trafficlight_inv_left.png diff --git a/trafficlight/textures/streets_trafficlight_inv_right.png b/mods/trafficlight/textures/streets_trafficlight_inv_right.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv_right.png rename to mods/trafficlight/textures/streets_trafficlight_inv_right.png diff --git a/trafficlight/textures/streets_trafficlight_inv_straight.png b/mods/trafficlight/textures/streets_trafficlight_inv_straight.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_inv_straight.png rename to mods/trafficlight/textures/streets_trafficlight_inv_straight.png diff --git a/trafficlight/textures/streets_trafficlight_template.png b/mods/trafficlight/textures/streets_trafficlight_template.png similarity index 100% rename from trafficlight/textures/streets_trafficlight_template.png rename to mods/trafficlight/textures/streets_trafficlight_template.png diff --git a/travelnet/LICENSE b/mods/travelnet/LICENSE similarity index 100% rename from travelnet/LICENSE rename to mods/travelnet/LICENSE diff --git a/travelnet/README.md b/mods/travelnet/README.md similarity index 100% rename from travelnet/README.md rename to mods/travelnet/README.md diff --git a/travelnet/config.lua b/mods/travelnet/config.lua similarity index 100% rename from travelnet/config.lua rename to mods/travelnet/config.lua diff --git a/travelnet/depends.txt b/mods/travelnet/depends.txt similarity index 100% rename from travelnet/depends.txt rename to mods/travelnet/depends.txt diff --git a/travelnet/description.txt b/mods/travelnet/description.txt similarity index 100% rename from travelnet/description.txt rename to mods/travelnet/description.txt diff --git a/travelnet/doors.lua b/mods/travelnet/doors.lua similarity index 100% rename from travelnet/doors.lua rename to mods/travelnet/doors.lua diff --git a/travelnet/elevator.lua b/mods/travelnet/elevator.lua similarity index 100% rename from travelnet/elevator.lua rename to mods/travelnet/elevator.lua diff --git a/travelnet/etc/travelnet_bell.mmpz b/mods/travelnet/etc/travelnet_bell.mmpz similarity index 100% rename from travelnet/etc/travelnet_bell.mmpz rename to mods/travelnet/etc/travelnet_bell.mmpz diff --git a/travelnet/etc/travelnet_bell.xml b/mods/travelnet/etc/travelnet_bell.xml similarity index 100% rename from travelnet/etc/travelnet_bell.xml rename to mods/travelnet/etc/travelnet_bell.xml diff --git a/travelnet/etc/travelnet_travel.mmpz b/mods/travelnet/etc/travelnet_travel.mmpz similarity index 100% rename from travelnet/etc/travelnet_travel.mmpz rename to mods/travelnet/etc/travelnet_travel.mmpz diff --git a/travelnet/etc/travelnet_travel.xml b/mods/travelnet/etc/travelnet_travel.xml similarity index 100% rename from travelnet/etc/travelnet_travel.xml rename to mods/travelnet/etc/travelnet_travel.xml diff --git a/travelnet/init.lua b/mods/travelnet/init.lua similarity index 100% rename from travelnet/init.lua rename to mods/travelnet/init.lua diff --git a/travelnet/intllib.lua b/mods/travelnet/intllib.lua similarity index 100% rename from travelnet/intllib.lua rename to mods/travelnet/intllib.lua diff --git a/travelnet/locale/de.po b/mods/travelnet/locale/de.po similarity index 100% rename from travelnet/locale/de.po rename to mods/travelnet/locale/de.po diff --git a/travelnet/locale/es.po b/mods/travelnet/locale/es.po similarity index 100% rename from travelnet/locale/es.po rename to mods/travelnet/locale/es.po diff --git a/travelnet/locale/ru.po b/mods/travelnet/locale/ru.po similarity index 100% rename from travelnet/locale/ru.po rename to mods/travelnet/locale/ru.po diff --git a/travelnet/locale/template.pot b/mods/travelnet/locale/template.pot similarity index 100% rename from travelnet/locale/template.pot rename to mods/travelnet/locale/template.pot diff --git a/travelnet/mod.conf b/mods/travelnet/mod.conf similarity index 100% rename from travelnet/mod.conf rename to mods/travelnet/mod.conf diff --git a/travelnet/models/travelnet.obj b/mods/travelnet/models/travelnet.obj similarity index 100% rename from travelnet/models/travelnet.obj rename to mods/travelnet/models/travelnet.obj diff --git a/travelnet/models/travelnet_elevator.obj b/mods/travelnet/models/travelnet_elevator.obj similarity index 100% rename from travelnet/models/travelnet_elevator.obj rename to mods/travelnet/models/travelnet_elevator.obj diff --git a/travelnet/restore_network_via_abm.lua b/mods/travelnet/restore_network_via_abm.lua similarity index 100% rename from travelnet/restore_network_via_abm.lua rename to mods/travelnet/restore_network_via_abm.lua diff --git a/travelnet/screenshot.png b/mods/travelnet/screenshot.png similarity index 100% rename from travelnet/screenshot.png rename to mods/travelnet/screenshot.png diff --git a/travelnet/sounds/travelnet_bell.ogg b/mods/travelnet/sounds/travelnet_bell.ogg similarity index 100% rename from travelnet/sounds/travelnet_bell.ogg rename to mods/travelnet/sounds/travelnet_bell.ogg diff --git a/travelnet/sounds/travelnet_travel.ogg b/mods/travelnet/sounds/travelnet_travel.ogg similarity index 100% rename from travelnet/sounds/travelnet_travel.ogg rename to mods/travelnet/sounds/travelnet_travel.ogg diff --git a/travelnet/textures/travelnet_elevator_door_glass.png b/mods/travelnet/textures/travelnet_elevator_door_glass.png similarity index 100% rename from travelnet/textures/travelnet_elevator_door_glass.png rename to mods/travelnet/textures/travelnet_elevator_door_glass.png diff --git a/travelnet/textures/travelnet_elevator_front.png b/mods/travelnet/textures/travelnet_elevator_front.png similarity index 100% rename from travelnet/textures/travelnet_elevator_front.png rename to mods/travelnet/textures/travelnet_elevator_front.png diff --git a/travelnet/textures/travelnet_elevator_inside_ceiling.png b/mods/travelnet/textures/travelnet_elevator_inside_ceiling.png similarity index 100% rename from travelnet/textures/travelnet_elevator_inside_ceiling.png rename to mods/travelnet/textures/travelnet_elevator_inside_ceiling.png diff --git a/travelnet/textures/travelnet_elevator_inside_controls.png b/mods/travelnet/textures/travelnet_elevator_inside_controls.png similarity index 100% rename from travelnet/textures/travelnet_elevator_inside_controls.png rename to mods/travelnet/textures/travelnet_elevator_inside_controls.png diff --git a/travelnet/textures/travelnet_elevator_inside_floor.png b/mods/travelnet/textures/travelnet_elevator_inside_floor.png similarity index 100% rename from travelnet/textures/travelnet_elevator_inside_floor.png rename to mods/travelnet/textures/travelnet_elevator_inside_floor.png diff --git a/travelnet/textures/travelnet_elevator_inv.png b/mods/travelnet/textures/travelnet_elevator_inv.png similarity index 100% rename from travelnet/textures/travelnet_elevator_inv.png rename to mods/travelnet/textures/travelnet_elevator_inv.png diff --git a/travelnet/textures/travelnet_elevator_sides_outside.png b/mods/travelnet/textures/travelnet_elevator_sides_outside.png similarity index 100% rename from travelnet/textures/travelnet_elevator_sides_outside.png rename to mods/travelnet/textures/travelnet_elevator_sides_outside.png diff --git a/travelnet/textures/travelnet_flash.png b/mods/travelnet/textures/travelnet_flash.png similarity index 100% rename from travelnet/textures/travelnet_flash.png rename to mods/travelnet/textures/travelnet_flash.png diff --git a/travelnet/textures/travelnet_inv.png b/mods/travelnet/textures/travelnet_inv.png similarity index 100% rename from travelnet/textures/travelnet_inv.png rename to mods/travelnet/textures/travelnet_inv.png diff --git a/travelnet/textures/travelnet_travelnet_back.png b/mods/travelnet/textures/travelnet_travelnet_back.png similarity index 100% rename from travelnet/textures/travelnet_travelnet_back.png rename to mods/travelnet/textures/travelnet_travelnet_back.png diff --git a/travelnet/textures/travelnet_travelnet_front.png b/mods/travelnet/textures/travelnet_travelnet_front.png similarity index 100% rename from travelnet/textures/travelnet_travelnet_front.png rename to mods/travelnet/textures/travelnet_travelnet_front.png diff --git a/travelnet/textures/travelnet_travelnet_side.png b/mods/travelnet/textures/travelnet_travelnet_side.png similarity index 100% rename from travelnet/textures/travelnet_travelnet_side.png rename to mods/travelnet/textures/travelnet_travelnet_side.png diff --git a/travelnet/travelnet.lua b/mods/travelnet/travelnet.lua similarity index 100% rename from travelnet/travelnet.lua rename to mods/travelnet/travelnet.lua diff --git a/trunks/crafting.lua b/mods/trunks/crafting.lua similarity index 100% rename from trunks/crafting.lua rename to mods/trunks/crafting.lua diff --git a/trunks/generating.lua b/mods/trunks/generating.lua similarity index 100% rename from trunks/generating.lua rename to mods/trunks/generating.lua diff --git a/trunks/init.lua b/mods/trunks/init.lua similarity index 100% rename from trunks/init.lua rename to mods/trunks/init.lua diff --git a/trunks/locale/template.txt b/mods/trunks/locale/template.txt similarity index 100% rename from trunks/locale/template.txt rename to mods/trunks/locale/template.txt diff --git a/trunks/locale/trunks.fr.tr b/mods/trunks/locale/trunks.fr.tr similarity index 100% rename from trunks/locale/trunks.fr.tr rename to mods/trunks/locale/trunks.fr.tr diff --git a/trunks/mod.conf b/mods/trunks/mod.conf similarity index 100% rename from trunks/mod.conf rename to mods/trunks/mod.conf diff --git a/trunks/nodes.lua b/mods/trunks/nodes.lua similarity index 100% rename from trunks/nodes.lua rename to mods/trunks/nodes.lua diff --git a/trunks/textures/credit_textures.txt b/mods/trunks/textures/credit_textures.txt similarity index 100% rename from trunks/textures/credit_textures.txt rename to mods/trunks/textures/credit_textures.txt diff --git a/trunks/textures/old & unused/comboSticks.png b/mods/trunks/textures/old & unused/comboSticks.png similarity index 100% rename from trunks/textures/old & unused/comboSticks.png rename to mods/trunks/textures/old & unused/comboSticks.png diff --git a/trunks/textures/old & unused/comboSticks_2.png b/mods/trunks/textures/old & unused/comboSticks_2.png similarity index 100% rename from trunks/textures/old & unused/comboSticks_2.png rename to mods/trunks/textures/old & unused/comboSticks_2.png diff --git a/trunks/textures/old & unused/trunks_root_mask_old.png b/mods/trunks/textures/old & unused/trunks_root_mask_old.png similarity index 100% rename from trunks/textures/old & unused/trunks_root_mask_old.png rename to mods/trunks/textures/old & unused/trunks_root_mask_old.png diff --git a/trunks/textures/old & unused/trunks_twig_1e.png b/mods/trunks/textures/old & unused/trunks_twig_1e.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_1e.png rename to mods/trunks/textures/old & unused/trunks_twig_1e.png diff --git a/trunks/textures/old & unused/trunks_twig_1n.png b/mods/trunks/textures/old & unused/trunks_twig_1n.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_1n.png rename to mods/trunks/textures/old & unused/trunks_twig_1n.png diff --git a/trunks/textures/old & unused/trunks_twig_2n.png b/mods/trunks/textures/old & unused/trunks_twig_2n.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_2n.png rename to mods/trunks/textures/old & unused/trunks_twig_2n.png diff --git a/trunks/textures/old & unused/trunks_twig_3n.png b/mods/trunks/textures/old & unused/trunks_twig_3n.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_3n.png rename to mods/trunks/textures/old & unused/trunks_twig_3n.png diff --git a/trunks/textures/old & unused/trunks_twig_4n.png b/mods/trunks/textures/old & unused/trunks_twig_4n.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_4n.png rename to mods/trunks/textures/old & unused/trunks_twig_4n.png diff --git a/trunks/textures/old & unused/trunks_twig_5-8.png b/mods/trunks/textures/old & unused/trunks_twig_5-8.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_5-8.png rename to mods/trunks/textures/old & unused/trunks_twig_5-8.png diff --git a/trunks/textures/old & unused/trunks_twig_9-12.png b/mods/trunks/textures/old & unused/trunks_twig_9-12.png similarity index 100% rename from trunks/textures/old & unused/trunks_twig_9-12.png rename to mods/trunks/textures/old & unused/trunks_twig_9-12.png diff --git a/trunks/textures/trunks_moss.png b/mods/trunks/textures/trunks_moss.png similarity index 100% rename from trunks/textures/trunks_moss.png rename to mods/trunks/textures/trunks_moss.png diff --git a/trunks/textures/trunks_moss_fungus.png b/mods/trunks/textures/trunks_moss_fungus.png similarity index 100% rename from trunks/textures/trunks_moss_fungus.png rename to mods/trunks/textures/trunks_moss_fungus.png diff --git a/trunks/textures/trunks_root_mask.png b/mods/trunks/textures/trunks_root_mask.png similarity index 100% rename from trunks/textures/trunks_root_mask.png rename to mods/trunks/textures/trunks_root_mask.png diff --git a/trunks/textures/trunks_twig_1.png b/mods/trunks/textures/trunks_twig_1.png similarity index 100% rename from trunks/textures/trunks_twig_1.png rename to mods/trunks/textures/trunks_twig_1.png diff --git a/trunks/textures/trunks_twig_10.png b/mods/trunks/textures/trunks_twig_10.png similarity index 100% rename from trunks/textures/trunks_twig_10.png rename to mods/trunks/textures/trunks_twig_10.png diff --git a/trunks/textures/trunks_twig_11.png b/mods/trunks/textures/trunks_twig_11.png similarity index 100% rename from trunks/textures/trunks_twig_11.png rename to mods/trunks/textures/trunks_twig_11.png diff --git a/trunks/textures/trunks_twig_12.png b/mods/trunks/textures/trunks_twig_12.png similarity index 100% rename from trunks/textures/trunks_twig_12.png rename to mods/trunks/textures/trunks_twig_12.png diff --git a/trunks/textures/trunks_twig_13.png b/mods/trunks/textures/trunks_twig_13.png similarity index 100% rename from trunks/textures/trunks_twig_13.png rename to mods/trunks/textures/trunks_twig_13.png diff --git a/trunks/textures/trunks_twig_2.png b/mods/trunks/textures/trunks_twig_2.png similarity index 100% rename from trunks/textures/trunks_twig_2.png rename to mods/trunks/textures/trunks_twig_2.png diff --git a/trunks/textures/trunks_twig_3.png b/mods/trunks/textures/trunks_twig_3.png similarity index 100% rename from trunks/textures/trunks_twig_3.png rename to mods/trunks/textures/trunks_twig_3.png diff --git a/trunks/textures/trunks_twig_4.png b/mods/trunks/textures/trunks_twig_4.png similarity index 100% rename from trunks/textures/trunks_twig_4.png rename to mods/trunks/textures/trunks_twig_4.png diff --git a/trunks/textures/trunks_twig_5.png b/mods/trunks/textures/trunks_twig_5.png similarity index 100% rename from trunks/textures/trunks_twig_5.png rename to mods/trunks/textures/trunks_twig_5.png diff --git a/trunks/textures/trunks_twig_6.png b/mods/trunks/textures/trunks_twig_6.png similarity index 100% rename from trunks/textures/trunks_twig_6.png rename to mods/trunks/textures/trunks_twig_6.png diff --git a/trunks/textures/trunks_twig_7.png b/mods/trunks/textures/trunks_twig_7.png similarity index 100% rename from trunks/textures/trunks_twig_7.png rename to mods/trunks/textures/trunks_twig_7.png diff --git a/trunks/textures/trunks_twig_8.png b/mods/trunks/textures/trunks_twig_8.png similarity index 100% rename from trunks/textures/trunks_twig_8.png rename to mods/trunks/textures/trunks_twig_8.png diff --git a/trunks/textures/trunks_twig_9.png b/mods/trunks/textures/trunks_twig_9.png similarity index 100% rename from trunks/textures/trunks_twig_9.png rename to mods/trunks/textures/trunks_twig_9.png diff --git a/trunks/textures/trunks_twigs.png b/mods/trunks/textures/trunks_twigs.png similarity index 100% rename from trunks/textures/trunks_twigs.png rename to mods/trunks/textures/trunks_twigs.png diff --git a/trunks/textures/trunks_twigs_corner.png b/mods/trunks/textures/trunks_twigs_corner.png similarity index 100% rename from trunks/textures/trunks_twigs_corner.png rename to mods/trunks/textures/trunks_twigs_corner.png diff --git a/trunks/textures/trunks_twigs_top.png b/mods/trunks/textures/trunks_twigs_top.png similarity index 100% rename from trunks/textures/trunks_twigs_top.png rename to mods/trunks/textures/trunks_twigs_top.png diff --git a/trunks/trunks_settings.txt b/mods/trunks/trunks_settings.txt similarity index 100% rename from trunks/trunks_settings.txt rename to mods/trunks/trunks_settings.txt diff --git a/ufos/depends.txt b/mods/ufos/depends.txt similarity index 100% rename from ufos/depends.txt rename to mods/ufos/depends.txt diff --git a/ufos/furnace.lua b/mods/ufos/furnace.lua similarity index 100% rename from ufos/furnace.lua rename to mods/ufos/furnace.lua diff --git a/ufos/init.lua b/mods/ufos/init.lua similarity index 100% rename from ufos/init.lua rename to mods/ufos/init.lua diff --git a/ufos/models/ufo.blend b/mods/ufos/models/ufo.blend similarity index 100% rename from ufos/models/ufo.blend rename to mods/ufos/models/ufo.blend diff --git a/ufos/models/ufo.png b/mods/ufos/models/ufo.png similarity index 100% rename from ufos/models/ufo.png rename to mods/ufos/models/ufo.png diff --git a/ufos/models/ufo.x b/mods/ufos/models/ufo.x similarity index 100% rename from ufos/models/ufo.x rename to mods/ufos/models/ufo.x diff --git a/ufos/models/ufo_0.png b/mods/ufos/models/ufo_0.png similarity index 100% rename from ufos/models/ufo_0.png rename to mods/ufos/models/ufo_0.png diff --git a/ufos/models/ufo_1.png b/mods/ufos/models/ufo_1.png similarity index 100% rename from ufos/models/ufo_1.png rename to mods/ufos/models/ufo_1.png diff --git a/ufos/models/ufo_2.png b/mods/ufos/models/ufo_2.png similarity index 100% rename from ufos/models/ufo_2.png rename to mods/ufos/models/ufo_2.png diff --git a/ufos/models/ufo_3.png b/mods/ufos/models/ufo_3.png similarity index 100% rename from ufos/models/ufo_3.png rename to mods/ufos/models/ufo_3.png diff --git a/ufos/models/ufo_4.png b/mods/ufos/models/ufo_4.png similarity index 100% rename from ufos/models/ufo_4.png rename to mods/ufos/models/ufo_4.png diff --git a/ufos/models/ufo_5.png b/mods/ufos/models/ufo_5.png similarity index 100% rename from ufos/models/ufo_5.png rename to mods/ufos/models/ufo_5.png diff --git a/ufos/models/ufo_6.png b/mods/ufos/models/ufo_6.png similarity index 100% rename from ufos/models/ufo_6.png rename to mods/ufos/models/ufo_6.png diff --git a/ufos/models/ufo_7.png b/mods/ufos/models/ufo_7.png similarity index 100% rename from ufos/models/ufo_7.png rename to mods/ufos/models/ufo_7.png diff --git a/ufos/models/ufo_8.png b/mods/ufos/models/ufo_8.png similarity index 100% rename from ufos/models/ufo_8.png rename to mods/ufos/models/ufo_8.png diff --git a/ufos/textures/ufos_box.png b/mods/ufos/textures/ufos_box.png similarity index 100% rename from ufos/textures/ufos_box.png rename to mods/ufos/textures/ufos_box.png diff --git a/ufos/textures/ufos_furnace_front.png b/mods/ufos/textures/ufos_furnace_front.png similarity index 100% rename from ufos/textures/ufos_furnace_front.png rename to mods/ufos/textures/ufos_furnace_front.png diff --git a/ufos/textures/ufos_furnace_front_active.png b/mods/ufos/textures/ufos_furnace_front_active.png similarity index 100% rename from ufos/textures/ufos_furnace_front_active.png rename to mods/ufos/textures/ufos_furnace_front_active.png diff --git a/ufos/textures/ufos_inventory.png b/mods/ufos/textures/ufos_inventory.png similarity index 100% rename from ufos/textures/ufos_inventory.png rename to mods/ufos/textures/ufos_inventory.png diff --git a/unified_inventory/.luacheckrc b/mods/unified_inventory/.luacheckrc similarity index 100% rename from unified_inventory/.luacheckrc rename to mods/unified_inventory/.luacheckrc diff --git a/unified_inventory/LICENSE.txt b/mods/unified_inventory/LICENSE.txt similarity index 100% rename from unified_inventory/LICENSE.txt rename to mods/unified_inventory/LICENSE.txt diff --git a/unified_inventory/README.md b/mods/unified_inventory/README.md similarity index 100% rename from unified_inventory/README.md rename to mods/unified_inventory/README.md diff --git a/unified_inventory/api.lua b/mods/unified_inventory/api.lua similarity index 100% rename from unified_inventory/api.lua rename to mods/unified_inventory/api.lua diff --git a/unified_inventory/bags.lua b/mods/unified_inventory/bags.lua similarity index 100% rename from unified_inventory/bags.lua rename to mods/unified_inventory/bags.lua diff --git a/unified_inventory/callbacks.lua b/mods/unified_inventory/callbacks.lua similarity index 100% rename from unified_inventory/callbacks.lua rename to mods/unified_inventory/callbacks.lua diff --git a/unified_inventory/doc/mod_api.txt b/mods/unified_inventory/doc/mod_api.txt similarity index 100% rename from unified_inventory/doc/mod_api.txt rename to mods/unified_inventory/doc/mod_api.txt diff --git a/unified_inventory/group.lua b/mods/unified_inventory/group.lua similarity index 100% rename from unified_inventory/group.lua rename to mods/unified_inventory/group.lua diff --git a/unified_inventory/image_credits.txt b/mods/unified_inventory/image_credits.txt similarity index 100% rename from unified_inventory/image_credits.txt rename to mods/unified_inventory/image_credits.txt diff --git a/unified_inventory/init.lua b/mods/unified_inventory/init.lua similarity index 100% rename from unified_inventory/init.lua rename to mods/unified_inventory/init.lua diff --git a/unified_inventory/internal.lua b/mods/unified_inventory/internal.lua similarity index 100% rename from unified_inventory/internal.lua rename to mods/unified_inventory/internal.lua diff --git a/unified_inventory/item_names.lua b/mods/unified_inventory/item_names.lua similarity index 100% rename from unified_inventory/item_names.lua rename to mods/unified_inventory/item_names.lua diff --git a/unified_inventory/locale/template.pot b/mods/unified_inventory/locale/template.pot similarity index 100% rename from unified_inventory/locale/template.pot rename to mods/unified_inventory/locale/template.pot diff --git a/unified_inventory/locale/unified_inventory.de.tr b/mods/unified_inventory/locale/unified_inventory.de.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.de.tr rename to mods/unified_inventory/locale/unified_inventory.de.tr diff --git a/unified_inventory/locale/unified_inventory.es.tr b/mods/unified_inventory/locale/unified_inventory.es.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.es.tr rename to mods/unified_inventory/locale/unified_inventory.es.tr diff --git a/unified_inventory/locale/unified_inventory.fr.tr b/mods/unified_inventory/locale/unified_inventory.fr.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.fr.tr rename to mods/unified_inventory/locale/unified_inventory.fr.tr diff --git a/unified_inventory/locale/unified_inventory.it.tr b/mods/unified_inventory/locale/unified_inventory.it.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.it.tr rename to mods/unified_inventory/locale/unified_inventory.it.tr diff --git a/unified_inventory/locale/unified_inventory.ms.tr b/mods/unified_inventory/locale/unified_inventory.ms.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.ms.tr rename to mods/unified_inventory/locale/unified_inventory.ms.tr diff --git a/unified_inventory/locale/unified_inventory.pl.tr b/mods/unified_inventory/locale/unified_inventory.pl.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.pl.tr rename to mods/unified_inventory/locale/unified_inventory.pl.tr diff --git a/unified_inventory/locale/unified_inventory.pt.tr b/mods/unified_inventory/locale/unified_inventory.pt.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.pt.tr rename to mods/unified_inventory/locale/unified_inventory.pt.tr diff --git a/unified_inventory/locale/unified_inventory.ru.tr b/mods/unified_inventory/locale/unified_inventory.ru.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.ru.tr rename to mods/unified_inventory/locale/unified_inventory.ru.tr diff --git a/unified_inventory/locale/unified_inventory.template.tr b/mods/unified_inventory/locale/unified_inventory.template.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.template.tr rename to mods/unified_inventory/locale/unified_inventory.template.tr diff --git a/unified_inventory/locale/unified_inventory.tr.tr b/mods/unified_inventory/locale/unified_inventory.tr.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.tr.tr rename to mods/unified_inventory/locale/unified_inventory.tr.tr diff --git a/unified_inventory/locale/unified_inventory.zh_CN.tr b/mods/unified_inventory/locale/unified_inventory.zh_CN.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.zh_CN.tr rename to mods/unified_inventory/locale/unified_inventory.zh_CN.tr diff --git a/unified_inventory/locale/unified_inventory.zh_TW.tr b/mods/unified_inventory/locale/unified_inventory.zh_TW.tr similarity index 100% rename from unified_inventory/locale/unified_inventory.zh_TW.tr rename to mods/unified_inventory/locale/unified_inventory.zh_TW.tr diff --git a/unified_inventory/match_craft.lua b/mods/unified_inventory/match_craft.lua similarity index 100% rename from unified_inventory/match_craft.lua rename to mods/unified_inventory/match_craft.lua diff --git a/unified_inventory/mod.conf b/mods/unified_inventory/mod.conf similarity index 100% rename from unified_inventory/mod.conf rename to mods/unified_inventory/mod.conf diff --git a/unified_inventory/register.lua b/mods/unified_inventory/register.lua similarity index 100% rename from unified_inventory/register.lua rename to mods/unified_inventory/register.lua diff --git a/unified_inventory/screenshot.png b/mods/unified_inventory/screenshot.png similarity index 100% rename from unified_inventory/screenshot.png rename to mods/unified_inventory/screenshot.png diff --git a/unified_inventory/settingtypes.txt b/mods/unified_inventory/settingtypes.txt similarity index 100% rename from unified_inventory/settingtypes.txt rename to mods/unified_inventory/settingtypes.txt diff --git a/unified_inventory/sounds/birds.ogg b/mods/unified_inventory/sounds/birds.ogg similarity index 100% rename from unified_inventory/sounds/birds.ogg rename to mods/unified_inventory/sounds/birds.ogg diff --git a/unified_inventory/sounds/click.ogg b/mods/unified_inventory/sounds/click.ogg similarity index 100% rename from unified_inventory/sounds/click.ogg rename to mods/unified_inventory/sounds/click.ogg diff --git a/unified_inventory/sounds/dingdong.ogg b/mods/unified_inventory/sounds/dingdong.ogg similarity index 100% rename from unified_inventory/sounds/dingdong.ogg rename to mods/unified_inventory/sounds/dingdong.ogg diff --git a/unified_inventory/sounds/electricity.ogg b/mods/unified_inventory/sounds/electricity.ogg similarity index 100% rename from unified_inventory/sounds/electricity.ogg rename to mods/unified_inventory/sounds/electricity.ogg diff --git a/unified_inventory/sounds/owl.ogg b/mods/unified_inventory/sounds/owl.ogg similarity index 100% rename from unified_inventory/sounds/owl.ogg rename to mods/unified_inventory/sounds/owl.ogg diff --git a/unified_inventory/sounds/paperflip1.ogg b/mods/unified_inventory/sounds/paperflip1.ogg similarity index 100% rename from unified_inventory/sounds/paperflip1.ogg rename to mods/unified_inventory/sounds/paperflip1.ogg diff --git a/unified_inventory/sounds/paperflip2.ogg b/mods/unified_inventory/sounds/paperflip2.ogg similarity index 100% rename from unified_inventory/sounds/paperflip2.ogg rename to mods/unified_inventory/sounds/paperflip2.ogg diff --git a/unified_inventory/sounds/teleport.ogg b/mods/unified_inventory/sounds/teleport.ogg similarity index 100% rename from unified_inventory/sounds/teleport.ogg rename to mods/unified_inventory/sounds/teleport.ogg diff --git a/unified_inventory/sounds/trash.ogg b/mods/unified_inventory/sounds/trash.ogg similarity index 100% rename from unified_inventory/sounds/trash.ogg rename to mods/unified_inventory/sounds/trash.ogg diff --git a/unified_inventory/sounds/trash_all.ogg b/mods/unified_inventory/sounds/trash_all.ogg similarity index 100% rename from unified_inventory/sounds/trash_all.ogg rename to mods/unified_inventory/sounds/trash_all.ogg diff --git a/unified_inventory/textures/bags_large.png b/mods/unified_inventory/textures/bags_large.png similarity index 100% rename from unified_inventory/textures/bags_large.png rename to mods/unified_inventory/textures/bags_large.png diff --git a/unified_inventory/textures/bags_medium.png b/mods/unified_inventory/textures/bags_medium.png similarity index 100% rename from unified_inventory/textures/bags_medium.png rename to mods/unified_inventory/textures/bags_medium.png diff --git a/unified_inventory/textures/bags_small.png b/mods/unified_inventory/textures/bags_small.png similarity index 100% rename from unified_inventory/textures/bags_small.png rename to mods/unified_inventory/textures/bags_small.png diff --git a/unified_inventory/textures/ui_1_icon.png b/mods/unified_inventory/textures/ui_1_icon.png similarity index 100% rename from unified_inventory/textures/ui_1_icon.png rename to mods/unified_inventory/textures/ui_1_icon.png diff --git a/unified_inventory/textures/ui_2_icon.png b/mods/unified_inventory/textures/ui_2_icon.png similarity index 100% rename from unified_inventory/textures/ui_2_icon.png rename to mods/unified_inventory/textures/ui_2_icon.png diff --git a/unified_inventory/textures/ui_3_icon.png b/mods/unified_inventory/textures/ui_3_icon.png similarity index 100% rename from unified_inventory/textures/ui_3_icon.png rename to mods/unified_inventory/textures/ui_3_icon.png diff --git a/unified_inventory/textures/ui_4_icon.png b/mods/unified_inventory/textures/ui_4_icon.png similarity index 100% rename from unified_inventory/textures/ui_4_icon.png rename to mods/unified_inventory/textures/ui_4_icon.png diff --git a/unified_inventory/textures/ui_5_icon.png b/mods/unified_inventory/textures/ui_5_icon.png similarity index 100% rename from unified_inventory/textures/ui_5_icon.png rename to mods/unified_inventory/textures/ui_5_icon.png diff --git a/unified_inventory/textures/ui_bags_icon.png b/mods/unified_inventory/textures/ui_bags_icon.png similarity index 100% rename from unified_inventory/textures/ui_bags_icon.png rename to mods/unified_inventory/textures/ui_bags_icon.png diff --git a/unified_inventory/textures/ui_bags_lg_form.png b/mods/unified_inventory/textures/ui_bags_lg_form.png similarity index 100% rename from unified_inventory/textures/ui_bags_lg_form.png rename to mods/unified_inventory/textures/ui_bags_lg_form.png diff --git a/unified_inventory/textures/ui_bags_main_form.png b/mods/unified_inventory/textures/ui_bags_main_form.png similarity index 100% rename from unified_inventory/textures/ui_bags_main_form.png rename to mods/unified_inventory/textures/ui_bags_main_form.png diff --git a/unified_inventory/textures/ui_bags_med_form.png b/mods/unified_inventory/textures/ui_bags_med_form.png similarity index 100% rename from unified_inventory/textures/ui_bags_med_form.png rename to mods/unified_inventory/textures/ui_bags_med_form.png diff --git a/unified_inventory/textures/ui_bags_sm_form.png b/mods/unified_inventory/textures/ui_bags_sm_form.png similarity index 100% rename from unified_inventory/textures/ui_bags_sm_form.png rename to mods/unified_inventory/textures/ui_bags_sm_form.png diff --git a/unified_inventory/textures/ui_bags_trash.png b/mods/unified_inventory/textures/ui_bags_trash.png similarity index 100% rename from unified_inventory/textures/ui_bags_trash.png rename to mods/unified_inventory/textures/ui_bags_trash.png diff --git a/unified_inventory/textures/ui_blank_image.png b/mods/unified_inventory/textures/ui_blank_image.png similarity index 100% rename from unified_inventory/textures/ui_blank_image.png rename to mods/unified_inventory/textures/ui_blank_image.png diff --git a/unified_inventory/textures/ui_blue_icon_background.png b/mods/unified_inventory/textures/ui_blue_icon_background.png similarity index 100% rename from unified_inventory/textures/ui_blue_icon_background.png rename to mods/unified_inventory/textures/ui_blue_icon_background.png diff --git a/unified_inventory/textures/ui_circular_arrows_icon.png b/mods/unified_inventory/textures/ui_circular_arrows_icon.png similarity index 100% rename from unified_inventory/textures/ui_circular_arrows_icon.png rename to mods/unified_inventory/textures/ui_circular_arrows_icon.png diff --git a/unified_inventory/textures/ui_craft_icon.png b/mods/unified_inventory/textures/ui_craft_icon.png similarity index 100% rename from unified_inventory/textures/ui_craft_icon.png rename to mods/unified_inventory/textures/ui_craft_icon.png diff --git a/unified_inventory/textures/ui_craftgrid_icon.png b/mods/unified_inventory/textures/ui_craftgrid_icon.png similarity index 100% rename from unified_inventory/textures/ui_craftgrid_icon.png rename to mods/unified_inventory/textures/ui_craftgrid_icon.png diff --git a/unified_inventory/textures/ui_craftguide_form.png b/mods/unified_inventory/textures/ui_craftguide_form.png similarity index 100% rename from unified_inventory/textures/ui_craftguide_form.png rename to mods/unified_inventory/textures/ui_craftguide_form.png diff --git a/unified_inventory/textures/ui_craftguide_icon.png b/mods/unified_inventory/textures/ui_craftguide_icon.png similarity index 100% rename from unified_inventory/textures/ui_craftguide_icon.png rename to mods/unified_inventory/textures/ui_craftguide_icon.png diff --git a/unified_inventory/textures/ui_crafting_form.png b/mods/unified_inventory/textures/ui_crafting_form.png similarity index 100% rename from unified_inventory/textures/ui_crafting_form.png rename to mods/unified_inventory/textures/ui_crafting_form.png diff --git a/unified_inventory/textures/ui_doubleleft_icon.png b/mods/unified_inventory/textures/ui_doubleleft_icon.png similarity index 100% rename from unified_inventory/textures/ui_doubleleft_icon.png rename to mods/unified_inventory/textures/ui_doubleleft_icon.png diff --git a/unified_inventory/textures/ui_doubleright_icon.png b/mods/unified_inventory/textures/ui_doubleright_icon.png similarity index 100% rename from unified_inventory/textures/ui_doubleright_icon.png rename to mods/unified_inventory/textures/ui_doubleright_icon.png diff --git a/unified_inventory/textures/ui_form_bg.png b/mods/unified_inventory/textures/ui_form_bg.png similarity index 100% rename from unified_inventory/textures/ui_form_bg.png rename to mods/unified_inventory/textures/ui_form_bg.png diff --git a/unified_inventory/textures/ui_gohome_icon.png b/mods/unified_inventory/textures/ui_gohome_icon.png similarity index 100% rename from unified_inventory/textures/ui_gohome_icon.png rename to mods/unified_inventory/textures/ui_gohome_icon.png diff --git a/unified_inventory/textures/ui_green_icon_background.png b/mods/unified_inventory/textures/ui_green_icon_background.png similarity index 100% rename from unified_inventory/textures/ui_green_icon_background.png rename to mods/unified_inventory/textures/ui_green_icon_background.png diff --git a/unified_inventory/textures/ui_group.png b/mods/unified_inventory/textures/ui_group.png similarity index 100% rename from unified_inventory/textures/ui_group.png rename to mods/unified_inventory/textures/ui_group.png diff --git a/unified_inventory/textures/ui_home_icon.png b/mods/unified_inventory/textures/ui_home_icon.png similarity index 100% rename from unified_inventory/textures/ui_home_icon.png rename to mods/unified_inventory/textures/ui_home_icon.png diff --git a/unified_inventory/textures/ui_left_icon.png b/mods/unified_inventory/textures/ui_left_icon.png similarity index 100% rename from unified_inventory/textures/ui_left_icon.png rename to mods/unified_inventory/textures/ui_left_icon.png diff --git a/unified_inventory/textures/ui_main_inventory.png b/mods/unified_inventory/textures/ui_main_inventory.png similarity index 100% rename from unified_inventory/textures/ui_main_inventory.png rename to mods/unified_inventory/textures/ui_main_inventory.png diff --git a/unified_inventory/textures/ui_misc_form.png b/mods/unified_inventory/textures/ui_misc_form.png similarity index 100% rename from unified_inventory/textures/ui_misc_form.png rename to mods/unified_inventory/textures/ui_misc_form.png diff --git a/unified_inventory/textures/ui_moon_icon.png b/mods/unified_inventory/textures/ui_moon_icon.png similarity index 100% rename from unified_inventory/textures/ui_moon_icon.png rename to mods/unified_inventory/textures/ui_moon_icon.png diff --git a/unified_inventory/textures/ui_no.png b/mods/unified_inventory/textures/ui_no.png similarity index 100% rename from unified_inventory/textures/ui_no.png rename to mods/unified_inventory/textures/ui_no.png diff --git a/unified_inventory/textures/ui_off_icon.png b/mods/unified_inventory/textures/ui_off_icon.png similarity index 100% rename from unified_inventory/textures/ui_off_icon.png rename to mods/unified_inventory/textures/ui_off_icon.png diff --git a/unified_inventory/textures/ui_ok_icon.png b/mods/unified_inventory/textures/ui_ok_icon.png similarity index 100% rename from unified_inventory/textures/ui_ok_icon.png rename to mods/unified_inventory/textures/ui_ok_icon.png diff --git a/unified_inventory/textures/ui_on_icon.png b/mods/unified_inventory/textures/ui_on_icon.png similarity index 100% rename from unified_inventory/textures/ui_on_icon.png rename to mods/unified_inventory/textures/ui_on_icon.png diff --git a/unified_inventory/textures/ui_pencil_icon.png b/mods/unified_inventory/textures/ui_pencil_icon.png similarity index 100% rename from unified_inventory/textures/ui_pencil_icon.png rename to mods/unified_inventory/textures/ui_pencil_icon.png diff --git a/unified_inventory/textures/ui_red_icon_background.png b/mods/unified_inventory/textures/ui_red_icon_background.png similarity index 100% rename from unified_inventory/textures/ui_red_icon_background.png rename to mods/unified_inventory/textures/ui_red_icon_background.png diff --git a/unified_inventory/textures/ui_reset_icon.png b/mods/unified_inventory/textures/ui_reset_icon.png similarity index 100% rename from unified_inventory/textures/ui_reset_icon.png rename to mods/unified_inventory/textures/ui_reset_icon.png diff --git a/unified_inventory/textures/ui_right_icon.png b/mods/unified_inventory/textures/ui_right_icon.png similarity index 100% rename from unified_inventory/textures/ui_right_icon.png rename to mods/unified_inventory/textures/ui_right_icon.png diff --git a/unified_inventory/textures/ui_search_icon.png b/mods/unified_inventory/textures/ui_search_icon.png similarity index 100% rename from unified_inventory/textures/ui_search_icon.png rename to mods/unified_inventory/textures/ui_search_icon.png diff --git a/unified_inventory/textures/ui_sethome_icon.png b/mods/unified_inventory/textures/ui_sethome_icon.png similarity index 100% rename from unified_inventory/textures/ui_sethome_icon.png rename to mods/unified_inventory/textures/ui_sethome_icon.png diff --git a/unified_inventory/textures/ui_single_slot.png b/mods/unified_inventory/textures/ui_single_slot.png similarity index 100% rename from unified_inventory/textures/ui_single_slot.png rename to mods/unified_inventory/textures/ui_single_slot.png diff --git a/unified_inventory/textures/ui_skip_backward_icon.png b/mods/unified_inventory/textures/ui_skip_backward_icon.png similarity index 100% rename from unified_inventory/textures/ui_skip_backward_icon.png rename to mods/unified_inventory/textures/ui_skip_backward_icon.png diff --git a/unified_inventory/textures/ui_skip_forward_icon.png b/mods/unified_inventory/textures/ui_skip_forward_icon.png similarity index 100% rename from unified_inventory/textures/ui_skip_forward_icon.png rename to mods/unified_inventory/textures/ui_skip_forward_icon.png diff --git a/unified_inventory/textures/ui_sun_icon.png b/mods/unified_inventory/textures/ui_sun_icon.png similarity index 100% rename from unified_inventory/textures/ui_sun_icon.png rename to mods/unified_inventory/textures/ui_sun_icon.png diff --git a/unified_inventory/textures/ui_trash_icon.png b/mods/unified_inventory/textures/ui_trash_icon.png similarity index 100% rename from unified_inventory/textures/ui_trash_icon.png rename to mods/unified_inventory/textures/ui_trash_icon.png diff --git a/unified_inventory/textures/ui_waypoint_set_icon.png b/mods/unified_inventory/textures/ui_waypoint_set_icon.png similarity index 100% rename from unified_inventory/textures/ui_waypoint_set_icon.png rename to mods/unified_inventory/textures/ui_waypoint_set_icon.png diff --git a/unified_inventory/textures/ui_waypoints_icon.png b/mods/unified_inventory/textures/ui_waypoints_icon.png similarity index 100% rename from unified_inventory/textures/ui_waypoints_icon.png rename to mods/unified_inventory/textures/ui_waypoints_icon.png diff --git a/unified_inventory/textures/ui_xyz_icon.png b/mods/unified_inventory/textures/ui_xyz_icon.png similarity index 100% rename from unified_inventory/textures/ui_xyz_icon.png rename to mods/unified_inventory/textures/ui_xyz_icon.png diff --git a/unified_inventory/textures/ui_xyz_off_icon.png b/mods/unified_inventory/textures/ui_xyz_off_icon.png similarity index 100% rename from unified_inventory/textures/ui_xyz_off_icon.png rename to mods/unified_inventory/textures/ui_xyz_off_icon.png diff --git a/unified_inventory/textures/ui_xyz_on_icon.png b/mods/unified_inventory/textures/ui_xyz_on_icon.png similarity index 100% rename from unified_inventory/textures/ui_xyz_on_icon.png rename to mods/unified_inventory/textures/ui_xyz_on_icon.png diff --git a/unified_inventory/waypoints.lua b/mods/unified_inventory/waypoints.lua similarity index 100% rename from unified_inventory/waypoints.lua rename to mods/unified_inventory/waypoints.lua diff --git a/unifiedbricks/README.txt b/mods/unifiedbricks/README.txt similarity index 100% rename from unifiedbricks/README.txt rename to mods/unifiedbricks/README.txt diff --git a/unifiedbricks/depends.txt b/mods/unifiedbricks/depends.txt similarity index 100% rename from unifiedbricks/depends.txt rename to mods/unifiedbricks/depends.txt diff --git a/unifiedbricks/description.txt b/mods/unifiedbricks/description.txt similarity index 100% rename from unifiedbricks/description.txt rename to mods/unifiedbricks/description.txt diff --git a/unifiedbricks/init.lua b/mods/unifiedbricks/init.lua similarity index 100% rename from unifiedbricks/init.lua rename to mods/unifiedbricks/init.lua diff --git a/unifiedbricks/mod.conf b/mods/unifiedbricks/mod.conf similarity index 100% rename from unifiedbricks/mod.conf rename to mods/unifiedbricks/mod.conf diff --git a/unifiedbricks/screenshot.png b/mods/unifiedbricks/screenshot.png similarity index 100% rename from unifiedbricks/screenshot.png rename to mods/unifiedbricks/screenshot.png diff --git a/unifiedbricks/textures/unifiedbricks_brickblock.png b/mods/unifiedbricks/textures/unifiedbricks_brickblock.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_brickblock.png rename to mods/unifiedbricks/textures/unifiedbricks_brickblock.png diff --git a/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_dark.png b/mods/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_dark.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_brickblock_multicolor_dark.png rename to mods/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_dark.png diff --git a/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_light.png b/mods/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_light.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_brickblock_multicolor_light.png rename to mods/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_light.png diff --git a/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_medium.png b/mods/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_medium.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_brickblock_multicolor_medium.png rename to mods/unifiedbricks/textures/unifiedbricks_brickblock_multicolor_medium.png diff --git a/unifiedbricks/textures/unifiedbricks_clayblock.png b/mods/unifiedbricks/textures/unifiedbricks_clayblock.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_clayblock.png rename to mods/unifiedbricks/textures/unifiedbricks_clayblock.png diff --git a/unifiedbricks/textures/unifiedbricks_mortar.png b/mods/unifiedbricks/textures/unifiedbricks_mortar.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_mortar.png rename to mods/unifiedbricks/textures/unifiedbricks_mortar.png diff --git a/unifiedbricks/textures/unifiedbricks_mortar2.png b/mods/unifiedbricks/textures/unifiedbricks_mortar2.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_mortar2.png rename to mods/unifiedbricks/textures/unifiedbricks_mortar2.png diff --git a/unifiedbricks/textures/unifiedbricks_mortar3.png b/mods/unifiedbricks/textures/unifiedbricks_mortar3.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_mortar3.png rename to mods/unifiedbricks/textures/unifiedbricks_mortar3.png diff --git a/unifiedbricks/textures/unifiedbricks_mortar4.png b/mods/unifiedbricks/textures/unifiedbricks_mortar4.png similarity index 100% rename from unifiedbricks/textures/unifiedbricks_mortar4.png rename to mods/unifiedbricks/textures/unifiedbricks_mortar4.png diff --git a/unifieddyes/API.md b/mods/unifieddyes/API.md similarity index 100% rename from unifieddyes/API.md rename to mods/unifieddyes/API.md diff --git a/unifieddyes/LICENSE b/mods/unifieddyes/LICENSE similarity index 100% rename from unifieddyes/LICENSE rename to mods/unifieddyes/LICENSE diff --git a/unifieddyes/README.md b/mods/unifieddyes/README.md similarity index 100% rename from unifieddyes/README.md rename to mods/unifieddyes/README.md diff --git a/unifieddyes/bottle_overlay.png b/mods/unifieddyes/bottle_overlay.png similarity index 100% rename from unifieddyes/bottle_overlay.png rename to mods/unifieddyes/bottle_overlay.png diff --git a/unifieddyes/changelog.txt b/mods/unifieddyes/changelog.txt similarity index 100% rename from unifieddyes/changelog.txt rename to mods/unifieddyes/changelog.txt diff --git a/unifieddyes/init.lua b/mods/unifieddyes/init.lua similarity index 100% rename from unifieddyes/init.lua rename to mods/unifieddyes/init.lua diff --git a/unifieddyes/locale/template.txt b/mods/unifieddyes/locale/template.txt similarity index 100% rename from unifieddyes/locale/template.txt rename to mods/unifieddyes/locale/template.txt diff --git a/unifieddyes/locale/unifieddyes.de.tr b/mods/unifieddyes/locale/unifieddyes.de.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.de.tr rename to mods/unifieddyes/locale/unifieddyes.de.tr diff --git a/unifieddyes/locale/unifieddyes.es.tr b/mods/unifieddyes/locale/unifieddyes.es.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.es.tr rename to mods/unifieddyes/locale/unifieddyes.es.tr diff --git a/unifieddyes/locale/unifieddyes.fr.tr b/mods/unifieddyes/locale/unifieddyes.fr.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.fr.tr rename to mods/unifieddyes/locale/unifieddyes.fr.tr diff --git a/unifieddyes/locale/unifieddyes.ms.tr b/mods/unifieddyes/locale/unifieddyes.ms.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.ms.tr rename to mods/unifieddyes/locale/unifieddyes.ms.tr diff --git a/unifieddyes/locale/unifieddyes.pt.tr b/mods/unifieddyes/locale/unifieddyes.pt.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.pt.tr rename to mods/unifieddyes/locale/unifieddyes.pt.tr diff --git a/unifieddyes/locale/unifieddyes.ru.tr b/mods/unifieddyes/locale/unifieddyes.ru.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.ru.tr rename to mods/unifieddyes/locale/unifieddyes.ru.tr diff --git a/unifieddyes/locale/unifieddyes.tr.tr b/mods/unifieddyes/locale/unifieddyes.tr.tr similarity index 100% rename from unifieddyes/locale/unifieddyes.tr.tr rename to mods/unifieddyes/locale/unifieddyes.tr.tr diff --git a/unifieddyes/mod.conf b/mods/unifieddyes/mod.conf similarity index 100% rename from unifieddyes/mod.conf rename to mods/unifieddyes/mod.conf diff --git a/unifieddyes/textures/unifieddyes_airbrush.png b/mods/unifieddyes/textures/unifieddyes_airbrush.png similarity index 100% rename from unifieddyes/textures/unifieddyes_airbrush.png rename to mods/unifieddyes/textures/unifieddyes_airbrush.png diff --git a/unifieddyes/textures/unifieddyes_dye.png b/mods/unifieddyes/textures/unifieddyes_dye.png similarity index 100% rename from unifieddyes/textures/unifieddyes_dye.png rename to mods/unifieddyes/textures/unifieddyes_dye.png diff --git a/unifieddyes/textures/unifieddyes_onhand_overlay.png b/mods/unifieddyes/textures/unifieddyes_onhand_overlay.png similarity index 100% rename from unifieddyes/textures/unifieddyes_onhand_overlay.png rename to mods/unifieddyes/textures/unifieddyes_onhand_overlay.png diff --git a/unifieddyes/textures/unifieddyes_onhand_unavailable_overlay.png b/mods/unifieddyes/textures/unifieddyes_onhand_unavailable_overlay.png similarity index 100% rename from unifieddyes/textures/unifieddyes_onhand_unavailable_overlay.png rename to mods/unifieddyes/textures/unifieddyes_onhand_unavailable_overlay.png diff --git a/unifieddyes/textures/unifieddyes_palette_ambers.png b/mods/unifieddyes/textures/unifieddyes_palette_ambers.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_ambers.png rename to mods/unifieddyes/textures/unifieddyes_palette_ambers.png diff --git a/unifieddyes/textures/unifieddyes_palette_aquas.png b/mods/unifieddyes/textures/unifieddyes_palette_aquas.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_aquas.png rename to mods/unifieddyes/textures/unifieddyes_palette_aquas.png diff --git a/unifieddyes/textures/unifieddyes_palette_azures.png b/mods/unifieddyes/textures/unifieddyes_palette_azures.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_azures.png rename to mods/unifieddyes/textures/unifieddyes_palette_azures.png diff --git a/unifieddyes/textures/unifieddyes_palette_blues.png b/mods/unifieddyes/textures/unifieddyes_palette_blues.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_blues.png rename to mods/unifieddyes/textures/unifieddyes_palette_blues.png diff --git a/unifieddyes/textures/unifieddyes_palette_ceruleans.png b/mods/unifieddyes/textures/unifieddyes_palette_ceruleans.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_ceruleans.png rename to mods/unifieddyes/textures/unifieddyes_palette_ceruleans.png diff --git a/unifieddyes/textures/unifieddyes_palette_chartreuses.png b/mods/unifieddyes/textures/unifieddyes_palette_chartreuses.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_chartreuses.png rename to mods/unifieddyes/textures/unifieddyes_palette_chartreuses.png diff --git a/unifieddyes/textures/unifieddyes_palette_colorwallmounted.png b/mods/unifieddyes/textures/unifieddyes_palette_colorwallmounted.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_colorwallmounted.png rename to mods/unifieddyes/textures/unifieddyes_palette_colorwallmounted.png diff --git a/unifieddyes/textures/unifieddyes_palette_crimsons.png b/mods/unifieddyes/textures/unifieddyes_palette_crimsons.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_crimsons.png rename to mods/unifieddyes/textures/unifieddyes_palette_crimsons.png diff --git a/unifieddyes/textures/unifieddyes_palette_cyans.png b/mods/unifieddyes/textures/unifieddyes_palette_cyans.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_cyans.png rename to mods/unifieddyes/textures/unifieddyes_palette_cyans.png diff --git a/unifieddyes/textures/unifieddyes_palette_extended.png b/mods/unifieddyes/textures/unifieddyes_palette_extended.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_extended.png rename to mods/unifieddyes/textures/unifieddyes_palette_extended.png diff --git a/unifieddyes/textures/unifieddyes_palette_fuchsias.png b/mods/unifieddyes/textures/unifieddyes_palette_fuchsias.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_fuchsias.png rename to mods/unifieddyes/textures/unifieddyes_palette_fuchsias.png diff --git a/unifieddyes/textures/unifieddyes_palette_greens.png b/mods/unifieddyes/textures/unifieddyes_palette_greens.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_greens.png rename to mods/unifieddyes/textures/unifieddyes_palette_greens.png diff --git a/unifieddyes/textures/unifieddyes_palette_greys.png b/mods/unifieddyes/textures/unifieddyes_palette_greys.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_greys.png rename to mods/unifieddyes/textures/unifieddyes_palette_greys.png diff --git a/unifieddyes/textures/unifieddyes_palette_harlequins.png b/mods/unifieddyes/textures/unifieddyes_palette_harlequins.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_harlequins.png rename to mods/unifieddyes/textures/unifieddyes_palette_harlequins.png diff --git a/unifieddyes/textures/unifieddyes_palette_indigos.png b/mods/unifieddyes/textures/unifieddyes_palette_indigos.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_indigos.png rename to mods/unifieddyes/textures/unifieddyes_palette_indigos.png diff --git a/unifieddyes/textures/unifieddyes_palette_limes.png b/mods/unifieddyes/textures/unifieddyes_palette_limes.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_limes.png rename to mods/unifieddyes/textures/unifieddyes_palette_limes.png diff --git a/unifieddyes/textures/unifieddyes_palette_magentas.png b/mods/unifieddyes/textures/unifieddyes_palette_magentas.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_magentas.png rename to mods/unifieddyes/textures/unifieddyes_palette_magentas.png diff --git a/unifieddyes/textures/unifieddyes_palette_malachites.png b/mods/unifieddyes/textures/unifieddyes_palette_malachites.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_malachites.png rename to mods/unifieddyes/textures/unifieddyes_palette_malachites.png diff --git a/unifieddyes/textures/unifieddyes_palette_mulberrys.png b/mods/unifieddyes/textures/unifieddyes_palette_mulberrys.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_mulberrys.png rename to mods/unifieddyes/textures/unifieddyes_palette_mulberrys.png diff --git a/unifieddyes/textures/unifieddyes_palette_oranges.png b/mods/unifieddyes/textures/unifieddyes_palette_oranges.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_oranges.png rename to mods/unifieddyes/textures/unifieddyes_palette_oranges.png diff --git a/unifieddyes/textures/unifieddyes_palette_reds.png b/mods/unifieddyes/textures/unifieddyes_palette_reds.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_reds.png rename to mods/unifieddyes/textures/unifieddyes_palette_reds.png diff --git a/unifieddyes/textures/unifieddyes_palette_roses.png b/mods/unifieddyes/textures/unifieddyes_palette_roses.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_roses.png rename to mods/unifieddyes/textures/unifieddyes_palette_roses.png diff --git a/unifieddyes/textures/unifieddyes_palette_sapphires.png b/mods/unifieddyes/textures/unifieddyes_palette_sapphires.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_sapphires.png rename to mods/unifieddyes/textures/unifieddyes_palette_sapphires.png diff --git a/unifieddyes/textures/unifieddyes_palette_springs.png b/mods/unifieddyes/textures/unifieddyes_palette_springs.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_springs.png rename to mods/unifieddyes/textures/unifieddyes_palette_springs.png diff --git a/unifieddyes/textures/unifieddyes_palette_turquoises.png b/mods/unifieddyes/textures/unifieddyes_palette_turquoises.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_turquoises.png rename to mods/unifieddyes/textures/unifieddyes_palette_turquoises.png diff --git a/unifieddyes/textures/unifieddyes_palette_vermilions.png b/mods/unifieddyes/textures/unifieddyes_palette_vermilions.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_vermilions.png rename to mods/unifieddyes/textures/unifieddyes_palette_vermilions.png diff --git a/unifieddyes/textures/unifieddyes_palette_violets.png b/mods/unifieddyes/textures/unifieddyes_palette_violets.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_violets.png rename to mods/unifieddyes/textures/unifieddyes_palette_violets.png diff --git a/unifieddyes/textures/unifieddyes_palette_yellows.png b/mods/unifieddyes/textures/unifieddyes_palette_yellows.png similarity index 100% rename from unifieddyes/textures/unifieddyes_palette_yellows.png rename to mods/unifieddyes/textures/unifieddyes_palette_yellows.png diff --git a/unifieddyes/textures/unifieddyes_question.png b/mods/unifieddyes/textures/unifieddyes_question.png similarity index 100% rename from unifieddyes/textures/unifieddyes_question.png rename to mods/unifieddyes/textures/unifieddyes_question.png diff --git a/unifieddyes/textures/unifieddyes_select_overlay.png b/mods/unifieddyes/textures/unifieddyes_select_overlay.png similarity index 100% rename from unifieddyes/textures/unifieddyes_select_overlay.png rename to mods/unifieddyes/textures/unifieddyes_select_overlay.png diff --git a/unifieddyes/textures/unifieddyes_unavailable_overlay.png b/mods/unifieddyes/textures/unifieddyes_unavailable_overlay.png similarity index 100% rename from unifieddyes/textures/unifieddyes_unavailable_overlay.png rename to mods/unifieddyes/textures/unifieddyes_unavailable_overlay.png diff --git a/unifieddyes/textures/unifieddyes_white_square.png b/mods/unifieddyes/textures/unifieddyes_white_square.png similarity index 100% rename from unifieddyes/textures/unifieddyes_white_square.png rename to mods/unifieddyes/textures/unifieddyes_white_square.png diff --git a/unifiedmesecons/LICENSE b/mods/unifiedmesecons/LICENSE similarity index 100% rename from unifiedmesecons/LICENSE rename to mods/unifiedmesecons/LICENSE diff --git a/unifiedmesecons/depends.txt b/mods/unifiedmesecons/depends.txt similarity index 100% rename from unifiedmesecons/depends.txt rename to mods/unifiedmesecons/depends.txt diff --git a/unifiedmesecons/init.lua b/mods/unifiedmesecons/init.lua similarity index 100% rename from unifiedmesecons/init.lua rename to mods/unifiedmesecons/init.lua diff --git a/unifiedmesecons/textures/unifiedmesecons_wire_end_off.png b/mods/unifiedmesecons/textures/unifiedmesecons_wire_end_off.png similarity index 100% rename from unifiedmesecons/textures/unifiedmesecons_wire_end_off.png rename to mods/unifiedmesecons/textures/unifiedmesecons_wire_end_off.png diff --git a/unifiedmesecons/textures/unifiedmesecons_wire_end_on.png b/mods/unifiedmesecons/textures/unifiedmesecons_wire_end_on.png similarity index 100% rename from unifiedmesecons/textures/unifiedmesecons_wire_end_on.png rename to mods/unifiedmesecons/textures/unifiedmesecons_wire_end_on.png diff --git a/unifiedmesecons/textures/unifiedmesecons_wire_off.png b/mods/unifiedmesecons/textures/unifiedmesecons_wire_off.png similarity index 100% rename from unifiedmesecons/textures/unifiedmesecons_wire_off.png rename to mods/unifiedmesecons/textures/unifiedmesecons_wire_off.png diff --git a/unifiedmesecons/textures/unifiedmesecons_wire_on.png b/mods/unifiedmesecons/textures/unifiedmesecons_wire_on.png similarity index 100% rename from unifiedmesecons/textures/unifiedmesecons_wire_on.png rename to mods/unifiedmesecons/textures/unifiedmesecons_wire_on.png diff --git a/mods/vessels/README.txt b/mods/vessels/README.txt new file mode 100644 index 00000000..a54e330f --- /dev/null +++ b/mods/vessels/README.txt @@ -0,0 +1,22 @@ +Minetest Game mod: vessels +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Vanessa Ezekowitz (LGPLv2.1+) +Modified by Perttu Ahola (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +Authors of media (textures) +--------------------------- +All not listed below, Vanessa Ezekowitz (CC BY-SA 3.0) + +The following textures were modified by Thomas-S (CC BY-SA 3.0): + vessels_drinking_glass.png + vessels_drinking_glass_inv.png + vessels_glass_bottle.png + vessels_steel_bottle.png + +The following texture was created by Wuzzy (CC BY-SA 3.0): + vessels_shelf_slot.png (based on vessels_glass_bottle.png) diff --git a/mods/vessels/init.lua b/mods/vessels/init.lua new file mode 100644 index 00000000..71a06893 --- /dev/null +++ b/mods/vessels/init.lua @@ -0,0 +1,237 @@ +-- vessels/init.lua + +-- Minetest 0.4 mod: vessels +-- See README.txt for licensing and other information. + +-- Load support for MT game translation. +local S = minetest.get_translator("vessels") + + +local vessels_shelf_formspec = + "size[8,7;]" .. + "list[context;vessels;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;vessels]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0, 2.85) + +local function update_vessels_shelf(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local invlist = inv:get_list("vessels") + + local formspec = vessels_shelf_formspec + -- Inventory slots overlay + local vx, vy = 0, 0.3 + local n_items = 0 + for i = 1, 16 do + if i == 9 then + vx = 0 + vy = vy + 1 + end + if not invlist or invlist[i]:is_empty() then + formspec = formspec .. + "image[" .. vx .. "," .. vy .. ";1,1;vessels_shelf_slot.png]" + else + local stack = invlist[i] + if not stack:is_empty() then + n_items = n_items + stack:get_count() + end + end + vx = vx + 1 + end + meta:set_string("formspec", formspec) + if n_items == 0 then + meta:set_string("infotext", S("Empty Vessels Shelf")) + else + meta:set_string("infotext", S("Vessels Shelf (@1 items)", n_items)) + end +end + +minetest.register_node("vessels:shelf", { + description = S("Vessels Shelf"), + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "vessels_shelf.png", "vessels_shelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + update_vessels_shelf(pos) + local inv = meta:get_inventory() + inv:set_size("vessels", 8 * 2) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("vessels") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.get_item_group(stack:get_name(), "vessel") ~= 0 then + return stack:get_count() + end + return 0 + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in vessels shelf at ".. minetest.pos_to_string(pos)) + update_vessels_shelf(pos) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves stuff to vessels shelf at ".. minetest.pos_to_string(pos)) + update_vessels_shelf(pos) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes stuff from vessels shelf at ".. minetest.pos_to_string(pos)) + update_vessels_shelf(pos) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "vessels", drops) + drops[#drops + 1] = "vessels:shelf" + minetest.remove_node(pos) + return drops + end, +}) + +minetest.register_craft({ + output = "vessels:shelf", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:vessel", "group:vessel", "group:vessel"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +minetest.register_node("vessels:glass_bottle", { + description = S("Empty Glass Bottle"), + drawtype = "plantlike", + tiles = {"vessels_glass_bottle.png"}, + inventory_image = "vessels_glass_bottle.png", + wield_image = "vessels_glass_bottle.png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "vessels:glass_bottle 10", + recipe = { + {"default:glass", "", "default:glass"}, + {"default:glass", "", "default:glass"}, + {"", "default:glass", ""} + } +}) + +minetest.register_node("vessels:drinking_glass", { + description = S("Empty Drinking Glass"), + drawtype = "plantlike", + tiles = {"vessels_drinking_glass.png"}, + inventory_image = "vessels_drinking_glass_inv.png", + wield_image = "vessels_drinking_glass.png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_craft( { + output = "vessels:drinking_glass 14", + recipe = { + {"default:glass", "", "default:glass"}, + {"default:glass", "", "default:glass"}, + {"default:glass", "default:glass", "default:glass"} + } +}) + +minetest.register_node("vessels:steel_bottle", { + description = S("Empty Heavy Steel Bottle"), + drawtype = "plantlike", + tiles = {"vessels_steel_bottle.png"}, + inventory_image = "vessels_steel_bottle.png", + wield_image = "vessels_steel_bottle.png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} + }, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft( { + output = "vessels:steel_bottle 5", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"", "default:steel_ingot", ""} + } +}) + + +-- Glass and steel recycling + +minetest.register_craftitem("vessels:glass_fragments", { + description = S("Glass Fragments"), + inventory_image = "vessels_glass_fragments.png", +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "vessels:glass_bottle", + "vessels:glass_bottle", + }, +}) + +minetest.register_craft( { + type = "shapeless", + output = "vessels:glass_fragments", + recipe = { + "vessels:drinking_glass", + "vessels:drinking_glass", + }, +}) + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "vessels:glass_fragments", +}) + +minetest.register_craft( { + type = "cooking", + output = "default:steel_ingot", + recipe = "vessels:steel_bottle", +}) + +minetest.register_craft({ + type = "fuel", + recipe = "vessels:shelf", + burntime = 30, +}) + +-- Register glass fragments as dungeon loot +if minetest.global_exists("dungeon_loot") then + dungeon_loot.register({ + name = "vessels:glass_fragments", chance = 0.35, count = {1, 4} + }) +end diff --git a/mods/vessels/license.txt b/mods/vessels/license.txt new file mode 100644 index 00000000..de16a3b0 --- /dev/null +++ b/mods/vessels/license.txt @@ -0,0 +1,52 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2016 Thomas-S + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/vessels/locale/template.txt b/mods/vessels/locale/template.txt new file mode 100644 index 00000000..e6e5f69a --- /dev/null +++ b/mods/vessels/locale/template.txt @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf= +Vessels Shelf (@1 items)= +Vessels Shelf= +Empty Glass Bottle= +Empty Drinking Glass= +Empty Heavy Steel Bottle= +Glass Fragments= diff --git a/mods/vessels/locale/vessels.de.tr b/mods/vessels/locale/vessels.de.tr new file mode 100644 index 00000000..162e3595 --- /dev/null +++ b/mods/vessels/locale/vessels.de.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Leeres Gefäßregal +Vessels Shelf (@1 items)=Gefäßregal (@1 Gegenstände) +Vessels Shelf=Gefäßregal +Empty Glass Bottle=Leere Glasflasche +Empty Drinking Glass=Leeres Trinkglas +Empty Heavy Steel Bottle=Leere schwere Stahlflasche +Glass Fragments=Glasfragmente diff --git a/mods/vessels/locale/vessels.es.tr b/mods/vessels/locale/vessels.es.tr new file mode 100644 index 00000000..d6131d89 --- /dev/null +++ b/mods/vessels/locale/vessels.es.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Estante de vasijas vacío +Vessels Shelf (@1 items)=Estante de vasijas (@1 objetos) +Vessels Shelf=Estante de vasijas +Empty Glass Bottle=Botella de vidrio vacía +Empty Drinking Glass=Vaso para beber vacío +Empty Heavy Steel Bottle=Botella de acero vacía +Glass Fragments=Fragmentos de vidrio diff --git a/mods/vessels/locale/vessels.fr.tr b/mods/vessels/locale/vessels.fr.tr new file mode 100644 index 00000000..f099c197 --- /dev/null +++ b/mods/vessels/locale/vessels.fr.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Etagère à récipient vide +Vessels Shelf (@1 items)=Etagère à récipient (@1 articles) +Vessels Shelf=Etagère à récipient +Empty Glass Bottle=Bouteille de verre vide +Empty Drinking Glass=Verre vide +Empty Heavy Steel Bottle=Bouteille d'acier lourde vide +Glass Fragments=Fragments de verre diff --git a/mods/vessels/locale/vessels.id.tr b/mods/vessels/locale/vessels.id.tr new file mode 100644 index 00000000..f80fbc3d --- /dev/null +++ b/mods/vessels/locale/vessels.id.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Rak Bejana Kosong +Vessels Shelf (@1 items)=Rak Bejana (@1 barang) +Vessels Shelf=Rak Bejana +Empty Glass Bottle=Botol Kaca Kosong +Empty Drinking Glass=Gelas Minum Kosong +Empty Heavy Steel Bottle=Botol Baja Berat Kosong +Glass Fragments=Pecahan Kaca diff --git a/mods/vessels/locale/vessels.it.tr b/mods/vessels/locale/vessels.it.tr new file mode 100644 index 00000000..70ea5759 --- /dev/null +++ b/mods/vessels/locale/vessels.it.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Scaffale per contenitori vuoto +Vessels Shelf (@1 items)=Scaffale per contenitori (@1 oggetti) +Vessels Shelf=Scaffale per contenitori +Empty Glass Bottle=Bottiglia di vetro vuota +Empty Drinking Glass=Bicchiere di vetro vuoto +Empty Heavy Steel Bottle=Bottigia di metallo pesante vuota +Glass Fragments=Frammenti di vetro diff --git a/mods/vessels/locale/vessels.jbo.tr b/mods/vessels/locale/vessels.jbo.tr new file mode 100644 index 00000000..6e1145e6 --- /dev/null +++ b/mods/vessels/locale/vessels.jbo.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=.i ti kunti ke vasru kajna +Vessels Shelf (@1 items)=.i lo ti vasru kajna cu vasru lo @1 dacti +Vessels Shelf=lo vasru kajna +Empty Glass Bottle=lo blacybo'i be no da +Empty Drinking Glass=lo blacykabri be no da +Empty Heavy Steel Bottle=lo tilju ke gasta botpi be no da +Glass Fragments=lo derxi be lo blaci spisa diff --git a/mods/vessels/locale/vessels.ms.tr b/mods/vessels/locale/vessels.ms.tr new file mode 100644 index 00000000..da7a0f06 --- /dev/null +++ b/mods/vessels/locale/vessels.ms.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Rak Bekas Kaca Kosong +Vessels Shelf (@1 items)=Rak Bekas Kaca (@1 barang) +Vessels Shelf=Rak Bekas Kaca +Empty Glass Bottle=Botol Kaca Kosong +Empty Drinking Glass=Gelas Minuman Kosong +Empty Heavy Steel Bottle=Botol Keluli Berat Kosong +Glass Fragments=Serpihan Kaca diff --git a/mods/vessels/locale/vessels.pt_BR.tr b/mods/vessels/locale/vessels.pt_BR.tr new file mode 100644 index 00000000..c22cb062 --- /dev/null +++ b/mods/vessels/locale/vessels.pt_BR.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Prateleira de Vasos Vazia +Vessels Shelf (@1 items)=Prateleira de Vasos (@1 itens) +Vessels Shelf=Prateleira de Vasos +Empty Glass Bottle=Garrafa de Vidro Vazia +Empty Drinking Glass=Copo Vazio +Empty Heavy Steel Bottle=Garrafa de Aço Pesada Vazia +Glass Fragments=Cacos de Vidro diff --git a/mods/vessels/locale/vessels.ru.tr b/mods/vessels/locale/vessels.ru.tr new file mode 100644 index 00000000..070d884b --- /dev/null +++ b/mods/vessels/locale/vessels.ru.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Полка с Пустыми Сосудами +Vessels Shelf (@1 items)=Полка с Сосудами (@1 предметы) +Vessels Shelf=Полка с Сосудами +Empty Glass Bottle=Пустая Стеклянная Бутылка +Empty Drinking Glass=Пустая Питьевая Бутылка +Empty Heavy Steel Bottle=Пустая Стальная Бутылка +Glass Fragments=Стеклянные Осколки diff --git a/mods/vessels/locale/vessels.se.tr b/mods/vessels/locale/vessels.se.tr new file mode 100644 index 00000000..a7c3a989 --- /dev/null +++ b/mods/vessels/locale/vessels.se.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Tom Fartygshylla +Vessels Shelf (@1 items)=Fartygshylla (@1 saker) +Vessels Shelf=Fartygshylla +Empty Glass Bottle=Tom Glasflska +Empty Drinking Glass=Tom Drycksflaska +Empty Heavy Steel Bottle=Tom Tung Stål Flaska +Glass Fragments=Glasbitar diff --git a/mods/vessels/locale/vessels.sk.tr b/mods/vessels/locale/vessels.sk.tr new file mode 100644 index 00000000..6ec640b1 --- /dev/null +++ b/mods/vessels/locale/vessels.sk.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=Prázdna polica na fľašky +Vessels Shelf (@1 items)=Polica na fľašky (@1 položka/y) +Vessels Shelf=Polica na fľašky +Empty Glass Bottle=Prázdna sklenená fľaša +Empty Drinking Glass=Prázdny pohár na pitie +Empty Heavy Steel Bottle=Prázdna oceľová fľaša +Glass Fragments=Časti skla diff --git a/mods/vessels/locale/vessels.zh_CN.tr b/mods/vessels/locale/vessels.zh_CN.tr new file mode 100644 index 00000000..e303e24f --- /dev/null +++ b/mods/vessels/locale/vessels.zh_CN.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=空容器架 +Vessels Shelf (@1 items)=容器架(@1项) +Vessels Shelf=容器架 +Empty Glass Bottle=空玻璃瓶 +Empty Drinking Glass=空水杯 +Empty Heavy Steel Bottle=空重型钢瓶 +Glass Fragments=玻璃碎片 diff --git a/mods/vessels/locale/vessels.zh_TW.tr b/mods/vessels/locale/vessels.zh_TW.tr new file mode 100644 index 00000000..6aecb357 --- /dev/null +++ b/mods/vessels/locale/vessels.zh_TW.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Empty Vessels Shelf=空容器架 +Vessels Shelf (@1 items)=容器架(@1項) +Vessels Shelf=容器架 +Empty Glass Bottle=空玻璃瓶 +Empty Drinking Glass=空水杯 +Empty Heavy Steel Bottle=空重型鋼瓶 +Glass Fragments=玻璃碎片 diff --git a/mods/vessels/mod.conf b/mods/vessels/mod.conf new file mode 100644 index 00000000..eba9076f --- /dev/null +++ b/mods/vessels/mod.conf @@ -0,0 +1,4 @@ +name = vessels +description = Minetest Game mod: vessels +depends = default +optional_depends = dungeon_loot diff --git a/mods/vessels/textures/vessels_drinking_glass.png b/mods/vessels/textures/vessels_drinking_glass.png new file mode 100644 index 00000000..aef73296 Binary files /dev/null and b/mods/vessels/textures/vessels_drinking_glass.png differ diff --git a/mods/vessels/textures/vessels_drinking_glass_inv.png b/mods/vessels/textures/vessels_drinking_glass_inv.png new file mode 100644 index 00000000..e50c8c72 Binary files /dev/null and b/mods/vessels/textures/vessels_drinking_glass_inv.png differ diff --git a/mods/vessels/textures/vessels_glass_bottle.png b/mods/vessels/textures/vessels_glass_bottle.png new file mode 100644 index 00000000..2a46aafd Binary files /dev/null and b/mods/vessels/textures/vessels_glass_bottle.png differ diff --git a/mods/vessels/textures/vessels_glass_fragments.png b/mods/vessels/textures/vessels_glass_fragments.png new file mode 100644 index 00000000..acf2d380 Binary files /dev/null and b/mods/vessels/textures/vessels_glass_fragments.png differ diff --git a/mods/vessels/textures/vessels_shelf.png b/mods/vessels/textures/vessels_shelf.png new file mode 100644 index 00000000..87c69b28 Binary files /dev/null and b/mods/vessels/textures/vessels_shelf.png differ diff --git a/mods/vessels/textures/vessels_shelf_slot.png b/mods/vessels/textures/vessels_shelf_slot.png new file mode 100644 index 00000000..93a729e5 Binary files /dev/null and b/mods/vessels/textures/vessels_shelf_slot.png differ diff --git a/mods/vessels/textures/vessels_steel_bottle.png b/mods/vessels/textures/vessels_steel_bottle.png new file mode 100644 index 00000000..169930a3 Binary files /dev/null and b/mods/vessels/textures/vessels_steel_bottle.png differ diff --git a/vines/README.md b/mods/vines/README.md similarity index 100% rename from vines/README.md rename to mods/vines/README.md diff --git a/vines/init.lua b/mods/vines/init.lua similarity index 100% rename from vines/init.lua rename to mods/vines/init.lua diff --git a/vines/locale/template.txt b/mods/vines/locale/template.txt similarity index 100% rename from vines/locale/template.txt rename to mods/vines/locale/template.txt diff --git a/vines/locale/vines.fr.tr b/mods/vines/locale/vines.fr.tr similarity index 100% rename from vines/locale/vines.fr.tr rename to mods/vines/locale/vines.fr.tr diff --git a/vines/mod.conf b/mods/vines/mod.conf similarity index 100% rename from vines/mod.conf rename to mods/vines/mod.conf diff --git a/vines/screenshot.png b/mods/vines/screenshot.png similarity index 100% rename from vines/screenshot.png rename to mods/vines/screenshot.png diff --git a/vines/textures/vines_item.png b/mods/vines/textures/vines_item.png similarity index 100% rename from vines/textures/vines_item.png rename to mods/vines/textures/vines_item.png diff --git a/vines/textures/vines_jungle_end.png b/mods/vines/textures/vines_jungle_end.png similarity index 100% rename from vines/textures/vines_jungle_end.png rename to mods/vines/textures/vines_jungle_end.png diff --git a/vines/textures/vines_jungle_middle.png b/mods/vines/textures/vines_jungle_middle.png similarity index 100% rename from vines/textures/vines_jungle_middle.png rename to mods/vines/textures/vines_jungle_middle.png diff --git a/vines/textures/vines_root_end.png b/mods/vines/textures/vines_root_end.png similarity index 100% rename from vines/textures/vines_root_end.png rename to mods/vines/textures/vines_root_end.png diff --git a/vines/textures/vines_root_middle.png b/mods/vines/textures/vines_root_middle.png similarity index 100% rename from vines/textures/vines_root_middle.png rename to mods/vines/textures/vines_root_middle.png diff --git a/vines/textures/vines_rope.png b/mods/vines/textures/vines_rope.png similarity index 100% rename from vines/textures/vines_rope.png rename to mods/vines/textures/vines_rope.png diff --git a/vines/textures/vines_rope_end.png b/mods/vines/textures/vines_rope_end.png similarity index 100% rename from vines/textures/vines_rope_end.png rename to mods/vines/textures/vines_rope_end.png diff --git a/vines/textures/vines_shears.png b/mods/vines/textures/vines_shears.png similarity index 100% rename from vines/textures/vines_shears.png rename to mods/vines/textures/vines_shears.png diff --git a/vines/textures/vines_side_end.png b/mods/vines/textures/vines_side_end.png similarity index 100% rename from vines/textures/vines_side_end.png rename to mods/vines/textures/vines_side_end.png diff --git a/vines/textures/vines_side_middle.png b/mods/vines/textures/vines_side_middle.png similarity index 100% rename from vines/textures/vines_side_middle.png rename to mods/vines/textures/vines_side_middle.png diff --git a/vines/textures/vines_vine_end.png b/mods/vines/textures/vines_vine_end.png similarity index 100% rename from vines/textures/vines_vine_end.png rename to mods/vines/textures/vines_vine_end.png diff --git a/vines/textures/vines_vine_middle.png b/mods/vines/textures/vines_vine_middle.png similarity index 100% rename from vines/textures/vines_vine_middle.png rename to mods/vines/textures/vines_vine_middle.png diff --git a/vines/textures/vines_willow_end.png b/mods/vines/textures/vines_willow_end.png similarity index 100% rename from vines/textures/vines_willow_end.png rename to mods/vines/textures/vines_willow_end.png diff --git a/vines/textures/vines_willow_middle.png b/mods/vines/textures/vines_willow_middle.png similarity index 100% rename from vines/textures/vines_willow_middle.png rename to mods/vines/textures/vines_willow_middle.png diff --git a/mods/walls/README.txt b/mods/walls/README.txt new file mode 100644 index 00000000..ba33bd77 --- /dev/null +++ b/mods/walls/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: walls +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Auke Kok (LGPLv2.1+) diff --git a/mods/walls/init.lua b/mods/walls/init.lua new file mode 100644 index 00000000..b2a163fc --- /dev/null +++ b/mods/walls/init.lua @@ -0,0 +1,67 @@ +-- walls/init.lua + +walls = {} + +local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0 + +-- Load support for MT game translation. +local S = minetest.get_translator("walls") + +walls.register = function(wall_name, wall_desc, wall_texture_table, wall_mat, wall_sounds) + --make wall_texture_table paramenter backwards compatible for mods passing single texture + if type(wall_texture_table) ~= "table" then + wall_texture_table = { wall_texture_table } + end + -- inventory node, and pole-type wall start item + minetest.register_node(wall_name, { + description = wall_desc, + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}, + -- connect_bottom = + connect_front = {-3/16, -1/2, -1/2, 3/16, 3/8, -1/4}, + connect_left = {-1/2, -1/2, -3/16, -1/4, 3/8, 3/16}, + connect_back = {-3/16, -1/2, 1/4, 3/16, 3/8, 1/2}, + connect_right = { 1/4, -1/2, -3/16, 1/2, 3/8, 3/16}, + }, + collision_box = { + type = "connected", + fixed = {-1/4, -1/2, -1/4, 1/4, 1/2 + fence_collision_extra, 1/4}, + -- connect_top = + -- connect_bottom = + connect_front = {-1/4,-1/2,-1/2,1/4,1/2 + fence_collision_extra,-1/4}, + connect_left = {-1/2,-1/2,-1/4,-1/4,1/2 + fence_collision_extra,1/4}, + connect_back = {-1/4,-1/2,1/4,1/4,1/2 + fence_collision_extra,1/2}, + connect_right = {1/4,-1/2,-1/4,1/2,1/2 + fence_collision_extra,1/4}, + }, + connects_to = { "group:wall", "group:stone", "group:fence" }, + paramtype = "light", + is_ground_content = false, + tiles = wall_texture_table, + walkable = true, + groups = { cracky = 3, wall = 1, stone = 2 }, + sounds = wall_sounds, + }) + + -- crafting recipe + minetest.register_craft({ + output = wall_name .. " 6", + recipe = { + { "", "", "" }, + { wall_mat, wall_mat, wall_mat}, + { wall_mat, wall_mat, wall_mat}, + } + }) + +end + +walls.register("walls:cobble", S("Cobblestone Wall"), {"default_cobble.png"}, + "default:cobble", default.node_sound_stone_defaults()) + +walls.register("walls:mossycobble", S("Mossy Cobblestone Wall"), {"default_mossycobble.png"}, + "default:mossycobble", default.node_sound_stone_defaults()) + +walls.register("walls:desertcobble", S("Desert Cobblestone Wall"), {"default_desert_cobble.png"}, + "default:desert_cobble", default.node_sound_stone_defaults()) + diff --git a/mods/walls/license.txt b/mods/walls/license.txt new file mode 100644 index 00000000..ccfaf1cd --- /dev/null +++ b/mods/walls/license.txt @@ -0,0 +1,14 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2015 Auke Kok + +This program 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 program 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: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/mods/walls/locale/template.txt b/mods/walls/locale/template.txt new file mode 100644 index 00000000..6721dc6f --- /dev/null +++ b/mods/walls/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall= +Mossy Cobblestone Wall= +Desert Cobblestone Wall= diff --git a/mods/walls/locale/walls.de.tr b/mods/walls/locale/walls.de.tr new file mode 100644 index 00000000..c31d4f67 --- /dev/null +++ b/mods/walls/locale/walls.de.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Kopfsteinpflastermauer +Mossy Cobblestone Wall=Moosige Kopfsteinpflastermauer +Desert Cobblestone Wall=Wüstenkopfsteinpflastermauer diff --git a/mods/walls/locale/walls.es.tr b/mods/walls/locale/walls.es.tr new file mode 100644 index 00000000..796710fe --- /dev/null +++ b/mods/walls/locale/walls.es.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Pared de adoquines +Mossy Cobblestone Wall=Pared de adoquines musgosos +Desert Cobblestone Wall=Pared de adoquines desérticos diff --git a/mods/walls/locale/walls.fr.tr b/mods/walls/locale/walls.fr.tr new file mode 100644 index 00000000..8dcb6252 --- /dev/null +++ b/mods/walls/locale/walls.fr.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Mur en pavé +Mossy Cobblestone Wall=Mur en pavé moussu +Desert Cobblestone Wall=Mur en pavé du désert diff --git a/mods/walls/locale/walls.id.tr b/mods/walls/locale/walls.id.tr new file mode 100644 index 00000000..8bfd9c77 --- /dev/null +++ b/mods/walls/locale/walls.id.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Tembok Bongkahan Batu +Mossy Cobblestone Wall=Tembok Bongkahan Batu Berlumut +Desert Cobblestone Wall=Tembok Bongkahan Batu Gurun diff --git a/mods/walls/locale/walls.it.tr b/mods/walls/locale/walls.it.tr new file mode 100644 index 00000000..4babad23 --- /dev/null +++ b/mods/walls/locale/walls.it.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Muro di ciottoli +Mossy Cobblestone Wall=Muro di ciottoli muschiosi +Desert Cobblestone Wall=Muro di ciottoli del deserto diff --git a/mods/walls/locale/walls.jbo.tr b/mods/walls/locale/walls.jbo.tr new file mode 100644 index 00000000..aba765cf --- /dev/null +++ b/mods/walls/locale/walls.jbo.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=lo lolro'iboi bitmu +Mossy Cobblestone Wall=lo clika lolro'iboi bitmu +Desert Cobblestone Wall=lo cantu'a lolro'iboi bitmu diff --git a/mods/walls/locale/walls.ms.tr b/mods/walls/locale/walls.ms.tr new file mode 100644 index 00000000..93753429 --- /dev/null +++ b/mods/walls/locale/walls.ms.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Pagar Batu Buntar +Mossy Cobblestone Wall=Pagar Batu Buntar Berlumut +Desert Cobblestone Wall=Pagar Batu Buntar Gurun diff --git a/mods/walls/locale/walls.pt_BR.tr b/mods/walls/locale/walls.pt_BR.tr new file mode 100644 index 00000000..58c3d122 --- /dev/null +++ b/mods/walls/locale/walls.pt_BR.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Parede de Paralelepípedo +Mossy Cobblestone Wall=Parede de Paralelepípedo com Musgo +Desert Cobblestone Wall=Parede de Paralelepípedo do Deserto diff --git a/mods/walls/locale/walls.ru.tr b/mods/walls/locale/walls.ru.tr new file mode 100644 index 00000000..1ed653f0 --- /dev/null +++ b/mods/walls/locale/walls.ru.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Булыжниковая Ограда +Mossy Cobblestone Wall=Мшистая Булыжниковая Ограда +Desert Cobblestone Wall=Ограда Из Пустынного Булыжника diff --git a/mods/walls/locale/walls.se.tr b/mods/walls/locale/walls.se.tr new file mode 100644 index 00000000..32589464 --- /dev/null +++ b/mods/walls/locale/walls.se.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Kullerstens Vägg +Mossy Cobblestone Wall=Mossig Kullerstens Vägg +Desert Cobblestone Wall=Öken Kullerstens Vägg diff --git a/mods/walls/locale/walls.sk.tr b/mods/walls/locale/walls.sk.tr new file mode 100644 index 00000000..69cf3a93 --- /dev/null +++ b/mods/walls/locale/walls.sk.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Múr z dlažbových kociek +Mossy Cobblestone Wall=Múr z dlažbových kociek obrastených machom +Desert Cobblestone Wall=Múr z púštnych dlažbových kociek diff --git a/mods/walls/locale/walls.zh_CN.tr b/mods/walls/locale/walls.zh_CN.tr new file mode 100644 index 00000000..f590e825 --- /dev/null +++ b/mods/walls/locale/walls.zh_CN.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=鹅卵石墙 +Mossy Cobblestone Wall=苔藓覆盖的鹅卵石墙 +Desert Cobblestone Wall=沙漠鹅卵石墙 diff --git a/mods/walls/locale/walls.zh_TW.tr b/mods/walls/locale/walls.zh_TW.tr new file mode 100644 index 00000000..ba1285f6 --- /dev/null +++ b/mods/walls/locale/walls.zh_TW.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=鵝卵石牆 +Mossy Cobblestone Wall=苔蘚覆蓋的鵝卵石牆 +Desert Cobblestone Wall=沙漠鵝卵石牆 diff --git a/mods/walls/mod.conf b/mods/walls/mod.conf new file mode 100644 index 00000000..9b8bbe84 --- /dev/null +++ b/mods/walls/mod.conf @@ -0,0 +1,3 @@ +name = walls +description = Minetest Game mod: walls +depends = default diff --git a/mods/weather/README.txt b/mods/weather/README.txt new file mode 100644 index 00000000..67334600 --- /dev/null +++ b/mods/weather/README.txt @@ -0,0 +1,4 @@ +Minetest Game mod: weather +========================== +See license.txt for license information. +Source code by paramat (MIT). diff --git a/mods/weather/init.lua b/mods/weather/init.lua new file mode 100644 index 00000000..9e10d893 --- /dev/null +++ b/mods/weather/init.lua @@ -0,0 +1,125 @@ +-- Disable by mapgen or setting + +local mg_name = minetest.get_mapgen_setting("mg_name") +if mg_name == "v6" or mg_name == "singlenode" or + minetest.settings:get_bool("enable_weather") == false then + return +end + + +-- Parameters + +local TSCALE = 600 -- Time scale of noise variation in seconds +local CYCLE = 8 -- Time period of cyclic clouds update in seconds + +local np_density = { + offset = 0.5, + scale = 0.5, + spread = {x = TSCALE, y = TSCALE, z = TSCALE}, + seed = 813, + octaves = 1, + persist = 0, + lacunarity = 2, +} + +local np_thickness = { + offset = 0.5, + scale = 0.5, + spread = {x = TSCALE, y = TSCALE, z = TSCALE}, + seed = 96, + octaves = 1, + persist = 0, + lacunarity = 2, +} + +local np_speedx = { + offset = 0, + scale = 1, + spread = {x = TSCALE, y = TSCALE, z = TSCALE}, + seed = 911923, + octaves = 1, + persist = 0, + lacunarity = 2, +} + +local np_speedz = { + offset = 0, + scale = 1, + spread = {x = TSCALE, y = TSCALE, z = TSCALE}, + seed = 5728, + octaves = 1, + persist = 0, + lacunarity = 2, +} + +-- End parameters + + +-- Initialise noise objects to nil + +local nobj_density = nil +local nobj_thickness = nil +local nobj_speedx = nil +local nobj_speedz = nil + + +-- Update clouds function + +local function rangelim(value, lower, upper) + return math.min(math.max(value, lower), upper) +end + +local os_time_0 = os.time() +local t_offset = math.random(0, 300000) + +local function update_clouds() + -- Time in seconds. + -- Add random time offset to avoid identical behaviour each server session. + local time = os.difftime(os.time(), os_time_0) - t_offset + + nobj_density = nobj_density or minetest.get_perlin(np_density) + nobj_thickness = nobj_thickness or minetest.get_perlin(np_thickness) + nobj_speedx = nobj_speedx or minetest.get_perlin(np_speedx) + nobj_speedz = nobj_speedz or minetest.get_perlin(np_speedz) + + local n_density = nobj_density:get_2d({x = time, y = 0}) -- 0 to 1 + local n_thickness = nobj_thickness:get_2d({x = time, y = 0}) -- 0 to 1 + local n_speedx = nobj_speedx:get_2d({x = time, y = 0}) -- -1 to 1 + local n_speedz = nobj_speedz:get_2d({x = time, y = 0}) -- -1 to 1 + + for _, player in ipairs(minetest.get_connected_players()) do + -- Fallback to mid-value 50 for very old worlds + local humid = minetest.get_humidity(player:get_pos()) or 50 + -- Default and classic density value is 0.4, make this happen + -- at humidity midvalue 50 when n_density is at midvalue 0.5. + -- density_max = 0.25 at humid = 0. + -- density_max = 0.8 at humid = 50. + -- density_max = 1.35 at humid = 100. + local density_max = 0.8 + ((humid - 50) / 50) * 0.55 + player:set_clouds({ + -- Range limit density_max to always have occasional + -- small scattered clouds at extreme low humidity. + density = rangelim(density_max, 0.2, 1.0) * n_density, + thickness = math.max(math.floor( + rangelim(32 * humid / 100, 8, 32) * n_thickness + ), 2), + speed = {x = n_speedx * 4, z = n_speedz * 4}, + }) + end +end + + +local function cyclic_update() + update_clouds() + minetest.after(CYCLE, cyclic_update) +end + + +minetest.after(0, cyclic_update) + + +-- Update on player join to instantly alter clouds from the default + +minetest.register_on_joinplayer(function(player) + update_clouds() +end) diff --git a/mods/weather/license.txt b/mods/weather/license.txt new file mode 100644 index 00000000..33baa06d --- /dev/null +++ b/mods/weather/license.txt @@ -0,0 +1,24 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2019 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/weather/mod.conf b/mods/weather/mod.conf new file mode 100644 index 00000000..436ce678 --- /dev/null +++ b/mods/weather/mod.conf @@ -0,0 +1,2 @@ +name = weather +description = Minetest Game mod: weather diff --git a/willow/init.lua b/mods/willow/init.lua similarity index 100% rename from willow/init.lua rename to mods/willow/init.lua diff --git a/willow/locale/willow.es.tr b/mods/willow/locale/willow.es.tr similarity index 100% rename from willow/locale/willow.es.tr rename to mods/willow/locale/willow.es.tr diff --git a/willow/mod.conf b/mods/willow/mod.conf similarity index 100% rename from willow/mod.conf rename to mods/willow/mod.conf diff --git a/willow/schematics/willow.lua b/mods/willow/schematics/willow.lua similarity index 100% rename from willow/schematics/willow.lua rename to mods/willow/schematics/willow.lua diff --git a/willow/schematics/willow.mts b/mods/willow/schematics/willow.mts similarity index 100% rename from willow/schematics/willow.mts rename to mods/willow/schematics/willow.mts diff --git a/willow/textures/willow_leaves.png b/mods/willow/textures/willow_leaves.png similarity index 100% rename from willow/textures/willow_leaves.png rename to mods/willow/textures/willow_leaves.png diff --git a/willow/textures/willow_sapling.png b/mods/willow/textures/willow_sapling.png similarity index 100% rename from willow/textures/willow_sapling.png rename to mods/willow/textures/willow_sapling.png diff --git a/willow/textures/willow_trunk.png b/mods/willow/textures/willow_trunk.png similarity index 100% rename from willow/textures/willow_trunk.png rename to mods/willow/textures/willow_trunk.png diff --git a/willow/textures/willow_trunk_top.png b/mods/willow/textures/willow_trunk_top.png similarity index 100% rename from willow/textures/willow_trunk_top.png rename to mods/willow/textures/willow_trunk_top.png diff --git a/willow/textures/willow_wood.png b/mods/willow/textures/willow_wood.png similarity index 100% rename from willow/textures/willow_wood.png rename to mods/willow/textures/willow_wood.png diff --git a/windmill/README.md b/mods/windmill/README.md similarity index 100% rename from windmill/README.md rename to mods/windmill/README.md diff --git a/windmill/init.lua b/mods/windmill/init.lua similarity index 100% rename from windmill/init.lua rename to mods/windmill/init.lua diff --git a/windmill/textures/windmill.png b/mods/windmill/textures/windmill.png similarity index 100% rename from windmill/textures/windmill.png rename to mods/windmill/textures/windmill.png diff --git a/windmill/textures/windmill_3blade_ccw.png b/mods/windmill/textures/windmill_3blade_ccw.png similarity index 100% rename from windmill/textures/windmill_3blade_ccw.png rename to mods/windmill/textures/windmill_3blade_ccw.png diff --git a/windmill/textures/windmill_3blade_cw.png b/mods/windmill/textures/windmill_3blade_cw.png similarity index 100% rename from windmill/textures/windmill_3blade_cw.png rename to mods/windmill/textures/windmill_3blade_cw.png diff --git a/windmill/textures/windmill_3blade_inv.png b/mods/windmill/textures/windmill_3blade_inv.png similarity index 100% rename from windmill/textures/windmill_3blade_inv.png rename to mods/windmill/textures/windmill_3blade_inv.png diff --git a/windmill/textures/windmill_4blade_inv.png b/mods/windmill/textures/windmill_4blade_inv.png similarity index 100% rename from windmill/textures/windmill_4blade_inv.png rename to mods/windmill/textures/windmill_4blade_inv.png diff --git a/windmill/textures/windmill_farm_ccw.png b/mods/windmill/textures/windmill_farm_ccw.png similarity index 100% rename from windmill/textures/windmill_farm_ccw.png rename to mods/windmill/textures/windmill_farm_ccw.png diff --git a/windmill/textures/windmill_farm_cw.png b/mods/windmill/textures/windmill_farm_cw.png similarity index 100% rename from windmill/textures/windmill_farm_cw.png rename to mods/windmill/textures/windmill_farm_cw.png diff --git a/windmill/textures/windmill_farm_inv.png b/mods/windmill/textures/windmill_farm_inv.png similarity index 100% rename from windmill/textures/windmill_farm_inv.png rename to mods/windmill/textures/windmill_farm_inv.png diff --git a/windmill/textures/windmill_inv.png b/mods/windmill/textures/windmill_inv.png similarity index 100% rename from windmill/textures/windmill_inv.png rename to mods/windmill/textures/windmill_inv.png diff --git a/windmill/textures/windmill_reverse.png b/mods/windmill/textures/windmill_reverse.png similarity index 100% rename from windmill/textures/windmill_reverse.png rename to mods/windmill/textures/windmill_reverse.png diff --git a/windmill/textures/windmill_wooden_ccw.png b/mods/windmill/textures/windmill_wooden_ccw.png similarity index 100% rename from windmill/textures/windmill_wooden_ccw.png rename to mods/windmill/textures/windmill_wooden_ccw.png diff --git a/windmill/textures/windmill_wooden_ccw_with_sails.png b/mods/windmill/textures/windmill_wooden_ccw_with_sails.png similarity index 100% rename from windmill/textures/windmill_wooden_ccw_with_sails.png rename to mods/windmill/textures/windmill_wooden_ccw_with_sails.png diff --git a/windmill/textures/windmill_wooden_cw.png b/mods/windmill/textures/windmill_wooden_cw.png similarity index 100% rename from windmill/textures/windmill_wooden_cw.png rename to mods/windmill/textures/windmill_wooden_cw.png diff --git a/windmill/textures/windmill_wooden_cw_with_sails.png b/mods/windmill/textures/windmill_wooden_cw_with_sails.png similarity index 100% rename from windmill/textures/windmill_wooden_cw_with_sails.png rename to mods/windmill/textures/windmill_wooden_cw_with_sails.png diff --git a/windmill/textures/windmill_wooden_inv.png b/mods/windmill/textures/windmill_wooden_inv.png similarity index 100% rename from windmill/textures/windmill_wooden_inv.png rename to mods/windmill/textures/windmill_wooden_inv.png diff --git a/windmill/textures/windmill_wooden_no_sails_inv.png b/mods/windmill/textures/windmill_wooden_no_sails_inv.png similarity index 100% rename from windmill/textures/windmill_wooden_no_sails_inv.png rename to mods/windmill/textures/windmill_wooden_no_sails_inv.png diff --git a/woodsoils/generating.lua b/mods/woodsoils/generating.lua similarity index 100% rename from woodsoils/generating.lua rename to mods/woodsoils/generating.lua diff --git a/woodsoils/init.lua b/mods/woodsoils/init.lua similarity index 100% rename from woodsoils/init.lua rename to mods/woodsoils/init.lua diff --git a/woodsoils/locale/template.txt b/mods/woodsoils/locale/template.txt similarity index 100% rename from woodsoils/locale/template.txt rename to mods/woodsoils/locale/template.txt diff --git a/woodsoils/locale/woodsoils.fr.tr b/mods/woodsoils/locale/woodsoils.fr.tr similarity index 100% rename from woodsoils/locale/woodsoils.fr.tr rename to mods/woodsoils/locale/woodsoils.fr.tr diff --git a/woodsoils/mod.conf b/mods/woodsoils/mod.conf similarity index 100% rename from woodsoils/mod.conf rename to mods/woodsoils/mod.conf diff --git a/woodsoils/nodes.lua b/mods/woodsoils/nodes.lua similarity index 100% rename from woodsoils/nodes.lua rename to mods/woodsoils/nodes.lua diff --git a/woodsoils/textures/credit_textures.txt b/mods/woodsoils/textures/credit_textures.txt similarity index 100% rename from woodsoils/textures/credit_textures.txt rename to mods/woodsoils/textures/credit_textures.txt diff --git a/woodsoils/textures/not in use/woodsoils.png b/mods/woodsoils/textures/not in use/woodsoils.png similarity index 100% rename from woodsoils/textures/not in use/woodsoils.png rename to mods/woodsoils/textures/not in use/woodsoils.png diff --git a/woodsoils/textures/woodsoils_ground.png b/mods/woodsoils/textures/woodsoils_ground.png similarity index 100% rename from woodsoils/textures/woodsoils_ground.png rename to mods/woodsoils/textures/woodsoils_ground.png diff --git a/woodsoils/textures/woodsoils_ground_cover.png b/mods/woodsoils/textures/woodsoils_ground_cover.png similarity index 100% rename from woodsoils/textures/woodsoils_ground_cover.png rename to mods/woodsoils/textures/woodsoils_ground_cover.png diff --git a/woodsoils/textures/woodsoils_ground_cover2.png b/mods/woodsoils/textures/woodsoils_ground_cover2.png similarity index 100% rename from woodsoils/textures/woodsoils_ground_cover2.png rename to mods/woodsoils/textures/woodsoils_ground_cover2.png diff --git a/woodsoils/textures/woodsoils_ground_cover_side.png b/mods/woodsoils/textures/woodsoils_ground_cover_side.png similarity index 100% rename from woodsoils/textures/woodsoils_ground_cover_side.png rename to mods/woodsoils/textures/woodsoils_ground_cover_side.png diff --git a/woodsoils/textures/woodsoils_ground_cover_side2.png b/mods/woodsoils/textures/woodsoils_ground_cover_side2.png similarity index 100% rename from woodsoils/textures/woodsoils_ground_cover_side2.png rename to mods/woodsoils/textures/woodsoils_ground_cover_side2.png diff --git a/woodsoils/textures/woodsoils_ground_side.png b/mods/woodsoils/textures/woodsoils_ground_side.png similarity index 100% rename from woodsoils/textures/woodsoils_ground_side.png rename to mods/woodsoils/textures/woodsoils_ground_side.png diff --git a/mods/wool/README.txt b/mods/wool/README.txt new file mode 100644 index 00000000..a66677dd --- /dev/null +++ b/mods/wool/README.txt @@ -0,0 +1,16 @@ +Minetest Game mod: wool +======================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +Cisoun (CC BY-SA 3.0): + wool_black.png wool_brown.png wool_dark_green.png wool_green.png + wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png + wool_blue.png wool_cyan.png wool_dark_grey.png wool_grey.png + wool_orange.png wool_red.png wool_white.png diff --git a/mods/wool/init.lua b/mods/wool/init.lua new file mode 100644 index 00000000..4cf7dc3a --- /dev/null +++ b/mods/wool/init.lua @@ -0,0 +1,52 @@ +-- wool/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("wool") + +local dyes = dye.dyes + +for i = 1, #dyes do + local name, desc = unpack(dyes[i]) + + minetest.register_node("wool:" .. name, { + description = S(desc .. " Wool"), + tiles = {"wool_" .. name .. ".png"}, + is_ground_content = false, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, + flammable = 3, wool = 1}, + sounds = default.node_sound_defaults(), + }) + + minetest.register_craft{ + type = "shapeless", + output = "wool:" .. name, + recipe = {"group:dye,color_" .. name, "group:wool"}, + } +end + +-- Legacy +-- Backwards compatibility with jordach's 16-color wool mod +minetest.register_alias("wool:dark_blue", "wool:blue") +minetest.register_alias("wool:gold", "wool:yellow") + +-- Dummy calls to S() to allow translation scripts to detect the strings. +-- To update this run: +-- for _,e in ipairs(dye.dyes) do print(("S(%q)"):format(e[2].." Wool")) end + +--[[ +S("White Wool") +S("Grey Wool") +S("Dark Grey Wool") +S("Black Wool") +S("Violet Wool") +S("Blue Wool") +S("Cyan Wool") +S("Dark Green Wool") +S("Green Wool") +S("Yellow Wool") +S("Brown Wool") +S("Orange Wool") +S("Red Wool") +S("Magenta Wool") +S("Pink Wool") +--]] diff --git a/mods/wool/license.txt b/mods/wool/license.txt new file mode 100644 index 00000000..93101636 --- /dev/null +++ b/mods/wool/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Cisoun + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/wool/locale/template.txt b/mods/wool/locale/template.txt new file mode 100644 index 00000000..316cd2c0 --- /dev/null +++ b/mods/wool/locale/template.txt @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool= +Grey Wool= +Dark Grey Wool= +Black Wool= +Violet Wool= +Blue Wool= +Cyan Wool= +Dark Green Wool= +Green Wool= +Yellow Wool= +Brown Wool= +Orange Wool= +Red Wool= +Magenta Wool= +Pink Wool= diff --git a/mods/wool/locale/wool.de.tr b/mods/wool/locale/wool.de.tr new file mode 100644 index 00000000..9b6b8ab8 --- /dev/null +++ b/mods/wool/locale/wool.de.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Weiße Wolle +Grey Wool=Graue Wolle +Dark Grey Wool=Dunkelgraue Wolle +Black Wool=Schwarze Wolle +Violet Wool=Violette Wolle +Blue Wool=Blaue Wolle +Cyan Wool=Türkise Wolle +Dark Green Wool=Dunkelgrüne Wolle +Green Wool=Grüne Wolle +Yellow Wool=Gelbe Wolle +Brown Wool=Braune Wolle +Orange Wool=Orange Wolle +Red Wool=Rote Wolle +Magenta Wool=Magenta Wolle +Pink Wool=Rosa Wolle diff --git a/mods/wool/locale/wool.es.tr b/mods/wool/locale/wool.es.tr new file mode 100644 index 00000000..ac155920 --- /dev/null +++ b/mods/wool/locale/wool.es.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Lana blanca +Grey Wool=Lana gris +Dark Grey Wool=Lana gris oscuro +Black Wool=Lana negra +Violet Wool=Lana violeta +Blue Wool=Lana azul +Cyan Wool=Lana cián +Dark Green Wool=Lana verde oscuro +Green Wool=Lana verde +Yellow Wool=Lana amarilla +Brown Wool=Lana marrón +Orange Wool=Lana naranja +Red Wool=Lana roja +Magenta Wool=Lana magenta +Pink Wool=Lana rosa diff --git a/mods/wool/locale/wool.fr.tr b/mods/wool/locale/wool.fr.tr new file mode 100644 index 00000000..48a60a7e --- /dev/null +++ b/mods/wool/locale/wool.fr.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Laine blanche +Grey Wool=Laine grise +Dark Grey Wool=Laine grise foncée +Black Wool=Laine noire +Violet Wool=Laine violette +Blue Wool=Laine bleue +Cyan Wool=Laine cyan +Dark Green Wool=Laine verte foncée +Green Wool=Laine verte +Yellow Wool=Laine jaune +Brown Wool=Laine marron +Orange Wool=Laine orange +Red Wool=Laine rouge +Magenta Wool=Laine magenta +Pink Wool=Laine rose diff --git a/mods/wool/locale/wool.id.tr b/mods/wool/locale/wool.id.tr new file mode 100644 index 00000000..2448e436 --- /dev/null +++ b/mods/wool/locale/wool.id.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Wol Putih +Grey Wool=Wol Abu +Dark Grey Wool=Wol Abu Tua +Black Wool=Wol Hitam +Violet Wool=Wol Ungu +Blue Wool=Wol Biru +Cyan Wool=Wol Sian +Dark Green Wool=Wol Hijau Tua +Green Wool=Wol Hijau +Yellow Wool=Wol Kuning +Brown Wool=Wol Cokelat +Orange Wool=Wol Oranye +Red Wool=Wol Merah +Magenta Wool=Wol Magenta +Pink Wool=Wol Merah Jambu diff --git a/mods/wool/locale/wool.it.tr b/mods/wool/locale/wool.it.tr new file mode 100644 index 00000000..8108f2fc --- /dev/null +++ b/mods/wool/locale/wool.it.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Lana bianca +Grey Wool=Lana grigia +Dark Grey Wool=Lana grigia scura +Black Wool=Lana nera +Violet Wool=Lana viola +Blue Wool=Lana blu +Cyan Wool=Lana ciano +Dark Green Wool=Lana verde scura +Green Wool=Lana verde +Yellow Wool=Lana gialla +Brown Wool=Lana marrone +Orange Wool=Lana arancione +Red Wool=Lana rossa +Magenta Wool=Lana magenta +Pink Wool=Lana rosa diff --git a/mods/wool/locale/wool.jbo.tr b/mods/wool/locale/wool.jbo.tr new file mode 100644 index 00000000..4bf44ecf --- /dev/null +++ b/mods/wool/locale/wool.jbo.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=lo blabi sunla +Grey Wool=lo grusi sunla +Dark Grey Wool=lo xekri grusi sunla +Black Wool=lo xekri sunla +Violet Wool=lo zirpu sunla +Blue Wool=lo blanu sunla +Cyan Wool=lo cicna sunla +Dark Green Wool=lo xekri crino sunla +Green Wool=lo crino sunla +Yellow Wool=lo pelxu sunla +Brown Wool=lo bunre sunla +Orange Wool=lo narju sunla +Red Wool=lo xunre sunla +Magenta Wool=lo nukni sunla +Pink Wool=lo xunblabi sunla diff --git a/mods/wool/locale/wool.ms.tr b/mods/wool/locale/wool.ms.tr new file mode 100644 index 00000000..18b54805 --- /dev/null +++ b/mods/wool/locale/wool.ms.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Bulu Biri-Biri Putih +Grey Wool=Bulu Biri-Biri Kelabu +Dark Grey Wool=Bulu Biri-Biri Kelabu Gelap +Black Wool=Bulu Biri-Biri Hitam +Violet Wool=Bulu Biri-Biri Ungu +Blue Wool=Bulu Biri-Biri Biru +Cyan Wool=Bulu Biri-Biri Biru Kehijauan +Dark Green Wool=Bulu Biri-Biri Hijau Gelap +Green Wool=Bulu Biri-Biri Hijau +Yellow Wool=Bulu Biri-Biri Kuning +Brown Wool=Bulu Biri-Biri Perang +Orange Wool=Bulu Biri-Biri Jingga +Red Wool=Bulu Biri-Biri Merah +Magenta Wool=Bulu Biri-Biri Merah Lembayung +Pink Wool=Bulu Biri-Biri Merah Jambu diff --git a/mods/wool/locale/wool.pt_BR.tr b/mods/wool/locale/wool.pt_BR.tr new file mode 100644 index 00000000..7676191e --- /dev/null +++ b/mods/wool/locale/wool.pt_BR.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Lã Branca +Grey Wool=Lã Cinza +Dark Grey Wool=Lã Cinza-escuro +Black Wool=Lã Preta +Violet Wool=Lã Violeta +Blue Wool=Lã Azul +Cyan Wool=Lã Ciano +Dark Green Wool=Lã Verde-escuro +Green Wool=Lã Verde +Yellow Wool=Lã Amarela +Brown Wool=Lã Marrom +Orange Wool=Lã Laranja +Red Wool=Lã Vermelha +Magenta Wool=Lã Magenta +Pink Wool=Lã Rosa diff --git a/mods/wool/locale/wool.ru.tr b/mods/wool/locale/wool.ru.tr new file mode 100644 index 00000000..f5a98aa1 --- /dev/null +++ b/mods/wool/locale/wool.ru.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Белая Шерсть +Grey Wool=Серая Шерсть +Dark Grey Wool=Тёмно-Серая Шерсть +Black Wool=Чёрная Шерсть +Violet Wool=Фиолетовая Шерсть +Blue Wool=Синяя Шерсть +Cyan Wool=Голубая Шерсть +Dark Green Wool=Тёмно-Зелёная Шерсть +Green Wool=Зелёная Шерсть +Yellow Wool=Жёлтая Шерсть +Brown Wool=Коричневая Шерсть +Orange Wool=Оранжевая Шерсть +Red Wool=Красная Шерсть +Magenta Wool=Пурпурная Шерсть +Pink Wool=Розовая Шерсть diff --git a/mods/wool/locale/wool.se.tr b/mods/wool/locale/wool.se.tr new file mode 100644 index 00000000..e026ac4c --- /dev/null +++ b/mods/wool/locale/wool.se.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Vit Ull +Grey Wool=Grå Ull +Dark Grey Wool=Mörk Grå Ull +Black Wool=Svart Ull +Violet Wool=Violett Ull +Blue Wool=Blå Ull +Cyan Wool=Cyan Ull +Dark Green Wool=Mörk Grön Ull +Green Wool=Grön Ull +Yellow Wool=Gul Ull +Brown Wool=Brun Ull +Orange Wool=Orange Ull +Red Wool=Röd Ull +Magenta Wool=Magenta Ull +Pink Wool=Rosa Ull diff --git a/mods/wool/locale/wool.sk.tr b/mods/wool/locale/wool.sk.tr new file mode 100644 index 00000000..755370e8 --- /dev/null +++ b/mods/wool/locale/wool.sk.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Biela vlna +Grey Wool=Šedá vlna +Dark Grey Wool=Tmavošedá vlna +Black Wool=Čierna vlna +Violet Wool=Fialová vlna +Blue Wool=Modrá vlna +Cyan Wool=Tyrkysová vlna +Dark Green Wool=Tmavozelená vlna +Green Wool=Zelená vlna +Yellow Wool=Žltá vlna +Brown Wool=Hnedá vlna +Orange Wool=Oranžová vlna +Red Wool=Červená vlna +Magenta Wool=Purpurová vlna +Pink Wool=Ružová vlna diff --git a/mods/wool/locale/wool.zh_CN.tr b/mods/wool/locale/wool.zh_CN.tr new file mode 100644 index 00000000..caac9ee2 --- /dev/null +++ b/mods/wool/locale/wool.zh_CN.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=白羊毛 +Grey Wool=灰羊毛 +Dark Grey Wool=暗灰羊毛 +Black Wool=黑羊毛 +Violet Wool=紫羊毛 +Blue Wool=蓝羊毛 +Cyan Wool=青羊毛 +Dark Green Wool=暗绿羊毛 +Green Wool=绿羊毛 +Yellow Wool=黄羊毛 +Brown Wool=棕羊毛 +Orange Wool=橙羊毛 +Red Wool=红羊毛 +Magenta Wool=品红羊毛 +Pink Wool=粉红羊毛 diff --git a/mods/wool/locale/wool.zh_TW.tr b/mods/wool/locale/wool.zh_TW.tr new file mode 100644 index 00000000..290a1fed --- /dev/null +++ b/mods/wool/locale/wool.zh_TW.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=白羊毛 +Grey Wool=灰羊毛 +Dark Grey Wool=暗灰羊毛 +Black Wool=黑羊毛 +Violet Wool=紫羊毛 +Blue Wool=藍羊毛 +Cyan Wool=青羊毛 +Dark Green Wool=暗綠羊毛 +Green Wool=綠羊毛 +Yellow Wool=黃羊毛 +Brown Wool=棕羊毛 +Orange Wool=橙羊毛 +Red Wool=紅羊毛 +Magenta Wool=品紅羊毛 +Pink Wool=粉紅羊毛 diff --git a/mods/wool/mod.conf b/mods/wool/mod.conf new file mode 100644 index 00000000..a0ca3f0e --- /dev/null +++ b/mods/wool/mod.conf @@ -0,0 +1,3 @@ +name = wool +description = Minetest Game mod: wool +depends = default, dye diff --git a/mods/wool/textures/wool_black.png b/mods/wool/textures/wool_black.png new file mode 100644 index 00000000..700d439d Binary files /dev/null and b/mods/wool/textures/wool_black.png differ diff --git a/mods/wool/textures/wool_blue.png b/mods/wool/textures/wool_blue.png new file mode 100644 index 00000000..a0749867 Binary files /dev/null and b/mods/wool/textures/wool_blue.png differ diff --git a/mods/wool/textures/wool_brown.png b/mods/wool/textures/wool_brown.png new file mode 100644 index 00000000..2620dfdb Binary files /dev/null and b/mods/wool/textures/wool_brown.png differ diff --git a/mods/wool/textures/wool_cyan.png b/mods/wool/textures/wool_cyan.png new file mode 100644 index 00000000..395b6ac7 Binary files /dev/null and b/mods/wool/textures/wool_cyan.png differ diff --git a/mods/wool/textures/wool_dark_green.png b/mods/wool/textures/wool_dark_green.png new file mode 100644 index 00000000..0e73999e Binary files /dev/null and b/mods/wool/textures/wool_dark_green.png differ diff --git a/mods/wool/textures/wool_dark_grey.png b/mods/wool/textures/wool_dark_grey.png new file mode 100644 index 00000000..7253696e Binary files /dev/null and b/mods/wool/textures/wool_dark_grey.png differ diff --git a/mods/wool/textures/wool_green.png b/mods/wool/textures/wool_green.png new file mode 100644 index 00000000..dcb663be Binary files /dev/null and b/mods/wool/textures/wool_green.png differ diff --git a/mods/wool/textures/wool_grey.png b/mods/wool/textures/wool_grey.png new file mode 100644 index 00000000..2f4c3380 Binary files /dev/null and b/mods/wool/textures/wool_grey.png differ diff --git a/mods/wool/textures/wool_magenta.png b/mods/wool/textures/wool_magenta.png new file mode 100644 index 00000000..5c2c4a7a Binary files /dev/null and b/mods/wool/textures/wool_magenta.png differ diff --git a/mods/wool/textures/wool_orange.png b/mods/wool/textures/wool_orange.png new file mode 100644 index 00000000..a059f364 Binary files /dev/null and b/mods/wool/textures/wool_orange.png differ diff --git a/mods/wool/textures/wool_pink.png b/mods/wool/textures/wool_pink.png new file mode 100644 index 00000000..8e901407 Binary files /dev/null and b/mods/wool/textures/wool_pink.png differ diff --git a/mods/wool/textures/wool_red.png b/mods/wool/textures/wool_red.png new file mode 100644 index 00000000..da12ecff Binary files /dev/null and b/mods/wool/textures/wool_red.png differ diff --git a/mods/wool/textures/wool_violet.png b/mods/wool/textures/wool_violet.png new file mode 100644 index 00000000..d7d67831 Binary files /dev/null and b/mods/wool/textures/wool_violet.png differ diff --git a/mods/wool/textures/wool_white.png b/mods/wool/textures/wool_white.png new file mode 100644 index 00000000..88f1e2f5 Binary files /dev/null and b/mods/wool/textures/wool_white.png differ diff --git a/mods/wool/textures/wool_yellow.png b/mods/wool/textures/wool_yellow.png new file mode 100644 index 00000000..2b0f0489 Binary files /dev/null and b/mods/wool/textures/wool_yellow.png differ diff --git a/worldedit/code.lua b/mods/worldedit/code.lua similarity index 100% rename from worldedit/code.lua rename to mods/worldedit/code.lua diff --git a/worldedit/common.lua b/mods/worldedit/common.lua similarity index 100% rename from worldedit/common.lua rename to mods/worldedit/common.lua diff --git a/worldedit/compatibility.lua b/mods/worldedit/compatibility.lua similarity index 100% rename from worldedit/compatibility.lua rename to mods/worldedit/compatibility.lua diff --git a/worldedit/cuboid.lua b/mods/worldedit/cuboid.lua similarity index 100% rename from worldedit/cuboid.lua rename to mods/worldedit/cuboid.lua diff --git a/worldedit/init.lua b/mods/worldedit/init.lua similarity index 100% rename from worldedit/init.lua rename to mods/worldedit/init.lua diff --git a/worldedit/manipulations.lua b/mods/worldedit/manipulations.lua similarity index 100% rename from worldedit/manipulations.lua rename to mods/worldedit/manipulations.lua diff --git a/worldedit/mod.conf b/mods/worldedit/mod.conf similarity index 100% rename from worldedit/mod.conf rename to mods/worldedit/mod.conf diff --git a/worldedit/primitives.lua b/mods/worldedit/primitives.lua similarity index 100% rename from worldedit/primitives.lua rename to mods/worldedit/primitives.lua diff --git a/worldedit/serialization.lua b/mods/worldedit/serialization.lua similarity index 100% rename from worldedit/serialization.lua rename to mods/worldedit/serialization.lua diff --git a/worldedit/textures/worldedit_wand.png b/mods/worldedit/textures/worldedit_wand.png similarity index 100% rename from worldedit/textures/worldedit_wand.png rename to mods/worldedit/textures/worldedit_wand.png diff --git a/worldedit/visualization.lua b/mods/worldedit/visualization.lua similarity index 100% rename from worldedit/visualization.lua rename to mods/worldedit/visualization.lua diff --git a/worldedit_commands/cuboid.lua b/mods/worldedit_commands/cuboid.lua similarity index 100% rename from worldedit_commands/cuboid.lua rename to mods/worldedit_commands/cuboid.lua diff --git a/worldedit_commands/init.lua b/mods/worldedit_commands/init.lua similarity index 100% rename from worldedit_commands/init.lua rename to mods/worldedit_commands/init.lua diff --git a/worldedit_commands/mark.lua b/mods/worldedit_commands/mark.lua similarity index 100% rename from worldedit_commands/mark.lua rename to mods/worldedit_commands/mark.lua diff --git a/worldedit_commands/mod.conf b/mods/worldedit_commands/mod.conf similarity index 100% rename from worldedit_commands/mod.conf rename to mods/worldedit_commands/mod.conf diff --git a/worldedit_commands/safe.lua b/mods/worldedit_commands/safe.lua similarity index 100% rename from worldedit_commands/safe.lua rename to mods/worldedit_commands/safe.lua diff --git a/worldedit_commands/textures/worldedit_cube.png b/mods/worldedit_commands/textures/worldedit_cube.png similarity index 100% rename from worldedit_commands/textures/worldedit_cube.png rename to mods/worldedit_commands/textures/worldedit_cube.png diff --git a/worldedit_commands/textures/worldedit_pos1.png b/mods/worldedit_commands/textures/worldedit_pos1.png similarity index 100% rename from worldedit_commands/textures/worldedit_pos1.png rename to mods/worldedit_commands/textures/worldedit_pos1.png diff --git a/worldedit_commands/textures/worldedit_pos2.png b/mods/worldedit_commands/textures/worldedit_pos2.png similarity index 100% rename from worldedit_commands/textures/worldedit_pos2.png rename to mods/worldedit_commands/textures/worldedit_pos2.png diff --git a/worldedit_commands/wand.lua b/mods/worldedit_commands/wand.lua similarity index 100% rename from worldedit_commands/wand.lua rename to mods/worldedit_commands/wand.lua diff --git a/worldedit_gui/functionality.lua b/mods/worldedit_gui/functionality.lua similarity index 100% rename from worldedit_gui/functionality.lua rename to mods/worldedit_gui/functionality.lua diff --git a/worldedit_gui/init.lua b/mods/worldedit_gui/init.lua similarity index 100% rename from worldedit_gui/init.lua rename to mods/worldedit_gui/init.lua diff --git a/worldedit_gui/mod.conf b/mods/worldedit_gui/mod.conf similarity index 100% rename from worldedit_gui/mod.conf rename to mods/worldedit_gui/mod.conf diff --git a/worldedit_gui/textures/inventory_plus_worldedit_gui.png b/mods/worldedit_gui/textures/inventory_plus_worldedit_gui.png similarity index 100% rename from worldedit_gui/textures/inventory_plus_worldedit_gui.png rename to mods/worldedit_gui/textures/inventory_plus_worldedit_gui.png diff --git a/worldedit_gui/textures/worldedit_gui_unknown.png b/mods/worldedit_gui/textures/worldedit_gui_unknown.png similarity index 100% rename from worldedit_gui/textures/worldedit_gui_unknown.png rename to mods/worldedit_gui/textures/worldedit_gui_unknown.png diff --git a/worldedit_shortcommands/init.lua b/mods/worldedit_shortcommands/init.lua similarity index 100% rename from worldedit_shortcommands/init.lua rename to mods/worldedit_shortcommands/init.lua diff --git a/worldedit_shortcommands/mod.conf b/mods/worldedit_shortcommands/mod.conf similarity index 100% rename from worldedit_shortcommands/mod.conf rename to mods/worldedit_shortcommands/mod.conf diff --git a/mods/xpanes/README.txt b/mods/xpanes/README.txt new file mode 100644 index 00000000..0e34d232 --- /dev/null +++ b/mods/xpanes/README.txt @@ -0,0 +1,32 @@ +Minetest Game mod: xpanes +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by xyz (MIT) +BlockMen (MIT) +sofar (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +xyz (CC BY-SA 3.0): + All textures not mentioned below. + +Gambit (CC BY-SA 3.0): + xpanes_bar.png + +paramat (CC BY-SA 3.0): + xpanes_bar_top.png + +Krock (CC0 1.0): + xpanes_edge.png + +TumeniNodes (CC BY-SA 3.0): + xpanes_door_steel_bar.png + xpanes_item_steel_bar.png + xpanes_trapdoor_steel_bar.png + xpanes_trapdoor_steel_bar_side.png + xpanes_steel_bar_door_close.ogg + xpanes_steel_bar_door_open.ogg diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua new file mode 100644 index 00000000..a2398dab --- /dev/null +++ b/mods/xpanes/init.lua @@ -0,0 +1,257 @@ +-- xpanes/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("xpanes") + + +local function is_pane(pos) + return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0 +end + +local function connects_dir(pos, name, dir) + local aside = vector.add(pos, minetest.facedir_to_dir(dir)) + if is_pane(aside) then + return true + end + + local connects_to = minetest.registered_nodes[name].connects_to + if not connects_to then + return false + end + local list = minetest.find_nodes_in_area(aside, aside, connects_to) + + if #list > 0 then + return true + end + + return false +end + +local function swap(pos, node, name, param2) + if node.name == name and node.param2 == param2 then + return + end + + minetest.swap_node(pos, {name = name, param2 = param2}) +end + +local function update_pane(pos) + if not is_pane(pos) then + return + end + local node = minetest.get_node(pos) + local name = node.name + if name:sub(-5) == "_flat" then + name = name:sub(1, -6) + end + + local any = node.param2 + local c = {} + local count = 0 + for dir = 0, 3 do + c[dir] = connects_dir(pos, name, dir) + if c[dir] then + any = dir + count = count + 1 + end + end + + if count == 0 then + swap(pos, node, name .. "_flat", any) + elseif count == 1 then + swap(pos, node, name .. "_flat", (any + 1) % 4) + elseif count == 2 then + if (c[0] and c[2]) or (c[1] and c[3]) then + swap(pos, node, name .. "_flat", (any + 1) % 4) + else + swap(pos, node, name, 0) + end + else + swap(pos, node, name, 0) + end +end + +minetest.register_on_placenode(function(pos, node) + if minetest.get_item_group(node, "pane") then + update_pane(pos) + end + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +minetest.register_on_dignode(function(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +xpanes = {} +function xpanes.register_pane(name, def) + for i = 1, 15 do + minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat") + end + + local flatgroups = table.copy(def.groups) + flatgroups.pane = 1 + minetest.register_node(":xpanes:" .. name .. "_flat", { + description = def.description, + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + paramtype2 = "facedir", + tiles = { + def.textures[3], + def.textures[3], + def.textures[3], + def.textures[3], + def.textures[1], + def.textures[1] + }, + groups = flatgroups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + use_texture_alpha = def.use_texture_alpha and "blend" or "clip", + node_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + selection_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connect_sides = { "left", "right" }, + }) + + local groups = table.copy(def.groups) + groups.pane = 1 + groups.not_in_creative_inventory = 1 + minetest.register_node(":xpanes:" .. name, { + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + description = def.description, + tiles = { + def.textures[3], + def.textures[3], + def.textures[1] + }, + groups = groups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + use_texture_alpha = def.use_texture_alpha and "blend" or "clip", + node_box = { + type = "connected", + fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}}, + connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}}, + connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}}, + connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}}, + connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"}, + }) + + minetest.register_craft({ + output = "xpanes:" .. name .. "_flat 16", + recipe = def.recipe + }) +end + +xpanes.register_pane("pane", { + description = S("Glass Pane"), + textures = {"default_glass.png", "", "xpanes_edge.png"}, + inventory_image = "default_glass.png", + wield_image = "default_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3}, + recipe = { + {"default:glass", "default:glass", "default:glass"}, + {"default:glass", "default:glass", "default:glass"} + } +}) + +xpanes.register_pane("obsidian_pane", { + description = S("Obsidian Glass Pane"), + textures = {"default_obsidian_glass.png", "", "xpanes_edge_obsidian.png"}, + inventory_image = "default_obsidian_glass.png", + wield_image = "default_obsidian_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2, cracky=3}, + recipe = { + {"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass", "default:obsidian_glass"} + } +}) + +xpanes.register_pane("bar", { + description = S("Steel Bars"), + textures = {"xpanes_bar.png", "", "xpanes_bar_top.png"}, + inventory_image = "xpanes_bar.png", + wield_image = "xpanes_bar.png", + groups = {cracky=2}, + sounds = default.node_sound_metal_defaults(), + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + +minetest.register_lbm({ + name = "xpanes:gen2", + nodenames = {"group:pane"}, + action = function(pos, node) + update_pane(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end + end +}) + +-- Register steel bar doors and trapdoors + +if minetest.get_modpath("doors") then + + doors.register("xpanes:door_steel_bar", { + tiles = {{name = "xpanes_door_steel_bar.png", backface_culling = true}}, + description = S("Steel Bar Door"), + inventory_image = "xpanes_item_steel_bar.png", + protected = true, + groups = {node = 1, cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), + sound_open = "xpanes_steel_bar_door_open", + sound_close = "xpanes_steel_bar_door_close", + recipe = { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + }, + }) + + doors.register_trapdoor("xpanes:trapdoor_steel_bar", { + description = S("Steel Bar Trapdoor"), + inventory_image = "xpanes_trapdoor_steel_bar.png", + wield_image = "xpanes_trapdoor_steel_bar.png", + tile_front = "xpanes_trapdoor_steel_bar.png", + tile_side = "xpanes_trapdoor_steel_bar_side.png", + protected = true, + groups = {node = 1, cracky = 1, level = 2, door = 1}, + sounds = default.node_sound_metal_defaults(), + sound_open = "xpanes_steel_bar_door_open", + sound_close = "xpanes_steel_bar_door_close", + }) + + minetest.register_craft({ + output = "xpanes:trapdoor_steel_bar", + recipe = { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + } + }) +end diff --git a/mods/xpanes/license.txt b/mods/xpanes/license.txt new file mode 100644 index 00000000..7e922b9a --- /dev/null +++ b/mods/xpanes/license.txt @@ -0,0 +1,65 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 xyz +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2016 Auke Kok +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 xyz +Copyright (C) 2013-2016 Gambit +Copyright (C) 2016 paramat +Copyright (C) 2019 TumeniNodes + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/xpanes/locale/template.txt b/mods/xpanes/locale/template.txt new file mode 100644 index 00000000..08dfbbae --- /dev/null +++ b/mods/xpanes/locale/template.txt @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane= +Obsidian Glass Pane= +Steel Bars= +Steel Bar Door= +Steel Bar Trapdoor= diff --git a/mods/xpanes/locale/xpanes.de.tr b/mods/xpanes/locale/xpanes.de.tr new file mode 100644 index 00000000..9852753f --- /dev/null +++ b/mods/xpanes/locale/xpanes.de.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Glasscheibe +Obsidian Glass Pane=Obsidianglasscheibe +Steel Bars=Stahlgitter +Steel Bar Door=Stahlgittertür +Steel Bar Trapdoor=Stahlgitterfalltür diff --git a/mods/xpanes/locale/xpanes.es.tr b/mods/xpanes/locale/xpanes.es.tr new file mode 100644 index 00000000..9902be70 --- /dev/null +++ b/mods/xpanes/locale/xpanes.es.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panel de vidrio +Obsidian Glass Pane=Panel de vidrio de obsidiana +Steel Bars=Barras de acero +Steel Bar Door=Puerta de barras de acero +Steel Bar Trapdoor=Trampilla de barras de acero diff --git a/mods/xpanes/locale/xpanes.fr.tr b/mods/xpanes/locale/xpanes.fr.tr new file mode 100644 index 00000000..c7517996 --- /dev/null +++ b/mods/xpanes/locale/xpanes.fr.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panneau de verre +Obsidian Glass Pane=Panneau de verre d'obsidienne +Steel Bars=Barreaux d'acier +Steel Bar Door=Porte en barreaux d'acier +Steel Bar Trapdoor=Trappe en barreaux d'acier diff --git a/mods/xpanes/locale/xpanes.id.tr b/mods/xpanes/locale/xpanes.id.tr new file mode 100644 index 00000000..906cc0f8 --- /dev/null +++ b/mods/xpanes/locale/xpanes.id.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panel Kaca +Obsidian Glass Pane=Panel Kaca Obsidian +Steel Bars=Batang Baja +Steel Bar Door=Pintu Batang Baja +Steel Bar Trapdoor=Pintu Kolong Batang Baja diff --git a/mods/xpanes/locale/xpanes.it.tr b/mods/xpanes/locale/xpanes.it.tr new file mode 100644 index 00000000..63c8b62a --- /dev/null +++ b/mods/xpanes/locale/xpanes.it.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Pannello di vetro +Obsidian Glass Pane=Pannello di vetro d'ossidiana +Steel Bars=Sbarre d'acciaio +Steel Bar Door=Porta con sbarre d'acciaio +Steel Bar Trapdoor=Botola con sbarre d'acciaio diff --git a/mods/xpanes/locale/xpanes.jbo.tr b/mods/xpanes/locale/xpanes.jbo.tr new file mode 100644 index 00000000..333b5313 --- /dev/null +++ b/mods/xpanes/locale/xpanes.jbo.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=lo blaci plita +Obsidian Glass Pane=lo je'erma'ablaci blaci plita +Steel Bars=lo gasta garna +Steel Bar Door=lo gasta garna vrogai +Steel Bar Trapdoor=lo gasta garna lolvrogai diff --git a/mods/xpanes/locale/xpanes.ms.tr b/mods/xpanes/locale/xpanes.ms.tr new file mode 100644 index 00000000..dedfefa8 --- /dev/null +++ b/mods/xpanes/locale/xpanes.ms.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Kaca Tingkap +Obsidian Glass Pane=Kaca Tingkap Obsidia +Steel Bars=Jeriji Keluli +Steel Bar Door=Pintu Jeriji Keluli +Steel Bar Trapdoor=Pintu Kolong Jeriji Keluli diff --git a/mods/xpanes/locale/xpanes.pt_BR.tr b/mods/xpanes/locale/xpanes.pt_BR.tr new file mode 100644 index 00000000..c1ca3b26 --- /dev/null +++ b/mods/xpanes/locale/xpanes.pt_BR.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Painel de Vidro +Obsidian Glass Pane=Painel de Vidro de Obsidiana +Steel Bars=Barras de Aço +Steel Bar Door=Porta de Barras de Aço +Steel Bar Trapdoor=Alçapão de Barras de Aço diff --git a/mods/xpanes/locale/xpanes.ru.tr b/mods/xpanes/locale/xpanes.ru.tr new file mode 100644 index 00000000..166c62de --- /dev/null +++ b/mods/xpanes/locale/xpanes.ru.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Стеклянная Панель +Obsidian Glass Pane=Стеклянная Панель Из Обсидиана +Steel Bars=Стальная Решётка +Steel Bar Door=Стальная Решётчатая Дверь +Steel Bar Trapdoor=Стальной Решётчатый Люк diff --git a/mods/xpanes/locale/xpanes.se.tr b/mods/xpanes/locale/xpanes.se.tr new file mode 100644 index 00000000..ff01d2a4 --- /dev/null +++ b/mods/xpanes/locale/xpanes.se.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Glasruta +Obsidian Glass Pane=Obsidian Glasruta +Steel Bars=Stålgaller +Steel Bar Door=Stålgallers Dörr +Steel Bar Trapdoor=Stålgallers Fallucka diff --git a/mods/xpanes/locale/xpanes.sk.tr b/mods/xpanes/locale/xpanes.sk.tr new file mode 100644 index 00000000..0d07e08a --- /dev/null +++ b/mods/xpanes/locale/xpanes.sk.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Tabuľa skla +Obsidian Glass Pane=Tabuľa obsidiánového skla +Steel Bars=Oceľové mreže +Steel Bar Door=Dvere z oceľových mreží +Steel Bar Trapdoor=Padajúce dvere z oceľových mreží diff --git a/mods/xpanes/locale/xpanes.zh_CN.tr b/mods/xpanes/locale/xpanes.zh_CN.tr new file mode 100644 index 00000000..7b1871c9 --- /dev/null +++ b/mods/xpanes/locale/xpanes.zh_CN.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=玻璃窗 +Obsidian Glass Pane=黑曜石玻璃窗 +Steel Bars=钢筋 +Steel Bar Door=钢筋门 +Steel Bar Trapdoor=钢筋活板门 diff --git a/mods/xpanes/locale/xpanes.zh_TW.tr b/mods/xpanes/locale/xpanes.zh_TW.tr new file mode 100644 index 00000000..97ee7a28 --- /dev/null +++ b/mods/xpanes/locale/xpanes.zh_TW.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=玻璃窗 +Obsidian Glass Pane=黑曜石玻璃窗 +Steel Bars=鋼筋 +Steel Bar Door=鋼筋門 +Steel Bar Trapdoor=鋼筋活板門 diff --git a/mods/xpanes/mod.conf b/mods/xpanes/mod.conf new file mode 100644 index 00000000..dcb07167 --- /dev/null +++ b/mods/xpanes/mod.conf @@ -0,0 +1,4 @@ +name = xpanes +description = Minetest Game mod: xpanes +depends = default +optional_depends = doors diff --git a/mods/xpanes/sounds/xpanes_steel_bar_door_close.ogg b/mods/xpanes/sounds/xpanes_steel_bar_door_close.ogg new file mode 100644 index 00000000..0620bfb8 Binary files /dev/null and b/mods/xpanes/sounds/xpanes_steel_bar_door_close.ogg differ diff --git a/mods/xpanes/sounds/xpanes_steel_bar_door_open.ogg b/mods/xpanes/sounds/xpanes_steel_bar_door_open.ogg new file mode 100644 index 00000000..d159be9b Binary files /dev/null and b/mods/xpanes/sounds/xpanes_steel_bar_door_open.ogg differ diff --git a/mods/xpanes/textures/xpanes_bar.png b/mods/xpanes/textures/xpanes_bar.png new file mode 100644 index 00000000..3ea62a93 Binary files /dev/null and b/mods/xpanes/textures/xpanes_bar.png differ diff --git a/mods/xpanes/textures/xpanes_bar_top.png b/mods/xpanes/textures/xpanes_bar_top.png new file mode 100644 index 00000000..2955d72c Binary files /dev/null and b/mods/xpanes/textures/xpanes_bar_top.png differ diff --git a/mods/xpanes/textures/xpanes_door_steel_bar.png b/mods/xpanes/textures/xpanes_door_steel_bar.png new file mode 100644 index 00000000..39f45c30 Binary files /dev/null and b/mods/xpanes/textures/xpanes_door_steel_bar.png differ diff --git a/mods/xpanes/textures/xpanes_edge.png b/mods/xpanes/textures/xpanes_edge.png new file mode 100644 index 00000000..5768d663 Binary files /dev/null and b/mods/xpanes/textures/xpanes_edge.png differ diff --git a/mods/xpanes/textures/xpanes_edge_obsidian.png b/mods/xpanes/textures/xpanes_edge_obsidian.png new file mode 100644 index 00000000..abdd14e3 Binary files /dev/null and b/mods/xpanes/textures/xpanes_edge_obsidian.png differ diff --git a/mods/xpanes/textures/xpanes_item_steel_bar.png b/mods/xpanes/textures/xpanes_item_steel_bar.png new file mode 100644 index 00000000..46e4d9c6 Binary files /dev/null and b/mods/xpanes/textures/xpanes_item_steel_bar.png differ diff --git a/mods/xpanes/textures/xpanes_trapdoor_steel_bar.png b/mods/xpanes/textures/xpanes_trapdoor_steel_bar.png new file mode 100644 index 00000000..a56c5ee3 Binary files /dev/null and b/mods/xpanes/textures/xpanes_trapdoor_steel_bar.png differ diff --git a/mods/xpanes/textures/xpanes_trapdoor_steel_bar_side.png b/mods/xpanes/textures/xpanes_trapdoor_steel_bar_side.png new file mode 100644 index 00000000..a71231e8 Binary files /dev/null and b/mods/xpanes/textures/xpanes_trapdoor_steel_bar_side.png differ diff --git a/youngtrees/init.lua b/mods/youngtrees/init.lua similarity index 100% rename from youngtrees/init.lua rename to mods/youngtrees/init.lua diff --git a/youngtrees/locale/template.txt b/mods/youngtrees/locale/template.txt similarity index 100% rename from youngtrees/locale/template.txt rename to mods/youngtrees/locale/template.txt diff --git a/youngtrees/locale/youngtrees.fr.tr b/mods/youngtrees/locale/youngtrees.fr.tr similarity index 100% rename from youngtrees/locale/youngtrees.fr.tr rename to mods/youngtrees/locale/youngtrees.fr.tr diff --git a/youngtrees/mod.conf b/mods/youngtrees/mod.conf similarity index 100% rename from youngtrees/mod.conf rename to mods/youngtrees/mod.conf diff --git a/youngtrees/textures/bamboo.png b/mods/youngtrees/textures/bamboo.png similarity index 100% rename from youngtrees/textures/bamboo.png rename to mods/youngtrees/textures/bamboo.png diff --git a/youngtrees/textures/unused/sapling.png b/mods/youngtrees/textures/unused/sapling.png similarity index 100% rename from youngtrees/textures/unused/sapling.png rename to mods/youngtrees/textures/unused/sapling.png diff --git a/youngtrees/textures/unused/sapling16x.png b/mods/youngtrees/textures/unused/sapling16x.png similarity index 100% rename from youngtrees/textures/unused/sapling16x.png rename to mods/youngtrees/textures/unused/sapling16x.png diff --git a/youngtrees/textures/youngtree16xa.png b/mods/youngtrees/textures/youngtree16xa.png similarity index 100% rename from youngtrees/textures/youngtree16xa.png rename to mods/youngtrees/textures/youngtree16xa.png diff --git a/youngtrees/textures/youngtree16xb.png b/mods/youngtrees/textures/youngtree16xb.png similarity index 100% rename from youngtrees/textures/youngtree16xb.png rename to mods/youngtrees/textures/youngtree16xb.png diff --git a/youngtrees/textures/youngtree16xc.png b/mods/youngtrees/textures/youngtree16xc.png similarity index 100% rename from youngtrees/textures/youngtree16xc.png rename to mods/youngtrees/textures/youngtree16xc.png diff --git a/youngtrees/textures/youngtree2branch.png b/mods/youngtrees/textures/youngtree2branch.png similarity index 100% rename from youngtrees/textures/youngtree2branch.png rename to mods/youngtrees/textures/youngtree2branch.png diff --git a/moreblocks/config.lua b/moreblocks/config.lua deleted file mode 100644 index 34aa8af7..00000000 --- a/moreblocks/config.lua +++ /dev/null @@ -1,29 +0,0 @@ ---[[ -More Blocks: configuration handling - -Copyright © 2011-2020 Hugo Locurcio and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -moreblocks.config = {} - -local function getbool_default(setting, default) - local value = minetest.settings:get_bool(setting) - if value == nil then - value = default - end - return value -end - -local function setting(settingtype, name, default) - if settingtype == "bool" then - moreblocks.config[name] = - getbool_default("moreblocks." .. name, default) - else - moreblocks.config[name] = - minetest.settings:get("moreblocks." .. name) or default - end -end - --- Show stairs/slabs/panels/microblocks in creative inventory (true or false): -setting("bool", "stairsplus_in_creative_inventory", false) diff --git a/moreblocks/settingtypes.txt b/moreblocks/settingtypes.txt deleted file mode 100644 index e60f3942..00000000 --- a/moreblocks/settingtypes.txt +++ /dev/null @@ -1 +0,0 @@ -moreblocks.stairsplus_in_creative_inventory (Display Stairs+ nodes in creative inventory) bool false diff --git a/player_textures/textures/player_Evergreen.png b/player_textures/textures/player_Evergreen.png deleted file mode 100644 index 39b9bee5..00000000 Binary files a/player_textures/textures/player_Evergreen.png and /dev/null differ diff --git a/player_textures/textures/player_Jordach.png b/player_textures/textures/player_Jordach.png deleted file mode 100644 index 6f6c5b79..00000000 Binary files a/player_textures/textures/player_Jordach.png and /dev/null differ diff --git a/player_textures/textures/player_PilzAdam.png b/player_textures/textures/player_PilzAdam.png deleted file mode 100644 index 795b7a0b..00000000 Binary files a/player_textures/textures/player_PilzAdam.png and /dev/null differ diff --git a/player_textures/textures/player_PilzAdam_back.png b/player_textures/textures/player_PilzAdam_back.png deleted file mode 100644 index 588e5fbb..00000000 Binary files a/player_textures/textures/player_PilzAdam_back.png and /dev/null differ diff --git a/player_textures/textures/player_ShadowNinja.png b/player_textures/textures/player_ShadowNinja.png deleted file mode 100644 index a1d49cf6..00000000 Binary files a/player_textures/textures/player_ShadowNinja.png and /dev/null differ diff --git a/player_textures/textures/player_Zeg9.png b/player_textures/textures/player_Zeg9.png deleted file mode 100644 index ca604beb..00000000 Binary files a/player_textures/textures/player_Zeg9.png and /dev/null differ diff --git a/player_textures/textures/player_crazyginger72.png b/player_textures/textures/player_crazyginger72.png deleted file mode 100644 index dabe922c..00000000 Binary files a/player_textures/textures/player_crazyginger72.png and /dev/null differ diff --git a/player_textures/textures/player_oOChainLynxOo.png b/player_textures/textures/player_oOChainLynxOo.png deleted file mode 100644 index 439c407e..00000000 Binary files a/player_textures/textures/player_oOChainLynxOo.png and /dev/null differ diff --git a/player_textures/textures/player_playzooki.png b/player_textures/textures/player_playzooki.png deleted file mode 100644 index dbf9925f..00000000 Binary files a/player_textures/textures/player_playzooki.png and /dev/null differ diff --git a/player_textures/textures/player_sdzen.png b/player_textures/textures/player_sdzen.png deleted file mode 100644 index 2fd99732..00000000 Binary files a/player_textures/textures/player_sdzen.png and /dev/null differ diff --git a/player_textures/textures/player_shadowzone.png b/player_textures/textures/player_shadowzone.png deleted file mode 100644 index 4255bfba..00000000 Binary files a/player_textures/textures/player_shadowzone.png and /dev/null differ diff --git a/readme.md b/readme.md deleted file mode 100644 index 52aa6712..00000000 --- a/readme.md +++ /dev/null @@ -1,179 +0,0 @@ -# Overview - -Dreambuilder is my attempt to give the player pretty much everything they'll ever want to build with, and all the tools they should ever need to actually get the job done. This modpack was, for most of its life, maintained as a subgame based on minetest_game, minus a couple of mods that I don't like, with a number of minor things changed, and a number of extra mods added on. Since then, many things have changed, from game content to packaging format. Read on! - -This modpack is in use on my Creative server and on my Survival server, which also has a few extra mods installed for its specific needs. It should give you a pretty good idea nonetheless. Expect lag, as it's a significantly-developed multiplayer server, after all. - -##   - -# What's in it? What's changed from the default stuff? - -* Being that this was originally based on an old version of minetest_game, it retains the light-colored user interface theme despite having since been updated, because I don't like feeling like I live in a cave when I open a formspec. -* The complete Plantlife Modpack along with More Trees and Vines mods add a huge amount of variation to your landscape (as a result, they will add mapgen lag). Active spawning of Horsetail ferns is disabled by default, and I've added papyrus growth on dirt/grass with leaves (using a copy of the default growth ABM). -* This modpack includes RealBadAngel's Unified Inventory mod, which overrides minetest_game's default inventory to give you a much more powerful user interface, with crafting guide, bags, and more, and it also means that if you're using this modpack in creative mode, your stacks are NOT infinite (and they shouldn't be). -* The default bones and TNT mods have been disabled (by way of "empty" mods, to trick the dependency resolver into skipping the real ones). They're not exactly useful for building stuff with. -* Stu's split-limb player model replaces the default one. -* The default hotbar HUD holds 16 items instead of 8, taken from the top two rows of your inventory. The first 10 slots can be accessed by number keys 1-9 and 0, the rest via your mouse wheel. You can use `/hotbar ##` to change the number of slots from 1 to 23. -* The default lavacooling code has been supplanted by better, safer code from my Gloopblocks mod. That mod also provides stone/cobble --> mossy stone/cobble transformation in the presence of water. -* An extensive selection of administration tools for single-player and server use are included, such as areas, maptools, worldedit, xban, and more. -* A few textures here and there are different. -* The mapgen won't spawn apples on default trees, nor will they appear on a sapling-grown default tree. Only the *real* apple trees supplied by the Moretrees mod will bear apples (both at mapgen time and sapling-grown). Or at least that's how it's supposed to work. :stuck_out_tongue: While on that subject, apples now use a 3d model instead of the plantlike version. - -##   - -# Okay, what else? - -A whole boatload of other mods have been added, which is where most of the content actually comes from. To be a little more specific, as of August 2017, this modpack has a total of 165 mods (counting all of the various sub-mods that themselves come as part of some modpack, such as mesecons or home decor) and supplies almost 2000 items in the inventory/craft guide (almost 14,300 unique items in total, counting everything that isn't displayed in the inventory)! A mostly-complete list of mods is as follows: - -areas -arrowboards -bedrock -bees -biome_lib -blox -bobblocks (without the traps or mesecons support) -campfire -castles++ (Philipbenr's re-fork, without the "orbs") -caverealms -coloredwood -colormachine -cottages -currency -datastorage -digilines -digistuff -display_blocks -farming_plus -framedglass -gardening -gloopblocks -glooptest (without treasure chests) -ilights -inventory_sorter -invsaw -item_tweaks -locks -maptools -markers -memorandum -moreblocks -moreores -moretrees -nixie_tubes -notice -peaceful_npc -pipeworks -plasticbox -player_textures (cheapie's fork, with several default skins) -prefab_redo -quartz -replacer -rgblightstone -signs_lib -solidcolor -stained_glass -teleport_request -titanium -travelnet -unifiedbricks (bucket dependency removed) -unifieddyes -unified_inventory -unifiedmesecons -vines -windmill -xban2 -The full Home Decor modpack -The full Technic modpack -The full Plantlife modpack -Cheapie's Roads modpack -Zeg9's Steel modpack -Zeg9's UFO modpack -The full Mesecons modpack -Jeija's Jumping modpack -The full Worldedit modpack - -### Your Inventory Display - -This modpack, as previously mentioned, replaces the standard inventory with Unified Inventory, which almost defies description here. Unified Inventory includes waypoints, a crafting guide, set/go home buttons, set day/set night buttons, a full creative inventory on the right if you're playing in that mode - and you only have to click/tap the item once to get the it, instead of multiple clicks/drag and drop, a trash slot, a clear all inventory button, a search feature for the inventory, and more. Basically, you just need to use it a few times and you'll find yourself wondering how you ever got along with the standard inventory! - -### The Circular Saw - -This modpack uses the More Blocks mod, which comes with the Stairsplus mod and more importantly, the Circular Saw mod by Sokomine and co. This mod replaces the traditional method of creating stairs, slabs, and the like: rather that crafting a stairs block by placing several of the material into your crafting grid, you must first craft a circular saw (really, a table saw), place that on the ground, and then use that to shape the material you had in mind. It can create dozens of shapes, including the standard stairs and slabs. Give it a try and see for yourself! - -### Land Ownership - -This modpack uses ShadowNinja's areas mod for land protection, as well as cheapie's protector blocks. Of course, land protection is only useful if you're using this Modpack on a public server. - -#### Protection blocks: -These are easy. Craft one, place it, and everything within 15m of it becomes yours immediately (if someone else doesn't own some of the land therein, of course). If you dig one of these, the area protection it created is removed; if you shift-dig, the protection is preserved, but the block is deleted, giving back some steel ingots if you're in survival mode, or nothing at all if in creative mode. - -#### Areas: -If you want fine control, use the areas mod's commands. There are three ways to select a region to protect: - -**Option A:** - -Just type `/area_pos set` and then punch two nodes that are diagonally opposite one another, so that they form a 3d box that fully encloses the area you want to claim. A black **`[1]`** or **`[2]`** will appear where you punched. - -**Option B:** - -1. Move to one corner, on the ground. -2. Type `/area_pos1` and press enter. A black **`[1]`** will appear. -3. Move to the other corner and go up a ways above your area - not too high though. -4. Type `/area_pos2` and press enter. A black **`[2]`** will appear. - -**Option C:** - -Just give actual coordinates to the `/area_xxx` commands, e.g.: -`/area_pos1 123,45,678 /area_pos2 987,654,321` - -**Claim it:** - -Once you've marked your area using one of the above methods, you must actually claim it. This is the step that actually protects it against vandalism and unauthorized access. Just type: -/protect some description here - -By default, users may protect up to 3 zones with these commands, and each can be up to 50x100x50 meters in size, but this can be changed by plugging appropriate settings into your minetest.conf. - -**Sublet it:** - -Ok, you've claimed an area, and you want to let someone else build there. Simple. Set the coordinates of the box you want to let them build in, using the commands above (Options A, B, or C). Then do: -`/add_owner your_area# their_name description here` - -For example, if you own area #123 and the other person's name is "Mike", and you want to sublet them some area called "Mike's home", you might do something like this: - -`/add_owner 123 Mike Mikes Home` - -You can add as many users as you like to your areas. You will need to issue one such command per user. - -## Dependencies: -This modpack requires Minetest 0.4.16 or later, and a corresponding copy of minetest_game. Anything too old will likely either crash, show nodes with the wrong shape or colors, throw nonsensical warnings/errors, or open up wormholes. - -## Hardware requirements: -This modpack defines a very large number of items and produces a well-detailed landscape, and so it requires a significant amount of resources compared to vanilla Minetest game. At least a 2 GHz dual core CPU and 2 GB free RAM are required for good performance. If you use my HDX texture pack, you'll need more RAM (at least 4 GB free recommended). - -This modpack is NOT intended for use on mobile devices. - -## Download/Install: -...if you're reading this, you're either on the Dreambuilder Github repo page, so clone it from there, or download the ZIP... or maybe you already have it. ;-) You can also fetch it from [url]https://daconcepts.com/vanessa/hobbies/minetest/Dreambuilder_Modpack.tar.bz2[/url] - -Just rename the project folder to "dreambuilder_modpack", if necessary, and move it to your Minetest mods directory. Then select and enable it for the world you want to use it in. Depending on the condition of the world you are using, and for brand new maps, this modpack may take a minute or two to start, during which time you may see the hotbar and hand, all-grey window content where the world should be, or other odd-looking things. Just wait it out, it will eventually start and settle down. - -## License: -Each of the base mods in this modpack retains the standard license that its author has assigned, even if the license file is missing from the archive. All changes and any supplemental content made by me is WTFPL unless explicitly stated otherwise. - -# Open Source Software -This modpack is open source, or at least as much so as I have control over. Since it started from the standard minetest_game distribution, you'll want to look at that. You can find it at its usual Github repository, here: -[url]https://github.com/minetest/minetest_game[/url] - -An online copy of the archive of mods the modpack is built from can be found here (with full git histories, including my changes and any files that went missing from the completed modpack, where applicable): -[url]http://minetest.daconcepts.com/my-main-mod-archive/[/url] - -# Notes: -For best results, I recommend adding the following to your minetest.conf (perhaps to a secondary copy of that file that you only use when playing worlds with this modpack): - -``` -enable_item_drops = false -enable_item_pickup = true -remove_items = -1 -disable_fire = true -enable_mesh_cache = false -``` diff --git a/schematic_tables.txt b/schematic_tables.txt new file mode 100644 index 00000000..eff2d359 --- /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 00000000..376c995e Binary files /dev/null and b/screenshot.png differ diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 00000000..33afb17e --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1,77 @@ +# This file contains settings of dreambuilder_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 diff --git a/utils/optimize_textures.sh b/utils/optimize_textures.sh new file mode 100644 index 00000000..2f9a6da5 --- /dev/null +++ b/utils/optimize_textures.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# Colors with 0 alpha need to be preserved, because opaque leaves ignore alpha. +# For that purpose, the use of indexed colors is disabled (-nc). + +find -name '../*.png' -print0 | xargs -0 optipng -o7 -zm1-9 -nc -strip all -clobber