Merge branch 'master' into nalc-1.2
							
								
								
									
										450
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						| @@ -1,17 +1,15 @@ | |||||||
| For the Lua code:  LGPL 3.0 or higher | License for code: LGPL 3.0 | ||||||
| For all models, all textures, and all sounds:  CC-by-SA 3.0 or higher | License for media and all other assets:  CC-by-SA 4.0 | ||||||
| For everything else: WTFPL |  | ||||||
|  |  | ||||||
| Exceptions to the above: | These licenses apply to all modules and components in this modpack, | ||||||
|  | unless otherwise stated. | ||||||
|  |  | ||||||
| Fancy mesh fire model and texture by NathanS (CC-0). | ############################################################################### | ||||||
|  |  | ||||||
| =============================================================================== |  | ||||||
|  |  | ||||||
|                    GNU LESSER GENERAL PUBLIC LICENSE |                    GNU LESSER GENERAL PUBLIC LICENSE | ||||||
|                        Version 3, 29 June 2007 |                        Version 3, 29 June 2007 | ||||||
|  |  | ||||||
|  Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> |  Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> | ||||||
|  Everyone is permitted to copy and distribute verbatim copies |  Everyone is permitted to copy and distribute verbatim copies | ||||||
|  of this license document, but changing it is not allowed. |  of this license document, but changing it is not allowed. | ||||||
|  |  | ||||||
| @@ -174,26 +172,432 @@ apply, that proxy's public statement of acceptance of any version is | |||||||
| permanent authorization for you to choose that version for the | permanent authorization for you to choose that version for the | ||||||
| Library. | Library. | ||||||
|  |  | ||||||
| =============================================================================== | ############################################################################### | ||||||
|  |  | ||||||
| This work is licensed under the Creative Commons Attribution-ShareAlike  | Attribution-ShareAlike 4.0 International | ||||||
| 4.0 International License. To view a copy of this license, visit  |  | ||||||
| http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to  |  | ||||||
| Creative Commons, PO Box 1866, Mountain View, CA 94042, USA. |  | ||||||
|  |  | ||||||
| =============================================================================== | ======================================================================= | ||||||
|  |  | ||||||
|             DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | Creative Commons Corporation ("Creative Commons") is not a law firm and | ||||||
|                     Version 2, December 2004 | does not provide legal services or legal advice. Distribution of | ||||||
|  | Creative Commons public licenses does not create a lawyer-client or | ||||||
|  | other relationship. Creative Commons makes its licenses and related | ||||||
|  | information available on an "as-is" basis. Creative Commons gives no | ||||||
|  | warranties regarding its licenses, any material licensed under their | ||||||
|  | terms and conditions, or any related information. Creative Commons | ||||||
|  | disclaims all liability for damages resulting from their use to the | ||||||
|  | fullest extent possible. | ||||||
|  |  | ||||||
|  Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> | Using Creative Commons Public Licenses | ||||||
|  |  | ||||||
|  Everyone is permitted to copy and distribute verbatim or modified | Creative Commons public licenses provide a standard set of terms and | ||||||
|  copies of this license document, and changing it is allowed as long | conditions that creators and other rights holders may use to share | ||||||
|  as the name is changed. | original works of authorship and other material subject to copyright | ||||||
|  | and certain other rights specified in the public license below. The | ||||||
|  | following considerations are for informational purposes only, are not | ||||||
|  | exhaustive, and do not form part of our licenses. | ||||||
|  |  | ||||||
|             DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |      Considerations for licensors: Our public licenses are | ||||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |      intended for use by those authorized to give the public | ||||||
|  |      permission to use material in ways otherwise restricted by | ||||||
|  |      copyright and certain other rights. Our licenses are | ||||||
|  |      irrevocable. Licensors should read and understand the terms | ||||||
|  |      and conditions of the license they choose before applying it. | ||||||
|  |      Licensors should also secure all rights necessary before | ||||||
|  |      applying our licenses so that the public can reuse the | ||||||
|  |      material as expected. Licensors should clearly mark any | ||||||
|  |      material not subject to the license. This includes other CC- | ||||||
|  |      licensed material, or material used under an exception or | ||||||
|  |      limitation to copyright. More considerations for licensors: | ||||||
|  | 	wiki.creativecommons.org/Considerations_for_licensors | ||||||
|  |  | ||||||
|   0. You just DO WHAT THE FUCK YOU WANT TO. |      Considerations for the public: By using one of our public | ||||||
|  |      licenses, a licensor grants the public permission to use the | ||||||
|  |      licensed material under specified terms and conditions. If | ||||||
|  |      the licensor's permission is not necessary for any reason--for | ||||||
|  |      example, because of any applicable exception or limitation to | ||||||
|  |      copyright--then that use is not regulated by the license. Our | ||||||
|  |      licenses grant only permissions under copyright and certain | ||||||
|  |      other rights that a licensor has authority to grant. Use of | ||||||
|  |      the licensed material may still be restricted for other | ||||||
|  |      reasons, including because others have copyright or other | ||||||
|  |      rights in the material. A licensor may make special requests, | ||||||
|  |      such as asking that all changes be marked or described. | ||||||
|  |      Although not required by our licenses, you are encouraged to | ||||||
|  |      respect those requests where reasonable. More considerations | ||||||
|  |      for the public:  | ||||||
|  | 	wiki.creativecommons.org/Considerations_for_licensees | ||||||
|  |  | ||||||
|  | ======================================================================= | ||||||
|  |  | ||||||
|  | Creative Commons Attribution-ShareAlike 4.0 International Public | ||||||
|  | License | ||||||
|  |  | ||||||
|  | By exercising the Licensed Rights (defined below), You accept and agree | ||||||
|  | to be bound by the terms and conditions of this Creative Commons | ||||||
|  | Attribution-ShareAlike 4.0 International Public License ("Public | ||||||
|  | License"). To the extent this Public License may be interpreted as a | ||||||
|  | contract, You are granted the Licensed Rights in consideration of Your | ||||||
|  | acceptance of these terms and conditions, and the Licensor grants You | ||||||
|  | such rights in consideration of benefits the Licensor receives from | ||||||
|  | making the Licensed Material available under these terms and | ||||||
|  | conditions. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 1 -- Definitions. | ||||||
|  |  | ||||||
|  |   a. Adapted Material means material subject to Copyright and Similar | ||||||
|  |      Rights that is derived from or based upon the Licensed Material | ||||||
|  |      and in which the Licensed Material is translated, altered, | ||||||
|  |      arranged, transformed, or otherwise modified in a manner requiring | ||||||
|  |      permission under the Copyright and Similar Rights held by the | ||||||
|  |      Licensor. For purposes of this Public License, where the Licensed | ||||||
|  |      Material is a musical work, performance, or sound recording, | ||||||
|  |      Adapted Material is always produced where the Licensed Material is | ||||||
|  |      synched in timed relation with a moving image. | ||||||
|  |  | ||||||
|  |   b. Adapter's License means the license You apply to Your Copyright | ||||||
|  |      and Similar Rights in Your contributions to Adapted Material in | ||||||
|  |      accordance with the terms and conditions of this Public License. | ||||||
|  |  | ||||||
|  |   c. BY-SA Compatible License means a license listed at | ||||||
|  |      creativecommons.org/compatiblelicenses, approved by Creative | ||||||
|  |      Commons as essentially the equivalent of this Public License. | ||||||
|  |  | ||||||
|  |   d. Copyright and Similar Rights means copyright and/or similar rights | ||||||
|  |      closely related to copyright including, without limitation, | ||||||
|  |      performance, broadcast, sound recording, and Sui Generis Database | ||||||
|  |      Rights, without regard to how the rights are labeled or | ||||||
|  |      categorized. For purposes of this Public License, the rights | ||||||
|  |      specified in Section 2(b)(1)-(2) are not Copyright and Similar | ||||||
|  |      Rights. | ||||||
|  |  | ||||||
|  |   e. Effective Technological Measures means those measures that, in the | ||||||
|  |      absence of proper authority, may not be circumvented under laws | ||||||
|  |      fulfilling obligations under Article 11 of the WIPO Copyright | ||||||
|  |      Treaty adopted on December 20, 1996, and/or similar international | ||||||
|  |      agreements. | ||||||
|  |  | ||||||
|  |   f. Exceptions and Limitations means fair use, fair dealing, and/or | ||||||
|  |      any other exception or limitation to Copyright and Similar Rights | ||||||
|  |      that applies to Your use of the Licensed Material. | ||||||
|  |  | ||||||
|  |   g. License Elements means the license attributes listed in the name | ||||||
|  |      of a Creative Commons Public License. The License Elements of this | ||||||
|  |      Public License are Attribution and ShareAlike. | ||||||
|  |  | ||||||
|  |   h. Licensed Material means the artistic or literary work, database, | ||||||
|  |      or other material to which the Licensor applied this Public | ||||||
|  |      License. | ||||||
|  |  | ||||||
|  |   i. Licensed Rights means the rights granted to You subject to the | ||||||
|  |      terms and conditions of this Public License, which are limited to | ||||||
|  |      all Copyright and Similar Rights that apply to Your use of the | ||||||
|  |      Licensed Material and that the Licensor has authority to license. | ||||||
|  |  | ||||||
|  |   j. Licensor means the individual(s) or entity(ies) granting rights | ||||||
|  |      under this Public License. | ||||||
|  |  | ||||||
|  |   k. Share means to provide material to the public by any means or | ||||||
|  |      process that requires permission under the Licensed Rights, such | ||||||
|  |      as reproduction, public display, public performance, distribution, | ||||||
|  |      dissemination, communication, or importation, and to make material | ||||||
|  |      available to the public including in ways that members of the | ||||||
|  |      public may access the material from a place and at a time | ||||||
|  |      individually chosen by them. | ||||||
|  |  | ||||||
|  |   l. Sui Generis Database Rights means rights other than copyright | ||||||
|  |      resulting from Directive 96/9/EC of the European Parliament and of | ||||||
|  |      the Council of 11 March 1996 on the legal protection of databases, | ||||||
|  |      as amended and/or succeeded, as well as other essentially | ||||||
|  |      equivalent rights anywhere in the world. | ||||||
|  |  | ||||||
|  |   m. You means the individual or entity exercising the Licensed Rights | ||||||
|  |      under this Public License. Your has a corresponding meaning. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 2 -- Scope. | ||||||
|  |  | ||||||
|  |   a. License grant. | ||||||
|  |  | ||||||
|  |        1. Subject to the terms and conditions of this Public License, | ||||||
|  |           the Licensor hereby grants You a worldwide, royalty-free, | ||||||
|  |           non-sublicensable, non-exclusive, irrevocable license to | ||||||
|  |           exercise the Licensed Rights in the Licensed Material to: | ||||||
|  |  | ||||||
|  |             a. reproduce and Share the Licensed Material, in whole or | ||||||
|  |                in part; and | ||||||
|  |  | ||||||
|  |             b. produce, reproduce, and Share Adapted Material. | ||||||
|  |  | ||||||
|  |        2. Exceptions and Limitations. For the avoidance of doubt, where | ||||||
|  |           Exceptions and Limitations apply to Your use, this Public | ||||||
|  |           License does not apply, and You do not need to comply with | ||||||
|  |           its terms and conditions. | ||||||
|  |  | ||||||
|  |        3. Term. The term of this Public License is specified in Section | ||||||
|  |           6(a). | ||||||
|  |  | ||||||
|  |        4. Media and formats; technical modifications allowed. The | ||||||
|  |           Licensor authorizes You to exercise the Licensed Rights in | ||||||
|  |           all media and formats whether now known or hereafter created, | ||||||
|  |           and to make technical modifications necessary to do so. The | ||||||
|  |           Licensor waives and/or agrees not to assert any right or | ||||||
|  |           authority to forbid You from making technical modifications | ||||||
|  |           necessary to exercise the Licensed Rights, including | ||||||
|  |           technical modifications necessary to circumvent Effective | ||||||
|  |           Technological Measures. For purposes of this Public License, | ||||||
|  |           simply making modifications authorized by this Section 2(a) | ||||||
|  |           (4) never produces Adapted Material. | ||||||
|  |  | ||||||
|  |        5. Downstream recipients. | ||||||
|  |  | ||||||
|  |             a. Offer from the Licensor -- Licensed Material. Every | ||||||
|  |                recipient of the Licensed Material automatically | ||||||
|  |                receives an offer from the Licensor to exercise the | ||||||
|  |                Licensed Rights under the terms and conditions of this | ||||||
|  |                Public License. | ||||||
|  |  | ||||||
|  |             b. Additional offer from the Licensor -- Adapted Material. | ||||||
|  |                Every recipient of Adapted Material from You | ||||||
|  |                automatically receives an offer from the Licensor to | ||||||
|  |                exercise the Licensed Rights in the Adapted Material | ||||||
|  |                under the conditions of the Adapter's License You apply. | ||||||
|  |  | ||||||
|  |             c. No downstream restrictions. You may not offer or impose | ||||||
|  |                any additional or different terms or conditions on, or | ||||||
|  |                apply any Effective Technological Measures to, the | ||||||
|  |                Licensed Material if doing so restricts exercise of the | ||||||
|  |                Licensed Rights by any recipient of the Licensed | ||||||
|  |                Material. | ||||||
|  |  | ||||||
|  |        6. No endorsement. Nothing in this Public License constitutes or | ||||||
|  |           may be construed as permission to assert or imply that You | ||||||
|  |           are, or that Your use of the Licensed Material is, connected | ||||||
|  |           with, or sponsored, endorsed, or granted official status by, | ||||||
|  |           the Licensor or others designated to receive attribution as | ||||||
|  |           provided in Section 3(a)(1)(A)(i). | ||||||
|  |  | ||||||
|  |   b. Other rights. | ||||||
|  |  | ||||||
|  |        1. Moral rights, such as the right of integrity, are not | ||||||
|  |           licensed under this Public License, nor are publicity, | ||||||
|  |           privacy, and/or other similar personality rights; however, to | ||||||
|  |           the extent possible, the Licensor waives and/or agrees not to | ||||||
|  |           assert any such rights held by the Licensor to the limited | ||||||
|  |           extent necessary to allow You to exercise the Licensed | ||||||
|  |           Rights, but not otherwise. | ||||||
|  |  | ||||||
|  |        2. Patent and trademark rights are not licensed under this | ||||||
|  |           Public License. | ||||||
|  |  | ||||||
|  |        3. To the extent possible, the Licensor waives any right to | ||||||
|  |           collect royalties from You for the exercise of the Licensed | ||||||
|  |           Rights, whether directly or through a collecting society | ||||||
|  |           under any voluntary or waivable statutory or compulsory | ||||||
|  |           licensing scheme. In all other cases the Licensor expressly | ||||||
|  |           reserves any right to collect such royalties. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 3 -- License Conditions. | ||||||
|  |  | ||||||
|  | Your exercise of the Licensed Rights is expressly made subject to the | ||||||
|  | following conditions. | ||||||
|  |  | ||||||
|  |   a. Attribution. | ||||||
|  |  | ||||||
|  |        1. If You Share the Licensed Material (including in modified | ||||||
|  |           form), You must: | ||||||
|  |  | ||||||
|  |             a. retain the following if it is supplied by the Licensor | ||||||
|  |                with the Licensed Material: | ||||||
|  |  | ||||||
|  |                  i. identification of the creator(s) of the Licensed | ||||||
|  |                     Material and any others designated to receive | ||||||
|  |                     attribution, in any reasonable manner requested by | ||||||
|  |                     the Licensor (including by pseudonym if | ||||||
|  |                     designated); | ||||||
|  |  | ||||||
|  |                 ii. a copyright notice; | ||||||
|  |  | ||||||
|  |                iii. a notice that refers to this Public License; | ||||||
|  |  | ||||||
|  |                 iv. a notice that refers to the disclaimer of | ||||||
|  |                     warranties; | ||||||
|  |  | ||||||
|  |                  v. a URI or hyperlink to the Licensed Material to the | ||||||
|  |                     extent reasonably practicable; | ||||||
|  |  | ||||||
|  |             b. indicate if You modified the Licensed Material and | ||||||
|  |                retain an indication of any previous modifications; and | ||||||
|  |  | ||||||
|  |             c. indicate the Licensed Material is licensed under this | ||||||
|  |                Public License, and include the text of, or the URI or | ||||||
|  |                hyperlink to, this Public License. | ||||||
|  |  | ||||||
|  |        2. You may satisfy the conditions in Section 3(a)(1) in any | ||||||
|  |           reasonable manner based on the medium, means, and context in | ||||||
|  |           which You Share the Licensed Material. For example, it may be | ||||||
|  |           reasonable to satisfy the conditions by providing a URI or | ||||||
|  |           hyperlink to a resource that includes the required | ||||||
|  |           information. | ||||||
|  |  | ||||||
|  |        3. If requested by the Licensor, You must remove any of the | ||||||
|  |           information required by Section 3(a)(1)(A) to the extent | ||||||
|  |           reasonably practicable. | ||||||
|  |  | ||||||
|  |   b. ShareAlike. | ||||||
|  |  | ||||||
|  |      In addition to the conditions in Section 3(a), if You Share | ||||||
|  |      Adapted Material You produce, the following conditions also apply. | ||||||
|  |  | ||||||
|  |        1. The Adapter's License You apply must be a Creative Commons | ||||||
|  |           license with the same License Elements, this version or | ||||||
|  |           later, or a BY-SA Compatible License. | ||||||
|  |  | ||||||
|  |        2. You must include the text of, or the URI or hyperlink to, the | ||||||
|  |           Adapter's License You apply. You may satisfy this condition | ||||||
|  |           in any reasonable manner based on the medium, means, and | ||||||
|  |           context in which You Share Adapted Material. | ||||||
|  |  | ||||||
|  |        3. You may not offer or impose any additional or different terms | ||||||
|  |           or conditions on, or apply any Effective Technological | ||||||
|  |           Measures to, Adapted Material that restrict exercise of the | ||||||
|  |           rights granted under the Adapter's License You apply. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 4 -- Sui Generis Database Rights. | ||||||
|  |  | ||||||
|  | Where the Licensed Rights include Sui Generis Database Rights that | ||||||
|  | apply to Your use of the Licensed Material: | ||||||
|  |  | ||||||
|  |   a. for the avoidance of doubt, Section 2(a)(1) grants You the right | ||||||
|  |      to extract, reuse, reproduce, and Share all or a substantial | ||||||
|  |      portion of the contents of the database; | ||||||
|  |  | ||||||
|  |   b. if You include all or a substantial portion of the database | ||||||
|  |      contents in a database in which You have Sui Generis Database | ||||||
|  |      Rights, then the database in which You have Sui Generis Database | ||||||
|  |      Rights (but not its individual contents) is Adapted Material, | ||||||
|  |  | ||||||
|  |      including for purposes of Section 3(b); and | ||||||
|  |   c. You must comply with the conditions in Section 3(a) if You Share | ||||||
|  |      all or a substantial portion of the contents of the database. | ||||||
|  |  | ||||||
|  | For the avoidance of doubt, this Section 4 supplements and does not | ||||||
|  | replace Your obligations under this Public License where the Licensed | ||||||
|  | Rights include other Copyright and Similar Rights. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 5 -- Disclaimer of Warranties and Limitation of Liability. | ||||||
|  |  | ||||||
|  |   a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE | ||||||
|  |      EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS | ||||||
|  |      AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF | ||||||
|  |      ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, | ||||||
|  |      IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, | ||||||
|  |      WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||||||
|  |      PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, | ||||||
|  |      ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT | ||||||
|  |      KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT | ||||||
|  |      ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. | ||||||
|  |  | ||||||
|  |   b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE | ||||||
|  |      TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, | ||||||
|  |      NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, | ||||||
|  |      INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, | ||||||
|  |      COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR | ||||||
|  |      USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN | ||||||
|  |      ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR | ||||||
|  |      DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR | ||||||
|  |      IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. | ||||||
|  |  | ||||||
|  |   c. The disclaimer of warranties and limitation of liability provided | ||||||
|  |      above shall be interpreted in a manner that, to the extent | ||||||
|  |      possible, most closely approximates an absolute disclaimer and | ||||||
|  |      waiver of all liability. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 6 -- Term and Termination. | ||||||
|  |  | ||||||
|  |   a. This Public License applies for the term of the Copyright and | ||||||
|  |      Similar Rights licensed here. However, if You fail to comply with | ||||||
|  |      this Public License, then Your rights under this Public License | ||||||
|  |      terminate automatically. | ||||||
|  |  | ||||||
|  |   b. Where Your right to use the Licensed Material has terminated under | ||||||
|  |      Section 6(a), it reinstates: | ||||||
|  |  | ||||||
|  |        1. automatically as of the date the violation is cured, provided | ||||||
|  |           it is cured within 30 days of Your discovery of the | ||||||
|  |           violation; or | ||||||
|  |  | ||||||
|  |        2. upon express reinstatement by the Licensor. | ||||||
|  |  | ||||||
|  |      For the avoidance of doubt, this Section 6(b) does not affect any | ||||||
|  |      right the Licensor may have to seek remedies for Your violations | ||||||
|  |      of this Public License. | ||||||
|  |  | ||||||
|  |   c. For the avoidance of doubt, the Licensor may also offer the | ||||||
|  |      Licensed Material under separate terms or conditions or stop | ||||||
|  |      distributing the Licensed Material at any time; however, doing so | ||||||
|  |      will not terminate this Public License. | ||||||
|  |  | ||||||
|  |   d. Sections 1, 5, 6, 7, and 8 survive termination of this Public | ||||||
|  |      License. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 7 -- Other Terms and Conditions. | ||||||
|  |  | ||||||
|  |   a. The Licensor shall not be bound by any additional or different | ||||||
|  |      terms or conditions communicated by You unless expressly agreed. | ||||||
|  |  | ||||||
|  |   b. Any arrangements, understandings, or agreements regarding the | ||||||
|  |      Licensed Material not stated herein are separate from and | ||||||
|  |      independent of the terms and conditions of this Public License. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | Section 8 -- Interpretation. | ||||||
|  |  | ||||||
|  |   a. For the avoidance of doubt, this Public License does not, and | ||||||
|  |      shall not be interpreted to, reduce, limit, restrict, or impose | ||||||
|  |      conditions on any use of the Licensed Material that could lawfully | ||||||
|  |      be made without permission under this Public License. | ||||||
|  |  | ||||||
|  |   b. To the extent possible, if any provision of this Public License is | ||||||
|  |      deemed unenforceable, it shall be automatically reformed to the | ||||||
|  |      minimum extent necessary to make it enforceable. If the provision | ||||||
|  |      cannot be reformed, it shall be severed from this Public License | ||||||
|  |      without affecting the enforceability of the remaining terms and | ||||||
|  |      conditions. | ||||||
|  |  | ||||||
|  |   c. No term or condition of this Public License will be waived and no | ||||||
|  |      failure to comply consented to unless expressly agreed to by the | ||||||
|  |      Licensor. | ||||||
|  |  | ||||||
|  |   d. Nothing in this Public License constitutes or may be interpreted | ||||||
|  |      as a limitation upon, or waiver of, any privileges and immunities | ||||||
|  |      that apply to the Licensor or You, including from the legal | ||||||
|  |      processes of any jurisdiction or authority. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ======================================================================= | ||||||
|  |  | ||||||
|  | Creative Commons is not a party to its public | ||||||
|  | licenses. Notwithstanding, Creative Commons may elect to apply one of | ||||||
|  | its public licenses to material it publishes and in those instances | ||||||
|  | will be considered the “Licensor.” The text of the Creative Commons | ||||||
|  | public licenses is dedicated to the public domain under the CC0 Public | ||||||
|  | Domain Dedication. Except for the limited purpose of indicating that | ||||||
|  | material is shared under a Creative Commons public license or as | ||||||
|  | otherwise permitted by the Creative Commons policies published at | ||||||
|  | creativecommons.org/policies, Creative Commons does not authorize the | ||||||
|  | use of the trademark "Creative Commons" or any other trademark or logo | ||||||
|  | of Creative Commons without its prior written consent including, | ||||||
|  | without limitation, in connection with any unauthorized modifications | ||||||
|  | to any of its public licenses or any other arrangements, | ||||||
|  | understandings, or agreements concerning use of licensed material. For | ||||||
|  | the avoidance of doubt, this paragraph does not form part of the | ||||||
|  | public licenses. | ||||||
|  |  | ||||||
|  | Creative Commons may be contacted at creativecommons.org. | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then | if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairs") then | ||||||
| 	minetest.register_alias("building_blocks:slab_tar", "stairs:slab_Tar") | 	minetest.register_alias("building_blocks:slab_tar", "stairs:slab_Tar") | ||||||
| @@ -19,6 +19,10 @@ if minetest.get_modpath("moreblocks") then | |||||||
| 	minetest.unregister_item("moreblocks:tar") | 	minetest.unregister_item("moreblocks:tar") | ||||||
| 	minetest.register_alias("moreblocks:tar", "building_blocks:Tar") | 	minetest.register_alias("moreblocks:tar", "building_blocks:Tar") | ||||||
| 	stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar") | 	stairsplus:register_alias_all("moreblocks", "tar", "building_blocks", "Tar") | ||||||
|  |  | ||||||
|  | 	if minetest.get_modpath("gloopblocks") then | ||||||
|  | 		minetest.register_alias("building_blocks:gravel_spread", "gloopblocks:slab_gravel_1") | ||||||
|  | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
| minetest.register_alias("adobe", "building_blocks:Adobe") | minetest.register_alias("adobe", "building_blocks:Adobe") | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| default | default | ||||||
| homedecor_i18n | homedecor_common | ||||||
| moreblocks? | moreblocks? | ||||||
|  | gloopblocks? | ||||||
| stairs? | stairs? | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
| local modpath = minetest.get_modpath("building_blocks") | local modpath = minetest.get_modpath("building_blocks") | ||||||
|  |  | ||||||
| dofile(modpath.."/alias.lua") | dofile(modpath.."/alias.lua") | ||||||
| @@ -7,3 +7,4 @@ dofile(modpath.."/others.lua") | |||||||
| dofile(modpath.."/recipes.lua") | dofile(modpath.."/recipes.lua") | ||||||
|  |  | ||||||
| minetest.log("action", "[building_blocks] loaded.") | minetest.log("action", "[building_blocks] loaded.") | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"} | local stairs_groups_names = {"cracky","choppy","flammable","crumbly","snappy"} | ||||||
|  |  | ||||||
| @@ -33,7 +33,7 @@ local function building_blocks_stairs(nodename, def) | |||||||
| 				("%s Slab"):format(def.description), | 				("%s Slab"):format(def.description), | ||||||
| 				def.sounds | 				def.sounds | ||||||
| 			) | 			) | ||||||
| 		end	 | 		end | ||||||
| 	end | 	end | ||||||
| end | end | ||||||
|  |  | ||||||
| @@ -131,26 +131,30 @@ minetest.register_node("building_blocks:brobble_spread", { | |||||||
| 	is_ground_content = true, | 	is_ground_content = true, | ||||||
| 	groups = {crumbly=3}, | 	groups = {crumbly=3}, | ||||||
| }) | }) | ||||||
| minetest.register_node("building_blocks:gravel_spread", { |  | ||||||
| 	drawtype = "raillike", | if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then | ||||||
| 	description = S("Gravel Spread"), | 	minetest.register_node("building_blocks:gravel_spread", { | ||||||
| 	tiles = {"default_gravel.png"}, | 		drawtype = "raillike", | ||||||
| 	inventory_image = "building_blocks_gravel_spread_inv.png", | 		description = S("Gravel Spread"), | ||||||
| 	paramtype = "light", | 		tiles = {"default_gravel.png"}, | ||||||
| 	walkable = false, | 		inventory_image = "building_blocks_gravel_spread_inv.png", | ||||||
| 	selection_box = { | 		paramtype = "light", | ||||||
| 		type = "fixed", | 		walkable = false, | ||||||
|                 -- but how to specify the dimensions for curved and sideways rails? | 		selection_box = { | ||||||
|                 fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, | 			type = "fixed", | ||||||
| 	}, | 					-- but how to specify the dimensions for curved and sideways rails? | ||||||
| 	sunlight_propagates = true, | 					fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, | ||||||
| 	is_ground_content = true, | 		}, | ||||||
| 	groups = {crumbly=2}, | 		sunlight_propagates = true, | ||||||
| 	sounds = default.node_sound_dirt_defaults({ | 		is_ground_content = true, | ||||||
| 		footstep = {name="default_gravel_footstep", gain=0.5}, | 		groups = {crumbly=2}, | ||||||
| 		dug = {name="default_gravel_footstep", gain=1.0}, | 		sounds = default.node_sound_dirt_defaults({ | ||||||
| 	}), | 			footstep = {name="default_gravel_footstep", gain=0.5}, | ||||||
| }) | 			dug = {name="default_gravel_footstep", gain=1.0}, | ||||||
|  | 		}), | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
| minetest.register_node("building_blocks:Tarmac_spread", { | minetest.register_node("building_blocks:Tarmac_spread", { | ||||||
| 	drawtype = "raillike", | 	drawtype = "raillike", | ||||||
| 	description = S("Tarmac Spread"), | 	description = S("Tarmac Spread"), | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| minetest.register_craftitem("building_blocks:sticks", { | minetest.register_craftitem("building_blocks:sticks", { | ||||||
| 	description = S("Small bundle of sticks"), | 	description = S("Small bundle of sticks"), | ||||||
| @@ -20,4 +20,4 @@ minetest.register_tool("building_blocks:knife", { | |||||||
| 			fleshy={times={[2]=5.50, [3]=2.80}, uses=100, maxlevel=1} | 			fleshy={times={[2]=5.50, [3]=2.80}, uses=100, maxlevel=1} | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
| }) | }) | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| if minetest.get_modpath("moreblocks") then | if minetest.get_modpath("moreblocks") then | ||||||
| 	minetest.register_craft({ | 	minetest.register_craft({ | ||||||
| @@ -60,12 +60,16 @@ minetest.register_craft({ | |||||||
| 		{"default:glass", "default:glass"}, | 		{"default:glass", "default:glass"}, | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = 'building_blocks:gravel_spread 4', | if not minetest.get_modpath("moreblocks") or not minetest.get_modpath("gloopblocks") then | ||||||
| 	recipe = { | 	minetest.register_craft({ | ||||||
| 		{"default:gravel", "default:gravel", "default:gravel"}, | 		output = 'building_blocks:gravel_spread 4', | ||||||
| 	} | 		recipe = { | ||||||
| }) | 			{"default:gravel", "default:gravel", "default:gravel"}, | ||||||
|  | 		} | ||||||
|  | 	}) | ||||||
|  | end | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = 'building_blocks:hardwood 2', | 	output = 'building_blocks:hardwood 2', | ||||||
| 	recipe = { | 	recipe = { | ||||||
| @@ -167,4 +171,4 @@ minetest.register_craft({ | |||||||
| 	type = "fuel", | 	type = "fuel", | ||||||
| 	recipe = "building_blocks:Tar", | 	recipe = "building_blocks:Tar", | ||||||
| 	burntime = 40, | 	burntime = 40, | ||||||
| }) | }) | ||||||
|   | |||||||
| Before Width: | Height: | Size: 499 B After Width: | Height: | Size: 450 B | 
| @@ -1,2 +0,0 @@ | |||||||
| default |  | ||||||
| homedecor |  | ||||||
| @@ -1,881 +0,0 @@ | |||||||
| # Blender v2.73 (sub 0) OBJ File: 'chains.blend' |  | ||||||
| # www.blender.org |  | ||||||
| o Torus.016_Torus |  | ||||||
| v 0.000000 -0.429978 0.000002 |  | ||||||
| v 0.000000 -0.401109 0.055211 |  | ||||||
| v -0.014044 -0.391975 0.048870 |  | ||||||
| v -0.014044 -0.423304 0.000002 |  | ||||||
| v -0.009826 -0.379748 0.040970 |  | ||||||
| v -0.009826 -0.406012 0.000002 |  | ||||||
| v 0.009826 -0.379748 0.040970 |  | ||||||
| v 0.009826 -0.406012 0.000002 |  | ||||||
| v 0.014044 -0.391975 0.048870 |  | ||||||
| v 0.014044 -0.423304 0.000002 |  | ||||||
| v 0.000000 -0.316336 0.080195 |  | ||||||
| v -0.014044 -0.316336 0.069112 |  | ||||||
| v -0.009826 -0.316336 0.057941 |  | ||||||
| v 0.009826 -0.316336 0.057941 |  | ||||||
| v 0.014044 -0.316336 0.069112 |  | ||||||
| v 0.000000 -0.231564 0.055211 |  | ||||||
| v -0.014044 -0.240700 0.048870 |  | ||||||
| v -0.009826 -0.252925 0.040970 |  | ||||||
| v 0.009826 -0.252925 0.040970 |  | ||||||
| v 0.014044 -0.240700 0.048870 |  | ||||||
| v 0.000000 -0.202695 0.000002 |  | ||||||
| v -0.014044 -0.209368 0.000002 |  | ||||||
| v -0.009826 -0.226661 0.000002 |  | ||||||
| v 0.009826 -0.226661 0.000002 |  | ||||||
| v 0.014044 -0.209368 0.000002 |  | ||||||
| v 0.000000 -0.231564 -0.055206 |  | ||||||
| v -0.014044 -0.240700 -0.048868 |  | ||||||
| v -0.009826 -0.252925 -0.040967 |  | ||||||
| v 0.009826 -0.252925 -0.040967 |  | ||||||
| v 0.014044 -0.240700 -0.048865 |  | ||||||
| v 0.000000 -0.316336 -0.080190 |  | ||||||
| v -0.014044 -0.316336 -0.069108 |  | ||||||
| v -0.009826 -0.316336 -0.057936 |  | ||||||
| v 0.009826 -0.316336 -0.057936 |  | ||||||
| v 0.014044 -0.316336 -0.069108 |  | ||||||
| v 0.000000 -0.400361 -0.055206 |  | ||||||
| v -0.014044 -0.391975 -0.048868 |  | ||||||
| v -0.009826 -0.379748 -0.040967 |  | ||||||
| v 0.009826 -0.379748 -0.040967 |  | ||||||
| v 0.014044 -0.391975 -0.048868 |  | ||||||
| v 0.000000 -0.262249 0.000002 |  | ||||||
| v -0.061672 -0.233381 0.000002 |  | ||||||
| v -0.054590 -0.224245 -0.012569 |  | ||||||
| v 0.000000 -0.255577 -0.012569 |  | ||||||
| v -0.045765 -0.212018 -0.008794 |  | ||||||
| v 0.000000 -0.238285 -0.008794 |  | ||||||
| v -0.045765 -0.212018 0.008798 |  | ||||||
| v 0.000000 -0.238285 0.008798 |  | ||||||
| v -0.054590 -0.224245 0.012574 |  | ||||||
| v 0.000000 -0.255577 0.012574 |  | ||||||
| v -0.089582 -0.148609 0.000002 |  | ||||||
| v -0.077200 -0.148609 -0.012569 |  | ||||||
| v -0.064722 -0.148609 -0.008794 |  | ||||||
| v -0.064722 -0.148609 0.008799 |  | ||||||
| v -0.077200 -0.148609 0.012574 |  | ||||||
| v -0.061672 -0.063837 0.000002 |  | ||||||
| v -0.054590 -0.072971 -0.012569 |  | ||||||
| v -0.045765 -0.085198 -0.008794 |  | ||||||
| v -0.045765 -0.085198 0.008799 |  | ||||||
| v -0.054590 -0.072971 0.012574 |  | ||||||
| v 0.000000 -0.034967 0.000002 |  | ||||||
| v 0.000000 -0.041641 -0.012569 |  | ||||||
| v 0.000000 -0.058933 -0.008794 |  | ||||||
| v 0.000000 -0.058933 0.008799 |  | ||||||
| v 0.000000 -0.041641 0.012574 |  | ||||||
| v 0.061672 -0.063837 0.000002 |  | ||||||
| v 0.054590 -0.072971 -0.012569 |  | ||||||
| v 0.045765 -0.085198 -0.008794 |  | ||||||
| v 0.045765 -0.085198 0.008799 |  | ||||||
| v 0.054590 -0.072971 0.012574 |  | ||||||
| v 0.089582 -0.148609 0.000002 |  | ||||||
| v 0.077200 -0.148609 -0.012569 |  | ||||||
| v 0.064722 -0.148609 -0.008794 |  | ||||||
| v 0.064722 -0.148609 0.008799 |  | ||||||
| v 0.077200 -0.148609 0.012574 |  | ||||||
| v 0.061672 -0.232631 0.000002 |  | ||||||
| v 0.054590 -0.224245 -0.012569 |  | ||||||
| v 0.045765 -0.212018 -0.008794 |  | ||||||
| v 0.045765 -0.212018 0.008798 |  | ||||||
| v 0.054590 -0.224245 0.012574 |  | ||||||
| v 0.000000 0.073316 0.000002 |  | ||||||
| v 0.061672 0.102183 0.000002 |  | ||||||
| v 0.054590 0.111319 0.012574 |  | ||||||
| v 0.000000 0.079988 0.012574 |  | ||||||
| v 0.045765 0.123546 0.008799 |  | ||||||
| v 0.000000 0.097280 0.008799 |  | ||||||
| v 0.045765 0.123546 -0.008794 |  | ||||||
| v 0.000000 0.097280 -0.008794 |  | ||||||
| v 0.054590 0.111319 -0.012569 |  | ||||||
| v 0.000000 0.079988 -0.012569 |  | ||||||
| v 0.089582 0.186956 0.000002 |  | ||||||
| v 0.077200 0.186956 0.012574 |  | ||||||
| v 0.064722 0.186956 0.008799 |  | ||||||
| v 0.064722 0.186956 -0.008794 |  | ||||||
| v 0.077200 0.186956 -0.012569 |  | ||||||
| v 0.061672 0.271728 0.000002 |  | ||||||
| v 0.054590 0.262594 0.012574 |  | ||||||
| v 0.045765 0.250367 0.008799 |  | ||||||
| v 0.045765 0.250367 -0.008794 |  | ||||||
| v 0.054590 0.262594 -0.012569 |  | ||||||
| v 0.000000 0.300597 0.000002 |  | ||||||
| v 0.000000 0.293923 0.012574 |  | ||||||
| v 0.000000 0.276631 0.008799 |  | ||||||
| v 0.000000 0.276631 -0.008794 |  | ||||||
| v 0.000000 0.293923 -0.012569 |  | ||||||
| v -0.061672 0.271728 0.000002 |  | ||||||
| v -0.054590 0.262594 0.012574 |  | ||||||
| v -0.045765 0.250367 0.008799 |  | ||||||
| v -0.045765 0.250367 -0.008794 |  | ||||||
| v -0.054590 0.262594 -0.012569 |  | ||||||
| v -0.089582 0.186956 0.000002 |  | ||||||
| v -0.077200 0.186956 0.012574 |  | ||||||
| v -0.064722 0.186956 0.008799 |  | ||||||
| v -0.064722 0.186956 -0.008794 |  | ||||||
| v -0.077200 0.186956 -0.012569 |  | ||||||
| v -0.061672 0.102931 0.000002 |  | ||||||
| v -0.054590 0.111319 0.012574 |  | ||||||
| v -0.045765 0.123546 0.008799 |  | ||||||
| v -0.045765 0.123546 -0.008794 |  | ||||||
| v -0.054590 0.111319 -0.012569 |  | ||||||
| v 0.000000 -0.095037 0.000002 |  | ||||||
| v 0.000000 -0.066168 -0.055206 |  | ||||||
| v 0.014044 -0.057034 -0.048868 |  | ||||||
| v 0.014044 -0.088363 0.000002 |  | ||||||
| v 0.009826 -0.044807 -0.040967 |  | ||||||
| v 0.009826 -0.071071 0.000002 |  | ||||||
| v -0.009826 -0.044807 -0.040967 |  | ||||||
| v -0.009826 -0.071071 0.000002 |  | ||||||
| v -0.014044 -0.057034 -0.048868 |  | ||||||
| v -0.014044 -0.088363 0.000002 |  | ||||||
| v 0.000000 0.018605 -0.080190 |  | ||||||
| v 0.014044 0.018605 -0.069108 |  | ||||||
| v 0.009826 0.018605 -0.057936 |  | ||||||
| v -0.009826 0.018605 -0.057936 |  | ||||||
| v -0.014044 0.018605 -0.069108 |  | ||||||
| v 0.000000 0.103377 -0.055206 |  | ||||||
| v 0.014044 0.094243 -0.048868 |  | ||||||
| v 0.009826 0.082016 -0.040967 |  | ||||||
| v -0.009826 0.082016 -0.040967 |  | ||||||
| v -0.014044 0.094243 -0.048868 |  | ||||||
| v 0.000000 0.132246 0.000002 |  | ||||||
| v 0.014044 0.125572 0.000002 |  | ||||||
| v 0.009826 0.108280 0.000002 |  | ||||||
| v -0.009826 0.108280 0.000002 |  | ||||||
| v -0.014044 0.125572 0.000002 |  | ||||||
| v 0.000000 0.103377 0.055211 |  | ||||||
| v 0.014044 0.094243 0.048870 |  | ||||||
| v 0.009826 0.082016 0.040970 |  | ||||||
| v -0.009826 0.082016 0.040970 |  | ||||||
| v -0.014044 0.094243 0.048870 |  | ||||||
| v 0.000000 0.018605 0.080195 |  | ||||||
| v 0.014044 0.018605 0.069112 |  | ||||||
| v 0.009826 0.018605 0.057941 |  | ||||||
| v -0.009826 0.018605 0.057941 |  | ||||||
| v -0.014044 0.018605 0.069112 |  | ||||||
| v 0.000000 -0.065420 0.055211 |  | ||||||
| v 0.014044 -0.057032 0.048870 |  | ||||||
| v 0.009826 -0.044807 0.040970 |  | ||||||
| v -0.009826 -0.044807 0.040970 |  | ||||||
| v -0.014044 -0.057032 0.048870 |  | ||||||
| v 0.000000 -0.598329 0.000002 |  | ||||||
| v 0.061672 -0.569460 0.000002 |  | ||||||
| v 0.054590 -0.560326 0.012574 |  | ||||||
| v 0.000000 -0.591655 0.012574 |  | ||||||
| v 0.045765 -0.548099 0.008798 |  | ||||||
| v 0.000000 -0.574363 0.008798 |  | ||||||
| v 0.045765 -0.548099 -0.008794 |  | ||||||
| v 0.000000 -0.574363 -0.008794 |  | ||||||
| v 0.054590 -0.560326 -0.012569 |  | ||||||
| v 0.000000 -0.591655 -0.012569 |  | ||||||
| v 0.089582 -0.484687 0.000002 |  | ||||||
| v 0.077200 -0.484687 0.012574 |  | ||||||
| v 0.064722 -0.484687 0.008798 |  | ||||||
| v 0.064722 -0.484687 -0.008794 |  | ||||||
| v 0.077200 -0.484687 -0.012569 |  | ||||||
| v 0.061672 -0.399915 0.000002 |  | ||||||
| v 0.054590 -0.409051 0.012574 |  | ||||||
| v 0.045765 -0.421278 0.008798 |  | ||||||
| v 0.045765 -0.421278 -0.008794 |  | ||||||
| v 0.054590 -0.409051 -0.012569 |  | ||||||
| v 0.000000 -0.371048 0.000002 |  | ||||||
| v 0.000000 -0.377719 0.012574 |  | ||||||
| v 0.000000 -0.395012 0.008798 |  | ||||||
| v 0.000000 -0.395012 -0.008794 |  | ||||||
| v 0.000000 -0.377719 -0.012569 |  | ||||||
| v -0.061672 -0.399915 0.000002 |  | ||||||
| v -0.054590 -0.409051 0.012574 |  | ||||||
| v -0.045765 -0.421278 0.008798 |  | ||||||
| v -0.045765 -0.421278 -0.008794 |  | ||||||
| v -0.054590 -0.409051 -0.012569 |  | ||||||
| v -0.089582 -0.484687 0.000002 |  | ||||||
| v -0.077200 -0.484687 0.012574 |  | ||||||
| v -0.064722 -0.484687 0.008798 |  | ||||||
| v -0.064722 -0.484687 -0.008794 |  | ||||||
| v -0.077200 -0.484687 -0.012569 |  | ||||||
| v -0.061672 -0.568712 0.000002 |  | ||||||
| v -0.054590 -0.560326 0.012574 |  | ||||||
| v -0.045765 -0.548099 0.008798 |  | ||||||
| v -0.045765 -0.548099 -0.008794 |  | ||||||
| v -0.054590 -0.560326 -0.012569 |  | ||||||
| v 0.000000 0.241043 0.000002 |  | ||||||
| v 0.000000 0.269910 0.055211 |  | ||||||
| v -0.014044 0.279047 0.048870 |  | ||||||
| v -0.014044 0.247717 0.000002 |  | ||||||
| v -0.009826 0.291274 0.040970 |  | ||||||
| v -0.009826 0.265007 0.000002 |  | ||||||
| v 0.009826 0.291274 0.040970 |  | ||||||
| v 0.009826 0.265007 0.000002 |  | ||||||
| v 0.014044 0.279047 0.048870 |  | ||||||
| v 0.014044 0.247717 0.000002 |  | ||||||
| v 0.000000 0.354683 0.080195 |  | ||||||
| v -0.014044 0.354683 0.069112 |  | ||||||
| v -0.009826 0.354683 0.057941 |  | ||||||
| v 0.009826 0.354683 0.057941 |  | ||||||
| v 0.014044 0.354683 0.069112 |  | ||||||
| v 0.000000 0.439455 0.055211 |  | ||||||
| v -0.014044 0.430321 0.048870 |  | ||||||
| v -0.009826 0.418094 0.040970 |  | ||||||
| v 0.009826 0.418094 0.040970 |  | ||||||
| v 0.014044 0.430321 0.048870 |  | ||||||
| v 0.000000 0.468325 0.000002 |  | ||||||
| v -0.014044 0.461651 0.000002 |  | ||||||
| v -0.009826 0.444361 0.000002 |  | ||||||
| v 0.009826 0.444361 0.000002 |  | ||||||
| v 0.014044 0.461651 0.000002 |  | ||||||
| v 0.000000 0.439455 -0.055206 |  | ||||||
| v -0.014044 0.430321 -0.048868 |  | ||||||
| v -0.009826 0.418094 -0.040967 |  | ||||||
| v 0.009826 0.418094 -0.040967 |  | ||||||
| v 0.014044 0.430321 -0.048868 |  | ||||||
| v 0.000000 0.354683 -0.080190 |  | ||||||
| v -0.014044 0.354683 -0.069108 |  | ||||||
| v -0.009826 0.354683 -0.057936 |  | ||||||
| v 0.009826 0.354683 -0.057936 |  | ||||||
| v 0.014044 0.354683 -0.069108 |  | ||||||
| v 0.000000 0.270661 -0.055206 |  | ||||||
| v -0.014044 0.279047 -0.048868 |  | ||||||
| v -0.009826 0.291274 -0.040967 |  | ||||||
| v 0.009826 0.291274 -0.040967 |  | ||||||
| v 0.014044 0.279047 -0.048868 |  | ||||||
| vt 0.187500 0.125000 |  | ||||||
| vt 0.250000 0.125000 |  | ||||||
| vt 0.250000 0.187500 |  | ||||||
| vt 0.187500 0.187500 |  | ||||||
| vt 0.250000 0.250000 |  | ||||||
| vt 0.187500 0.250000 |  | ||||||
| vt 0.250000 0.312500 |  | ||||||
| vt 0.187500 0.312500 |  | ||||||
| vt 0.250000 0.375000 |  | ||||||
| vt 0.187500 0.375000 |  | ||||||
| vt 0.187500 0.062500 |  | ||||||
| vt 0.250000 0.062500 |  | ||||||
| vt 0.312500 0.125000 |  | ||||||
| vt 0.312500 0.187500 |  | ||||||
| vt 0.312500 0.250000 |  | ||||||
| vt 0.312500 0.312500 |  | ||||||
| vt 0.312500 0.375000 |  | ||||||
| vt 0.312500 0.062500 |  | ||||||
| vt 0.375000 0.125000 |  | ||||||
| vt 0.375000 0.187500 |  | ||||||
| vt 0.375000 0.250000 |  | ||||||
| vt 0.375000 0.312500 |  | ||||||
| vt 0.375000 0.375000 |  | ||||||
| vt 0.375000 0.062500 |  | ||||||
| vt 0.437500 0.125000 |  | ||||||
| vt 0.437500 0.187500 |  | ||||||
| vt 0.437500 0.250000 |  | ||||||
| vt 0.437500 0.312500 |  | ||||||
| vt 0.437500 0.375000 |  | ||||||
| vt 0.437500 0.062500 |  | ||||||
| vt 0.500000 0.125000 |  | ||||||
| vt 0.500000 0.187500 |  | ||||||
| vt 0.500000 0.250000 |  | ||||||
| vt 0.500000 0.312500 |  | ||||||
| vt 0.500000 0.375000 |  | ||||||
| vt 0.500000 0.062500 |  | ||||||
| vt -0.000000 0.125000 |  | ||||||
| vt 0.062500 0.125000 |  | ||||||
| vt 0.062500 0.187500 |  | ||||||
| vt -0.000000 0.187500 |  | ||||||
| vt 0.062500 0.250000 |  | ||||||
| vt -0.000000 0.250000 |  | ||||||
| vt 0.062500 0.312500 |  | ||||||
| vt -0.000000 0.312500 |  | ||||||
| vt 0.062500 0.375000 |  | ||||||
| vt -0.000000 0.375000 |  | ||||||
| vt -0.000000 0.062500 |  | ||||||
| vt 0.062500 0.062500 |  | ||||||
| vt 0.125000 0.125000 |  | ||||||
| vt 0.125000 0.187500 |  | ||||||
| vt 0.125000 0.250000 |  | ||||||
| vt 0.125000 0.312500 |  | ||||||
| vt 0.125000 0.375000 |  | ||||||
| vt 0.125000 0.062500 |  | ||||||
| vt 0.750000 0.625000 |  | ||||||
| vt 0.812500 0.625000 |  | ||||||
| vt 0.812500 0.687500 |  | ||||||
| vt 0.750000 0.687500 |  | ||||||
| vt 0.750000 0.375000 |  | ||||||
| vt 0.812500 0.375000 |  | ||||||
| vt 0.812500 0.437500 |  | ||||||
| vt 0.750000 0.437500 |  | ||||||
| vt 0.812500 0.500000 |  | ||||||
| vt 0.750000 0.500000 |  | ||||||
| vt 0.812500 0.562500 |  | ||||||
| vt 0.750000 0.562500 |  | ||||||
| vt 0.875000 0.625000 |  | ||||||
| vt 0.875000 0.687500 |  | ||||||
| vt 0.875000 0.375000 |  | ||||||
| vt 0.875000 0.437500 |  | ||||||
| vt 0.875000 0.500000 |  | ||||||
| vt 0.875000 0.562500 |  | ||||||
| vt 0.937500 0.625000 |  | ||||||
| vt 0.937500 0.687500 |  | ||||||
| vt 0.937500 0.375000 |  | ||||||
| vt 0.937500 0.437500 |  | ||||||
| vt 0.937500 0.500000 |  | ||||||
| vt 0.937500 0.562500 |  | ||||||
| vt 1.000000 0.625000 |  | ||||||
| vt 1.000000 0.687500 |  | ||||||
| vt 1.000000 0.375000 |  | ||||||
| vt 1.000000 0.437500 |  | ||||||
| vt 1.000000 0.500000 |  | ||||||
| vt 1.000000 0.562500 |  | ||||||
| vt 0.500000 0.625000 |  | ||||||
| vt 0.562500 0.625000 |  | ||||||
| vt 0.562500 0.687500 |  | ||||||
| vt 0.500000 0.687500 |  | ||||||
| vt 0.562500 0.375000 |  | ||||||
| vt 0.562500 0.437500 |  | ||||||
| vt 0.500000 0.437500 |  | ||||||
| vt 0.562500 0.500000 |  | ||||||
| vt 0.500000 0.500000 |  | ||||||
| vt 0.562500 0.562500 |  | ||||||
| vt 0.500000 0.562500 |  | ||||||
| vt 0.625000 0.625000 |  | ||||||
| vt 0.625000 0.687500 |  | ||||||
| vt 0.625000 0.375000 |  | ||||||
| vt 0.625000 0.437500 |  | ||||||
| vt 0.625000 0.500000 |  | ||||||
| vt 0.625000 0.562500 |  | ||||||
| vt 0.687500 0.625000 |  | ||||||
| vt 0.687500 0.687500 |  | ||||||
| vt 0.687500 0.375000 |  | ||||||
| vt 0.687500 0.437500 |  | ||||||
| vt 0.687500 0.500000 |  | ||||||
| vt 0.687500 0.562500 |  | ||||||
| vt 0.250000 0.625000 |  | ||||||
| vt 0.312500 0.625000 |  | ||||||
| vt 0.312500 0.687500 |  | ||||||
| vt 0.250000 0.687500 |  | ||||||
| vt 0.312500 0.437500 |  | ||||||
| vt 0.250000 0.437500 |  | ||||||
| vt 0.312500 0.500000 |  | ||||||
| vt 0.250000 0.500000 |  | ||||||
| vt 0.312500 0.562500 |  | ||||||
| vt 0.250000 0.562500 |  | ||||||
| vt 0.375000 0.625000 |  | ||||||
| vt 0.375000 0.687500 |  | ||||||
| vt 0.375000 0.437500 |  | ||||||
| vt 0.375000 0.500000 |  | ||||||
| vt 0.375000 0.562500 |  | ||||||
| vt 0.437500 0.625000 |  | ||||||
| vt 0.437500 0.687500 |  | ||||||
| vt 0.437500 0.437500 |  | ||||||
| vt 0.437500 0.500000 |  | ||||||
| vt 0.437500 0.562500 |  | ||||||
| vt -0.000000 0.625000 |  | ||||||
| vt 0.062500 0.625000 |  | ||||||
| vt 0.062500 0.687500 |  | ||||||
| vt -0.000000 0.687500 |  | ||||||
| vt 0.062500 0.437500 |  | ||||||
| vt -0.000000 0.437500 |  | ||||||
| vt 0.062500 0.500000 |  | ||||||
| vt -0.000000 0.500000 |  | ||||||
| vt 0.062500 0.562500 |  | ||||||
| vt -0.000000 0.562500 |  | ||||||
| vt 0.125000 0.625000 |  | ||||||
| vt 0.125000 0.687500 |  | ||||||
| vt 0.125000 0.437500 |  | ||||||
| vt 0.125000 0.500000 |  | ||||||
| vt 0.125000 0.562500 |  | ||||||
| vt 0.187500 0.625000 |  | ||||||
| vt 0.187500 0.687500 |  | ||||||
| vt 0.187500 0.437500 |  | ||||||
| vt 0.187500 0.500000 |  | ||||||
| vt 0.187500 0.562500 |  | ||||||
| vt 0.687500 0.750000 |  | ||||||
| vt 0.750000 0.750000 |  | ||||||
| vt 0.750000 0.812500 |  | ||||||
| vt 0.687500 0.812500 |  | ||||||
| vt 0.750000 0.875000 |  | ||||||
| vt 0.687500 0.875000 |  | ||||||
| vt 0.750000 0.937500 |  | ||||||
| vt 0.687500 0.937500 |  | ||||||
| vt 0.750000 1.000000 |  | ||||||
| vt 0.687500 1.000000 |  | ||||||
| vt 0.812500 0.750000 |  | ||||||
| vt 0.812500 0.812500 |  | ||||||
| vt 0.812500 0.875000 |  | ||||||
| vt 0.812500 0.937500 |  | ||||||
| vt 0.812500 1.000000 |  | ||||||
| vt 0.875000 0.750000 |  | ||||||
| vt 0.875000 0.812500 |  | ||||||
| vt 0.875000 0.875000 |  | ||||||
| vt 0.875000 0.937500 |  | ||||||
| vt 0.875000 1.000000 |  | ||||||
| vt 0.937500 0.750000 |  | ||||||
| vt 0.937500 0.812500 |  | ||||||
| vt 0.937500 0.875000 |  | ||||||
| vt 0.937500 0.937500 |  | ||||||
| vt 0.937500 1.000000 |  | ||||||
| vt 1.000000 0.750000 |  | ||||||
| vt 1.000000 0.812500 |  | ||||||
| vt 1.000000 0.875000 |  | ||||||
| vt 1.000000 0.937500 |  | ||||||
| vt 1.000000 1.000000 |  | ||||||
| vt 0.500000 0.750000 |  | ||||||
| vt 0.562500 0.750000 |  | ||||||
| vt 0.562500 0.812500 |  | ||||||
| vt 0.500000 0.812500 |  | ||||||
| vt 0.562500 0.875000 |  | ||||||
| vt 0.500000 0.875000 |  | ||||||
| vt 0.562500 0.937500 |  | ||||||
| vt 0.500000 0.937500 |  | ||||||
| vt 0.562500 1.000000 |  | ||||||
| vt 0.500000 1.000000 |  | ||||||
| vt 0.625000 0.750000 |  | ||||||
| vt 0.625000 0.812500 |  | ||||||
| vt 0.625000 0.875000 |  | ||||||
| vt 0.625000 0.937500 |  | ||||||
| vt 0.625000 1.000000 |  | ||||||
| vt 0.750000 0.312500 |  | ||||||
| vt 0.812500 0.312500 |  | ||||||
| vt 0.750000 0.062500 |  | ||||||
| vt 0.812500 0.062500 |  | ||||||
| vt 0.812500 0.125000 |  | ||||||
| vt 0.750000 0.125000 |  | ||||||
| vt 0.812500 0.187500 |  | ||||||
| vt 0.750000 0.187500 |  | ||||||
| vt 0.812500 0.250000 |  | ||||||
| vt 0.750000 0.250000 |  | ||||||
| vt 0.875000 0.312500 |  | ||||||
| vt 0.875000 0.062500 |  | ||||||
| vt 0.875000 0.125000 |  | ||||||
| vt 0.875000 0.187500 |  | ||||||
| vt 0.875000 0.250000 |  | ||||||
| vt 0.937500 0.312500 |  | ||||||
| vt 0.937500 0.062500 |  | ||||||
| vt 0.937500 0.125000 |  | ||||||
| vt 0.937500 0.187500 |  | ||||||
| vt 0.937500 0.250000 |  | ||||||
| vt 1.000000 0.312500 |  | ||||||
| vt 1.000000 0.062500 |  | ||||||
| vt 1.000000 0.125000 |  | ||||||
| vt 1.000000 0.187500 |  | ||||||
| vt 1.000000 0.250000 |  | ||||||
| vt 0.562500 0.312500 |  | ||||||
| vt 0.562500 0.062500 |  | ||||||
| vt 0.562500 0.125000 |  | ||||||
| vt 0.562500 0.187500 |  | ||||||
| vt 0.562500 0.250000 |  | ||||||
| vt 0.625000 0.312500 |  | ||||||
| vt 0.625000 0.062500 |  | ||||||
| vt 0.625000 0.125000 |  | ||||||
| vt 0.625000 0.187500 |  | ||||||
| vt 0.625000 0.250000 |  | ||||||
| vt 0.687500 0.312500 |  | ||||||
| vt 0.687500 0.062500 |  | ||||||
| vt 0.687500 0.125000 |  | ||||||
| vt 0.687500 0.187500 |  | ||||||
| vt 0.687500 0.250000 |  | ||||||
| vt 0.250000 0.937500 |  | ||||||
| vt 0.312500 0.937500 |  | ||||||
| vt 0.312500 1.000000 |  | ||||||
| vt 0.250000 1.000000 |  | ||||||
| vt 0.312500 0.750000 |  | ||||||
| vt 0.250000 0.750000 |  | ||||||
| vt 0.312500 0.812500 |  | ||||||
| vt 0.250000 0.812500 |  | ||||||
| vt 0.312500 0.875000 |  | ||||||
| vt 0.250000 0.875000 |  | ||||||
| vt 0.375000 0.937500 |  | ||||||
| vt 0.375000 1.000000 |  | ||||||
| vt 0.375000 0.750000 |  | ||||||
| vt 0.375000 0.812500 |  | ||||||
| vt 0.375000 0.875000 |  | ||||||
| vt 0.437500 0.937500 |  | ||||||
| vt 0.437500 1.000000 |  | ||||||
| vt 0.437500 0.750000 |  | ||||||
| vt 0.437500 0.812500 |  | ||||||
| vt 0.437500 0.875000 |  | ||||||
| vt 0.000000 0.937500 |  | ||||||
| vt 0.062500 0.937500 |  | ||||||
| vt 0.062500 1.000000 |  | ||||||
| vt 0.000000 1.000000 |  | ||||||
| vt 0.062500 0.750000 |  | ||||||
| vt 0.000000 0.750000 |  | ||||||
| vt 0.062500 0.812500 |  | ||||||
| vt 0.000000 0.812500 |  | ||||||
| vt 0.062500 0.875000 |  | ||||||
| vt 0.000000 0.875000 |  | ||||||
| vt 0.125000 0.937500 |  | ||||||
| vt 0.125000 1.000000 |  | ||||||
| vt 0.125000 0.750000 |  | ||||||
| vt 0.125000 0.812500 |  | ||||||
| vt 0.125000 0.875000 |  | ||||||
| vt 0.187500 0.937500 |  | ||||||
| vt 0.187500 1.000000 |  | ||||||
| vt 0.187500 0.750000 |  | ||||||
| vt 0.187500 0.812500 |  | ||||||
| vt 0.187500 0.875000 |  | ||||||
| vn 0.000000 -1.000000 -0.004800 |  | ||||||
| vn 0.000000 -0.657400 0.753500 |  | ||||||
| vn -0.898300 -0.248500 0.362300 |  | ||||||
| vn -0.863600 -0.504100 -0.003400 |  | ||||||
| vn -0.661500 0.421500 -0.620200 |  | ||||||
| vn -0.746000 0.665900 0.000000 |  | ||||||
| vn 0.661500 0.421500 -0.620200 |  | ||||||
| vn 0.746000 0.665900 0.000000 |  | ||||||
| vn 0.898300 -0.248500 0.362300 |  | ||||||
| vn 0.863600 -0.504100 -0.003400 |  | ||||||
| vn 0.000000 0.000000 1.000000 |  | ||||||
| vn -0.925200 0.000000 0.379500 |  | ||||||
| vn -0.617100 0.000000 -0.786900 |  | ||||||
| vn 0.617100 0.000000 -0.786900 |  | ||||||
| vn 0.925200 0.000000 0.379500 |  | ||||||
| vn 0.000000 0.657400 0.753500 |  | ||||||
| vn -0.898300 0.248400 0.362300 |  | ||||||
| vn -0.661500 -0.421500 -0.620200 |  | ||||||
| vn 0.661500 -0.421500 -0.620200 |  | ||||||
| vn 0.898300 0.248400 0.362300 |  | ||||||
| vn 0.000000 1.000000 0.000000 |  | ||||||
| vn -0.866100 0.499800 0.000000 |  | ||||||
| vn -0.746000 -0.665900 0.000000 |  | ||||||
| vn 0.746000 -0.665900 0.000000 |  | ||||||
| vn 0.866100 0.499800 0.000000 |  | ||||||
| vn 0.000000 0.657400 -0.753500 |  | ||||||
| vn -0.898300 0.248400 -0.362400 |  | ||||||
| vn -0.661600 -0.421500 0.620200 |  | ||||||
| vn 0.661500 -0.421500 0.620200 |  | ||||||
| vn 0.898300 0.248400 -0.362300 |  | ||||||
| vn 0.000000 -0.000900 -1.000000 |  | ||||||
| vn -0.924600 -0.000600 -0.380700 |  | ||||||
| vn -0.617100 0.000000 0.786900 |  | ||||||
| vn 0.617100 0.000000 0.786900 |  | ||||||
| vn 0.924700 -0.000600 -0.380700 |  | ||||||
| vn 0.000000 -0.650300 -0.759600 |  | ||||||
| vn -0.895600 -0.254600 -0.364800 |  | ||||||
| vn -0.661600 0.421500 0.620200 |  | ||||||
| vn 0.661600 0.421500 0.620200 |  | ||||||
| vn 0.895600 -0.254600 -0.364800 |  | ||||||
| vn 0.004900 -1.000000 0.000000 |  | ||||||
| vn -0.729700 -0.683800 0.000000 |  | ||||||
| vn -0.324500 -0.256300 -0.910500 |  | ||||||
| vn 0.003300 -0.475500 -0.879700 |  | ||||||
| vn 0.578700 0.436200 -0.689100 |  | ||||||
| vn 0.000000 0.666600 -0.745400 |  | ||||||
| vn 0.578700 0.436200 0.689100 |  | ||||||
| vn 0.000000 0.666600 0.745400 |  | ||||||
| vn -0.324500 -0.256300 0.910500 |  | ||||||
| vn 0.003300 -0.475500 0.879700 |  | ||||||
| vn -1.000000 0.000000 0.000000 |  | ||||||
| vn -0.359600 0.000000 -0.933100 |  | ||||||
| vn 0.756400 0.000000 -0.654100 |  | ||||||
| vn 0.756400 0.000000 0.654100 |  | ||||||
| vn -0.359600 0.000000 0.933100 |  | ||||||
| vn -0.729700 0.683700 0.000000 |  | ||||||
| vn -0.324500 0.256300 -0.910500 |  | ||||||
| vn 0.578700 -0.436200 -0.689100 |  | ||||||
| vn 0.578700 -0.436200 0.689100 |  | ||||||
| vn -0.324500 0.256300 0.910500 |  | ||||||
| vn 0.000000 0.470900 -0.882200 |  | ||||||
| vn 0.000000 -0.666600 -0.745400 |  | ||||||
| vn 0.000000 -0.666600 0.745400 |  | ||||||
| vn 0.000000 0.470900 0.882200 |  | ||||||
| vn 0.729700 0.683700 0.000000 |  | ||||||
| vn 0.324500 0.256300 -0.910500 |  | ||||||
| vn -0.578700 -0.436200 -0.689100 |  | ||||||
| vn -0.578700 -0.436200 0.689100 |  | ||||||
| vn 0.324500 0.256300 0.910500 |  | ||||||
| vn 1.000000 -0.001100 0.000000 |  | ||||||
| vn 0.361000 -0.000700 -0.932600 |  | ||||||
| vn -0.756400 0.000000 -0.654100 |  | ||||||
| vn -0.756400 0.000000 0.654100 |  | ||||||
| vn 0.361000 -0.000700 0.932600 |  | ||||||
| vn 0.736100 -0.676800 0.000000 |  | ||||||
| vn 0.327100 -0.263100 -0.907600 |  | ||||||
| vn -0.578700 0.436200 -0.689100 |  | ||||||
| vn -0.578700 0.436200 0.689100 |  | ||||||
| vn 0.327100 -0.263100 0.907600 |  | ||||||
| vn -0.004900 -1.000000 0.000000 |  | ||||||
| vn 0.729700 -0.683800 0.000000 |  | ||||||
| vn 0.324500 -0.256300 0.910500 |  | ||||||
| vn -0.003300 -0.475400 0.879700 |  | ||||||
| vn 0.324500 -0.256300 -0.910500 |  | ||||||
| vn -0.003300 -0.475400 -0.879700 |  | ||||||
| vn 1.000000 0.000000 0.000000 |  | ||||||
| vn 0.359600 0.000000 0.933100 |  | ||||||
| vn 0.359600 0.000000 -0.933100 |  | ||||||
| vn -1.000000 -0.001100 0.000000 |  | ||||||
| vn -0.361000 -0.000700 0.932600 |  | ||||||
| vn -0.361000 -0.000700 -0.932600 |  | ||||||
| vn -0.736100 -0.676800 0.000000 |  | ||||||
| vn -0.327100 -0.263100 0.907600 |  | ||||||
| vn -0.327100 -0.263100 -0.907600 |  | ||||||
| vn 0.000000 -1.000000 0.004800 |  | ||||||
| vn 0.000000 -0.657400 -0.753500 |  | ||||||
| vn 0.898300 -0.248500 -0.362400 |  | ||||||
| vn 0.863600 -0.504100 0.003400 |  | ||||||
| vn -0.898300 -0.248500 -0.362400 |  | ||||||
| vn -0.863600 -0.504100 0.003400 |  | ||||||
| vn 0.000000 0.000000 -1.000000 |  | ||||||
| vn 0.925200 0.000000 -0.379500 |  | ||||||
| vn -0.925200 0.000000 -0.379500 |  | ||||||
| vn 0.898300 0.248500 -0.362400 |  | ||||||
| vn 0.661600 -0.421500 0.620200 |  | ||||||
| vn -0.898300 0.248500 -0.362400 |  | ||||||
| vn 0.898300 0.248500 0.362300 |  | ||||||
| vn -0.898300 0.248500 0.362300 |  | ||||||
| vn 0.000000 -0.000900 1.000000 |  | ||||||
| vn 0.924700 -0.000600 0.380700 |  | ||||||
| vn -0.924700 -0.000600 0.380700 |  | ||||||
| vn 0.000000 -0.650300 0.759600 |  | ||||||
| vn 0.895600 -0.254600 0.364700 |  | ||||||
| vn -0.895600 -0.254600 0.364700 |  | ||||||
| vn 0.729700 -0.683700 0.000000 |  | ||||||
| vn 0.729700 0.683800 0.000000 |  | ||||||
| vn -0.729700 0.683800 0.000000 |  | ||||||
| vn -0.898300 -0.248400 0.362300 |  | ||||||
| vn -0.863600 -0.504100 -0.003500 |  | ||||||
| vn 0.898300 -0.248400 0.362300 |  | ||||||
| vn 0.863600 -0.504100 -0.003500 |  | ||||||
| vn -0.661500 -0.421500 0.620200 |  | ||||||
| vn 0.924600 -0.000600 -0.380700 |  | ||||||
| vn -0.661500 0.421500 0.620200 |  | ||||||
| vn 0.661500 0.421500 0.620200 |  | ||||||
| s 1 |  | ||||||
| f 1/1/1 2/2/2 3/3/3 4/4/4 |  | ||||||
| f 4/4/4 3/3/3 5/5/5 6/6/6 |  | ||||||
| f 6/6/6 5/5/5 7/7/7 8/8/8 |  | ||||||
| f 8/8/8 7/7/7 9/9/9 10/10/10 |  | ||||||
| f 1/1/1 10/11/10 9/12/9 2/2/2 |  | ||||||
| f 2/2/2 11/13/11 12/14/12 3/3/3 |  | ||||||
| f 3/3/3 12/14/12 13/15/13 5/5/5 |  | ||||||
| f 5/5/5 13/15/13 14/16/14 7/7/7 |  | ||||||
| f 7/7/7 14/16/14 15/17/15 9/9/9 |  | ||||||
| f 9/12/9 15/18/15 11/13/11 2/2/2 |  | ||||||
| f 11/13/11 16/19/16 17/20/17 12/14/12 |  | ||||||
| f 12/14/12 17/20/17 18/21/18 13/15/13 |  | ||||||
| f 13/15/13 18/21/18 19/22/19 14/16/14 |  | ||||||
| f 14/16/14 19/22/19 20/23/20 15/17/15 |  | ||||||
| f 15/18/15 20/24/20 16/19/16 11/13/11 |  | ||||||
| f 16/19/16 21/25/21 22/26/22 17/20/17 |  | ||||||
| f 17/20/17 22/26/22 23/27/23 18/21/18 |  | ||||||
| f 18/21/18 23/27/23 24/28/24 19/22/19 |  | ||||||
| f 19/22/19 24/28/24 25/29/25 20/23/20 |  | ||||||
| f 20/24/20 25/30/25 21/25/21 16/19/16 |  | ||||||
| f 21/25/21 26/31/26 27/32/27 22/26/22 |  | ||||||
| f 22/26/22 27/32/27 28/33/28 23/27/23 |  | ||||||
| f 23/27/23 28/33/28 29/34/29 24/28/24 |  | ||||||
| f 24/28/24 29/34/29 30/35/30 25/29/25 |  | ||||||
| f 25/30/25 30/36/30 26/31/26 21/25/21 |  | ||||||
| f 26/37/26 31/38/31 32/39/32 27/40/27 |  | ||||||
| f 27/40/27 32/39/32 33/41/33 28/42/28 |  | ||||||
| f 28/42/28 33/41/33 34/43/34 29/44/29 |  | ||||||
| f 29/44/29 34/43/34 35/45/35 30/46/30 |  | ||||||
| f 30/47/30 35/48/35 31/38/31 26/37/26 |  | ||||||
| f 31/38/31 36/49/36 37/50/37 32/39/32 |  | ||||||
| f 32/39/32 37/50/37 38/51/38 33/41/33 |  | ||||||
| f 33/41/33 38/51/38 39/52/39 34/43/34 |  | ||||||
| f 34/43/34 39/52/39 40/53/40 35/45/35 |  | ||||||
| f 35/48/35 40/54/40 36/49/36 31/38/31 |  | ||||||
| f 36/49/36 1/1/1 4/4/4 37/50/37 |  | ||||||
| f 37/50/37 4/4/4 6/6/6 38/51/38 |  | ||||||
| f 38/51/38 6/6/6 8/8/8 39/52/39 |  | ||||||
| f 39/52/39 8/8/8 10/10/10 40/53/40 |  | ||||||
| f 1/1/1 36/49/36 40/54/40 10/11/10 |  | ||||||
| f 41/55/41 42/56/42 43/57/43 44/58/44 |  | ||||||
| f 44/59/44 43/60/43 45/61/45 46/62/46 |  | ||||||
| f 46/62/46 45/61/45 47/63/47 48/64/48 |  | ||||||
| f 48/64/48 47/63/47 49/65/49 50/66/50 |  | ||||||
| f 41/55/41 50/66/50 49/65/49 42/56/42 |  | ||||||
| f 42/56/42 51/67/51 52/68/52 43/57/43 |  | ||||||
| f 43/60/43 52/69/52 53/70/53 45/61/45 |  | ||||||
| f 45/61/45 53/70/53 54/71/54 47/63/47 |  | ||||||
| f 47/63/47 54/71/54 55/72/55 49/65/49 |  | ||||||
| f 49/65/49 55/72/55 51/67/51 42/56/42 |  | ||||||
| f 51/67/51 56/73/56 57/74/57 52/68/52 |  | ||||||
| f 52/69/52 57/75/57 58/76/58 53/70/53 |  | ||||||
| f 53/70/53 58/76/58 59/77/59 54/71/54 |  | ||||||
| f 54/71/54 59/77/59 60/78/60 55/72/55 |  | ||||||
| f 55/72/55 60/78/60 56/73/56 51/67/51 |  | ||||||
| f 56/73/56 61/79/21 62/80/61 57/74/57 |  | ||||||
| f 57/75/57 62/81/61 63/82/62 58/76/58 |  | ||||||
| f 58/76/58 63/82/62 64/83/63 59/77/59 |  | ||||||
| f 59/77/59 64/83/63 65/84/64 60/78/60 |  | ||||||
| f 60/78/60 65/84/64 61/79/21 56/73/56 |  | ||||||
| f 61/85/21 66/86/65 67/87/66 62/88/61 |  | ||||||
| f 62/35/61 67/89/66 68/90/67 63/91/62 |  | ||||||
| f 63/91/62 68/90/67 69/92/68 64/93/63 |  | ||||||
| f 64/93/63 69/92/68 70/94/69 65/95/64 |  | ||||||
| f 65/95/64 70/94/69 66/86/65 61/85/21 |  | ||||||
| f 66/86/65 71/96/70 72/97/71 67/87/66 |  | ||||||
| f 67/89/66 72/98/71 73/99/72 68/90/67 |  | ||||||
| f 68/90/67 73/99/72 74/100/73 69/92/68 |  | ||||||
| f 69/92/68 74/100/73 75/101/74 70/94/69 |  | ||||||
| f 70/94/69 75/101/74 71/96/70 66/86/65 |  | ||||||
| f 71/96/70 76/102/75 77/103/76 72/97/71 |  | ||||||
| f 72/98/71 77/104/76 78/105/77 73/99/72 |  | ||||||
| f 73/99/72 78/105/77 79/106/78 74/100/73 |  | ||||||
| f 74/100/73 79/106/78 80/107/79 75/101/74 |  | ||||||
| f 75/101/74 80/107/79 76/102/75 71/96/70 |  | ||||||
| f 76/102/75 41/55/41 44/58/44 77/103/76 |  | ||||||
| f 77/104/76 44/59/44 46/62/46 78/105/77 |  | ||||||
| f 78/105/77 46/62/46 48/64/48 79/106/78 |  | ||||||
| f 79/106/78 48/64/48 50/66/50 80/107/79 |  | ||||||
| f 41/55/41 76/102/75 80/107/79 50/66/50 |  | ||||||
| f 81/108/80 82/109/81 83/110/82 84/111/83 |  | ||||||
| f 84/9/83 83/17/82 85/112/78 86/113/48 |  | ||||||
| f 86/113/48 85/112/78 87/114/77 88/115/46 |  | ||||||
| f 88/115/46 87/114/77 89/116/84 90/117/85 |  | ||||||
| f 81/108/80 90/117/85 89/116/84 82/109/81 |  | ||||||
| f 82/109/81 91/118/86 92/119/87 83/110/82 |  | ||||||
| f 83/17/82 92/23/87 93/120/73 85/112/78 |  | ||||||
| f 85/112/78 93/120/73 94/121/72 87/114/77 |  | ||||||
| f 87/114/77 94/121/72 95/122/88 89/116/84 |  | ||||||
| f 89/116/84 95/122/88 91/118/86 82/109/81 |  | ||||||
| f 91/118/86 96/123/65 97/124/69 92/119/87 |  | ||||||
| f 92/23/87 97/29/69 98/125/68 93/120/73 |  | ||||||
| f 93/120/73 98/125/68 99/126/67 94/121/72 |  | ||||||
| f 94/121/72 99/126/67 100/127/66 95/122/88 |  | ||||||
| f 95/122/88 100/127/66 96/123/65 91/118/86 |  | ||||||
| f 96/123/65 101/85/21 102/88/64 97/124/69 |  | ||||||
| f 97/29/69 102/35/64 103/91/63 98/125/68 |  | ||||||
| f 98/125/68 103/91/63 104/93/62 99/126/67 |  | ||||||
| f 99/126/67 104/93/62 105/95/61 100/127/66 |  | ||||||
| f 100/127/66 105/95/61 101/85/21 96/123/65 |  | ||||||
| f 101/128/21 106/129/56 107/130/60 102/131/64 |  | ||||||
| f 102/46/64 107/45/60 108/132/59 103/133/63 |  | ||||||
| f 103/133/63 108/132/59 109/134/58 104/135/62 |  | ||||||
| f 104/135/62 109/134/58 110/136/57 105/137/61 |  | ||||||
| f 105/137/61 110/136/57 106/129/56 101/128/21 |  | ||||||
| f 106/129/56 111/138/89 112/139/90 107/130/60 |  | ||||||
| f 107/45/60 112/53/90 113/140/54 108/132/59 |  | ||||||
| f 108/132/59 113/140/54 114/141/53 109/134/58 |  | ||||||
| f 109/134/58 114/141/53 115/142/91 110/136/57 |  | ||||||
| f 110/136/57 115/142/91 111/138/89 106/129/56 |  | ||||||
| f 111/138/89 116/143/92 117/144/93 112/139/90 |  | ||||||
| f 112/53/90 117/10/93 118/145/47 113/140/54 |  | ||||||
| f 113/140/54 118/145/47 119/146/45 114/141/53 |  | ||||||
| f 114/141/53 119/146/45 120/147/94 115/142/91 |  | ||||||
| f 115/142/91 120/147/94 116/143/92 111/138/89 |  | ||||||
| f 116/143/92 81/108/80 84/111/83 117/144/93 |  | ||||||
| f 117/10/93 84/9/83 86/113/48 118/145/47 |  | ||||||
| f 118/145/47 86/113/48 88/115/46 119/146/45 |  | ||||||
| f 119/146/45 88/115/46 90/117/85 120/147/94 |  | ||||||
| f 81/108/80 116/143/92 120/147/94 90/117/85 |  | ||||||
| f 121/148/95 122/149/96 123/150/97 124/151/98 |  | ||||||
| f 124/151/98 123/150/97 125/152/39 126/153/8 |  | ||||||
| f 126/153/8 125/152/39 127/154/38 128/155/6 |  | ||||||
| f 128/155/6 127/154/38 129/156/99 130/157/100 |  | ||||||
| f 121/148/95 130/103/100 129/58/99 122/149/96 |  | ||||||
| f 122/149/96 131/158/101 132/159/102 123/150/97 |  | ||||||
| f 123/150/97 132/159/102 133/160/34 125/152/39 |  | ||||||
| f 125/152/39 133/160/34 134/161/33 127/154/38 |  | ||||||
| f 127/154/38 134/161/33 135/162/103 129/156/99 |  | ||||||
| f 129/58/99 135/57/103 131/158/101 122/149/96 |  | ||||||
| f 131/158/101 136/163/26 137/164/104 132/159/102 |  | ||||||
| f 132/159/102 137/164/104 138/165/105 133/160/34 |  | ||||||
| f 133/160/34 138/165/105 139/166/28 134/161/33 |  | ||||||
| f 134/161/33 139/166/28 140/167/106 135/162/103 |  | ||||||
| f 135/57/103 140/68/106 136/163/26 131/158/101 |  | ||||||
| f 136/163/26 141/168/21 142/169/25 137/164/104 |  | ||||||
| f 137/164/104 142/169/25 143/170/24 138/165/105 |  | ||||||
| f 138/165/105 143/170/24 144/171/23 139/166/28 |  | ||||||
| f 139/166/28 144/171/23 145/172/22 140/167/106 |  | ||||||
| f 140/68/106 145/74/22 141/168/21 136/163/26 |  | ||||||
| f 141/168/21 146/173/16 147/174/107 142/169/25 |  | ||||||
| f 142/169/25 147/174/107 148/175/19 143/170/24 |  | ||||||
| f 143/170/24 148/175/19 149/176/18 144/171/23 |  | ||||||
| f 144/171/23 149/176/18 150/177/108 145/172/22 |  | ||||||
| f 145/74/22 150/80/108 146/173/16 141/168/21 |  | ||||||
| f 146/178/16 151/179/109 152/180/110 147/181/107 |  | ||||||
| f 147/181/107 152/180/110 153/182/14 148/183/19 |  | ||||||
| f 148/183/19 153/182/14 154/184/13 149/185/18 |  | ||||||
| f 149/185/18 154/184/13 155/186/111 150/187/108 |  | ||||||
| f 150/88/108 155/87/111 151/179/109 146/178/16 |  | ||||||
| f 151/179/109 156/188/112 157/189/113 152/180/110 |  | ||||||
| f 152/180/110 157/189/113 158/190/7 153/182/14 |  | ||||||
| f 153/182/14 158/190/7 159/191/5 154/184/13 |  | ||||||
| f 154/184/13 159/191/5 160/192/114 155/186/111 |  | ||||||
| f 155/87/111 160/97/114 156/188/112 151/179/109 |  | ||||||
| f 156/188/112 121/148/95 124/151/98 157/189/113 |  | ||||||
| f 157/189/113 124/151/98 126/153/8 158/190/7 |  | ||||||
| f 158/190/7 126/153/8 128/155/6 159/191/5 |  | ||||||
| f 159/191/5 128/155/6 130/157/100 160/192/114 |  | ||||||
| f 121/148/95 156/188/112 160/97/114 130/103/100 |  | ||||||
| f 161/193/80 162/194/115 163/60/82 164/59/83 |  | ||||||
| f 164/195/83 163/196/82 165/197/78 166/198/48 |  | ||||||
| f 166/198/48 165/197/78 167/199/77 168/200/46 |  | ||||||
| f 168/200/46 167/199/77 169/201/84 170/202/85 |  | ||||||
| f 161/193/80 170/202/85 169/201/84 162/194/115 |  | ||||||
| f 162/194/115 171/203/86 172/69/87 163/60/82 |  | ||||||
| f 163/196/82 172/204/87 173/205/73 165/197/78 |  | ||||||
| f 165/197/78 173/205/73 174/206/72 167/199/77 |  | ||||||
| f 167/199/77 174/206/72 175/207/88 169/201/84 |  | ||||||
| f 169/201/84 175/207/88 171/203/86 162/194/115 |  | ||||||
| f 171/203/86 176/208/116 177/75/69 172/69/87 |  | ||||||
| f 172/204/87 177/209/69 178/210/68 173/205/73 |  | ||||||
| f 173/205/73 178/210/68 179/211/67 174/206/72 |  | ||||||
| f 174/206/72 179/211/67 180/212/66 175/207/88 |  | ||||||
| f 175/207/88 180/212/66 176/208/116 171/203/86 |  | ||||||
| f 176/208/116 181/213/21 182/81/64 177/75/69 |  | ||||||
| f 177/209/69 182/214/64 183/215/63 178/210/68 |  | ||||||
| f 178/210/68 183/215/63 184/216/62 179/211/67 |  | ||||||
| f 179/211/67 184/216/62 185/217/61 180/212/66 |  | ||||||
| f 180/212/66 185/217/61 181/213/21 176/208/116 |  | ||||||
| f 181/34/21 186/218/117 187/89/60 182/35/64 |  | ||||||
| f 182/36/64 187/219/60 188/220/59 183/31/63 |  | ||||||
| f 183/31/63 188/220/59 189/221/58 184/32/62 |  | ||||||
| f 184/32/62 189/221/58 190/222/57 185/33/61 |  | ||||||
| f 185/33/61 190/222/57 186/218/117 181/34/21 |  | ||||||
| f 186/218/117 191/223/89 192/98/90 187/89/60 |  | ||||||
| f 187/219/60 192/224/90 193/225/54 188/220/59 |  | ||||||
| f 188/220/59 193/225/54 194/226/53 189/221/58 |  | ||||||
| f 189/221/58 194/226/53 195/227/91 190/222/57 |  | ||||||
| f 190/222/57 195/227/91 191/223/89 186/218/117 |  | ||||||
| f 191/223/89 196/228/92 197/104/93 192/98/90 |  | ||||||
| f 192/224/90 197/229/93 198/230/47 193/225/54 |  | ||||||
| f 193/225/54 198/230/47 199/231/45 194/226/53 |  | ||||||
| f 194/226/53 199/231/45 200/232/94 195/227/91 |  | ||||||
| f 195/227/91 200/232/94 196/228/92 191/223/89 |  | ||||||
| f 196/228/92 161/193/80 164/59/83 197/104/93 |  | ||||||
| f 197/229/93 164/195/83 166/198/48 198/230/47 |  | ||||||
| f 198/230/47 166/198/48 168/200/46 199/231/45 |  | ||||||
| f 199/231/45 168/200/46 170/202/85 200/232/94 |  | ||||||
| f 161/193/80 196/228/92 200/232/94 170/202/85 |  | ||||||
| f 201/233/1 202/234/2 203/235/118 204/236/119 |  | ||||||
| f 204/111/119 203/110/118 205/237/5 206/238/6 |  | ||||||
| f 206/238/6 205/237/5 207/239/7 208/240/8 |  | ||||||
| f 208/240/8 207/239/7 209/241/120 210/242/121 |  | ||||||
| f 201/233/1 210/242/121 209/241/120 202/234/2 |  | ||||||
| f 202/234/2 211/243/11 212/244/12 203/235/118 |  | ||||||
| f 203/110/118 212/119/12 213/245/13 205/237/5 |  | ||||||
| f 205/237/5 213/245/13 214/246/14 207/239/7 |  | ||||||
| f 207/239/7 214/246/14 215/247/15 209/241/120 |  | ||||||
| f 209/241/120 215/247/15 211/243/11 202/234/2 |  | ||||||
| f 211/243/11 216/248/16 217/249/108 212/244/12 |  | ||||||
| f 212/119/12 217/124/108 218/250/18 213/245/13 |  | ||||||
| f 213/245/13 218/250/18 219/251/19 214/246/14 |  | ||||||
| f 214/246/14 219/251/19 220/252/107 215/247/15 |  | ||||||
| f 215/247/15 220/252/107 216/248/16 211/243/11 |  | ||||||
| f 216/248/16 221/185/21 222/187/22 217/249/108 |  | ||||||
| f 217/124/108 222/88/22 223/178/23 218/250/18 |  | ||||||
| f 218/250/18 223/178/23 224/181/24 219/251/19 |  | ||||||
| f 219/251/19 224/181/24 225/183/25 220/252/107 |  | ||||||
| f 220/252/107 225/183/25 221/185/21 216/248/16 |  | ||||||
| f 221/253/21 226/254/26 227/255/106 222/256/22 |  | ||||||
| f 222/131/22 227/130/106 228/257/122 223/258/23 |  | ||||||
| f 223/258/23 228/257/122 229/259/29 224/260/24 |  | ||||||
| f 224/260/24 229/259/29 230/261/104 225/262/25 |  | ||||||
| f 225/262/25 230/261/104 226/254/26 221/253/21 |  | ||||||
| f 226/254/26 231/263/31 232/264/32 227/255/106 |  | ||||||
| f 227/130/106 232/139/32 233/265/33 228/257/122 |  | ||||||
| f 228/257/122 233/265/33 234/266/34 229/259/29 |  | ||||||
| f 229/259/29 234/266/34 235/267/123 230/261/104 |  | ||||||
| f 230/261/104 235/267/123 231/263/31 226/254/26 |  | ||||||
| f 231/263/31 236/268/36 237/269/37 232/264/32 |  | ||||||
| f 232/139/32 237/144/37 238/270/124 233/265/33 |  | ||||||
| f 233/265/33 238/270/124 239/271/125 234/266/34 |  | ||||||
| f 234/266/34 239/271/125 240/272/40 235/267/123 |  | ||||||
| f 235/267/123 240/272/40 236/268/36 231/263/31 |  | ||||||
| f 236/268/36 201/233/1 204/236/119 237/269/37 |  | ||||||
| f 237/144/37 204/111/119 206/238/6 238/270/124 |  | ||||||
| f 238/270/124 206/238/6 208/240/8 239/271/125 |  | ||||||
| f 239/271/125 208/240/8 210/242/121 240/272/40 |  | ||||||
| f 201/233/1 236/268/36 240/272/40 210/242/121 |  | ||||||
| Before Width: | Height: | Size: 1.8 KiB | 
| Before Width: | Height: | Size: 1.7 KiB | 
| Before Width: | Height: | Size: 344 B | 
| Before Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 386 B | 
| @@ -33,10 +33,6 @@ computer:admiral128 | |||||||
|  |  | ||||||
| There's also a `computer:computer' alias to `computer:babytower'. | There's also a `computer:computer' alias to `computer:babytower'. | ||||||
|  |  | ||||||
| License: |  | ||||||
| Sourcecode: WTFPL (see below) |  | ||||||
| Graphics: WTFPL (see below) |  | ||||||
|  |  | ||||||
| Thanks to all the people in the forums and the #minetest IRC channel for | Thanks to all the people in the forums and the #minetest IRC channel for | ||||||
|  their support and suggestions; in no particular order: |  their support and suggestions; in no particular order: | ||||||
|   OldCoder, Josh, tonyka, VanessaE, davidpace, Jordach, and all the other |   OldCoder, Josh, tonyka, VanessaE, davidpace, Jordach, and all the other | ||||||
| @@ -45,17 +41,3 @@ Thanks to all the people in the forums and the #minetest IRC channel for | |||||||
|  |  | ||||||
| See also: | See also: | ||||||
| http://minetest.net/ | http://minetest.net/ | ||||||
|  |  | ||||||
|          DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |  | ||||||
|                     Version 2, December 2004 |  | ||||||
|  |  | ||||||
|  Copyright (C) 2012 Diego Martínez <lkaezadl3@gmail.com> |  | ||||||
|  |  | ||||||
|  Everyone is permitted to copy and distribute verbatim or modified |  | ||||||
|  copies of this license document, and changing it is allowed as long |  | ||||||
|  as the name is changed. |  | ||||||
|  |  | ||||||
|             DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE |  | ||||||
|    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |  | ||||||
|  |  | ||||||
|   0. You just DO WHAT THE FUCK YOU WANT TO.  |  | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| -- Amiga 500 lookalike | -- Amiga 500 lookalike | ||||||
| computer.register("computer:shefriendSOO", { | computer.register("computer:shefriendSOO", { | ||||||
|   | |||||||
| @@ -1,2 +1,2 @@ | |||||||
| default | default | ||||||
| homedecor_i18n | homedecor_common | ||||||
|   | |||||||
| @@ -1,14 +1,12 @@ | |||||||
|  |  | ||||||
| -- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net> | -- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net> | ||||||
| -- License is WTFPL (see README.txt). |  | ||||||
|  |  | ||||||
| -- This file defines some items in order to not have to depend on other mods. | -- This file defines some items in order to not have to depend on other mods. | ||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| if (not minetest.get_modpath("homedecor")) then | if (not minetest.get_modpath("homedecor")) then | ||||||
|  |  | ||||||
| 	minetest.register_craftitem(":homedecor:plastic_sheeting", { | 	minetest.register_craftitem(":basic_materials:plastic_sheet", { | ||||||
| 		description = S("Plastic sheet"), | 		description = S("Plastic sheet"), | ||||||
| 		inventory_image = "homedecor_plastic_sheeting.png", | 		inventory_image = "homedecor_plastic_sheeting.png", | ||||||
| 	}) | 	}) | ||||||
| @@ -51,7 +49,7 @@ if (not minetest.get_modpath("homedecor")) then | |||||||
|  |  | ||||||
| 	minetest.register_craft({ | 	minetest.register_craft({ | ||||||
| 		type = "cooking", | 		type = "cooking", | ||||||
| 		output = "homedecor:plastic_sheeting", | 		output = "basic_materials:plastic_sheet", | ||||||
| 		recipe = "homedecor:plastic_base", | 		recipe = "homedecor:plastic_base", | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
| @@ -63,7 +61,7 @@ if (not minetest.get_modpath("homedecor")) then | |||||||
|  |  | ||||||
| 	minetest.register_craft({ | 	minetest.register_craft({ | ||||||
| 		type = 'fuel', | 		type = 'fuel', | ||||||
| 		recipe = 'homedecor:plastic_sheeting', | 		recipe = 'basic_materials:plastic_sheet', | ||||||
| 		burntime = 30, | 		burntime = 30, | ||||||
| 	}) | 	}) | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,54 +1,52 @@ | |||||||
|  |  | ||||||
| -- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net> | -- Copyright (C) 2012-2013 Diego Martínez <kaeza@users.sf.net> | ||||||
| -- License is WTFPL (see README.txt). |  | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:shefriendSOO", | 	output = "computer:shefriendSOO", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "group:wood", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "group:wood", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:slaystation", | 	output = "computer:slaystation", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "group:wood", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "group:wood", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:vanio", | 	output = "computer:vanio", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "", "" }, | 		{ "basic_materials:plastic_sheet", "", "" }, | ||||||
| 		{ "default:glass", "", "" }, | 		{ "default:glass", "", "" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:specter", | 	output = "computer:specter", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "", "", "homedecor:plastic_sheeting" }, | 		{ "", "", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:slaystation2", | 	output = "computer:slaystation2", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:admiral64", | 	output = "computer:admiral64", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "group:wood", "group:wood", "group:wood" } | 		{ "group:wood", "group:wood", "group:wood" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
| @@ -56,7 +54,7 @@ minetest.register_craft({ | |||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:admiral128", | 	output = "computer:admiral128", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } | 		{ "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
| @@ -64,16 +62,16 @@ minetest.register_craft({ | |||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:wee", | 	output = "computer:wee", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:copper_ingot", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "default:copper_ingot", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:piepad", | 	output = "computer:piepad", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:glass", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "default:glass", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -82,9 +80,9 @@ minetest.register_craft({ | |||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:monitor", | 	output = "computer:monitor", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "default:glass","" }, | 		{ "basic_materials:plastic_sheet", "default:glass","" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:glass","" }, | 		{ "basic_materials:plastic_sheet", "default:glass","" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal_fragment", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "default:mese_crystal_fragment", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -92,35 +90,35 @@ minetest.register_craft({ | |||||||
| 	output = "computer:router", | 	output = "computer:router", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "default:steel_ingot","","" }, | 		{ "default:steel_ingot","","" }, | ||||||
| 		{ "default:steel_ingot" ,"homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, | 		{ "default:steel_ingot" ,"basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "default:mese_crystal_fragment","homedecor:plastic_sheeting", "homedecor:plastic_sheeting"  } | 		{ "default:mese_crystal_fragment","basic_materials:plastic_sheet", "basic_materials:plastic_sheet"  } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:tower", | 	output = "computer:tower", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "default:steel_ingot", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:printer", | 	output = "computer:printer", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot","" }, | 		{ "basic_materials:plastic_sheet", "default:steel_ingot","" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:coal_lump", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "default:coal_lump", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:printer", | 	output = "computer:printer", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "default:steel_ingot","" }, | 		{ "basic_materials:plastic_sheet", "default:steel_ingot","" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "default:mese_crystal", "homedecor:plastic_sheeting" }, | 		{ "basic_materials:plastic_sheet", "default:mese_crystal", "basic_materials:plastic_sheet" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "dye:black", "homedecor:plastic_sheeting", } | 		{ "basic_materials:plastic_sheet", "dye:black", "basic_materials:plastic_sheet", } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|  |  | ||||||
| @@ -136,8 +134,8 @@ minetest.register_craft({ | |||||||
| minetest.register_craft({ | minetest.register_craft({ | ||||||
| 	output = "computer:tetris_arcade", | 	output = "computer:tetris_arcade", | ||||||
| 	recipe = { | 	recipe = { | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting", }, | 		{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet", }, | ||||||
| 		{ "dye:black", "default:glass", "dye:black" }, | 		{ "dye:black", "default:glass", "dye:black" }, | ||||||
| 		{ "homedecor:plastic_sheeting", "homedecor:power_crystal", "homedecor:plastic_sheeting" } | 		{ "basic_materials:plastic_sheet", "basic_materials:energy_crystal", "basic_materials:plastic_sheet" } | ||||||
| 	} | 	} | ||||||
| }) | }) | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| local shapes = { | local shapes = { | ||||||
|    {  { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } }, |    {  { x = {0, 1, 0, 1}, y = {0, 0, 1, 1} } }, | ||||||
| @@ -231,7 +231,7 @@ local function step(pos, fields) | |||||||
| 	local scr = { formsize, background, | 	local scr = { formsize, background, | ||||||
| 		t.boardstring, t.previewstring, | 		t.boardstring, t.previewstring, | ||||||
| 		draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy), | 		draw_shape(t.cur, t.x, t.y, t.rot, boardx, boardy), | ||||||
| 		"label[3.8,0.1;"..S("Next...").."]label[3.8,2.7;"..S("Score: "),  | 		"label[3.8,0.1;"..S("Next...").."]label[3.8,2.7;"..S("Score: "), | ||||||
| 		t.score, close, buttons } | 		t.score, close, buttons } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										20
									
								
								copyright.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,20 @@ | |||||||
|  | Most code and textures by Vanessa Ezekowitz. | ||||||
|  |  | ||||||
|  | Some code copied and modified from the game's default mods (especially  | ||||||
|  | doors) and ironzorg's flowers mod. | ||||||
|  |  | ||||||
|  | Whatever is stated here applies to all homedecor modpack components, as | ||||||
|  | appropriate. | ||||||
|  |  | ||||||
|  | Licenses:  | ||||||
|  | * Door open/close sound by Slanesh on freesound.org | ||||||
|  | 	http://freesound.org/people/Slanesh/sounds/31768/ | ||||||
|  | * Gate open/close by j1987 on freesound.org | ||||||
|  | 	http://freesound.org/people/j1987/sounds/106116/ | ||||||
|  | * Doorbell sound by guitarguy1985 on freesound.org | ||||||
|  | 	http://freesound.org/people/guitarguy1985/sounds/69384/ | ||||||
|  | * Book soundn by mckinneysound's on http://www.freesfx.co.uk/ | ||||||
|  | 	http://www.freesfx.co.uk/sfx/book?p=3 | ||||||
|  | * Phone ringing sound by andyt's on http://www.freesfx.co.uk/ | ||||||
|  | 	http://www.freesfx.co.uk/sfx/phone?p=5 | ||||||
|  |  | ||||||
| @@ -1,2 +1,2 @@ | |||||||
| default | default | ||||||
| homedecor | homedecor_common | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  |  | ||||||
| screwdriver = screwdriver or {} | screwdriver = screwdriver or {} | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,193 +0,0 @@ | |||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext |  | ||||||
|  |  | ||||||
| minetest.register_node("homedecor:bathroom_tiles_dark", { |  | ||||||
| 	description = S("Bathroom/kitchen tiles (dark)"), |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_bathroom_tiles_bg.png" |  | ||||||
| 	}, |  | ||||||
| 	overlay_tiles = { |  | ||||||
| 		{ name = "homedecor_bathroom_tiles_fg.png", color = 0xff606060 }, |  | ||||||
| 	}, |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	paramtype2 = "color", |  | ||||||
| 	palette = "unifieddyes_palette_extended.png", |  | ||||||
| 	place_param2 = 240, |  | ||||||
| 	groups = {cracky=3, ud_param2_colorable = 1}, |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| 	on_construct = unifieddyes.on_construct, |  | ||||||
| 	after_place_node = unifieddyes.recolor_on_place, |  | ||||||
| 	after_dig_node = unifieddyes.after_dig_node |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("homedecor:bathroom_tiles_medium", { |  | ||||||
| 	description = S("Bathroom/kitchen tiles (medium)"), |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_bathroom_tiles_bg.png" |  | ||||||
| 	}, |  | ||||||
| 	overlay_tiles = { |  | ||||||
| 		{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffc0c0c0 }, |  | ||||||
| 	}, |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	paramtype2 = "color", |  | ||||||
| 	palette = "unifieddyes_palette_extended.png", |  | ||||||
| 	place_param2 = 240, |  | ||||||
| 	groups = {cracky=3, ud_param2_colorable = 1}, |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| 	on_construct = unifieddyes.on_construct, |  | ||||||
| 	after_place_node = unifieddyes.recolor_on_place, |  | ||||||
| 	after_dig_node = unifieddyes.after_dig_node |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_node("homedecor:bathroom_tiles_light", { |  | ||||||
| 	description = S("Bathroom/kitchen tiles (light)"), |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_bathroom_tiles_bg.png" |  | ||||||
| 	}, |  | ||||||
| 	overlay_tiles = { |  | ||||||
| 			{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffffffff }, |  | ||||||
| 	}, |  | ||||||
| 	paramtype = "light", |  | ||||||
| 	paramtype2 = "color", |  | ||||||
| 	palette = "unifieddyes_palette_extended.png", |  | ||||||
| 	place_param2 = 240, |  | ||||||
| 	groups = {cracky=3, ud_param2_colorable = 1}, |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| 	on_construct = unifieddyes.on_construct, |  | ||||||
| 	after_place_node = unifieddyes.recolor_on_place, |  | ||||||
| 	after_dig_node = unifieddyes.after_dig_node |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local tr_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -0.375, -0.3125, 0.25, 0.375, 0.375, 0.5 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("towel_rod", { |  | ||||||
| 	description = S("Towel rod with towel"), |  | ||||||
| 	mesh = "homedecor_towel_rod.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_generic_terrycloth.png", |  | ||||||
| 		"default_wood.png", |  | ||||||
| 	}, |  | ||||||
| 	inventory_image = "homedecor_towel_rod_inv.png", |  | ||||||
| 	selection_box = tr_cbox, |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, |  | ||||||
| 	sounds = default.node_sound_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("medicine_cabinet", { |  | ||||||
| 	description = S("Medicine cabinet"), |  | ||||||
| 	mesh = "homedecor_medicine_cabinet.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		'default_wood.png', |  | ||||||
| 		'homedecor_medicine_cabinet_mirror.png' |  | ||||||
| 	}, |  | ||||||
| 	inventory_image = "homedecor_medicine_cabinet_inv.png", |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5} |  | ||||||
| 	}, |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	on_punch = function(pos, node, puncher, pointed_thing) |  | ||||||
| 		node.name = "homedecor:medicine_cabinet_open" |  | ||||||
| 		minetest.swap_node(pos, node) |  | ||||||
| 	end, |  | ||||||
| 	infotext=S("Medicine cabinet"), |  | ||||||
| 	inventory = { |  | ||||||
| 		size=6, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("medicine_cabinet_open", { |  | ||||||
| 	mesh = "homedecor_medicine_cabinet_open.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		'default_wood.png', |  | ||||||
| 		'homedecor_medicine_cabinet_mirror.png', |  | ||||||
| 		'homedecor_medicine_cabinet_inside.png' |  | ||||||
| 	}, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = {-0.3125, -0.1875, -0.25, 0.3125, 0.5, 0.5} |  | ||||||
| 	}, |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = { snappy = 3, not_in_creative_inventory=1 }, |  | ||||||
| 	drop = "homedecor:medicine_cabinet", |  | ||||||
| 	on_punch = function(pos, node, puncher, pointed_thing) |  | ||||||
| 		node.name = "homedecor:medicine_cabinet" |  | ||||||
| 		minetest.swap_node(pos, node) |  | ||||||
| 	end, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- convert old static nodes |  | ||||||
|  |  | ||||||
| homedecor.old_static_bathroom_tiles = { |  | ||||||
| 	"homedecor:tiles_1", |  | ||||||
| 	"homedecor:tiles_2", |  | ||||||
| 	"homedecor:tiles_3", |  | ||||||
| 	"homedecor:tiles_4", |  | ||||||
| 	"homedecor:tiles_red", |  | ||||||
| 	"homedecor:tiles_tan", |  | ||||||
| 	"homedecor:tiles_yellow", |  | ||||||
| 	"homedecor:tiles_green", |  | ||||||
| 	"homedecor:tiles_blue" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| local old_to_color = { |  | ||||||
| 	"light_grey", |  | ||||||
| 	"grey", |  | ||||||
| 	"black", |  | ||||||
| 	"black" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| minetest.register_lbm({ |  | ||||||
| 	name = "homedecor:convert_bathroom_tiles", |  | ||||||
| 	label = "Convert bathroom tiles to use param2 color", |  | ||||||
| 	run_at_every_load = false, |  | ||||||
| 	nodenames = homedecor.old_static_bathroom_tiles, |  | ||||||
| 	action = function(pos, node) |  | ||||||
| 		local name = node.name |  | ||||||
| 		local newname = "homedecor:bathroom_tiles_light" |  | ||||||
| 		local a = string.find(name, "_") |  | ||||||
| 		local color = string.sub(name, a + 1) |  | ||||||
|  |  | ||||||
| 		if color == "tan" then |  | ||||||
| 			color = "yellow_s50" |  | ||||||
| 		elseif color == "1" or color == "2" or color == "3" or color == "4" then |  | ||||||
| 			if color == "4" then |  | ||||||
| 				newname = "homedecor:bathroom_tiles_medium" |  | ||||||
| 			end |  | ||||||
| 			color = old_to_color[tonumber(color)] |  | ||||||
| 		elseif color ~= "yellow" then |  | ||||||
| 			color = color.."_s50" |  | ||||||
| 		end |  | ||||||
|  |  | ||||||
| 		local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended") |  | ||||||
|  |  | ||||||
| 		minetest.set_node(pos, { name = newname, param2 = paletteidx }) |  | ||||||
| 		local meta = minetest.get_meta(pos) |  | ||||||
| 		meta:set_string("dye", "unifieddyes:"..color) |  | ||||||
| 		meta:set_string("palette", "ext") |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_lbm({ |  | ||||||
| 	name = "homedecor:recolor_bathroom_tiles", |  | ||||||
| 	label = "Convert bathroom tiles to use UD extended palette", |  | ||||||
| 	run_at_every_load = false, |  | ||||||
| 	nodenames = { |  | ||||||
| 		"homedecor:bathroom_tiles_light", |  | ||||||
| 		"homedecor:bathroom_tiles_medium", |  | ||||||
| 		"homedecor:bathroom_tiles_dark", |  | ||||||
| 	}, |  | ||||||
| 	action = function(pos, node) |  | ||||||
| 		local meta = minetest.get_meta(pos) |  | ||||||
| 		if meta:get_string("palette") ~= "ext" then |  | ||||||
| 			minetest.swap_node(pos, { name = node.name, param2 = unifieddyes.convert_classic_palette[node.param2] }) |  | ||||||
| 			meta:set_string("palette", "ext") |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
| @@ -1,18 +0,0 @@ | |||||||
| Most code and all textures by Vanessa Ezekowitz. |  | ||||||
|  |  | ||||||
| Some code copied and modified from the game's default mods (especially  |  | ||||||
| doors) and ironzorg's flowers mod. |  | ||||||
|  |  | ||||||
| Licenses:  |  | ||||||
| * For the lua code, LGPL.  |  | ||||||
| * For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org |  | ||||||
| 	http://freesound.org/people/Slanesh/sounds/31768/ |  | ||||||
| * For the gate open/close sound, CC0, by j1987 on freesound.org |  | ||||||
| 	http://freesound.org/people/j1987/sounds/106116/ |  | ||||||
| * For the doorbell sound, CC0 by guitarguy1985 on freesound.org |  | ||||||
| 	http://freesound.org/people/guitarguy1985/sounds/69384/ |  | ||||||
| * For the book sound, Public Domain by mckinneysound's on http://www.freesfx.co.uk/ |  | ||||||
| 	http://www.freesfx.co.uk/sfx/book?p=3 |  | ||||||
| * For the phone ring, Public Domain by andyt's on http://www.freesfx.co.uk/ |  | ||||||
| 	http://www.freesfx.co.uk/sfx/phone?p=5 |  | ||||||
| * For all images and everything else, WTFPL. |  | ||||||
							
								
								
									
										3136
									
								
								homedecor/crafts.lua
									
									
									
									
									
								
							
							
						
						| @@ -1,15 +0,0 @@ | |||||||
| default |  | ||||||
| unifieddyes |  | ||||||
| homedecor_i18n |  | ||||||
| creative |  | ||||||
| building_blocks? |  | ||||||
| signs_lib? |  | ||||||
| moreblocks? |  | ||||||
| technic? |  | ||||||
| dye? |  | ||||||
| bees? |  | ||||||
| bucket? |  | ||||||
| beds? |  | ||||||
| flowers? |  | ||||||
| 3d_armor? |  | ||||||
| skinsdb? |  | ||||||
| @@ -1,157 +0,0 @@ | |||||||
| -- Various home electronics |  | ||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext |  | ||||||
|  |  | ||||||
| homedecor.register("speaker", { |  | ||||||
| 	description = S("Large Stereo Speaker"), |  | ||||||
| 	mesh="homedecor_speaker_large.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_speaker_sides.png", |  | ||||||
| 		"homedecor_speaker_front.png" |  | ||||||
| 	}, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |  | ||||||
| 		minetest.set_node(pos, {name = "homedecor:speaker_open", param2 = node.param2}) |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("speaker_open", { |  | ||||||
| 	description = S("Large Stereo Speaker, open front"), |  | ||||||
| 	mesh="homedecor_speaker_large_open.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_speaker_sides.png", |  | ||||||
| 		"homedecor_speaker_driver.png", |  | ||||||
| 		"homedecor_speaker_open_front.png", |  | ||||||
| 		{ name = "homedecor_generic_metal.png", color = homedecor.color_black } |  | ||||||
| 	}, |  | ||||||
| 	groups = { snappy = 3, not_in_creative_inventory=1 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |  | ||||||
| 		minetest.set_node(pos, {name = "homedecor:speaker", param2 = node.param2}) |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local spk_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -3/16, -8/16, 1/16, 3/16, -2/16, 7/16 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("speaker_small", { |  | ||||||
| 	description = S("Small Surround Speaker"), |  | ||||||
| 	mesh="homedecor_speaker_small.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_speaker_sides.png", |  | ||||||
| 		"homedecor_speaker_front.png" |  | ||||||
| 	}, |  | ||||||
| 	selection_box = spk_cbox, |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("stereo", { |  | ||||||
| 	description = S("Stereo Receiver"), |  | ||||||
| 	tiles = { 'homedecor_stereo_top.png', |  | ||||||
| 			'homedecor_stereo_bottom.png', |  | ||||||
| 			'homedecor_stereo_left.png^[transformFX', |  | ||||||
| 			'homedecor_stereo_left.png', |  | ||||||
| 			'homedecor_stereo_back.png', |  | ||||||
| 			'homedecor_stereo_front.png'}, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("projection_screen", { |  | ||||||
| 	description = S("Projection Screen Material"), |  | ||||||
| 	drawtype = 'signlike', |  | ||||||
| 	tiles = { 'homedecor_projection_screen.png' }, |  | ||||||
| 	wield_image = 'homedecor_projection_screen_inv.png', |  | ||||||
| 	inventory_image = 'homedecor_projection_screen_inv.png', |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_leaves_defaults(), |  | ||||||
| 	paramtype2 = 'wallmounted', |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "wallmounted", |  | ||||||
| 		--wall_side = = <default> |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("television", { |  | ||||||
| 	description = S("Small CRT Television"), |  | ||||||
| 	tiles = { 'homedecor_television_top.png', |  | ||||||
| 		  'homedecor_television_bottom.png', |  | ||||||
| 		  'homedecor_television_left.png^[transformFX', |  | ||||||
| 		  'homedecor_television_left.png', |  | ||||||
| 		  'homedecor_television_back.png', |  | ||||||
| 		   { name="homedecor_television_front_animated.png", |  | ||||||
| 			  animation={ |  | ||||||
| 				type="vertical_frames", |  | ||||||
| 				aspect_w=16, |  | ||||||
| 				aspect_h=16, |  | ||||||
| 				length=80.0 |  | ||||||
| 			  } |  | ||||||
| 		   } |  | ||||||
| 	}, |  | ||||||
| 	light_source = default.LIGHT_MAX - 1, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("dvd_vcr", { |  | ||||||
| 	description = S("DVD and VCR"), |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_dvdvcr_top.png", |  | ||||||
| 		"homedecor_dvdvcr_bottom.png", |  | ||||||
| 		"homedecor_dvdvcr_sides.png", |  | ||||||
| 		"homedecor_dvdvcr_sides.png^[transformFX", |  | ||||||
| 		"homedecor_dvdvcr_back.png", |  | ||||||
| 		"homedecor_dvdvcr_front.png", |  | ||||||
| 	}, |  | ||||||
| 	inventory_image = "homedecor_dvdvcr_inv.png", |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{-0.3125, -0.5, -0.25, 0.3125, -0.375, 0.1875}, |  | ||||||
| 			{-0.25, -0.5, -0.25, 0.25, -0.1875, 0.125}, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local tel_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -0.25, -0.5, -0.1875, 0.25, -0.21, 0.15 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("telephone", { |  | ||||||
| 	mesh = "homedecor_telephone.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_telephone_dial.png", |  | ||||||
| 		"homedecor_telephone_base.png", |  | ||||||
| 		"homedecor_telephone_handset.png", |  | ||||||
| 		"homedecor_telephone_cord.png", |  | ||||||
| 	}, |  | ||||||
| 	inventory_image = "homedecor_telephone_inv.png", |  | ||||||
| 	description = S("Telephone"), |  | ||||||
| 	groups = {snappy=3}, |  | ||||||
| 	selection_box = tel_cbox, |  | ||||||
| 	walkable = false, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| 	nodenames = "homedecor:telephone", |  | ||||||
| 	label = "sfx", |  | ||||||
| 	interval = 30, |  | ||||||
| 	chance = 15, |  | ||||||
| 	action = function(pos, node) |  | ||||||
| 		minetest.sound_play("homedecor_telephone_ringing", { |  | ||||||
| 			pos = pos, |  | ||||||
| 			gain = 1.0, |  | ||||||
| 			max_hear_distance = 5 |  | ||||||
| 		}) |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
| @@ -1,244 +0,0 @@ | |||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:table", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "group:wood","group:wood", "group:wood" }, |  | ||||||
| 		{ "group:stick", "", "group:stick" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "shapeless", |  | ||||||
| 	output = "homedecor:table_mahogany", |  | ||||||
| 	recipe = { |  | ||||||
| 		"homedecor:table", |  | ||||||
| 		"dye:brown", |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "shapeless", |  | ||||||
| 	output = "homedecor:table_mahogany", |  | ||||||
| 	recipe = { |  | ||||||
| 		"homedecor:table", |  | ||||||
| 		"unifieddyes:dark_orange", |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "shapeless", |  | ||||||
| 	output = "homedecor:table_white", |  | ||||||
| 	recipe = { |  | ||||||
| 		"homedecor:table", |  | ||||||
| 		"dye:white", |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:table", |  | ||||||
| 	burntime = 30, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:table_mahogany", |  | ||||||
| 	burntime = 30, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:table_white", |  | ||||||
| 	burntime = 30, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:kitchen_chair_wood 2", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "group:stick",""}, |  | ||||||
| 		{ "group:wood","group:wood" }, |  | ||||||
| 		{ "group:stick","group:stick" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:armchair 2", |  | ||||||
| 	recipe = { |  | ||||||
| 	{ "wool:white",""}, |  | ||||||
| 	{ "group:wood","group:wood" }, |  | ||||||
| 	{ "wool:white","wool:white" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "shapeless", |  | ||||||
| 	output = "homedecor:kitchen_chair_padded", |  | ||||||
| 	recipe = { |  | ||||||
| 		"homedecor:kitchen_chair_wood", |  | ||||||
| 		"wool:white", |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:kitchen_chair_wood", |  | ||||||
| 	burntime = 15, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:kitchen_chair_padded", |  | ||||||
| 	burntime = 15, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:armchair", |  | ||||||
| 	burntime = 30, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:standing_lamp_off", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"homedecor:table_lamp_off"}, |  | ||||||
| 		{"group:stick"}, |  | ||||||
| 		{"group:stick"}, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	type = "fuel", |  | ||||||
| 	recipe = "homedecor:table_lamp_off", |  | ||||||
| 	burntime = 10, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:table_lamp_off", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "wool:white", "default:torch", "wool:white"}, |  | ||||||
| 		{ "", "group:stick", ""}, |  | ||||||
| 		{ "", "stairs:slab_wood", "" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:table_lamp_off", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "cottages:wool", "default:torch", "cottages:wool"}, |  | ||||||
| 		{ "", "group:stick", ""}, |  | ||||||
| 		{ "", "stairs:slab_wood", "" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:table_lamp_off", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "wool:white", "default:torch", "wool:white"}, |  | ||||||
| 		{ "", "group:stick", ""}, |  | ||||||
| 		{ "", "moreblocks:slab_wood", "" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:table_lamp_off", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "cottages:wool", "default:torch", "cottages:wool"}, |  | ||||||
| 		{ "", "group:stick", ""}, |  | ||||||
| 		{ "", "moreblocks:slab_wood", "" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:standing_lamp_off", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "homedecor:table_lamp_off"}, |  | ||||||
| 		{ "group:stick"}, |  | ||||||
| 		{ "group:stick"}, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:toilet", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "","","bucket:bucket_water"}, |  | ||||||
| 		{ "group:marble","group:marble", "group:marble" }, |  | ||||||
| 		{ "", "bucket:bucket_empty", "" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:sink", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "group:marble","bucket:bucket_empty", "group:marble" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:taps", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "default:steel_ingot","bucket:bucket_water", "default:steel_ingot" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:taps_brass", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "technic:brass_ingot","bucket:bucket_water", "technic:brass_ingot" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:shower_tray", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "group:marble","bucket:bucket_water", "group:marble" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:shower_head", |  | ||||||
| 	recipe = { |  | ||||||
| 		{"default:steel_ingot", "bucket:bucket_water"}, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:bathtub_clawfoot_brass_taps", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "homedecor:taps_brass", "", "" }, |  | ||||||
| 		{ "group:marble", "", "group:marble" }, |  | ||||||
| 		{"default:steel_ingot", "group:marble", "default:steel_ingot"}, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:bathtub_clawfoot_chrome_taps", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "homedecor:taps", "", "" }, |  | ||||||
| 		{ "group:marble", "", "group:marble" }, |  | ||||||
| 		{"default:steel_ingot", "group:marble", "default:steel_ingot"}, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:bars 6", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "default:steel_ingot","default:steel_ingot","default:steel_ingot" }, |  | ||||||
| 		{ "homedecor:pole_wrought_iron","homedecor:pole_wrought_iron","homedecor:pole_wrought_iron" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:L_binding_bars 3", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "homedecor:bars","" }, |  | ||||||
| 		{ "homedecor:bars","homedecor:bars" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_craft({ |  | ||||||
| 	output = "homedecor:torch_wall 10", |  | ||||||
| 	recipe = { |  | ||||||
| 		{ "default:coal_lump" }, |  | ||||||
| 		{ "default:steel_ingot" }, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| local handlerpath = homedecor.modpath .. "/handlers/" |  | ||||||
|  |  | ||||||
| -- nodebox arithmetics and helpers |  | ||||||
| -- (please keep non-generic nodeboxes with their node definition) |  | ||||||
| dofile(handlerpath.."nodeboxes.lua") |  | ||||||
|  |  | ||||||
| -- expand and unexpand decor |  | ||||||
| dofile(handlerpath.."expansion.lua") |  | ||||||
|  |  | ||||||
| -- register nodes that cook stuff |  | ||||||
| dofile(handlerpath.."furnaces.lua") |  | ||||||
|  |  | ||||||
| -- inventory related functionality, like initialization, ownership and spawning locked versions |  | ||||||
| dofile(handlerpath.."inventory.lua") |  | ||||||
|  |  | ||||||
| -- glue it all together into a registration function |  | ||||||
| dofile(handlerpath.."registration.lua") |  | ||||||
|  |  | ||||||
| -- some nodes have particle spawners |  | ||||||
| dofile(handlerpath.."water_particles.lua") |  | ||||||
|  |  | ||||||
|  |  | ||||||
| dofile(handlerpath.."mt_game_beds_functions.lua") |  | ||||||
| dofile(handlerpath.."sit.lua") |  | ||||||
| @@ -1,256 +0,0 @@ | |||||||
| -- This file supplies refrigerators |  | ||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext |  | ||||||
|  |  | ||||||
| local function N_(x) return x end |  | ||||||
|  |  | ||||||
| -- steel-textured fridge |  | ||||||
| homedecor.register("refrigerator_steel", { |  | ||||||
| 	mesh = "homedecor_refrigerator.obj", |  | ||||||
| 	tiles = { "homedecor_refrigerator_steel.png" }, |  | ||||||
| 	inventory_image = "homedecor_refrigerator_steel_inv.png", |  | ||||||
| 	description = S("Refrigerator (stainless steel)"), |  | ||||||
| 	groups = {snappy=3}, |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| 	selection_box = homedecor.nodebox.slab_y(2), |  | ||||||
| 	collision_box = homedecor.nodebox.slab_y(2), |  | ||||||
| 	expand = { top="placeholder" }, |  | ||||||
| 	infotext=S("Refrigerator"), |  | ||||||
| 	inventory = { |  | ||||||
| 		size=50, |  | ||||||
| 		lockable=true, |  | ||||||
| 	}, |  | ||||||
| 	on_rotate = screwdriver.rotate_simple |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- white, enameled fridge |  | ||||||
| homedecor.register("refrigerator_white", { |  | ||||||
| 	mesh = "homedecor_refrigerator.obj", |  | ||||||
| 	tiles = { "homedecor_refrigerator_white.png" }, |  | ||||||
| 	inventory_image = "homedecor_refrigerator_white_inv.png", |  | ||||||
| 	description = S("Refrigerator"), |  | ||||||
| 	groups = {snappy=3}, |  | ||||||
| 	selection_box = homedecor.nodebox.slab_y(2), |  | ||||||
| 	collision_box = homedecor.nodebox.slab_y(2), |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| 	expand = { top="placeholder" }, |  | ||||||
| 	infotext=S("Refrigerator"), |  | ||||||
| 	inventory = { |  | ||||||
| 		size=50, |  | ||||||
| 		lockable=true, |  | ||||||
| 	}, |  | ||||||
| 	on_rotate = screwdriver.rotate_simple |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_alias("homedecor:refrigerator_white_bottom", "homedecor:refrigerator_white") |  | ||||||
| minetest.register_alias("homedecor:refrigerator_white_top", "air") |  | ||||||
|  |  | ||||||
| minetest.register_alias("homedecor:refrigerator_steel_bottom", "homedecor:refrigerator_steel") |  | ||||||
| minetest.register_alias("homedecor:refrigerator_steel_top", "air") |  | ||||||
|  |  | ||||||
| minetest.register_alias("homedecor:refrigerator_white_bottom_locked", "homedecor:refrigerator_white_locked") |  | ||||||
| minetest.register_alias("homedecor:refrigerator_white_top_locked", "air") |  | ||||||
| minetest.register_alias("homedecor:refrigerator_locked", "homedecor:refrigerator_white_locked") |  | ||||||
|  |  | ||||||
| minetest.register_alias("homedecor:refrigerator_steel_bottom_locked", "homedecor:refrigerator_steel_locked") |  | ||||||
| minetest.register_alias("homedecor:refrigerator_steel_top_locked", "air") |  | ||||||
|  |  | ||||||
| -- kitchen "furnaces" |  | ||||||
| homedecor.register_furnace("oven", { |  | ||||||
| 	description = S("Oven"), |  | ||||||
| 	tile_format = "homedecor_oven_%s%s.png", |  | ||||||
| 	output_slots = 4, |  | ||||||
| 	output_width = 2, |  | ||||||
| 	cook_speed = 1.25, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register_furnace("oven_steel", { |  | ||||||
| 	description = S("Oven (stainless steel)"), |  | ||||||
| 	tile_format = "homedecor_oven_steel_%s%s.png", |  | ||||||
| 	output_slots = 4, |  | ||||||
| 	output_width = 2, |  | ||||||
| 	cook_speed = 1.25, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register_furnace("microwave_oven", { |  | ||||||
| 	description = S("Microwave Oven"), |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_microwave_top.png", "homedecor_microwave_top.png^[transformR180", |  | ||||||
| 		"homedecor_microwave_top.png^[transformR270", "homedecor_microwave_top.png^[transformR90", |  | ||||||
| 		"homedecor_microwave_top.png^[transformR180", "homedecor_microwave_front.png" |  | ||||||
| 	}, |  | ||||||
| 	tiles_active = { |  | ||||||
| 		"homedecor_microwave_top.png", "homedecor_microwave_top.png^[transformR180", |  | ||||||
| 		"homedecor_microwave_top.png^[transformR270", "homedecor_microwave_top.png^[transformR90", |  | ||||||
| 		"homedecor_microwave_top.png^[transformR180", "homedecor_microwave_front_active.png" |  | ||||||
| 	}, |  | ||||||
| 	output_slots = 2, |  | ||||||
| 	output_width = 2, |  | ||||||
| 	cook_speed = 1.5, |  | ||||||
| 	extra_nodedef_fields = { |  | ||||||
| 		node_box = { |  | ||||||
| 			type = "fixed", |  | ||||||
| 			fixed = { -0.5, -0.5, -0.125, 0.5, 0.125, 0.5 }, |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| -- coffee! |  | ||||||
| -- coffee! |  | ||||||
| -- coffee! |  | ||||||
|  |  | ||||||
| local cm_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { |  | ||||||
| 		{     0, -8/16,     0,  7/16,  3/16,  8/16 }, |  | ||||||
| 		{ -4/16, -8/16, -6/16, -1/16, -5/16, -3/16 } |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("coffee_maker", { |  | ||||||
| 	mesh = "homedecor_coffeemaker.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_coffeemaker_decanter.png", |  | ||||||
| 		"homedecor_coffeemaker_cup.png", |  | ||||||
| 		"homedecor_coffeemaker_case.png", |  | ||||||
| 	}, |  | ||||||
| 	description = S("Coffee Maker"), |  | ||||||
| 	inventory_image = "homedecor_coffeemaker_inv.png", |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = {snappy=3}, |  | ||||||
| 	selection_box = cm_cbox, |  | ||||||
| 	node_box = cm_cbox, |  | ||||||
| 	on_rotate = screwdriver.disallow |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local fdir_to_steampos = { |  | ||||||
| 	x = { 0.15,   0.275, -0.15,  -0.275 }, |  | ||||||
| 	z = { 0.275, -0.15,  -0.275,  0.15  } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| minetest.register_abm({ |  | ||||||
| 	nodenames = "homedecor:coffee_maker", |  | ||||||
| 	label = "sfx", |  | ||||||
| 	interval = 2, |  | ||||||
| 	chance = 1, |  | ||||||
| 	action = function(pos, node) |  | ||||||
| 		local fdir = node.param2 |  | ||||||
| 		if fdir and fdir < 4 then |  | ||||||
|  |  | ||||||
| 			local steamx = fdir_to_steampos.x[fdir + 1] |  | ||||||
| 			local steamz = fdir_to_steampos.z[fdir + 1] |  | ||||||
|  |  | ||||||
| 			minetest.add_particlespawner({ |  | ||||||
| 				amount = 1, |  | ||||||
| 				time = 1, |  | ||||||
| 				minpos = {x=pos.x - steamx, y=pos.y - 0.35, z=pos.z - steamz}, |  | ||||||
| 				maxpos = {x=pos.x - steamx, y=pos.y - 0.35, z=pos.z - steamz}, |  | ||||||
| 				minvel = {x=-0.003, y=0.01, z=-0.003}, |  | ||||||
| 				maxvel = {x=0.003, y=0.01, z=-0.003}, |  | ||||||
| 				minacc = {x=0.0,y=-0.0,z=-0.0}, |  | ||||||
| 				maxacc = {x=0.0,y=0.003,z=-0.0}, |  | ||||||
| 				minexptime = 2, |  | ||||||
| 				maxexptime = 5, |  | ||||||
| 				minsize = 1, |  | ||||||
| 				maxsize = 1.2, |  | ||||||
| 				collisiondetection = false, |  | ||||||
| 				texture = "homedecor_steam.png", |  | ||||||
| 			}) |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("toaster", { |  | ||||||
| 	description = S("Toaster"), |  | ||||||
| 	tiles = { "homedecor_toaster_sides.png" }, |  | ||||||
| 	inventory_image = "homedecor_toaster_inv.png", |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = { snappy=3 }, |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{-0.0625, -0.5, -0.125, 0.125, -0.3125, 0.125}, -- NodeBox1 |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |  | ||||||
| 		local fdir = node.param2 |  | ||||||
| 		minetest.set_node(pos, { name = "homedecor:toaster_loaf", param2 = fdir }) |  | ||||||
| 		minetest.sound_play("toaster", { |  | ||||||
| 			pos = pos, |  | ||||||
| 			gain = 1.0, |  | ||||||
| 			max_hear_distance = 5 |  | ||||||
| 		}) |  | ||||||
| 		return itemstack |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("toaster_loaf", { |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_toaster_toploaf.png", |  | ||||||
| 		"homedecor_toaster_sides.png", |  | ||||||
| 		"homedecor_toaster_sides.png", |  | ||||||
| 		"homedecor_toaster_sides.png", |  | ||||||
| 		"homedecor_toaster_sides.png", |  | ||||||
| 		"homedecor_toaster_sides.png" |  | ||||||
| 	}, |  | ||||||
| 	walkable = false, |  | ||||||
| 	groups = { snappy=3, not_in_creative_inventory=1 }, |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{-0.0625, -0.5, -0.125, 0.125, -0.3125, 0.125}, -- NodeBox1 |  | ||||||
| 			{-0.03125, -0.3125, -0.0935, 0, -0.25, 0.0935}, -- NodeBox2 |  | ||||||
| 			{0.0625, -0.3125, -0.0935, 0.0935, -0.25, 0.0935}, -- NodeBox3 |  | ||||||
| 		}, |  | ||||||
| 	}, |  | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |  | ||||||
| 		local fdir = node.param2 |  | ||||||
| 		minetest.set_node(pos, { name = "homedecor:toaster", param2 = fdir }) |  | ||||||
| 		return itemstack |  | ||||||
| 	end, |  | ||||||
| 	drop = "homedecor:toaster" |  | ||||||
| }) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| homedecor.register("dishwasher", { |  | ||||||
| 	description = S("Dishwasher"), |  | ||||||
| 	drawtype = "nodebox", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_dishwasher_top.png", |  | ||||||
| 		"homedecor_dishwasher_bottom.png", |  | ||||||
| 		"homedecor_dishwasher_sides.png", |  | ||||||
| 		"homedecor_dishwasher_sides.png^[transformFX", |  | ||||||
| 		"homedecor_dishwasher_back.png", |  | ||||||
| 		"homedecor_dishwasher_front.png" |  | ||||||
| 	}, |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, |  | ||||||
| 			{-0.5, -0.5, -0.5, 0.5, 0.5, -0.4375}, |  | ||||||
| 			{-0.5, -0.5, -0.5, 0.5, 0.1875, 0.1875}, |  | ||||||
| 			{-0.4375, -0.5, -0.5, 0.4375, 0.4375, 0.4375}, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 	selection_box = { type = "regular" }, |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local materials = { N_("granite"), N_("marble"), N_("steel"), N_("wood") } |  | ||||||
|  |  | ||||||
| for _, m in ipairs(materials) do |  | ||||||
| homedecor.register("dishwasher_"..m, { |  | ||||||
| 	description = S("Dishwasher (@1)", S(m)), |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_kitchen_cabinet_top_"..m..".png", |  | ||||||
| 		"homedecor_dishwasher_bottom.png", |  | ||||||
| 		"homedecor_dishwasher_sides.png", |  | ||||||
| 		"homedecor_dishwasher_sides.png^[transformFX", |  | ||||||
| 		"homedecor_dishwasher_back.png", |  | ||||||
| 		"homedecor_dishwasher_front.png" |  | ||||||
| 	}, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_stone_defaults(), |  | ||||||
| }) |  | ||||||
| end |  | ||||||
| @@ -1,157 +0,0 @@ | |||||||
| -- This file supplies Kitchen cabinets and kitchen sink |  | ||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext |  | ||||||
|  |  | ||||||
| local cabinet_sides = "(default_wood.png^[transformR90)^homedecor_kitchen_cabinet_bevel.png" |  | ||||||
| local cabinet_bottom = "(default_wood.png^[colorize:#000000:100)^(homedecor_kitchen_cabinet_bevel.png^[colorize:#46321580)" |  | ||||||
|  |  | ||||||
| local function N_(x) return x end |  | ||||||
|  |  | ||||||
| local counter_materials = { "", N_("granite"), N_("marble"), N_("steel") } |  | ||||||
|  |  | ||||||
| for _, mat in ipairs(counter_materials) do |  | ||||||
|  |  | ||||||
| 	local desc = S("Kitchen Cabinet") |  | ||||||
| 	local material = "" |  | ||||||
|  |  | ||||||
| 	if mat ~= "" then |  | ||||||
| 		desc = S("Kitchen Cabinet (@1 top)", S(mat)) |  | ||||||
| 		material = "_"..mat |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	homedecor.register("kitchen_cabinet"..material, { |  | ||||||
| 		description = desc, |  | ||||||
| 		tiles = { 'homedecor_kitchen_cabinet_top'..material..'.png', |  | ||||||
| 				cabinet_bottom, |  | ||||||
| 				cabinet_sides, |  | ||||||
| 				cabinet_sides, |  | ||||||
| 				cabinet_sides, |  | ||||||
| 				'homedecor_kitchen_cabinet_front.png'}, |  | ||||||
| 		groups = { snappy = 3 }, |  | ||||||
| 		sounds = default.node_sound_wood_defaults(), |  | ||||||
| 		infotext=S("Kitchen Cabinet"), |  | ||||||
| 		inventory = { |  | ||||||
| 			size=24, |  | ||||||
| 			lockable=true, |  | ||||||
| 		}, |  | ||||||
| 	}) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| local kitchen_cabinet_half_box = homedecor.nodebox.slab_y(0.5, 0.5) |  | ||||||
| homedecor.register("kitchen_cabinet_half", { |  | ||||||
| 	description = S('Half-height Kitchen Cabinet (on ceiling)'), |  | ||||||
| 	tiles = { |  | ||||||
| 		cabinet_sides, |  | ||||||
| 		cabinet_bottom, |  | ||||||
| 		cabinet_sides, |  | ||||||
| 		cabinet_sides, |  | ||||||
| 		cabinet_sides, |  | ||||||
| 		'homedecor_kitchen_cabinet_front_half.png' |  | ||||||
| 	}, |  | ||||||
| 	selection_box = kitchen_cabinet_half_box, |  | ||||||
| 	node_box = kitchen_cabinet_half_box, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	infotext=S("Kitchen Cabinet"), |  | ||||||
| 	inventory = { |  | ||||||
| 		size=12, |  | ||||||
| 		lockable=true, |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("kitchen_cabinet_with_sink", { |  | ||||||
| 	description = S("Kitchen Cabinet with sink"), |  | ||||||
| 	mesh = "homedecor_kitchen_sink.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_kitchen_sink_top.png", |  | ||||||
| 		"homedecor_kitchen_cabinet_front.png", |  | ||||||
| 		cabinet_sides, |  | ||||||
| 		cabinet_bottom |  | ||||||
| 	}, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	infotext=S("Under-sink cabinet"), |  | ||||||
| 	inventory = { |  | ||||||
| 		size=16, |  | ||||||
| 		lockable=true, |  | ||||||
| 	}, |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{ -8/16, -8/16, -8/16,  8/16, 6/16,  8/16 }, |  | ||||||
| 			{ -8/16,  6/16, -8/16, -6/16, 8/16,  8/16 }, |  | ||||||
| 			{  6/16,  6/16, -8/16,  8/16, 8/16,  8/16 }, |  | ||||||
| 			{ -8/16,  6/16, -8/16,  8/16, 8/16, -6/16 }, |  | ||||||
| 			{ -8/16,  6/16,  6/16,  8/16, 8/16,  8/16 }, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 	on_destruct = function(pos) |  | ||||||
| 		homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local cp_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -0.375, -0.5, -0.5, 0.375, -0.3125, 0.3125 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("copper_pans", { |  | ||||||
| 	description = S("Copper pans"), |  | ||||||
| 	mesh = "homedecor_copper_pans.obj", |  | ||||||
| 	tiles = { "homedecor_polished_copper.png" }, |  | ||||||
| 	inventory_image = "homedecor_copper_pans_inv.png", |  | ||||||
| 	groups = { snappy=3 }, |  | ||||||
| 	selection_box = cp_cbox, |  | ||||||
| 	walkable = false, |  | ||||||
| 	on_place = minetest.rotate_node |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local kf_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -2/16, -8/16, 1/16, 2/16, -1/16, 8/16 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("kitchen_faucet", { |  | ||||||
| 	mesh = "homedecor_kitchen_faucet.obj", |  | ||||||
| 	tiles = { "homedecor_generic_metal_bright.png" }, |  | ||||||
| 	inventory_image = "homedecor_kitchen_faucet_inv.png", |  | ||||||
| 	description = S("Kitchen Faucet"), |  | ||||||
| 	groups = {snappy=3}, |  | ||||||
| 	selection_box = kf_cbox, |  | ||||||
| 	walkable = false, |  | ||||||
| 	on_rotate = screwdriver.disallow, |  | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) |  | ||||||
| 		local below = minetest.get_node_or_nil({x=pos.x, y=pos.y-1, z=pos.z}) |  | ||||||
| 		if below and |  | ||||||
| 		  below.name == "homedecor:sink" or |  | ||||||
| 		  below.name == "homedecor:kitchen_cabinet_with_sink" or |  | ||||||
| 		  below.name == "homedecor:kitchen_cabinet_with_sink_locked" then |  | ||||||
| 			local particledef = { |  | ||||||
| 				outlet      = { x = 0, y = -0.19, z = 0.13 }, |  | ||||||
| 				velocity_x  = { min = -0.05, max = 0.05 }, |  | ||||||
| 				velocity_y  = -0.3, |  | ||||||
| 				velocity_z  = { min = -0.1,  max = 0 }, |  | ||||||
| 				spread      = 0 |  | ||||||
| 			} |  | ||||||
| 			homedecor.start_particle_spawner(pos, node, particledef, "homedecor_faucet") |  | ||||||
| 		end |  | ||||||
| 		return itemstack |  | ||||||
| 	end, |  | ||||||
| 	on_destruct = homedecor.stop_particle_spawner |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("paper_towel", { |  | ||||||
| 	mesh = "homedecor_paper_towel.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_generic_quilted_paper.png", |  | ||||||
| 		"default_wood.png" |  | ||||||
| 	}, |  | ||||||
| 	inventory_image = "homedecor_paper_towel_inv.png", |  | ||||||
| 	description = S("Paper towels"), |  | ||||||
| 	groups = { snappy=3 }, |  | ||||||
| 	walkable = false, |  | ||||||
| 	selection_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { -0.4375, 0.125, 0.0625, 0.4375, 0.4375, 0.5 } |  | ||||||
| 	}, |  | ||||||
| }) |  | ||||||
| @@ -1,61 +0,0 @@ | |||||||
| -- laundry devices |  | ||||||
|  |  | ||||||
| homedecor.register("washing_machine", { |  | ||||||
| 	description = "Washing Machine", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_washing_machine_top.png", |  | ||||||
| 		"homedecor_washing_machine_bottom.png", |  | ||||||
| 		"homedecor_washing_machine_sides.png", |  | ||||||
| 		"homedecor_washing_machine_sides.png^[transformFX", |  | ||||||
| 		"homedecor_washing_machine_back.png", |  | ||||||
| 		"homedecor_washing_machine_front.png" |  | ||||||
| 	}, |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{-0.5, -0.5, -0.5, 0.5, 0.375, 0.375}, |  | ||||||
| 			{-0.5, -0.5, 0.3125, 0.5, 0.5, 0.5}, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 	selection_box = { type = "regular" }, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("dryer", { |  | ||||||
| 	description = "Tumble dryer", |  | ||||||
| 	tiles = { |  | ||||||
| 		"homedecor_dryer_top.png", |  | ||||||
| 		"homedecor_dryer_bottom.png", |  | ||||||
| 		"homedecor_dryer_sides.png", |  | ||||||
| 		"homedecor_dryer_sides.png^[transformFX", |  | ||||||
| 		"homedecor_dryer_back.png", |  | ||||||
| 		"homedecor_dryer_front.png" |  | ||||||
| 	}, |  | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{-0.5, -0.5, -0.5, 0.5, 0.375, 0.375}, |  | ||||||
| 			{-0.5, -0.5, 0.3125, 0.5, 0.5, 0.5}, |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 	selection_box = { type = "regular" }, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| local ib_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -6/16, -8/16, -4/16, 17/16, 4/16, 4/16 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| homedecor.register("ironing_board", { |  | ||||||
| 	description = "Ironing board", |  | ||||||
| 	mesh = "homedecor_ironing_board.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		"wool_grey.png", |  | ||||||
| 		{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey }, |  | ||||||
| 	}, |  | ||||||
| 	expand = {right = "placeholder"}, |  | ||||||
| 	groups = { snappy = 3 }, |  | ||||||
| 	selection_box = ib_cbox, |  | ||||||
| 	collision_box = ib_cbox |  | ||||||
| }) |  | ||||||
| @@ -1,106 +0,0 @@ | |||||||
| -- Various kinds of window shutters |  | ||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext |  | ||||||
|  |  | ||||||
| local shutters = { |  | ||||||
| 	"mahogany", |  | ||||||
| 	"red", |  | ||||||
| 	"yellow", |  | ||||||
| 	"forest_green", |  | ||||||
| 	"light_blue", |  | ||||||
| 	"violet", |  | ||||||
| 	"black", |  | ||||||
| 	"dark_grey", |  | ||||||
| 	"grey", |  | ||||||
| 	"white", |  | ||||||
| } |  | ||||||
|  |  | ||||||
| local shutter_cbox = { |  | ||||||
| 	type = "wallmounted", |  | ||||||
| 	wall_top =		{ -0.5,  0.4375, -0.5,  0.5,     0.5,    0.5 }, |  | ||||||
| 	wall_bottom =	{ -0.5, -0.5,    -0.5,  0.5,    -0.4375, 0.5 }, |  | ||||||
| 	wall_side =		{ -0.5, -0.5,    -0.5, -0.4375,  0.5,    0.5 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| local inv = "homedecor_window_shutter_inv.png^[colorize:#a87034:150" |  | ||||||
|  |  | ||||||
| homedecor.register("shutter", { |  | ||||||
| 	mesh = "homedecor_window_shutter.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		{ name = "homedecor_window_shutter.png", color = 0xffa87034 } |  | ||||||
| 	}, |  | ||||||
| 	description = S("Wooden Shutter"), |  | ||||||
| 	inventory_image = inv, |  | ||||||
| 	wield_image = inv, |  | ||||||
| 	paramtype2 = "colorwallmounted", |  | ||||||
| 	palette = "unifieddyes_palette_colorwallmounted.png", |  | ||||||
| 	ud_replacement_node = "homedecor:shutter_colored", |  | ||||||
| 	groups = { snappy = 3, ud_param2_colorable = 1 }, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	selection_box = shutter_cbox, |  | ||||||
| 	node_box = shutter_cbox, |  | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) |  | ||||||
| 		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) |  | ||||||
| 		unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing) |  | ||||||
| 	end, |  | ||||||
| 	after_dig_node = unifieddyes.after_dig_node |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| homedecor.register("shutter_colored", { |  | ||||||
| 	mesh = "homedecor_window_shutter.obj", |  | ||||||
| 	tiles = { "homedecor_window_shutter.png" }, |  | ||||||
| 	description = S("Wooden Shutter"), |  | ||||||
| 	inventory_image = "homedecor_window_shutter_inv.png", |  | ||||||
| 	wield_image = "homedecor_window_shutter_inv.png", |  | ||||||
| 	paramtype2 = "colorwallmounted", |  | ||||||
| 	palette = "unifieddyes_palette_colorwallmounted.png", |  | ||||||
| 	groups = { snappy = 3 , not_in_creative_inventory = 1, ud_param2_colorable = 1}, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	selection_box = shutter_cbox, |  | ||||||
| 	node_box = shutter_cbox, |  | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) |  | ||||||
| 		unifieddyes.fix_rotation(pos, placer, itemstack, pointed_thing) |  | ||||||
| 		unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing) |  | ||||||
| 	end, |  | ||||||
| 	after_dig_node = unifieddyes.after_dig_node, |  | ||||||
| 	drop = "homedecor:shutter" |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_alias("homedecor:shutter_purple", "homedecor:shutter_violet") |  | ||||||
| minetest.register_alias("homedecor:shutter_oak", "homedecor:shutter") |  | ||||||
|  |  | ||||||
| -- convert to param2 coloring |  | ||||||
|  |  | ||||||
| homedecor.old_shutter_nodes = {} |  | ||||||
|  |  | ||||||
| for _, color in ipairs(shutters) do |  | ||||||
| 	table.insert(homedecor.old_shutter_nodes, "homedecor:shutter_"..color) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| minetest.register_lbm({ |  | ||||||
| 	name = "homedecor:convert_shutters", |  | ||||||
| 	label = "Convert shutter static nodes to use param2 color", |  | ||||||
| 	run_at_every_load = false, |  | ||||||
| 	nodenames = homedecor.old_shutter_nodes, |  | ||||||
| 	action = function(pos, node) |  | ||||||
| 		local name = node.name |  | ||||||
| 		local color = string.sub(name, string.find(name, "_") + 1) |  | ||||||
|  |  | ||||||
| 		if color == "mahogany" then |  | ||||||
| 			color = "dark_red" |  | ||||||
| 		elseif color == "forest_green" then |  | ||||||
| 			color = "dark_green" |  | ||||||
| 		elseif color == "light_blue" then |  | ||||||
| 			color = "medium_cyan" |  | ||||||
| 		elseif color == "red" then |  | ||||||
| 			color = "medium_red" |  | ||||||
| 		end |  | ||||||
|  |  | ||||||
| 		local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "wallmounted") |  | ||||||
| 		local param2 = paletteidx + node.param2 |  | ||||||
|  |  | ||||||
| 		minetest.set_node(pos, { name = "homedecor:shutter_colored", param2 = param2 }) |  | ||||||
| 		local meta = minetest.get_meta(pos) |  | ||||||
| 		meta:set_string("dye", "unifieddyes:"..color) |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
| Before Width: | Height: | Size: 309 B | 
| Before Width: | Height: | Size: 178 B | 
| Before Width: | Height: | Size: 175 B | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 591 B | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 880 B | 
| Before Width: | Height: | Size: 331 B | 
| Before Width: | Height: | Size: 326 B | 
| Before Width: | Height: | Size: 354 B | 
| Before Width: | Height: | Size: 372 B | 
| Before Width: | Height: | Size: 369 B | 
| Before Width: | Height: | Size: 293 B | 
| Before Width: | Height: | Size: 233 B | 
| Before Width: | Height: | Size: 247 B | 
| Before Width: | Height: | Size: 1.9 KiB | 
| Before Width: | Height: | Size: 345 B | 
| Before Width: | Height: | Size: 293 B | 
| Before Width: | Height: | Size: 123 B | 
| Before Width: | Height: | Size: 817 B | 
| Before Width: | Height: | Size: 769 B | 
| Before Width: | Height: | Size: 326 B | 
| Before Width: | Height: | Size: 321 B | 
| Before Width: | Height: | Size: 775 B | 
| @@ -1,145 +0,0 @@ | |||||||
|  |  | ||||||
| local S = homedecor_i18n.gettext |  | ||||||
|  |  | ||||||
| local wd_cbox = { |  | ||||||
| 	type = "fixed", |  | ||||||
| 	fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } |  | ||||||
| } |  | ||||||
|  |  | ||||||
| -- cache set_textures function (fallback to old version) |  | ||||||
| -- default.player_set_textures is deprecated and will be removed in future |  | ||||||
| local set_player_textures = |  | ||||||
| 	minetest.get_modpath("player_api") and player_api.set_textures |  | ||||||
| 	or default.player_set_textures |  | ||||||
|  |  | ||||||
| local armor_mod_path = minetest.get_modpath("3d_armor") |  | ||||||
|  |  | ||||||
| local skinslist = {"male1", "male2", "male3", "male4", "male5"} |  | ||||||
| local default_skin = "character.png" |  | ||||||
|  |  | ||||||
| local skinsdb_mod_path = minetest.get_modpath("skinsdb") |  | ||||||
| if skinsdb_mod_path then |  | ||||||
| 	for _, shrt in ipairs(skinslist) do |  | ||||||
| 		for _, prefix in ipairs({"", "fe"}) do |  | ||||||
| 			local skin_name = prefix..shrt |  | ||||||
| 			local skin_obj = skins.new("homedecor_clothes_"..skin_name..".png") -- Texture PNG file as key to be compatible in set_player_skin |  | ||||||
| 			skin_obj:set_preview("homedecor_clothes_"..skin_name.."_preview.png") |  | ||||||
| 			skin_obj:set_texture("homedecor_clothes_"..skin_name..".png") |  | ||||||
| 			skin_obj:set_meta("name", "Wardrobe "..skin_name) |  | ||||||
| 			skin_obj:set_meta("author", 'Calinou and Jordach') |  | ||||||
| 			skin_obj:set_meta("license", 'WTFPL') |  | ||||||
| 			local file = io.open(homedecor.modpath.."/textures/homedecor_clothes_"..skin_name..".png", "r") |  | ||||||
| 			skin_obj:set_meta("format", skins.get_skin_format(file)) |  | ||||||
| 			file:close() |  | ||||||
| 			skin_obj:set_meta("in_inventory_list", false) |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function homedecor.get_player_skin(player) |  | ||||||
| 	local skin = player:get_attribute("homedecor:player_skin") |  | ||||||
| 	if not skin or skin == "" then |  | ||||||
| 		return default_skin, true |  | ||||||
| 	end |  | ||||||
| 	return skin, false |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function homedecor.set_player_skin(player, skin, save) |  | ||||||
| 	skin = skin or default_skin |  | ||||||
| 	if skinsdb_mod_path then |  | ||||||
| 		skins.set_player_skin(player, skin) |  | ||||||
| 	elseif armor_mod_path then -- if 3D_armor's installed, let it set the skin |  | ||||||
| 		armor.textures[player:get_player_name()].skin = skin |  | ||||||
| 		armor:update_player_visuals(player) |  | ||||||
| 	else |  | ||||||
| 		set_player_textures(player, { skin }) |  | ||||||
| 	end |  | ||||||
|  |  | ||||||
| 	if save then |  | ||||||
| 		if skin == default_skin then |  | ||||||
| 			skin = "default" |  | ||||||
| 			player:set_attribute("homedecor:player_skin", "") |  | ||||||
| 		else |  | ||||||
| 			player:set_attribute("homedecor:player_skin", skin) |  | ||||||
| 		end |  | ||||||
| 		if save == "player" then -- if player action |  | ||||||
| 			minetest.log("verbose", |  | ||||||
| 				S("player @1 sets skin to @2", player:get_player_name(), skin) .. |  | ||||||
| 				(armor_mod_path and ' [3d_armor]' or '') |  | ||||||
| 			) |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| end |  | ||||||
|  |  | ||||||
| function homedecor.unset_player_skin(player) |  | ||||||
| 	homedecor.set_player_skin(player, nil, true) |  | ||||||
| end |  | ||||||
|  |  | ||||||
| homedecor.register("wardrobe", { |  | ||||||
| 	mesh = "homedecor_bedroom_wardrobe.obj", |  | ||||||
| 	tiles = { |  | ||||||
| 		homedecor.plain_wood, |  | ||||||
| 		"homedecor_wardrobe_drawers.png", |  | ||||||
| 		"homedecor_wardrobe_doors.png" |  | ||||||
| 	}, |  | ||||||
| 	inventory_image = "homedecor_wardrobe_inv.png", |  | ||||||
| 	description = S("Wardrobe"), |  | ||||||
| 	groups = {snappy=3}, |  | ||||||
| 	selection_box = wd_cbox, |  | ||||||
| 	collision_box = wd_cbox, |  | ||||||
| 	sounds = default.node_sound_wood_defaults(), |  | ||||||
| 	expand = { top="placeholder" }, |  | ||||||
| 	on_rotate = screwdriver.rotate_simple, |  | ||||||
| 	infotext = S("Wardrobe"), |  | ||||||
| 	inventory = { |  | ||||||
| 		size = 10 |  | ||||||
| 	}, |  | ||||||
| 	on_construct = function(pos) |  | ||||||
| 		local meta = minetest.get_meta(pos) |  | ||||||
| 		-- textures made by the Minetest community (mostly Calinou and Jordach) |  | ||||||
| 		local clothes_strings = "" |  | ||||||
| 		for i = 1,5 do |  | ||||||
| 			clothes_strings = clothes_strings.. |  | ||||||
| 			  "image_button_exit["..(i-1)..".5,0;1.1,2;homedecor_clothes_"..skinslist[i].."_preview.png;"..skinslist[i]..";]".. |  | ||||||
| 			  "image_button_exit["..(i-1)..".5,2;1.1,2;homedecor_clothes_fe"..skinslist[i].."_preview.png;fe"..skinslist[i]..";]" |  | ||||||
| 		end |  | ||||||
| 		meta:set_string("formspec", "size[5.5,8.5]"..default.gui_bg..default.gui_bg_img..default.gui_slots.. |  | ||||||
| 			"vertlabel[0,0.5;"..minetest.formspec_escape(S("Clothes")).."]".. |  | ||||||
| 			"button_exit[0,3.29;0.6,0.6;default;x]".. |  | ||||||
| 			clothes_strings.. |  | ||||||
| 			"vertlabel[0,5.2;"..minetest.formspec_escape(S("Storage")).."]".. |  | ||||||
| 			"list[current_name;main;0.5,4.5;5,2;]".. |  | ||||||
| 			"list[current_player;main;0.5,6.8;5,2;]" .. |  | ||||||
| 			"listring[]") |  | ||||||
| 	end, |  | ||||||
| 	on_receive_fields = function(pos, formname, fields, sender) |  | ||||||
| 		if fields.default then |  | ||||||
| 			homedecor.set_player_skin(sender, nil, "player") |  | ||||||
| 			return |  | ||||||
| 		end |  | ||||||
|  |  | ||||||
| 		for i = 1,5 do |  | ||||||
| 			if fields[skinslist[i]] then |  | ||||||
| 				homedecor.set_player_skin(sender, "homedecor_clothes_"..skinslist[i]..".png", "player") |  | ||||||
| 				break |  | ||||||
| 			elseif fields["fe"..skinslist[i]] then |  | ||||||
| 				homedecor.set_player_skin(sender, "homedecor_clothes_fe"..skinslist[i]..".png", "player") |  | ||||||
| 				break |  | ||||||
| 			end |  | ||||||
| 		end |  | ||||||
| 	end |  | ||||||
| }) |  | ||||||
|  |  | ||||||
| minetest.register_alias("homedecor:wardrobe_bottom", "homedecor:wardrobe") |  | ||||||
| minetest.register_alias("homedecor:wardrobe_top", "air") |  | ||||||
|  |  | ||||||
| minetest.register_on_joinplayer(function(player) |  | ||||||
| 	local skin = player:get_attribute("homedecor:player_skin") |  | ||||||
|  |  | ||||||
| 	if skin and skin ~= "" then |  | ||||||
| 		-- setting player skin on connect has no effect, so delay skin change |  | ||||||
| 		minetest.after(1, function(player, skin) |  | ||||||
| 			homedecor.set_player_skin(player, skin) |  | ||||||
| 		end, player, skin) |  | ||||||
| 	end |  | ||||||
| end) |  | ||||||
| @@ -1,12 +0,0 @@ | |||||||
| Most code and all textures by Vanessa Ezekowitz. |  | ||||||
|  |  | ||||||
| Some code copied and modified from the game's default mods (especially  |  | ||||||
| doors) and ironzorg's flowers mod. |  | ||||||
|  |  | ||||||
| Licenses:  |  | ||||||
| * For the lua code, LGPL.  |  | ||||||
| * For the door open/close sound, CC-By-SA 3.0 by Slanesh on freesound.org |  | ||||||
| 	http://freesound.org/people/Slanesh/sounds/31768/ |  | ||||||
| * For the gate open/close sound, CC0, by j1987 on freesound.org |  | ||||||
| 	http://freesound.org/people/j1987/sounds/106116/ |  | ||||||
| * For all images and everything else, WTFPL. |  | ||||||
| @@ -1,3 +1,4 @@ | |||||||
|  | homedecor_common | ||||||
| default | default | ||||||
| moreblocks? |  | ||||||
| vessels? | vessels? | ||||||
|  | moreblocks? | ||||||
|   | |||||||
							
								
								
									
										5
									
								
								homedecor_bathroom/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | homedecor_common | ||||||
|  | default | ||||||
|  | basic_materials | ||||||
|  | unifieddyes | ||||||
|  | building_blocks | ||||||
| @@ -1,5 +1,119 @@ | |||||||
| 
 | 
 | ||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
|  | 
 | ||||||
|  | minetest.register_node(":homedecor:bathroom_tiles_dark", { | ||||||
|  | 	description = S("Bathroom/kitchen tiles (dark)"), | ||||||
|  | 	tiles = { | ||||||
|  | 		"homedecor_bathroom_tiles_bg.png" | ||||||
|  | 	}, | ||||||
|  | 	overlay_tiles = { | ||||||
|  | 		{ name = "homedecor_bathroom_tiles_fg.png", color = 0xff606060 }, | ||||||
|  | 	}, | ||||||
|  | 	paramtype = "light", | ||||||
|  | 	paramtype2 = "color", | ||||||
|  | 	palette = "unifieddyes_palette_extended.png", | ||||||
|  | 	groups = {cracky=3, ud_param2_colorable = 1}, | ||||||
|  | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	on_construct = unifieddyes.on_construct, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_node(":homedecor:bathroom_tiles_medium", { | ||||||
|  | 	description = S("Bathroom/kitchen tiles (medium)"), | ||||||
|  | 	tiles = { | ||||||
|  | 		"homedecor_bathroom_tiles_bg.png" | ||||||
|  | 	}, | ||||||
|  | 	overlay_tiles = { | ||||||
|  | 		{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffc0c0c0 }, | ||||||
|  | 	}, | ||||||
|  | 	paramtype = "light", | ||||||
|  | 	paramtype2 = "color", | ||||||
|  | 	palette = "unifieddyes_palette_extended.png", | ||||||
|  | 	groups = {cracky=3, ud_param2_colorable = 1}, | ||||||
|  | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	on_construct = unifieddyes.on_construct, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_node(":homedecor:bathroom_tiles_light", { | ||||||
|  | 	description = S("Bathroom/kitchen tiles (light)"), | ||||||
|  | 	tiles = { | ||||||
|  | 		"homedecor_bathroom_tiles_bg.png" | ||||||
|  | 	}, | ||||||
|  | 	overlay_tiles = { | ||||||
|  | 			{ name = "homedecor_bathroom_tiles_fg.png", color = 0xffffffff }, | ||||||
|  | 	}, | ||||||
|  | 	paramtype = "light", | ||||||
|  | 	paramtype2 = "color", | ||||||
|  | 	palette = "unifieddyes_palette_extended.png", | ||||||
|  | 	groups = {cracky=3, ud_param2_colorable = 1}, | ||||||
|  | 	sounds = default.node_sound_stone_defaults(), | ||||||
|  | 	on_construct = unifieddyes.on_construct, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | local tr_cbox = { | ||||||
|  | 	type = "fixed", | ||||||
|  | 	fixed = { -0.375, -0.3125, 0.25, 0.375, 0.375, 0.5 } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | homedecor.register("towel_rod", { | ||||||
|  | 	description = S("Towel rod with towel"), | ||||||
|  | 	mesh = "homedecor_towel_rod.obj", | ||||||
|  | 	tiles = { | ||||||
|  | 		"homedecor_generic_terrycloth.png", | ||||||
|  | 		"default_wood.png", | ||||||
|  | 	}, | ||||||
|  | 	inventory_image = "homedecor_towel_rod_inv.png", | ||||||
|  | 	selection_box = tr_cbox, | ||||||
|  | 	walkable = false, | ||||||
|  | 	groups = {snappy=2,choppy=2,oddly_breakable_by_hand=3,flammable=3}, | ||||||
|  | 	sounds = default.node_sound_defaults(), | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | homedecor.register("medicine_cabinet", { | ||||||
|  | 	description = S("Medicine cabinet"), | ||||||
|  | 	mesh = "homedecor_medicine_cabinet.obj", | ||||||
|  | 	tiles = { | ||||||
|  | 		'default_wood.png', | ||||||
|  | 		'homedecor_medicine_cabinet_mirror.png' | ||||||
|  | 	}, | ||||||
|  | 	inventory_image = "homedecor_medicine_cabinet_inv.png", | ||||||
|  | 	selection_box = { | ||||||
|  | 		type = "fixed", | ||||||
|  | 		fixed = {-0.3125, -0.1875, 0.3125, 0.3125, 0.5, 0.5} | ||||||
|  | 	}, | ||||||
|  | 	walkable = false, | ||||||
|  | 	groups = { snappy = 3 }, | ||||||
|  | 	sounds = default.node_sound_wood_defaults(), | ||||||
|  | 	on_punch = function(pos, node, puncher, pointed_thing) | ||||||
|  | 		node.name = "homedecor:medicine_cabinet_open" | ||||||
|  | 		minetest.swap_node(pos, node) | ||||||
|  | 	end, | ||||||
|  | 	infotext=S("Medicine cabinet"), | ||||||
|  | 	inventory = { | ||||||
|  | 		size=6, | ||||||
|  | 	}, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | homedecor.register("medicine_cabinet_open", { | ||||||
|  | 	mesh = "homedecor_medicine_cabinet_open.obj", | ||||||
|  | 	tiles = { | ||||||
|  | 		'default_wood.png', | ||||||
|  | 		'homedecor_medicine_cabinet_mirror.png', | ||||||
|  | 		'homedecor_medicine_cabinet_inside.png' | ||||||
|  | 	}, | ||||||
|  | 	selection_box = { | ||||||
|  | 		type = "fixed", | ||||||
|  | 		fixed = {-0.3125, -0.1875, -0.25, 0.3125, 0.5, 0.5} | ||||||
|  | 	}, | ||||||
|  | 	walkable = false, | ||||||
|  | 	groups = { snappy = 3, not_in_creative_inventory=1 }, | ||||||
|  | 	drop = "homedecor:medicine_cabinet", | ||||||
|  | 	on_punch = function(pos, node, puncher, pointed_thing) | ||||||
|  | 		node.name = "homedecor:medicine_cabinet" | ||||||
|  | 		minetest.swap_node(pos, node) | ||||||
|  | 	end, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | -- "Sanitation" related | ||||||
| 
 | 
 | ||||||
| local toilet_sbox = { | local toilet_sbox = { | ||||||
| 	type = "fixed", | 	type = "fixed", | ||||||
| @@ -18,9 +132,9 @@ homedecor.register("toilet", { | |||||||
| 	description = S("Toilet"), | 	description = S("Toilet"), | ||||||
| 	mesh = "homedecor_toilet_closed.obj", | 	mesh = "homedecor_toilet_closed.obj", | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey } | 		{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey } | ||||||
| 	}, | 	}, | ||||||
| 	selection_box = toilet_sbox, | 	selection_box = toilet_sbox, | ||||||
| @@ -36,9 +150,9 @@ homedecor.register("toilet", { | |||||||
| homedecor.register("toilet_open", { | homedecor.register("toilet_open", { | ||||||
| 	mesh = "homedecor_toilet_open.obj", | 	mesh = "homedecor_toilet_open.obj", | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"default_water.png", | 		"default_water.png", | ||||||
| 		{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey } | 		{ name = "homedecor_generic_metal.png", color = homedecor.color_med_grey } | ||||||
| 	}, | 	}, | ||||||
| @@ -81,33 +195,35 @@ homedecor.register("toilet_paper", { | |||||||
| 
 | 
 | ||||||
| --Sink | --Sink | ||||||
| 
 | 
 | ||||||
| local sink_cbox = { | local sink_sbox = { | ||||||
| 	type = "fixed", | 	type = "fixed", | ||||||
| 	fixed = { -5/16, -8/16, 1/16, 5/16, 8/16, 8/16 } | 	fixed = { -5/16, -8/16, 1/16, 5/16, 8/16, 8/16 } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | local sink_cbox = { | ||||||
|  | 	type = "fixed", | ||||||
|  | 	fixed = { | ||||||
|  | 		{ -5/16,  5/16, 1/16, -4/16, 8/16, 8/16 }, | ||||||
|  | 		{  5/16,  5/16, 1/16,  4/16, 8/16, 8/16 }, | ||||||
|  | 		{ -5/16,  5/16, 1/16,  5/16, 8/16, 2/16 }, | ||||||
|  | 		{ -5/16,  5/16, 6/16,  5/16, 8/16, 8/16 }, | ||||||
|  | 		{ -4/16, -8/16, 1/16,  4/16, 5/16, 6/16 } | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
| homedecor.register("sink", { | homedecor.register("sink", { | ||||||
| 	description = S("Bathroom Sink"), | 	description = S("Bathroom Sink"), | ||||||
| 	mesh = "homedecor_bathroom_sink.obj", | 	mesh = "homedecor_bathroom_sink.obj", | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"default_water.png" | 		"default_water.png" | ||||||
| 	}, | 	}, | ||||||
| 	inventory_image="homedecor_bathroom_sink_inv.png", | 	inventory_image="homedecor_bathroom_sink_inv.png", | ||||||
| 	selection_box = sink_cbox, | 	selection_box = sink_sbox, | ||||||
|  | 	collision_box = sink_cbox, | ||||||
| 	groups = {cracky=3}, | 	groups = {cracky=3}, | ||||||
| 	sounds = default.node_sound_stone_defaults(), | 	sounds = default.node_sound_stone_defaults(), | ||||||
| 	node_box = { |  | ||||||
| 		type = "fixed", |  | ||||||
| 		fixed = { |  | ||||||
| 			{ -5/16,  5/16, 1/16, -4/16, 8/16, 8/16 }, |  | ||||||
| 			{  5/16,  5/16, 1/16,  4/16, 8/16, 8/16 }, |  | ||||||
| 			{ -5/16,  5/16, 1/16,  5/16, 8/16, 2/16 }, |  | ||||||
| 			{ -5/16,  5/16, 6/16,  5/16, 8/16, 8/16 }, |  | ||||||
| 			{ -4/16, -8/16, 1/16,  4/16, 5/16, 6/16 } |  | ||||||
| 		} |  | ||||||
| 	}, |  | ||||||
| 	on_destruct = function(pos) | 	on_destruct = function(pos) | ||||||
| 		homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) | 		homedecor.stop_particle_spawner({x=pos.x, y=pos.y+1, z=pos.z}) | ||||||
| 	end | 	end | ||||||
| @@ -127,7 +243,8 @@ local function taps_on_rightclick(pos, node, clicker, itemstack, pointed_thing) | |||||||
| 			velocity_x  = { min = -0.1, max = 0.1 }, | 			velocity_x  = { min = -0.1, max = 0.1 }, | ||||||
| 			velocity_y  = -0.3, | 			velocity_y  = -0.3, | ||||||
| 			velocity_z  = { min = -0.1, max = 0 }, | 			velocity_z  = { min = -0.1, max = 0 }, | ||||||
| 			spread      = 0 | 			spread      = 0, | ||||||
|  | 			die_on_collision = true, | ||||||
| 		} | 		} | ||||||
| 		homedecor.start_particle_spawner(pos, node, particledef, "homedecor_faucet") | 		homedecor.start_particle_spawner(pos, node, particledef, "homedecor_faucet") | ||||||
| 	end | 	end | ||||||
| @@ -186,7 +303,7 @@ homedecor.register("shower_tray", { | |||||||
| 	description = S("Shower Tray"), | 	description = S("Shower Tray"), | ||||||
| 	tiles = { | 	tiles = { | ||||||
| 		"forniture_marble_base_ducha_top.png", | 		"forniture_marble_base_ducha_top.png", | ||||||
| 		"homedecor_marble.png" | 		"building_blocks_marble.png" | ||||||
| 	}, | 	}, | ||||||
| 	node_box = { | 	node_box = { | ||||||
| 		type = "fixed", | 		type = "fixed", | ||||||
| @@ -255,7 +372,7 @@ homedecor.register("bathtub_clawfoot_brass_taps", { | |||||||
| 		"homedecor_generic_metal_bright.png", | 		"homedecor_generic_metal_bright.png", | ||||||
| 		"homedecor_generic_metal_bright.png", | 		"homedecor_generic_metal_bright.png", | ||||||
| 		"homedecor_generic_metal_brass.png", | 		"homedecor_generic_metal_brass.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_bathtub_clawfoot_bottom_inside.png", | 		"homedecor_bathtub_clawfoot_bottom_inside.png", | ||||||
| 	}, | 	}, | ||||||
| 	description = S("Bathtub, clawfoot, with brass taps"), | 	description = S("Bathtub, clawfoot, with brass taps"), | ||||||
| @@ -275,7 +392,7 @@ homedecor.register("bathtub_clawfoot_chrome_taps", { | |||||||
| 		"homedecor_generic_metal_bright.png", | 		"homedecor_generic_metal_bright.png", | ||||||
| 		"homedecor_generic_metal_bright.png", | 		"homedecor_generic_metal_bright.png", | ||||||
| 		"homedecor_generic_metal_bright.png", | 		"homedecor_generic_metal_bright.png", | ||||||
| 		"homedecor_marble.png", | 		"building_blocks_marble.png", | ||||||
| 		"homedecor_bathtub_clawfoot_bottom_inside.png", | 		"homedecor_bathtub_clawfoot_bottom_inside.png", | ||||||
| 	}, | 	}, | ||||||
| 	description = S("Bathtub, clawfoot, with chrome taps"), | 	description = S("Bathtub, clawfoot, with chrome taps"), | ||||||
| @@ -310,6 +427,8 @@ homedecor.register("bathroom_set", { | |||||||
| 	sounds = default.node_sound_glass_defaults(), | 	sounds = default.node_sound_glass_defaults(), | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
|  | -- aliases | ||||||
|  | 
 | ||||||
| minetest.register_alias("3dforniture:toilet", "homedecor:toilet") | minetest.register_alias("3dforniture:toilet", "homedecor:toilet") | ||||||
| minetest.register_alias("3dforniture:toilet_open", "homedecor:toilet_open") | minetest.register_alias("3dforniture:toilet_open", "homedecor:toilet_open") | ||||||
| minetest.register_alias("3dforniture:sink", "homedecor:sink") | minetest.register_alias("3dforniture:sink", "homedecor:sink") | ||||||
| @@ -324,3 +443,153 @@ minetest.register_alias("taps", "homedecor:taps") | |||||||
| minetest.register_alias("shower_tray", "homedecor:shower_tray") | minetest.register_alias("shower_tray", "homedecor:shower_tray") | ||||||
| minetest.register_alias("shower_head", "homedecor:shower_head") | minetest.register_alias("shower_head", "homedecor:shower_head") | ||||||
| minetest.register_alias("table_lamp", "homedecor:table_lamp_off") | minetest.register_alias("table_lamp", "homedecor:table_lamp_off") | ||||||
|  | 
 | ||||||
|  | -- convert old static nodes | ||||||
|  | 
 | ||||||
|  | homedecor.old_static_bathroom_tiles = { | ||||||
|  | 	"homedecor:tiles_1", | ||||||
|  | 	"homedecor:tiles_2", | ||||||
|  | 	"homedecor:tiles_3", | ||||||
|  | 	"homedecor:tiles_4", | ||||||
|  | 	"homedecor:tiles_red", | ||||||
|  | 	"homedecor:tiles_tan", | ||||||
|  | 	"homedecor:tiles_yellow", | ||||||
|  | 	"homedecor:tiles_green", | ||||||
|  | 	"homedecor:tiles_blue" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | local old_to_color = { | ||||||
|  | 	"light_grey", | ||||||
|  | 	"grey", | ||||||
|  | 	"black", | ||||||
|  | 	"black" | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | minetest.register_lbm({ | ||||||
|  | 	name = ":homedecor:convert_bathroom_tiles", | ||||||
|  | 	label = "Convert bathroom tiles to use param2 color", | ||||||
|  | 	run_at_every_load = false, | ||||||
|  | 	nodenames = homedecor.old_static_bathroom_tiles, | ||||||
|  | 	action = function(pos, node) | ||||||
|  | 		local name = node.name | ||||||
|  | 		local newname = "homedecor:bathroom_tiles_light" | ||||||
|  | 		local a = string.find(name, "_") | ||||||
|  | 		local color = string.sub(name, a + 1) | ||||||
|  | 
 | ||||||
|  | 		if color == "tan" then | ||||||
|  | 			color = "yellow_s50" | ||||||
|  | 		elseif color == "1" or color == "2" or color == "3" or color == "4" then | ||||||
|  | 			if color == "4" then | ||||||
|  | 				newname = "homedecor:bathroom_tiles_medium" | ||||||
|  | 			end | ||||||
|  | 			color = old_to_color[tonumber(color)] | ||||||
|  | 		elseif color ~= "yellow" then | ||||||
|  | 			color = color.."_s50" | ||||||
|  | 		end | ||||||
|  | 
 | ||||||
|  | 		local paletteidx = unifieddyes.getpaletteidx("unifieddyes:"..color, "extended") | ||||||
|  | 
 | ||||||
|  | 		minetest.set_node(pos, { name = newname, param2 = paletteidx }) | ||||||
|  | 		local meta = minetest.get_meta(pos) | ||||||
|  | 		meta:set_string("dye", "unifieddyes:"..color) | ||||||
|  | 		meta:set_string("palette", "ext") | ||||||
|  | 	end | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | -- crafting | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |     output = "homedecor:towel_rod", | ||||||
|  |     recipe = { | ||||||
|  | 		{ "group:wood", "group:stick", "group:wood" }, | ||||||
|  | 		{ "", "building_blocks:terrycloth_towel", "" }, | ||||||
|  |     }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |     output = "homedecor:toilet_paper", | ||||||
|  |     recipe = { | ||||||
|  | 		{ "", "default:paper", "default:paper" }, | ||||||
|  | 		{ "group:wood", "group:stick", "default:paper" }, | ||||||
|  | 		{ "", "default:paper", "default:paper" }, | ||||||
|  |     }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |     output = "homedecor:medicine_cabinet", | ||||||
|  |     recipe = { | ||||||
|  | 		{ "group:stick", "default:glass", "group:stick" }, | ||||||
|  | 		{ "group:stick", "default:glass", "group:stick" }, | ||||||
|  | 		{ "group:stick", "default:glass", "group:stick" } | ||||||
|  |     }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | -- bathroom/kitchen tiles | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 		output = "homedecor:bathroom_tiles_light 4", | ||||||
|  | 		recipe = { | ||||||
|  | 			{ "group:marble", "group:marble", "" }, | ||||||
|  | 			{ "group:marble", "group:marble", "dye:white" } | ||||||
|  | 		}, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | unifieddyes.register_color_craft({ | ||||||
|  | 	output = "homedecor:bathroom_tiles_light", | ||||||
|  | 	palette = "extended", | ||||||
|  | 	type = "shapeless", | ||||||
|  | 	neutral_node = "homedecor:bathroom_tiles_light", | ||||||
|  | 	recipe = { | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"MAIN_DYE" | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 		output = "homedecor:bathroom_tiles_medium 4", | ||||||
|  | 		recipe = { | ||||||
|  | 			{ "group:marble", "group:marble", "" }, | ||||||
|  | 			{ "group:marble", "group:marble", "dye:grey" } | ||||||
|  | 		}, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | unifieddyes.register_color_craft({ | ||||||
|  | 	output = "homedecor:bathroom_tiles_medium", | ||||||
|  | 	palette = "extended", | ||||||
|  | 	type = "shapeless", | ||||||
|  | 	neutral_node = "homedecor:bathroom_tiles_medium", | ||||||
|  | 	recipe = { | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"MAIN_DYE" | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 		output = "homedecor:bathroom_tiles_dark 4", | ||||||
|  | 		recipe = { | ||||||
|  | 			{ "group:marble", "group:marble", "" }, | ||||||
|  | 			{ "group:marble", "group:marble", "dye:dark_grey" } | ||||||
|  | 		}, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | unifieddyes.register_color_craft({ | ||||||
|  | 	output = "homedecor:bathroom_tiles_dark", | ||||||
|  | 	palette = "extended", | ||||||
|  | 	type = "shapeless", | ||||||
|  | 	neutral_node = "homedecor:bathroom_tiles_dark", | ||||||
|  | 	recipe = { | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"MAIN_DYE" | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  | 	output = "homedecor:bathroom_set", | ||||||
|  | 	recipe = { | ||||||
|  | 		{ "", "homedecor:glass_table_small_round", "" }, | ||||||
|  | 		{ "basic_materials:plastic_sheet", "homedecor:glass_table_small_round", "basic_materials:plastic_sheet" }, | ||||||
|  | 		{ "group:stick", "basic_materials:plastic_sheet", "group:stick" } | ||||||
|  | 	}, | ||||||
|  | }) | ||||||
| Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 5.1 KiB | 
| Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB | 
| Before Width: | Height: | Size: 778 B After Width: | Height: | Size: 778 B | 
| Before Width: | Height: | Size: 531 B After Width: | Height: | Size: 531 B | 
| Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB | 
| Before Width: | Height: | Size: 368 B After Width: | Height: | Size: 368 B | 
| Before Width: | Height: | Size: 205 B After Width: | Height: | Size: 205 B | 
| Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 430 B | 
| Before Width: | Height: | Size: 223 B After Width: | Height: | Size: 223 B | 
| Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB | 
| Before Width: | Height: | Size: 219 B After Width: | Height: | Size: 219 B | 
| Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 248 B | 
| Before Width: | Height: | Size: 245 B After Width: | Height: | Size: 245 B | 
| Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 129 B | 
| Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB | 
| Before Width: | Height: | Size: 126 B After Width: | Height: | Size: 126 B | 
| Before Width: | Height: | Size: 580 B After Width: | Height: | Size: 580 B | 
| Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB | 
| Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB | 
							
								
								
									
										5
									
								
								homedecor_bedroom/depends.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,5 @@ | |||||||
|  | homedecor_common | ||||||
|  | default | ||||||
|  | basic_materials | ||||||
|  | unifieddyes | ||||||
|  | creative | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| 
 | 
 | ||||||
| local S = homedecor_i18n.gettext | local S = homedecor.gettext | ||||||
| 
 | 
 | ||||||
| local function N_(x) return x end | local function N_(x) return x end | ||||||
| 
 | 
 | ||||||
| @@ -52,13 +52,11 @@ homedecor.register("bed_regular", { | |||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) | 	after_place_node = function(pos, placer, itemstack, pointed_thing) | ||||||
| 		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | 		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | ||||||
| 		unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing) |  | ||||||
| 		if not placer:get_player_control().sneak then | 		if not placer:get_player_control().sneak then | ||||||
| 			return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing) | 			return homedecor.bed_expansion(pos, placer, itemstack, pointed_thing) | ||||||
| 		end | 		end | ||||||
| 	end, | 	end, | ||||||
| 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | ||||||
| 		unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger) |  | ||||||
| 		homedecor.unextend_bed(pos) | 		homedecor.unextend_bed(pos) | ||||||
| 	end, | 	end, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| @@ -66,9 +64,9 @@ homedecor.register("bed_regular", { | |||||||
| 		if itemname == "homedecor:bed_regular" then | 		if itemname == "homedecor:bed_regular" then | ||||||
| 			homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true) | 			homedecor.bed_expansion(pos, clicker, itemstack, pointed_thing, true) | ||||||
| 			return itemstack | 			return itemstack | ||||||
| 		else | --		else | ||||||
| 			homedecor.beds_on_rightclick(pos, node, clicker) | --			homedecor.beds_on_rightclick(pos, node, clicker) | ||||||
| 			return itemstack | --			return itemstack | ||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
| @@ -91,15 +89,13 @@ homedecor.register("bed_extended", { | |||||||
| 	sounds = default.node_sound_wood_defaults(), | 	sounds = default.node_sound_wood_defaults(), | ||||||
| 	expand = { forward = "air" }, | 	expand = { forward = "air" }, | ||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = unifieddyes.recolor_on_place, |  | ||||||
| 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | ||||||
| 		unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger) |  | ||||||
| 		homedecor.unextend_bed(pos) | 		homedecor.unextend_bed(pos) | ||||||
| 	end, | 	end, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | --	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		homedecor.beds_on_rightclick(pos, node, clicker) | --		homedecor.beds_on_rightclick(pos, node, clicker) | ||||||
| 		return itemstack | --		return itemstack | ||||||
| 	end, | --	end, | ||||||
| 	drop = "homedecor:bed_regular" | 	drop = "homedecor:bed_regular" | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| @@ -124,20 +120,18 @@ homedecor.register("bed_kingsize", { | |||||||
| 	on_rotate = screwdriver.disallow, | 	on_rotate = screwdriver.disallow, | ||||||
| 	after_place_node = function(pos, placer, itemstack, pointed_thing) | 	after_place_node = function(pos, placer, itemstack, pointed_thing) | ||||||
| 		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | 		unifieddyes.fix_rotation_nsew(pos, placer, itemstack, pointed_thing) | ||||||
| 		unifieddyes.recolor_on_place(pos, placer, itemstack, pointed_thing) |  | ||||||
| 	end, | 	end, | ||||||
| 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | 	after_dig_node = function(pos, oldnode, oldmetadata, digger) | ||||||
| 		unifieddyes.after_dig_node(pos, oldnode, oldmetadata, digger) |  | ||||||
| 		local inv = digger:get_inventory() | 		local inv = digger:get_inventory() | ||||||
| 		if digger:get_player_control().sneak and inv:room_for_item("main", "homedecor:bed_regular 2") then | 		if digger:get_player_control().sneak and inv:room_for_item("main", "homedecor:bed_regular 2") then | ||||||
| 			inv:remove_item("main", "homedecor:bed_kingsize 1") | 			inv:remove_item("main", "homedecor:bed_kingsize 1") | ||||||
| 			inv:add_item("main", "homedecor:bed_regular 2") | 			inv:add_item("main", "homedecor:bed_regular 2") | ||||||
| 		end | 		end | ||||||
| 	end, | 	end, | ||||||
| 	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | --	on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) | ||||||
| 		homedecor.beds_on_rightclick(pos, node, clicker) | --		homedecor.beds_on_rightclick(pos, node, clicker) | ||||||
| 		return itemstack | --		return itemstack | ||||||
| 	end | --	end, | ||||||
| }) | }) | ||||||
| 
 | 
 | ||||||
| for _, w in pairs({ N_("mahogany"), N_("oak") }) do | for _, w in pairs({ N_("mahogany"), N_("oak") }) do | ||||||
| @@ -226,7 +220,7 @@ for _, color in ipairs(bedcolors) do | |||||||
| end | end | ||||||
| 
 | 
 | ||||||
| minetest.register_lbm({ | minetest.register_lbm({ | ||||||
| 	name = "homedecor:convert_beds", | 	name = ":homedecor:convert_beds", | ||||||
| 	label = "Convert homedecor static bed nodes to use param2 color", | 	label = "Convert homedecor static bed nodes to use param2 color", | ||||||
| 	run_at_every_load = false, | 	run_at_every_load = false, | ||||||
| 	nodenames = homedecor.old_bed_nodes, | 	nodenames = homedecor.old_bed_nodes, | ||||||
| @@ -271,3 +265,126 @@ minetest.register_lbm({ | |||||||
| 		meta:set_string("dye", "unifieddyes:"..color) | 		meta:set_string("dye", "unifieddyes:"..color) | ||||||
| 	end | 	end | ||||||
| }) | }) | ||||||
|  | 
 | ||||||
|  | -- crafting | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  |         output = "homedecor:nightstand_oak_one_drawer", | ||||||
|  |         recipe = { | ||||||
|  |                 { "homedecor:drawer_small" }, | ||||||
|  |                 { "group:wood" }, | ||||||
|  |         }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |         type = "fuel", | ||||||
|  |         recipe = "homedecor:nightstand_oak_one_drawer", | ||||||
|  |         burntime = 30, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  |         output = "homedecor:nightstand_oak_two_drawers", | ||||||
|  |         recipe = { | ||||||
|  |                 { "homedecor:drawer_small" }, | ||||||
|  |                 { "homedecor:drawer_small" }, | ||||||
|  |                 { "group:wood" }, | ||||||
|  |         }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  |         output = "homedecor:nightstand_oak_two_drawers", | ||||||
|  |         recipe = { | ||||||
|  |                 { "homedecor:nightstand_oak_one_drawer" }, | ||||||
|  |                 { "homedecor:drawer_small" }, | ||||||
|  |         }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |         type = "fuel", | ||||||
|  |         recipe = "homedecor:nightstand_oak_two_drawers", | ||||||
|  |         burntime = 30, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | -- | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 	type = "shapeless", | ||||||
|  |         output = "homedecor:nightstand_mahogany_one_drawer", | ||||||
|  |         recipe = { | ||||||
|  |                 "homedecor:nightstand_oak_one_drawer", | ||||||
|  |                 "dye:brown", | ||||||
|  |         }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |         type = "fuel", | ||||||
|  |         recipe = "homedecor:nightstand_mahogany_one_drawer", | ||||||
|  |         burntime = 30, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 	type = "shapeless", | ||||||
|  |         output = "homedecor:nightstand_mahogany_two_drawers", | ||||||
|  |         recipe = { | ||||||
|  |                 "homedecor:nightstand_oak_two_drawers", | ||||||
|  |                 "dye:brown", | ||||||
|  |         }, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft({ | ||||||
|  |         type = "fuel", | ||||||
|  |         recipe = "homedecor:nightstand_mahogany_two_drawers", | ||||||
|  |         burntime = 30, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 	output = "homedecor:bed_regular", | ||||||
|  | 	recipe = { | ||||||
|  | 		{ "group:stick", "", "group:stick" }, | ||||||
|  | 		{ "wool:white", "wool:white", "wool:white" }, | ||||||
|  | 		{ "group:wood", "", "group:wood" }, | ||||||
|  | 	}, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | unifieddyes.register_color_craft({ | ||||||
|  | 	output = "homedecor:bed_regular", | ||||||
|  | 	palette = "wallmounted", | ||||||
|  | 	type = "shapeless", | ||||||
|  | 	neutral_node = "homedecor:bed_regular", | ||||||
|  | 	recipe = { | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"MAIN_DYE" | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | minetest.register_craft( { | ||||||
|  | 	output = "homedecor:bed_kingsize", | ||||||
|  | 	recipe = { | ||||||
|  | 		{ "homedecor:bed_regular", "homedecor:bed_regular" } | ||||||
|  | 	}, | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | unifieddyes.register_color_craft({ | ||||||
|  | 	output = "homedecor:bed_kingsize", | ||||||
|  | 	palette = "wallmounted", | ||||||
|  | 	type = "shapeless", | ||||||
|  | 	neutral_node = "homedecor:bed_kingsize", | ||||||
|  | 	recipe = { | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"MAIN_DYE" | ||||||
|  | 	} | ||||||
|  | }) | ||||||
|  | 
 | ||||||
|  | unifieddyes.register_color_craft({ | ||||||
|  | 	output = "homedecor:bed_kingsize", | ||||||
|  | 	palette = "wallmounted", | ||||||
|  | 	type = "shapeless", | ||||||
|  | 	neutral_node = "homedecor:bed_regular", | ||||||
|  | 	recipe = { | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"NEUTRAL_NODE", | ||||||
|  | 		"MAIN_DYE" | ||||||
|  | 	} | ||||||
|  | }) | ||||||