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"}
|
||||||
|
|
||||||
@ -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"),
|
||||||
|
@ -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 = {
|
||||||
|
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} } },
|
||||||
|
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"
|
||||||
|
}
|
||||||
|
})
|