From e297cf03bceae7c37d40867432370eecf46f136a Mon Sep 17 00:00:00 2001 From: Mrchiantos <51173452+Mrchiantos@users.noreply.github.com> Date: Fri, 12 Jul 2019 20:20:06 +0200 Subject: [PATCH] update 5.0.1 --- mods/Menu/hud/API.txt | 38 -- mods/Menu/hud/LICENSE.txt | 502 ------------------ mods/Menu/hud/README.txt | 67 --- mods/Menu/hud/api.lua | 275 ---------- mods/Menu/hud/builtin.lua | 126 ----- mods/Menu/hud/changelog.txt | 140 ----- mods/Menu/hud/depends.txt | 1 - mods/Menu/hud/hud.conf.example | 35 -- mods/Menu/hud/init.lua | 23 - mods/Menu/hud/itemwheel.lua | 195 ------- mods/Menu/hud/legacy.lua | 73 --- mods/Menu/hud/textures/crosshair.png | Bin 216 -> 0 bytes mods/Menu/hud/textures/hud_air_fg.png | Bin 579 -> 0 bytes mods/Menu/hud/textures/hud_armor_bg.png | Bin 424 -> 0 bytes mods/Menu/hud/textures/hud_armor_fg.png | Bin 3167 -> 0 bytes mods/Menu/hud/textures/hud_heart_bg.png | Bin 302 -> 0 bytes mods/Menu/hud/textures/hud_heart_fg.png | Bin 369 -> 0 bytes mods/Menu/hud/textures/hud_hotbar.png | Bin 1142 -> 0 bytes .../Menu/hud/textures/hud_hotbar_selected.png | Bin 9049 -> 0 bytes mods/Menu/hud/textures/hud_hunger_bg.png | Bin 417 -> 0 bytes mods/Menu/hud/textures/hud_hunger_fg.png | Bin 522 -> 0 bytes mods/Menu/hud/textures/hud_new.png | Bin 41235 -> 0 bytes mods/Menu/hud/textures/hud_wielded.png | Bin 143 -> 0 bytes mods/Nodes/color/init.lua | 2 +- 24 files changed, 1 insertion(+), 1476 deletions(-) delete mode 100644 mods/Menu/hud/API.txt delete mode 100644 mods/Menu/hud/LICENSE.txt delete mode 100644 mods/Menu/hud/README.txt delete mode 100644 mods/Menu/hud/api.lua delete mode 100644 mods/Menu/hud/builtin.lua delete mode 100644 mods/Menu/hud/changelog.txt delete mode 100644 mods/Menu/hud/depends.txt delete mode 100644 mods/Menu/hud/hud.conf.example delete mode 100644 mods/Menu/hud/init.lua delete mode 100644 mods/Menu/hud/itemwheel.lua delete mode 100644 mods/Menu/hud/legacy.lua delete mode 100644 mods/Menu/hud/textures/crosshair.png delete mode 100644 mods/Menu/hud/textures/hud_air_fg.png delete mode 100644 mods/Menu/hud/textures/hud_armor_bg.png delete mode 100644 mods/Menu/hud/textures/hud_armor_fg.png delete mode 100644 mods/Menu/hud/textures/hud_heart_bg.png delete mode 100644 mods/Menu/hud/textures/hud_heart_fg.png delete mode 100644 mods/Menu/hud/textures/hud_hotbar.png delete mode 100644 mods/Menu/hud/textures/hud_hotbar_selected.png delete mode 100644 mods/Menu/hud/textures/hud_hunger_bg.png delete mode 100644 mods/Menu/hud/textures/hud_hunger_fg.png delete mode 100644 mods/Menu/hud/textures/hud_new.png delete mode 100644 mods/Menu/hud/textures/hud_wielded.png diff --git a/mods/Menu/hud/API.txt b/mods/Menu/hud/API.txt deleted file mode 100644 index 371cdfd..0000000 --- a/mods/Menu/hud/API.txt +++ /dev/null @@ -1,38 +0,0 @@ -hud.register(name, def) - -- name: statbar name (health, air, hunger, armor already used by default) - -- def: (see below) - -hud.change_item(player, name, def) - -- player: player object - -- name: statbar name - -- def: table containing new values - -- currently supported: number, text and offset - -hud.swap_statbar(player, name1, name2) -- swaps position and offset of statbar with name1 with statbar with name2 - -- player: player object - -- name1: statbar name - -- name2: statbar name - -hud.remove_item(player, name) - -HUD item definition -{ - hud_elem_type = "statbar", -- currently only supported type (same as in lua-api.txt) - position = {x=, y=}, -- position of statbar (same as in lua-api.txt) - size = {x=24, y=24}, -- statbar texture size (default 24x24), needed to be scaled correctly - text = "hud_heart_fg.png", -- texture name (same as in lua-api.txt) - number = 20, -- number/2 = number of full textures(e.g. hearts) - max = 20, -- used to prevent "overflow" of statbars - alignment = {x=-1,y=-1}, -- alignment on screen (same as in lua-api.txt) - offset = HUD_HEALTH_OFFSET, - background = "hud_heart_bg.png", -- statbar background texture name - autohide_bg = false, -- hide statbar background textures when number = 0 - events = { -- called on events "damage" and "breath_changed" of players - { - type = "damage", - func = function(player) - -- do something here - end - } - }, -} diff --git a/mods/Menu/hud/LICENSE.txt b/mods/Menu/hud/LICENSE.txt deleted file mode 100644 index 4362b49..0000000 --- a/mods/Menu/hud/LICENSE.txt +++ /dev/null @@ -1,502 +0,0 @@ - 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/mods/Menu/hud/README.txt b/mods/Menu/hud/README.txt deleted file mode 100644 index 93ecfa7..0000000 --- a/mods/Menu/hud/README.txt +++ /dev/null @@ -1,67 +0,0 @@ -Minetest mod "Better HUD" -========================= -Version: 2.1.5 - -(c) Copyright BlockMen (2013-2016) - - -About this mod: -~~~~~~~~~~~~~~~ -This mod improves the HUD of Minetest and adds (hidden by default) statbars for Hunger and Armor. -Also it provides an API to add new statbars easily, see API.txt for more informations. - -Changes in builtin HUD items: -- Adds background for Health bar -- Uses better textures for Hotbar -- Uses texture for crosshair -- Positions of builtin statbars can be changed via "hud.conf" file -- Experimental "ItemWheel" that replaces the hotbar (must be enabled by adding "hud_item_wheel = true" in minetest.conf) - -This mod gets provided as Modpack aswell, which includes the hunger mod (https://github.com/BlockMen/hunger) -More information concerning the hunger mechanics can be get there. - -This mod supports the 3d_armor mod by stu (https://github.com/stujones11/minetest-3d_armor) - - - -License: -~~~~~~~~ -(c) Copyright BlockMen (2013-2016) - - -Code: -Licensed under the GNU LGPL version 2.1 or higher. -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; - -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 - -See LICENSE.txt and http://www.gnu.org/licenses/lgpl-2.1.txt - - -Textures: -hud_heart_fg.png - celeron55 (CC BY-SA 3.0), modified by BlockMen -hud_heart_bg.png - celeron55 (CC BY-SA 3.0), modified by BlockMen -hud_hunger_fg.png - PilzAdam (WTFPL), modified by BlockMen -hud_hunger_bg.png - PilzAdam (WTFPL), modified by BlockMen -wieldhand.png (from character.png) - Jordach (CC BY-SA 3.0), modified by BlockMen -hud_air_fg.png - kaeza (WTFPL), modified by BlockMen -hud_armor_fg.png - Stu (CC BY-SA 3.0), modified by BlockMen -hud_armor_bg.png - Stu (CC BY-SA 3.0), modified by BlockMen - - -Github: -~~~~~~~ -https://github.com/BlockMen/hud - -Forum: -~~~~~~ -https://forum.minetest.net/viewtopic.php?id=6342 - - -Changelog: -~~~~~~~~~~ -see changelog.txt diff --git a/mods/Menu/hud/api.lua b/mods/Menu/hud/api.lua deleted file mode 100644 index 21d8c0f..0000000 --- a/mods/Menu/hud/api.lua +++ /dev/null @@ -1,275 +0,0 @@ - --- global values -hud.registered_items = {} -hud.damage_events = {} -hud.breath_events = {} - --- keep id handling internal -local hud_id = {} -- hud item ids -local sb_bg = {} -- statbar background ids - --- localize often used table -local items = hud.registered_items - -local function throw_error(msg) - minetest.log("error", "Better HUD[error]: " .. msg) -end - - --- --- API --- - -function hud.register(name, def) - if not name or not def then - throw_error("not enough parameters given") - return false - end - - --TODO: allow other elements - if def.hud_elem_type ~= "statbar" then - throw_error("The given HUD element is no statbar") - return false - end - if items[name] ~= nil then - throw_error("A statbar with that name already exists") - return false - end - - -- actually register - -- add background first since draworder is based on id :\ - if def.hud_elem_type == "statbar" and def.background ~= nil then - sb_bg[name] = table.copy(def) - sb_bg[name].text = def.background - if not def.autohide_bg and def.max then - sb_bg[name].number = def.max - end - end - -- add item itself - items[name] = def - - -- register events - if def.events then - for _,v in pairs(def.events) do - if v and v.type and v.func then - if v.type == "damage" then - table.insert(hud.damage_events, v) - end - - if v.type == "breath" then - table.insert(hud.breath_events, v) - end - end - end - end - - -- no error so far, return success - return true -end - --- swaps stabar positions -function hud.swap_statbar(player, item1, item2) - if not player or not item1 or not item2 then - throw_error("Not enough parameters given to swap statbars") - return false - end - - local def1 = items[item1] or nil - local def2 = items[item2] or nil - - if not def1 or not def2 then - throw_error("Can't swap statbars. Given statbars are not correct") - return false - end - - local pos_swap = false - local p_name = player:get_player_name() - local elem1 = hud_id[p_name.."_"..item1] - local elem2 = hud_id[p_name.."_"..item2] - - if not elem1 or not elem2 or not elem1.id or not elem2.id then - return false - end - - player:hud_change(elem2.id, "offset", def1.offset) - player:hud_change(elem1.id, "offset", def2.offset) - - if def1.position.x ~= def2.position.x or def1.position.y ~= def2.position.y then - player:hud_change(elem2.id, "position", def1.position) - player:hud_change(elem1.id, "position", def2.position) - pos_swap = true - end - - -- do the items have backgrounds? if so, swap them aswell - local bg1 = hud_id[p_name.."_"..item1.."_bg"] or nil - local bg2 = hud_id[p_name.."_"..item2.."_bg"] or nil - if bg1 ~= nil and bg1.id then - player:hud_change(bg1.id, "offset", def2.offset) - if pos_swap == true then - player:hud_change(bg1.id, "position", def2.position) - end - end - if bg2 ~= nil and bg2.id then - player:hud_change(bg2.id, "offset", def1.offset) - if pos_swap == true then - player:hud_change(bg2.id, "position", def1.position) - end - end - - return true - -end - -function hud.change_item(player, name, def) - if not player or not player:is_player() or not name or not def then - throw_error("Not enough parameters given to change HUD item") - return false - end - local i_name = player:get_player_name().."_"..name - local elem = hud_id[i_name] - if not elem then - throw_error("Given HUD element " .. dump(name) .. " does not exist".." hääää") - return false - end - - -- Only update if values supported and value actually changed - -- update supported values (currently number and text only) - if def.number and elem.number then - if def.number ~= elem.number then - if elem.max and def.number > elem.max and not def.max then - def.number = elem.max - end - if def.max then - elem.max = def.max - end - player:hud_change(elem.id, "number", def.number) - elem.number = def.number - -- hide background when set - local bg = hud_id[i_name.."_bg"] - if elem.autohide_bg then - if def.number < 1 then - player:hud_change(bg.id, "number", 0) - else - local num = bg.number - if bg.max then - num = bg.max - end - player:hud_change(bg.id, "number", num) - end - else - if bg and bg.max and bg.max < 1 and def.max and def.max > bg.max then - player:hud_change(bg.id, "number", def.max) - bg.max = def.max - bg.number = def.max - end - end - end - end - if def.text and elem.text then - if def.text ~= elem.text then - player:hud_change(elem.id, "text", def.text) - elem.text = def.text - end - end - - if def.offset and elem.offset then - if def.item_name and def.offset == "item" then - -- for legacy reasons - if def.item_name then - hud.swap_statbar(player, name, def.item_name) - end - else - player:hud_change(elem.id, "offset", def.offset) - elem.offset = def.offset - end - end - - return true -end - -function hud.remove_item(player, name) - if not player or not name then - throw_error("Not enough parameters given") - return false - end - local i_name = player:get_player_name().."_"..name - if hud_id[i_name] == nil then - throw_error("Given HUD element " .. dump(name) .. " does not exist") - return false - end - player:hud_remove(hud_id[i_name].id) - hud_id[i_name] = nil - - return true -end - - --- --- Add registered HUD items to joining players --- - --- Following code is placed here to keep HUD ids internal -local function add_hud_item(player, name, def) - if not player or not name or not def then - throw_error("not enough parameters given") - return false - end - local i_name = player:get_player_name().."_"..name - hud_id[i_name] = def - hud_id[i_name].id = player:hud_add(def) -end - -minetest.register_on_joinplayer(function(player) - - -- first: hide the default statbars - local hud_flags = player:hud_get_flags() - hud_flags.healthbar = false - hud_flags.breathbar = false - player:hud_set_flags(hud_flags) - - -- now add the backgrounds for statbars - for _,item in pairs(sb_bg) do - add_hud_item(player, _.."_bg", item) - end - -- and finally the actual HUD items - for _,item in pairs(items) do - add_hud_item(player, _, item) - end - - -- fancy hotbar (only when no crafting mod present) - if minetest.get_modpath("crafting") == nil then - minetest.after(0.5, function() - player:hud_set_hotbar_image("hud_hotbar.png") - player:hud_set_hotbar_selected_image("hud_hotbar_selected.png") - end) - end -end) - -function hud.player_event(player, event) - if not player then return end -- ADDED - - --needed for first update called by on_join - minetest.after(0, function(player) -- ADDED (player) - if event == "health_changed" then - for _,v in pairs(hud.damage_events) do - if v.func then - v.func(player) - end - end - end - - if event == "breath_changed" then - for _,v in pairs(hud.breath_events) do - if v.func then - v.func(player) - end - end - end - - if event == "hud_changed" then--called when flags changed - - end - end, player) -- ADDED , player) -end - -core.register_playerevent(hud.player_event) diff --git a/mods/Menu/hud/builtin.lua b/mods/Menu/hud/builtin.lua deleted file mode 100644 index 49d34c3..0000000 --- a/mods/Menu/hud/builtin.lua +++ /dev/null @@ -1,126 +0,0 @@ - -HUD_IW_MAX = 8 -HUD_IW_TICK = 0.4 -if minetest.is_singleplayer() == true then - HUD_IW_TICK = 0.2 -end - -HUD_SB_SIZE = {x = 24, y = 24} - -HUD_HEALTH_POS = {x = 0.5,y = 1} -HUD_HEALTH_OFFSET = {x = -262, y = -87} -HUD_AIR_POS = {x = 0.5, y = 1} -HUD_AIR_OFFSET = {x = 15, y = -87} -HUD_HUNGER_POS = {x = 0.5, y = 1} -HUD_HUNGER_OFFSET = {x = 15, y = -110} -HUD_ARMOR_POS = {x = 0.5, y = 1} -HUD_ARMOR_OFFSET = {x = -262, y = -110} - --- Reorder everything when using ItemWeel -hud.item_wheel = minetest.settings:get_bool("hud_item_wheel") -if hud.item_wheel then - HUD_HEALTH_POS = {x = 0.5,y = 1} - HUD_HEALTH_OFFSET = {x = -385, y = -77} - HUD_AIR_POS = {x = 0.5, y = 1} - HUD_AIR_OFFSET = {x = 150, y = -77} - HUD_HUNGER_POS = {x = 0.5, y = 1} - HUD_HUNGER_OFFSET = {x = 180, y = -44} - HUD_ARMOR_POS = {x = 0.5, y = 1} - HUD_ARMOR_OFFSET = {x = -415, y = -44} -end - --- read hud.conf settings -function hud.read_conf() - local mod_path = minetest.get_modpath("hud") - local set = io.open(mod_path .. "/hud.conf", "r") - if set then - dofile(mod_path .. "/hud.conf") - set:close() - end -end - -hud.read_conf() - -local damage_enabled = minetest.settings:get_bool("enable_damage") - -hud.show_hunger = minetest.get_modpath("hunger") ~= nil -hud.show_armor = minetest.get_modpath("3d_armor") ~= nil - --- check if some settings are invalid -local enable_hunger = minetest.settings:get_bool("hud_hunger_enable") -if (enable_hunger == true) and not hud.show_hunger then - hud.notify_hunger(5) -end - -if damage_enabled ~= true then - hud.show_armor = false - return -end - -hud.register("health", { - hud_elem_type = "statbar", - position = HUD_HEALTH_POS, - size = HUD_SB_SIZE, - text = "hud_heart_fg.png", - number = 20, - alignment = {x = -1, y = -1}, - offset = HUD_HEALTH_OFFSET, - background = "hud_heart_bg.png", - events = { - { - type = "damage", - func = function(player) - hud.change_item(player, "health", {number = player:get_hp()}) - end - } - }, -}) - -hud.register("air", { - hud_elem_type = "statbar", - position = HUD_AIR_POS, - size = HUD_SB_SIZE, - text = "hud_air_fg.png", - number = 0, - alignment = {x = -1, y = -1}, - offset = HUD_AIR_OFFSET, - background = nil, - events = { - { - type = "breath", - func = function(player) - if not player then return end -- ADDED - local air = player:get_breath() or 11 - if air > 10 then - air = 0 - end - hud.change_item(player, "air", {number = air * 2}) - end - } - }, -}) - -hud.register("armor", { - hud_elem_type = "statbar", - position = HUD_ARMOR_POS, - size = HUD_SB_SIZE, - text = "hud_armor_fg.png", - number = 0, - alignment = {x = -1, y = -1}, - offset = HUD_ARMOR_OFFSET, - background = "hud_armor_bg.png", - autohide_bg = true, - max = 20, -}) - -hud.register("hunger", { - hud_elem_type = "statbar", - position = HUD_HUNGER_POS, - size = HUD_SB_SIZE, - text = "hud_hunger_fg.png", - number = 0, - alignment = {x = -1, y = -1}, - offset = HUD_HUNGER_OFFSET, - background = "hud_hunger_bg.png", - max = 0, -}) diff --git a/mods/Menu/hud/changelog.txt b/mods/Menu/hud/changelog.txt deleted file mode 100644 index d34cb17..0000000 --- a/mods/Menu/hud/changelog.txt +++ /dev/null @@ -1,140 +0,0 @@ -2.1.5 ------ -- Fixed armor not being updated correct due armor mod changes - -2.1.4 ------ -- Fixed unhandled exception in hud.swap_statbar() - -2.1.3 ------ -- Added hud.swap_statbar() and fix wrong behavior of previous workaround -- Fixed missing background of some statbars in multiplayer - -2.1.2 ------ -- Fixed crash caused by animated nodes (reported by Krock) -- Fixed "freezing" of empty slots (reported by kilbith) - -2.1.1 ------ -- Added itemcounting/wearout info -- Added support for hud scaling -- Fixed typo causing endless updating -- Fixed image scaling of some textures (like glass) -- Improved ItemWheel image - -2.1 ---- -- Added "ItemWheel" (experimental) -- Fixed disapperaring hunger bar (reported by poet-nohit) - -2.0.1 ------ -- Fix disappearing hotbar (reported by poet-nohit) -- Fix unused global var -- Added one more check to catch probably incorrect players - -2.0 ---- -- Complete rewrite -- Moved hunger into seperate mod -- Added API -- Switched License to LGPL 2.1 - -===== ===== ===== ------ 0-1.x ----- -===== ===== ===== - -1.4.1 ------ -- ### - -1.4 ---- -- New hunger mechanics/added experimental player-action based hunger -- Better crosshair texture, switched to "new" default hand -- Added support for farming redo mod, kpgmobs and jkmod - -1.3.3 ------ -- Prevent crash with armor mod and missing player -- Add support for ethereal mod (by TenPlus1) - -1.3.2 ------ -- Fix dependecies (by Chris Beelby) -- Add support for creatures mod -- Add optional healing for food (by TenPlus1) - -1.3.1 ------ -- Add compatibility for statbar scaling -- Fix typo in depends.txt -- Lower maintimer tick - -1.3 ---- -- New way hunger is saved (all old files in world dirctory can get deleted [e.g. hud_BlockMen_hunger]) -- Fixed healing (not while drowning, fix after death) -- Add support for mods: seaplants[sea] and mobfcooking (by Xanthin) -- Tweaked hand image -- Player can die caus of starving now - -1.2 ---- -- Send statbar values only to client when changed -- Hide armor bar if not wearing armor -- More reliable food overrides (by CiaranG) -- Support for bushes_classic foods (plantlife modpack) (by CiaranG) -- Add support for mushroom mod food/poison (by CiaranG) -- Add support for mods: fruit and mush45 -- New images for hotbar, smaller armor icons - -1.1 ---- -- added support for stu's 3darmor mod -- restructured and cleaned up code -- added support for poisen food (damages player, but does not kill) - -1.0 ---- -- hunger is reset after death -- health and hunger bar is shown correct on all screen resolutions now -- switched to changed native hotbar image support -- fixed revival of player when drown -- hunger bar is not shown anymore if hunger is disabled -- hunger can be disabled by minetest.conf ("hud_hunger_enable = false") - -0.5 Beta ----------- -- removed the fancy borders of hud inventory bar and moved to new native support -- moved crosshair to native support too - -0.4 Beta ----------- -- enabled drowning - -0.3 Beta ----------- -- added fancy borders of hud inventory bar (only for screenheight <= 800) - -0.2.3 Beta ----------- -- added support for food of glooptest and bushes (commit by CheeseKeg) - -0.2.2 Beta ----------- -- added support for food of animalmaterials (mobf modpack),fishing - -0.2.1 Beta ----------- -- tweaked override of food -- added support for food of dwares, moretrees and simple mobs - -0.2 Beta --------- -- added support of custom config files -- you can eat max. 50% more than before (although it isnt shown in hunger bar) -- you get healed with 8 breads and more (in hunger bar) now -- a bread (from farming) == 2 breads in hunger bar diff --git a/mods/Menu/hud/depends.txt b/mods/Menu/hud/depends.txt deleted file mode 100644 index 7be6dbb..0000000 --- a/mods/Menu/hud/depends.txt +++ /dev/null @@ -1 +0,0 @@ -3d_armor? \ No newline at end of file diff --git a/mods/Menu/hud/hud.conf.example b/mods/Menu/hud/hud.conf.example deleted file mode 100644 index 67087fa..0000000 --- a/mods/Menu/hud/hud.conf.example +++ /dev/null @@ -1,35 +0,0 @@ ---##Better HUD example config file## ------------------------------------- --- This example moves the statbars in the down left and down right corners. By Echoes91 - --- NOTICE -- --- if damage is disabled no statbar is shown at all --- Make sure that the statbars are shown correct on other screen resolutions aswell - - -HUD_SB_SIZE = {x = 24, y = 24} -- statbar icon size in pixel before (!) scaling - --- --- health bar --- -HUD_HEALTH_POS = {x = 0, y = 1} -- min 0, max 1 -HUD_HEALTH_OFFSET = {x = 10, y = -30} -- offset in pixel - --- --- hunger bar --- -HUD_HUNGER_POS = {x = 1, y = 1} -- min 0, max 1 -HUD_HUNGER_OFFSET = {x = -250, y = -30} -- offset in pixel - --- --- breath bar --- -HUD_AIR_POS = {x = 1, y = 1} -- min 0, max 1 -HUD_AIR_OFFSET = {x = -250, y = -60} -- offset in pixel - --- --- armor bar --- -HUD_ARMOR_POS = {x = 0, y = 1} -- min 0, max 1 -HUD_ARMOR_OFFSET = {x = 10, y = -60} -- offset in pixel - diff --git a/mods/Menu/hud/init.lua b/mods/Menu/hud/init.lua deleted file mode 100644 index 5a02eea..0000000 --- a/mods/Menu/hud/init.lua +++ /dev/null @@ -1,23 +0,0 @@ -hud = {} -GameOS = 0 - -local path = minetest.get_modpath("hud") - -if PLATFORM == "IOS" or PLATFORM == "Android" then - GameOS = "Mobile" -else - GameOS = "PC" -end - -if GameOS == "Mobile" then - -elseif GameOS == "PC" then - - dofile(path .. "/api.lua") - dofile(path .. "/builtin.lua") - dofile(path .. "/legacy.lua") - dofile(path .. "/itemwheel.lua") - -else - -end \ No newline at end of file diff --git a/mods/Menu/hud/itemwheel.lua b/mods/Menu/hud/itemwheel.lua deleted file mode 100644 index 2e04648..0000000 --- a/mods/Menu/hud/itemwheel.lua +++ /dev/null @@ -1,195 +0,0 @@ -local hb = {} -local scale = 0.5 - -local function update_wheel(player) - local name = player:get_player_name() - if not player or not name then - return - end - - local i = player:get_wield_index() - local i1 = i - 1 - local i3 = i + 1 - - -- it's a wheel - if i1 < 1 then - i1 = HUD_IW_MAX - end - if i3 > HUD_IW_MAX then - i3 = 1 - end - - -- get the displayed items - local inv = player:get_inventory() - local item = hb[name].item - local index = hb[name].index - local item2 = player:get_wielded_item():get_name() - - -- update all items when wielded has changed - if item and item2 and item ~= item2 or item == "wheel_init" or (index and index ~= i) then - local items = {} - items[1] = inv:get_stack("main", i1):get_name() or nil - items[2] = item2 - items[3] = inv:get_stack("main", i3):get_name() or nil - local num = player:get_wielded_item():get_count() - local wear = player:get_wielded_item():get_wear() - if num < 2 then - num = "" - else - num = tostring(num) - end - if wear > 0 then - num = tostring(100 - math.floor((wear/65535)*100)) .. "%" - end - - for n, m in pairs(items) do - -- some default values - local image = "hud_wielded.png" - local need_scale = false - local s1 = {x = 1*scale, y = 1*scale} - local s2 = {x = 3*scale, y = 3*scale} - if n ~= 2 then - s1 = {x = 0.6*scale, y = 0.6*scale} - s2 = {x = 2*scale, y = 2*scale} - end - - -- get the images - local def = minetest.registered_items[m] - if def then - if def.tiles and (def.tiles[1] and not def.tiles[1].name) then - image = minetest.inventorycube(def.tiles[1], def.tiles[6] or def.tiles[3] or def.tiles[1], def.tiles[3] or def.tiles[1]) - need_scale = true - end - if def.inventory_image and def.inventory_image ~= "" then - image = def.inventory_image - need_scale = true - end - if def.wielded_image and def.wielded_image ~= "" then - image = def.wielded_image - need_scale = false - end - -- needed for nodes with inventory cube inv imges, e.g. glass - if string.find(image, 'inventorycube') then - need_scale = true - end - end - - -- get the id and update hud elements - local id = hb[name].id[n] - if id and image then - if need_scale then - player:hud_change(id, "scale", s1) - else - player:hud_change(id, "scale", s2) - end - -- make previous and next item darker - --if n ~= 2 then - --image = image .. "^[colorize:#0005" - --end - player:hud_change(id, "text", image) - end - end - if hb[name].id[4] then - player:hud_change(hb[name].id[4], "text", num) - end - end - - -- update wielded buffer - if hb[name].id[2] ~= nil then - hb[name].item = item2 - hb[name].index = i - end -end - -minetest.register_on_joinplayer(function(player) - local name = player:get_player_name() - hb[name]= {} - hb[name].id = {} - hb[name].item = "wheel_init" - hb[name].index = 1 - - minetest.after(0.1, function() - - -- hide builtin hotbar - local hud_flags = player:hud_get_flags() - hud_flags.hotbar = false - player:hud_set_flags(hud_flags) - - player:hud_add({ - hud_elem_type = "image", - text = "hud_new.png", - position = {x = 0.5, y = 1}, - scale = {x = 1*scale, y = 1*scale}, - alignment = {x = 0, y = -1}, - offset = {x = 0, y = 0} - }) - - hb[name].id[1] = player:hud_add({ - hud_elem_type = "image", - text = "hud_wielded.png", - position = {x = 0.5, y = 1}, - scale = {x = 0.5, y = 0.5}, - alignment = {x = -3.5, y = -1.5}, - offset = {x = -75*scale, y = -8*scale} - }) - - hb[name].id[2] = player:hud_add({ - hud_elem_type = "image", - text = "hud_wielded.png", - position = {x = 0.5, y = 1}, - scale = {x = 3*scale, y = 3*scale}, - alignment = {x = 0, y = -1.5}, - offset = {x = 0, y = -12*scale} - }) - - hb[name].id[3] = player:hud_add({ - hud_elem_type = "image", - text = "hud_wielded.png", - position = {x = 0.5, y = 1}, - scale = {x = 1*scale, y = 1*scale}, - alignment = {x = 3.5, y = -1.5}, - offset = {x = 75*scale, y = -8*scale} - }) - - hb[name].id[4] = player:hud_add({ - hud_elem_type = "text", - position = {x = 0.5, y = 1}, - offset = {x = 35*scale, y = -55*scale}, - alignment = {x = 0, y = -1}, - number = 0xffffff, - text = "", - }) - - -- init item wheel - minetest.after(0, function() - hb[name].item = "wheel_init" - update_wheel(player) - end) - end) -end) - -local function update_wrapper(a, b, player) - local name = player:get_player_name() - if not name then - return - end - minetest.after(0, function() - hb[name].item = "wheel_init" - update_wheel(player) - end) -end - -minetest.register_on_placenode(update_wrapper) -minetest.register_on_dignode(update_wrapper) - - -local timer = 0 -minetest.register_globalstep(function(dtime) - timer = timer + dtime - if timer >= HUD_IW_TICK then - timer = 0 - for _, player in ipairs(minetest.get_connected_players()) do - update_wheel(player) - end - end--timer -end) diff --git a/mods/Menu/hud/legacy.lua b/mods/Menu/hud/legacy.lua deleted file mode 100644 index 9bbc2f6..0000000 --- a/mods/Menu/hud/legacy.lua +++ /dev/null @@ -1,73 +0,0 @@ --- Armor -function hud.set_armor() -end - -if hud.show_armor then - local shields = minetest.get_modpath("shields") ~= nil - local armor_org_func = armor.set_player_armor - - local function get_armor_lvl(def) - -- items/protection based display - local lvl = def.level or 0 - local max = 63 -- full diamond armor - if shields then - max = 84.14 -- full diamond armor + diamond shield - end - -- TODO: is there a sane way to read out max values? - local ret = lvl/max - if ret > 1 then - ret = 1 - end - - return tonumber(20 * ret) - end - - function armor.set_player_armor(self, player) - armor_org_func(self, player) - local name = player:get_player_name() - local def = self.def - local armor_lvl = 0 - if def[name] and def[name].level then - armor_lvl = get_armor_lvl(def[name]) - end - hud.change_item(player, "armor", {number = armor_lvl}) - end -end - -function hud.notify_hunger(delay, use) - local txt_part = "enable" - if use then - txt_part = "use" - end - minetest.after(delay, function() - minetest.chat_send_all("#Better HUD: You can't " .. txt_part .. " hunger without the \"hunger\" mod") - minetest.chat_send_all(" Enable it or download it from \"https://github.com/BlockMen/hunger\"") - end) -end - --- Hunger related functions -if not hud.show_hunger then - function hud.set_hunger() - hud.notify_hunger(1, true) - end - - function hud.get_hunger() - hud.notify_hunger(1, true) - end - - function hud.item_eat(hp_change, replace_with_item) - return function(itemstack, user, pointed_thing) - hud.notify_hunger(1, true) - local func = minetest.item_eat(hp_change, replace_with_item) - return func(itemstack, user, pointed_thing) - end - end - - function hud.save_hunger() - hud.notify_hunger(1, true) - end - - function hud.load_hunger(player) - hud.notify_hunger(1, true) - end -end diff --git a/mods/Menu/hud/textures/crosshair.png b/mods/Menu/hud/textures/crosshair.png deleted file mode 100644 index a832298bb1aa82566b697e9844cc39f5d37ba3ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmeAS@N?(olHy`uVBq!ia0vp^HXzKw1|+Ti+$;i8oCO|{#S9F3${@^GvDCf{DA?uc z;uumf=k2xAoDB{FE{@Jd437;wn{)K#ME@*k_L03;xR85VYP*W_@>A>#%wX_+WetM? z7<~AAtkNoWlIqE#k30|o=?B(~%*^|_&wUekTl&?|nq!B^op)Z$%;s#%Z(kRZ0D>Rc qAL6y-8F;|p&hk%;2f(2Bpf>CNr9Jzkk7)v3#o+1c=d#Wzp$PyB8%AUR diff --git a/mods/Menu/hud/textures/hud_air_fg.png b/mods/Menu/hud/textures/hud_air_fg.png deleted file mode 100644 index b62c9b02f7f95fb61becb97a8ad79e81a2328ff6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 579 zcmV-J0=)f+P)G&XICSPKg*(jAuFW#{L?*nllW(@CD& zJWnQh-(dhS$AJOB7)-`K9@=cWM|L}VXZ8U*Wx3BzPEE77Zcm^3`<}sMJRA_((!}?s zRLbs2@D^%#mf~?Qw1pe?WcK1!?%dEojdUWPcoFrsf|V$BxH)Qh9inp|Hq>zZTN~EU z4lYl+uN)bu6Eg9I--o1XaJpbd&vCk7ejmqtu0k-oyp0RjpPcOrs9jB073ET+t@g=I z7tFn+^O|pYb00UKreF324G^Bq}I$2(($f0aAtH&cMuSW$}San zxH)PWB>!P;w@v(?d5nyWj~@gYqQWj_YY2wu+^_)W!Az=5q4-O1L!u~$ z2gv}CSkt&q+#qjAa7PoYpHXvr!DF4897(MO7P*rI!Qp00LYedI~_t02AG zZlTDFXvhjGLg(brRW_K6jN^sx(n27H$DSw_-^7r}tz*FxIR8(7;eR=H;1?=BX(~z| R!KnZM002ovPDHLkV1iLN40Heh diff --git a/mods/Menu/hud/textures/hud_armor_bg.png b/mods/Menu/hud/textures/hud_armor_bg.png deleted file mode 100644 index 32401003a8f42a81bb123e03be086fdda348c159..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 424 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 z 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 LNkvXXu0mjf5NEV} diff --git a/mods/Menu/hud/textures/hud_hunger_fg.png b/mods/Menu/hud/textures/hud_hunger_fg.png deleted file mode 100644 index a5cc2a12339c1fcba9e605fb5cae51aabcefb60c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 522 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 diff --git a/mods/Nodes/color/init.lua b/mods/Nodes/color/init.lua index bf341a7..a07e19e 100644 --- a/mods/Nodes/color/init.lua +++ b/mods/Nodes/color/init.lua @@ -8,7 +8,7 @@ color7 = minetest.setting_get("color7") or "FFFF00" color8 = minetest.setting_get("color8") or "FF69B4" local source_list = { - {"black", "Color1", color1, 40, 36, 33}, + {"black", "Color1", color1, 41, 36, 33}, {"blue", "Color2", color2, 0, 0, 255}, {"green", "Color3", color3, 0, 255, 0}, {"white", "Color4", color4, 245, 245, 245},