Compare commits
61 Commits
master
...
wild-updat
Author | SHA1 | Date |
---|---|---|
cora | aa7821949b | |
cora | 483f32d768 | |
Thunder1035 | e7b09c8059 | |
Thunder1035 | 91b0c1ee22 | |
Thunder1035 | 02239719fb | |
Thunder1035 | 4559bcf789 | |
Thunder1035 | 43753a200c | |
Thunder1035 | 2a327df055 | |
Thunder1035 | 07aba8da6e | |
Thunder1035 | c5e8c4c1b2 | |
Thunder1035 | abd74e1a9b | |
Thunder1035 | 380535c7d2 | |
Thunder1035 | e554fbf996 | |
Thunder1035 | 589d5584c8 | |
Thunder1035 | b6050d7a97 | |
Thunder1035 | 405fa8a70f | |
Thunder1035 | 399aa45531 | |
Thunder1035 | e6dca421e6 | |
Thunder1035 | 2afeb5f079 | |
Thunder1035 | 9fd63f8f31 | |
Thunder1035 | 7a5cf11073 | |
Thunder1035 | 98db48515f | |
Thunder1035 | 6ce3c6c510 | |
Thunder1035 | 021d6661fc | |
Thunder1035 | 257f328cb3 | |
Thunder1035 | d720d745f1 | |
Thunder1035 | a5505e9904 | |
Thunder1035 | aab53de2d8 | |
Thunder1035 | bd8d8d3a8a | |
Thunder1035 | 39722dbdb0 | |
Thunder1035 | ab7cb68057 | |
Thunder1035 | 39f0486976 | |
Thunder1035 | 14dc0bd854 | |
Thunder1035 | 6ee077b1a6 | |
Thunder1035 | 3a0a2140e3 | |
Thunder1035 | c95ae53594 | |
Thunder1035 | 0e226b444d | |
Thunder1035 | 72cbea0ad4 | |
Thunder1035 | db7f4c1974 | |
Thunder1035 | 77c13ef7d5 | |
Thunder1035 | c324e03301 | |
Thunder1035 | 36f64d9c95 | |
Thunder1035 | cbda930293 | |
Thunder1035 | 08f2b48740 | |
Thunder1035 | 9b116dc7a8 | |
Thunder1035 | 08a46bdebc | |
Thunder1035 | 68829264fa | |
Thunder1035 | 70acb50123 | |
Thunder1035 | 901aa9eed7 | |
Thunder1035 | fd2c05d48c | |
Thunder1035 | 46c654b616 | |
Thunder1035 | 9fe2df162e | |
Thunder1035 | e73a7b2cb4 | |
Thunder1035 | 09d1700378 | |
Thunder1035 | 31d9b18011 | |
Thunder1035 | 3c3eff9556 | |
Thunder1035 | 5b5e54fa85 | |
Thunder1035 | c4390bcbe5 | |
Thunder1035 | b2965aca41 | |
Thunder1035 | 3e7b32102a | |
Thunder1035 | 122bb13898 |
|
@ -1,3 +1,3 @@
|
|||
name = mesecons_button
|
||||
depends = mesecons
|
||||
depends = mesecons, mcl_sounds
|
||||
optional_depends = doc
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
name = mesecons_lightstone
|
||||
depends = mesecons
|
||||
depends = mesecons, mcl_sounds
|
||||
optional_depends = doc
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
name = mesecons_pressureplates
|
||||
depends = mesecons
|
||||
depends = mesecons, mcl_sounds
|
||||
optional_depends = doc
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
name = mesecons_solarpanel
|
||||
depends = mesecons
|
||||
depends = mesecons, mcl_sounds
|
||||
optional_depends = doc
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
name = mesecons_walllever
|
||||
depends = mesecons
|
||||
depends = mesecons, mcl_sounds
|
||||
optional_depends = doc
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
name = mesecons_wires
|
||||
depends = mesecons
|
||||
depends = mesecons, mcl_sounds
|
||||
optional_depends = doc
|
||||
|
|
|
@ -0,0 +1,661 @@
|
|||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
|
@ -0,0 +1,24 @@
|
|||
# The Wild Update
|
||||
this modpack is the wild update for mineclone 2 and 5, features all the new thing which minecraft 1.19 has in it.
|
||||
|
||||
this will have -
|
||||
- Swamps
|
||||
- Frogs
|
||||
- Tadpoles
|
||||
- Fireflies
|
||||
- Mangrove swamps
|
||||
- Mangrove full set + roots
|
||||
- Chest Boats
|
||||
- Deep Dark
|
||||
- All sculk Blocks
|
||||
- Warden
|
||||
- Ancient cities (not implemented yet)
|
||||
|
||||
(idea is from)
|
||||
https://www.planetminecraft.com/mod/the-wild-mod-fabric-5373520/
|
||||
|
||||
## Version
|
||||
1.4.3
|
||||
|
||||
## License
|
||||
AGNU 3.0 License.
|
After Width: | Height: | Size: 72 KiB |
|
@ -0,0 +1,676 @@
|
|||
--wild_update_blocks--
|
||||
|
||||
local S = minetest.get_translator("mcl_core")
|
||||
|
||||
local register_tree_trunk = function(subname, description_trunk, description_bark, longdesc, tile_inner, tile_bark)
|
||||
minetest.register_node("wild_update:"..subname, {
|
||||
description = description_trunk,
|
||||
_doc_items_longdesc = longdesc,
|
||||
_doc_items_hidden = false,
|
||||
tiles = {tile_inner, tile_inner, tile_bark},
|
||||
paramtype2 = "facedir",
|
||||
on_place = mcl_util.rotate_axis,
|
||||
stack_max = 64,
|
||||
groups = {handy=1,axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
on_rotate = on_rotate,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:"..subname.."_bark 3",
|
||||
recipe = {
|
||||
{ "wild_update:"..subname, "wild_update:"..subname },
|
||||
{ "wild_update:"..subname, "wild_update:"..subname },
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
local register_wooden_planks = function(subname, description, tiles)
|
||||
minetest.register_node("wild_update:"..subname, {
|
||||
description = description,
|
||||
_doc_items_longdesc = doc.sub.items.temp.build,
|
||||
_doc_items_hidden = false,
|
||||
tiles = tiles,
|
||||
stack_max = 64,
|
||||
is_ground_content = false,
|
||||
groups = {handy=1,axey=1, flammable=3,wood=1,building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
end
|
||||
|
||||
local register_leaves = function(subname, description, longdesc, tiles, sapling, drop_apples, sapling_chances, leafdecay_distance)
|
||||
local drop
|
||||
if leafdecay_distance == nil then
|
||||
leafdecay_distance = 4
|
||||
end
|
||||
local apple_chances = {200, 180, 160, 120, 40}
|
||||
local stick_chances = {50, 45, 30, 35, 10}
|
||||
|
||||
local function get_drops(fortune_level)
|
||||
local drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {sapling},
|
||||
rarity = sapling_chances[fortune_level + 1] or sapling_chances[fortune_level]
|
||||
},
|
||||
{
|
||||
items = {"mcl_core:stick 1"},
|
||||
rarity = stick_chances[fortune_level + 1]
|
||||
},
|
||||
{
|
||||
items = {"mcl_core:stick 2"},
|
||||
rarity = stick_chances[fortune_level + 1]
|
||||
},
|
||||
}
|
||||
}
|
||||
if drop_apples then
|
||||
table.insert(drop.items, {
|
||||
items = {"mcl_core:apple"},
|
||||
rarity = apple_chances[fortune_level + 1]
|
||||
})
|
||||
end
|
||||
return drop
|
||||
end
|
||||
minetest.register_node("wild_update:"..subname, {
|
||||
description = description,
|
||||
_doc_items_longdesc = longdesc,
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "allfaces_optional",
|
||||
waving = 2,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
tiles = tiles,
|
||||
paramtype = "light",
|
||||
stack_max = 64,
|
||||
groups = {handy=1,shearsy=1,swordy=1, leafdecay=leafdecay_distance, flammable=2, leaves=1, deco_block=1, dig_by_piston=1, fire_encouragement=30, fire_flammability=60},
|
||||
_mcl_shears_drop = true,
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
_mcl_silk_touch_drop = true,
|
||||
_mcl_fortune_drop = { get_drops(1), get_drops(2), get_drops(3), get_drops(4) },
|
||||
})
|
||||
end
|
||||
|
||||
local function register_sapling(subname, description, longdesc, tt_help, texture, selbox)
|
||||
minetest.register_node("wild_update:"..subname, {
|
||||
description = description,
|
||||
_tt_help = tt_help,
|
||||
_doc_items_longdesc = longdesc,
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike",
|
||||
waving = 1,
|
||||
visual_scale = 1.0,
|
||||
tiles = {texture},
|
||||
inventory_image = texture,
|
||||
wield_image = texture,
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = selbox
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_under = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_under then return false end
|
||||
local nn = node_under.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
------------------------------------------
|
||||
|
||||
---plank,tree,leaves and sampling--
|
||||
|
||||
register_tree_trunk("mangrove_tree", S("Mangrove Wood"), S("Mangrove Bark"), S("The trunk of an Mangrove tree."), "mcl_mangrove_log_top.png", "mcl_mangrove_log.png")
|
||||
register_wooden_planks("mangrove_wood", S("Mangrove Wood Planks"), {"mcl_mangrove_planks.png"})
|
||||
register_sapling("propagule", S("mangrove_propagule"),
|
||||
S("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
S("Needs soil and light to grow"),
|
||||
"mcl_mangrove_propagule_item.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16})
|
||||
register_leaves("mangroveleaves", S("Mangrove Leaves"), S("mangrove leaves are grown from mangrove trees."), {"mcl_mangrove_leaves.png"}, "mcl_core:propagule", true, {20, 16, 12, 10})
|
||||
|
||||
--doors and trapdoors--
|
||||
|
||||
mcl_doors:register_door("wild_update:mangrove_door", {
|
||||
description = ("mangrove door"),
|
||||
_doc_items_longdesc = wood_longdesc,
|
||||
_doc_items_usagehelp = wood_usagehelp,
|
||||
inventory_image = "mcl_mangrove_doors.png",
|
||||
groups = {handy=1,axey=1, material_wood=1, flammable=-1},
|
||||
_mcl_hardness = 3,
|
||||
_mcl_blast_resistance = 3,
|
||||
tiles_bottom = {"mcl_mangrove_door_bottom.png", "mcl_mangrove_planks.png"},
|
||||
tiles_top = {"mcl_mangrove_door_top.png", "mcl_mangrove_planks.png"},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_doors:mangrove_door 3",
|
||||
recipe = {
|
||||
{"wild_update:mangrove_wood", "wild_update:mangrove_wood"},
|
||||
{"wild_update:mangrove_wood", "wild_update:mangrove_wood"},
|
||||
{"wild_update:mangrove_wood", "wild_update:mangrove_wood"},
|
||||
}
|
||||
})
|
||||
|
||||
local woods = {
|
||||
-- id, desc, texture, craftitem
|
||||
{ "trapdoor", S("Mangrove Trapdoor"), "mcl_mangrove_trapdoor.png", "mcl_mangrove_planks.png", "wild_update:mangrove_wood" },}
|
||||
|
||||
for w=1, #woods do
|
||||
mcl_doors:register_trapdoor("wild_update:"..woods[w][1], {
|
||||
description = woods[w][2],
|
||||
_doc_items_longdesc = S("Wooden trapdoors are horizontal barriers which can be opened and closed by hand or a redstone signal. They occupy the upper or lower part of a block, depending on how they have been placed. When open, they can be climbed like a ladder."),
|
||||
_doc_items_usagehelp = S("To open or close the trapdoor, rightclick it or send a redstone signal to it."),
|
||||
tile_front = woods[w][3],
|
||||
tile_side = woods[w][4],
|
||||
wield_image = woods[w][3],
|
||||
groups = {handy=1,axey=1, mesecon_effector_on=1, material_wood=1, flammable=-1},
|
||||
_mcl_hardness = 3,
|
||||
_mcl_blast_resistance = 3,
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_doors:"..woods[w][1].." 2",
|
||||
recipe = {
|
||||
{woods[w][5], woods[w][5], woods[w][5]},
|
||||
{woods[w][5], woods[w][5], woods[w][5]},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "mcl_doors:"..woods[w][1],
|
||||
burntime = 15,
|
||||
})
|
||||
end
|
||||
|
||||
--stripped mangrove wood--
|
||||
minetest.register_node("wild_update:mangrove_stripped_trunk", {
|
||||
description = "The stripped wood of an Mangove tree",
|
||||
_doc_items_longdesc = "The stripped wood of an Mangove tree",
|
||||
_doc_items_hidden = false,
|
||||
tiles ={"mcl_stripped_mangrove_log_top.png","mcl_stripped_mangrove_log_side.png",},
|
||||
paramtype2 = "facedir",
|
||||
on_place = mcl_util.rotate_axis,
|
||||
stack_max = 64,
|
||||
groups = {handy=1, axey=1, tree=1, flammable=2, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = mcl_sounds.node_sound_wood_defaults(),
|
||||
on_rotate = on_rotate,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
|
||||
--fence and fence gates--
|
||||
|
||||
mcl_fences.register_fence_and_fence_gate(
|
||||
"mangrove_wood_fence",
|
||||
S("Mangrove Wood Fence"), S("Mangrove Wood Plank Fence"),
|
||||
"mcl_mangrove_fence.png",
|
||||
{handy=1,axey=1, flammable=2,fence_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
minetest.registered_nodes["mcl_core:wood"]._mcl_hardness,
|
||||
minetest.registered_nodes["mcl_core:wood"]._mcl_blast_resistance,
|
||||
{"group:fence_wood"},
|
||||
mcl_sounds.node_sound_wood_defaults(), "wild_update_mangrove_wood_fence_gate_open", "wild_update_mangrove_wood_fence_gate_close", 1, 1,
|
||||
"mcl_mangrove_fence_gate.png")
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:mangrove_wood_fence_gate",
|
||||
recipe = {
|
||||
{"mcl_core:stick", "wild_update:mangrove_wood", "mcl_core:stick"},
|
||||
{"mcl_core:stick", "wild_update:mangrove_wood", "mcl_core:stick"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:mangrove_wood_fence 3",
|
||||
recipe = {
|
||||
{"wild_update:mangrove_wood", "mcl_core:stick", "wild_update:mangrove_wood"},
|
||||
{"wild_update:mangrove_wood", "mcl_core:stick", "wild_update:mangrove_wood"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:mangrove_wood 4",
|
||||
recipe = {
|
||||
{"wild_update:mangrove_tree"},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "group:fence_wood",
|
||||
burntime = 15,
|
||||
})
|
||||
|
||||
---stairs and slabs---
|
||||
|
||||
local woods = {
|
||||
{ "mangrove_wood", "mcl_mangrove_planks.png", S("Mangrove Wood Stairs"), S("Mangrove Wood Slab"), S("Double Mangrove Wood Slab") },}
|
||||
|
||||
for w=1, #woods do
|
||||
local wood = woods[w]
|
||||
mcl_stairs.register_stair(wood[1], "mcl_core:"..wood[1],
|
||||
{handy=1,axey=1, flammable=3,wood_stairs=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
{wood[2]},
|
||||
wood[3],
|
||||
mcl_sounds.node_sound_wood_defaults(), 3, 2,
|
||||
"woodlike")
|
||||
mcl_stairs.register_slab(wood[1], "mcl_core:"..wood[1],
|
||||
{handy=1,axey=1, flammable=3,wood_slab=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
{wood[2]},
|
||||
wood[4],
|
||||
mcl_sounds.node_sound_wood_defaults(), 3, 2,
|
||||
wood[5])
|
||||
end
|
||||
|
||||
minetest.register_node("wild_update:mangrove_roots", {
|
||||
description = "Mangrove_Roots",
|
||||
_doc_items_longdesc = "Mangrove roots are decorative blocks that form as part of mangrove trees.",
|
||||
_doc_items_hidden = false,
|
||||
waving = 0,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
tiles = {
|
||||
"mcl_mangrove_roots_top.png", "mcl_mangrove_roots_top.png",
|
||||
"mcl_mangrove_roots_side.png", "mcl_mangrove_roots_side.png",
|
||||
"mcl_mangrove_roots_side.png", "mcl_mangrove_roots_side.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
stack_max = 64,
|
||||
liquids_pointable = true,
|
||||
drawtype = "mesh",
|
||||
mesh = "node.obj",
|
||||
groups = {
|
||||
handy = 1, hoey = 1, shearsy = 1, axey = 1, swordy = 1, dig_by_piston = 0,
|
||||
leaves = 1, leafdecay = leafdecay_distance, deco_block = 1,
|
||||
flammable = 10, fire_encouragement = 30, fire_flammability = 60,
|
||||
compostability = 30
|
||||
},
|
||||
drop = "wild_update:mangrove_roots",
|
||||
_mcl_shears_drop = true,
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(), _mcl_blast_resistance = 0.7,
|
||||
_mcl_hardness = 0.7,
|
||||
_mcl_silk_touch_drop = true,
|
||||
_mcl_fortune_drop = { "wild_update:mangrove_roots 1", "wild_update:mangrove_roots 2", "wild_update:mangrove_roots 3", "wild_update:mangrove_roots 4" },
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("wild_update:propagule_test", {
|
||||
description = "propagule_test",
|
||||
_doc_items_longdesc = "",
|
||||
_tt_help = "",
|
||||
drawtype = "plantlike_rooted",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 1,
|
||||
tiles = { "default_dirt.png" },
|
||||
special_tiles = { { name = "mcl_mangrove_propagule_item.png" } },
|
||||
inventory_image = "mcl_mangrove_propagule_item.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 },
|
||||
}
|
||||
},
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1, not_in_creative_inventory=1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
drop = "wild_update:propagule",
|
||||
node_placement_prediction = "",
|
||||
node_dig_prediction = "mcl_core:dirt",
|
||||
after_dig_node = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if minetest.get_item_group(node.name, "dirt") == 0 then
|
||||
minetest.set_node(pos, {name="mcl_core:dirt"})
|
||||
end
|
||||
end,
|
||||
_mcl_hardness = 0,
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
||||
|
||||
|
||||
--propagule-in-flower-pot--------------
|
||||
|
||||
mcl_flowerpots.register_potted_flower("wild_update:propagule", {
|
||||
name = "propagule",
|
||||
desc = S("Mangrove Propagule"),
|
||||
image = "mcl_mangrove_propagule.png",
|
||||
})
|
||||
|
||||
--water can be placed in mangrove roots--
|
||||
minetest.override_item("mcl_buckets:bucket_water",{
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
-- Use pointed node's on_rightclick function first, if present
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if user and not user:get_player_control().sneak then
|
||||
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
||||
return minetest.registered_nodes[node.name].on_rightclick (pointed_thing.under, node, user, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
-- Place on roots
|
||||
if pointed_thing.under and node.name == "wild_update:mangrove_roots" then
|
||||
local protname = user:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.under, protname) then
|
||||
minetest.record_protection_violation(pointed_thing.under, protname)
|
||||
return itemstack
|
||||
end
|
||||
minetest.set_node(pointed_thing.under, { name = "wild_update:water_logged_roots", param2 = node.param2 })
|
||||
minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.9, max_hear_range=16}, true)
|
||||
if minetest.is_creative_enabled(user:get_player_name()) then
|
||||
return itemstack
|
||||
else
|
||||
return "mcl_buckets:bucket_empty"
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
--water can be taken from mangrove water roots--
|
||||
minetest.override_item("mcl_buckets:bucket_empty",{
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
-- Use pointed node's on_rightclick function first, if present
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if user and not user:get_player_control().sneak then
|
||||
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
||||
return minetest.registered_nodes[node.name].on_rightclick (pointed_thing.under, node, user, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
-- Place on water roots
|
||||
if pointed_thing.under and node.name == "wild_update:water_logged_roots" then
|
||||
local protname = user:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.under, protname) then
|
||||
minetest.record_protection_violation(pointed_thing.under, protname)
|
||||
return itemstack
|
||||
end
|
||||
minetest.set_node(pointed_thing.under, { name = "wild_update:mangrove_roots", param2 = node.param2 })
|
||||
minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.9, max_hear_range=16}, true)
|
||||
if minetest.is_creative_enabled(user:get_player_name()) then
|
||||
return itemstack
|
||||
else
|
||||
return "mcl_buckets:bucket_water"
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
-----dirt_to_mud-------
|
||||
|
||||
-- node changer--
|
||||
minetest.override_item("mcl_potions:water", {
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
-- Use pointed node's on_rightclick function first, if present
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if user and not user:get_player_control().sneak then
|
||||
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
||||
return minetest.registered_nodes[node.name].on_rightclick (pointed_thing.under, node, user, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
-- Place water bottle into dirt for mud
|
||||
if pointed_thing.under and node.name == "mcl_core:dirt" then
|
||||
local protname = user:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.under, protname) then
|
||||
minetest.record_protection_violation(pointed_thing.under, protname)
|
||||
return itemstack
|
||||
end
|
||||
minetest.set_node(pointed_thing.under, { name = "wild_update:mud", param2 = node.param2 })
|
||||
minetest.sound_play("mcl_potions_bottle_pour", {pos=pointed_thing.under, gain=0.2, max_hear_range=16}, true)
|
||||
if minetest.is_creative_enabled(user:get_player_name()) then
|
||||
return itemstack
|
||||
else
|
||||
return "mcl_potions:glass_bottle"
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
--------------------------
|
||||
-- node changer--
|
||||
minetest.override_item("wild_update:propagule",{
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
-- Use pointed node's on_rightclick function first, if present
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if user and not user:get_player_control().sneak then
|
||||
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
||||
return minetest.registered_nodes[node.name].on_rightclick (pointed_thing.under, node, user, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
-- Place on dirt
|
||||
if pointed_thing.under and node.name == "mcl_core:dirt" then
|
||||
local protname = user:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.under, protname) then
|
||||
minetest.record_protection_violation(pointed_thing.under, protname)
|
||||
return itemstack
|
||||
end
|
||||
minetest.set_node(pointed_thing.under, { name = "wild_update:propagule_test", param2 = node.param2 })
|
||||
minetest.sound_play(mcl_sounds.node_sound_leaves_defaults{pos=pointed_thing.under, gain=0.5, max_hear_range=16}, true)
|
||||
if not minetest.is_creative_enabled(user:get_player_name()) then
|
||||
itemstack:take_item(1) -- 1 use
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
local water_tex = "default_water_source_animated.png^[verticalframe:16:0"
|
||||
|
||||
minetest.register_node("wild_update:water_logged_roots", {
|
||||
description = ("water_logged_mangrove_roots"),
|
||||
_doc_items_entry_name = S("water_logged_roots"),
|
||||
_doc_items_longdesc =
|
||||
("Mangrove roots are decorative blocks that form as part of mangrove trees.").."\n\n"..
|
||||
("Mangrove roots, despite being a full block, can be waterlogged and do not flow water out").."\n\n"..
|
||||
("These cannot be crafted yet only occure when get in contact of water."),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {
|
||||
"("..water_tex..")^mcl_mangrove_roots_top.png", "("..water_tex..")^mcl_mangrove_roots_top.png",
|
||||
"("..water_tex..")^mcl_mangrove_roots_side.png", "("..water_tex..")^mcl_mangrove_roots_side.png",
|
||||
"("..water_tex..")^mcl_mangrove_roots_side.png", "("..water_tex..")^mcl_mangrove_roots_side.png"
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_water_defaults(),
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
walkable = true,
|
||||
pointable = true,
|
||||
diggable = true,
|
||||
buildable_to = flase,
|
||||
liquids_pointable = true,
|
||||
drop = "wild_update:mangrove_roots",
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
handy = 1, hoey = 1, shearsy = 1, swordy = 1, water=3, liquid=3, puts_out_fire=1, dig_by_piston = 1,
|
||||
leaves = 1, leafdecay = leafdecay_distance, deco_block = 1, not_in_creative_inventory=1, fire_encouragement = 0, fire_flammability = 0,
|
||||
},
|
||||
_mcl_blast_resistance = 100,
|
||||
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
|
||||
_mcl_hardness = -1,
|
||||
after_dig_node = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if minetest.get_item_group(node.name, "water") == 0 then
|
||||
minetest.set_node(pos, {name="mcl_core:water_source"})
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
----------testing--------------
|
||||
|
||||
minetest.register_node("wild_update:hanging_propagule_1", {
|
||||
description = S("Hanging Propagule"),
|
||||
_tt_help = S("Grows on Mangrove leaves"),
|
||||
_doc_items_longdesc = "",
|
||||
_doc_items_usagehelp = "",
|
||||
groups = {
|
||||
plant = 1, not_in_creative_inventory=1, non_mycelium_plant = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "",
|
||||
on_rotate = false,
|
||||
walkable = false,
|
||||
drop = "wild_update:propagule",
|
||||
use_texture_alpha = "clip",
|
||||
drawtype = 'mesh',
|
||||
mesh = 'propagule_hanging.obj',
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, -- Base
|
||||
},
|
||||
},
|
||||
tiles = {"mcl_mangrove_propagule_hanging.png"},
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
})
|
||||
|
||||
--minetest.register_abm({
|
||||
-- nodenames = {"wild_update:mangroveleaves"},
|
||||
-- interval = 1,
|
||||
-- chance = 1,
|
||||
-- action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
-- grow_pos = {pos.x, pos.y - 1, pos.z}
|
||||
-- minetest.set_node(grow_pos, {name = "wild_update:mangroveleaves"})
|
||||
-- end
|
||||
--})
|
||||
|
||||
---test-over------
|
||||
----------------------------------------
|
||||
---mud_stuff--------------------------
|
||||
|
||||
|
||||
minetest.register_node("wild_update:mud", {
|
||||
description = S("Mud"),
|
||||
_tt_help = "Entities standing on mud sink",
|
||||
_doc_items_longdesc = S("Mud is a block from mangrove swamp.It drowns player a bit inside it"),
|
||||
stack_max = 64,
|
||||
tiles = {"mcl_mud.png"},
|
||||
is_ground_content = true,
|
||||
groups = {handy = 1, soil = 1, shovely = 1, dirt = 2, soil_sugarcane = 1, building_block = 1},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.5, -0.5, -0.5, 0.5, 0.5 - 2/16, 0.5 },
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_sand_defaults(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
minetest.register_node("wild_update:mangrove_mud_roots", {
|
||||
description = S("Muddy Mangrove Roots"),
|
||||
_tt_help = S("crafted with Mud and Mangrove roots"),
|
||||
_doc_items_longdesc = S("Muddy Mangrove Roots is a block from mangrove swamp.It drowns player a bit inside it"),
|
||||
stack_max = 64,
|
||||
tiles = {
|
||||
"mcl_muddy_mangrove_roots_top.png", "mcl_muddy_mangrove_roots_top.png",
|
||||
"mcl_muddy_mangrove_roots_side.png", "mcl_muddy_mangrove_roots_side.png",
|
||||
"mcl_muddy_mangrove_roots_side.png", "mcl_muddy_mangrove_roots_side.png"
|
||||
},
|
||||
is_ground_content = true,
|
||||
groups = {handy = 1, shovely = 1, axey = 1, building_block = 1},
|
||||
sounds = mcl_sounds.node_sound_sand_defaults(),
|
||||
_mcl_blast_resistance = 0.7,
|
||||
_mcl_hardness = 0.7,
|
||||
})
|
||||
|
||||
minetest.register_node("wild_update:packed_mud", {
|
||||
description = ("Packed Mud"),
|
||||
_tt_help = "Used for crafting Mud Bricks",
|
||||
_doc_items_longdesc = (""),
|
||||
_doc_items_hidden = false,
|
||||
tiles = {"mcl_packed_mud.png"},
|
||||
is_ground_content = true,
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
|
||||
drop = "wild_update:packed_mud",
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 1,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
||||
|
||||
minetest.register_node("wild_update:mudbrick", {
|
||||
description = ("Mud Bricks"),
|
||||
_tt_help = "crafted with 4x4 packed mud",
|
||||
tiles = {"mcl_mud_bricks.png"},
|
||||
stack_max = 64,
|
||||
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
|
||||
sounds = mcl_sounds.node_sound_stone_defaults(),
|
||||
is_ground_content = false,
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 1.5,
|
||||
})
|
||||
--------craft----------
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:mangrove_mud_roots",
|
||||
recipe = {
|
||||
{"wild_update:mangrove_roots", "wild_update:mud",},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:packed_mud",
|
||||
recipe = {
|
||||
{"wild_update:mud", "mcl_farming:wheat_item",},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "wild_update:mudbrick",
|
||||
recipe = {
|
||||
{"wild_update:packed_mud", "wild_update:packed_mud",},
|
||||
{"wild_update:packed_mud", "wild_update:packed_mud",},
|
||||
}
|
||||
})
|
||||
|
||||
mcl_stairs.register_stair("mudbrick", "wild_update:mudbrick",
|
||||
{pickaxey=3},
|
||||
{"mcl_mud_bricks.png"},
|
||||
S("Mud Brick Stairs"),
|
||||
mcl_sounds.node_sound_stone_defaults(), 6, 1.5,
|
||||
"woodlike")
|
||||
|
||||
mcl_stairs.register_slab("mudbrick", "wild_update:mudbrick",
|
||||
{pickaxey=3},
|
||||
{"mcl_mud_bricks.png"},
|
||||
S("Mud Brick Slab"),
|
||||
mcl_sounds.node_sound_stone_defaults(), 6, 2,
|
||||
S("Double Mud Brick Slab"))
|
|
@ -0,0 +1,9 @@
|
|||
mcl_core
|
||||
mcl_doors
|
||||
mcl_stairs
|
||||
mcl_walls
|
||||
mclx_fences
|
||||
mcl_boats
|
||||
mcl_flowerpots
|
||||
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
local modpath = minetest.get_modpath("wild_update")
|
||||
|
||||
-- Load files
|
||||
|
||||
dofile(modpath .. "/blocks.lua")
|
||||
dofile(modpath .. "/entity.lua")
|
||||
--dofile(modpath .. "/item.lua")--
|
||||
dofile(modpath .. "/test/sculk.lua")
|
||||
--dofile(modpath .. "/test/test.lua")--
|
|
@ -0,0 +1,5 @@
|
|||
name = wild_update
|
||||
description = wild update for mineclone 2 and 5, features all the new thing which minecraft 1.19 has in it.
|
||||
|
||||
title = The Wild Update
|
||||
author thunder1035
|
|
@ -0,0 +1,46 @@
|
|||
# Blender v3.1.2 OBJ File: 'minetest_base_node.blend'
|
||||
# www.blender.org
|
||||
mtllib roots_base_node.mtl
|
||||
o node
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 -1.0000 -0.0000
|
||||
vn 1.0000 -0.0000 0.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 -0.0000 1.0000
|
||||
usemtl Material
|
||||
s 1
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
f 5/5/2 6/6/2 7/7/2 8/8/2
|
||||
f 7/9/3 6/6/3 3/3/3 2/10/3
|
||||
f 5/5/4 8/11/4 1/12/4 4/4/4
|
||||
f 6/13/5 5/14/5 4/15/5 3/16/5
|
||||
f 8/17/6 7/18/6 2/19/6 1/20/6
|
|
@ -0,0 +1,73 @@
|
|||
# Blender v3.1.2 OBJ File: 'propagule.blend'
|
||||
# www.blender.org
|
||||
mtllib propagule.mtl
|
||||
o Plane
|
||||
v 0.500000 0.499931 0.499931
|
||||
v 0.500000 -0.499931 0.499931
|
||||
v 0.500000 0.499931 -0.499931
|
||||
v 0.500000 -0.499931 -0.499931
|
||||
v -0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.347329 1.500000 0.359670
|
||||
v 0.347329 1.500000 -0.359670
|
||||
v 0.347329 0.500000 -0.359670
|
||||
v -0.347329 0.500000 0.359670
|
||||
v -0.359670 1.500000 -0.347329
|
||||
v 0.359670 1.500000 0.347329
|
||||
v 0.359670 0.500000 0.347329
|
||||
v -0.359670 0.500000 -0.347329
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.499987
|
||||
vt 0.000000 0.499987
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.499868
|
||||
vt 0.000000 0.499868
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.499868
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.499868
|
||||
vt 0.000000 0.499868
|
||||
vt 0.000000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 1.000000 0.499868
|
||||
vt 0.000000 0.499868
|
||||
vt 0.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.499985
|
||||
vt 0.000000 0.499985
|
||||
vt 0.000000 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 1.000000 0.499985
|
||||
vt 0.000000 0.499985
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn -0.5774 0.5774 0.5774
|
||||
vn 0.0000 0.7071 0.7071
|
||||
vn 0.0000 0.7071 -0.7071
|
||||
vn -0.5774 0.5774 -0.5774
|
||||
vn -0.7071 0.0000 -0.7071
|
||||
vn -0.7071 -0.0000 0.7071
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -0.0000 -0.0000 1.0000
|
||||
vn -0.7193 0.0000 -0.6947
|
||||
vn 0.6947 0.0000 -0.7193
|
||||
usemtl default_dirt.png.001
|
||||
s off
|
||||
f 1/1/1 2/2/1 4/3/1 3/4/1
|
||||
s 1
|
||||
f 5/5/2 6/6/3 7/7/4 8/8/5
|
||||
f 9/9/6 10/10/7 5/11/2 8/8/5
|
||||
f 11/12/8 9/13/6 8/14/5 7/15/4
|
||||
f 10/16/7 12/17/9 6/18/3 5/19/2
|
||||
usemtl mcl_mangrove_propagule.png.001
|
||||
f 13/20/10 14/21/10 15/22/10 16/23/10
|
||||
f 17/24/11 18/25/11 19/26/11 20/27/11
|
|
@ -0,0 +1,975 @@
|
|||
# Blender v3.1.2 OBJ File: 'propagule_hanging.blend'
|
||||
# www.blender.org
|
||||
mtllib propagule_hanging.mtl
|
||||
o plant
|
||||
v 0.000000 0.470112 0.000000
|
||||
v 0.000000 -0.529888 0.000000
|
||||
v 0.000000 -0.529888 0.000000
|
||||
v 0.000000 0.470112 0.000000
|
||||
v 0.000000 -0.029888 0.000000
|
||||
v 0.000000 -0.029888 0.000000
|
||||
v 0.000000 -0.279888 0.000000
|
||||
v 0.000000 0.220112 0.000000
|
||||
v 0.000000 -0.279888 0.000000
|
||||
v 0.000000 0.220112 0.000000
|
||||
v -0.086832 0.470112 0.089918
|
||||
v 0.086832 -0.529888 -0.089917
|
||||
v 0.089917 -0.529888 0.086832
|
||||
v -0.089918 0.470112 -0.086832
|
||||
v 0.000000 -0.404888 0.000000
|
||||
v 0.000000 0.095112 0.000000
|
||||
v 0.089917 -0.029888 0.086832
|
||||
v 0.000000 -0.404888 0.000000
|
||||
v 0.000000 0.095112 0.000000
|
||||
v 0.086832 -0.029888 -0.089917
|
||||
v 0.086832 0.470112 -0.089917
|
||||
v -0.086832 -0.529888 0.089917
|
||||
v -0.089917 -0.529888 -0.086832
|
||||
v 0.089917 0.470112 0.086832
|
||||
v 0.000000 -0.154888 0.000000
|
||||
v 0.000000 0.345112 0.000000
|
||||
v -0.089917 -0.029888 -0.086832
|
||||
v 0.000000 -0.154888 0.000000
|
||||
v 0.000000 0.345112 0.000000
|
||||
v -0.086832 -0.029888 0.089918
|
||||
v 0.086832 0.220112 -0.089917
|
||||
v -0.086832 0.220112 0.089918
|
||||
v -0.086832 -0.279888 0.089917
|
||||
v 0.089917 0.220112 0.086832
|
||||
v -0.089918 0.220112 -0.086832
|
||||
v -0.089917 -0.279888 -0.086832
|
||||
v 0.089917 -0.279888 0.086832
|
||||
v 0.086832 -0.279888 -0.089917
|
||||
v 0.086832 -0.154888 -0.089917
|
||||
v 0.086832 -0.404888 -0.089917
|
||||
v 0.089917 -0.154888 0.086832
|
||||
v 0.089917 -0.404888 0.086832
|
||||
v -0.089917 -0.154888 -0.086832
|
||||
v -0.089918 0.345112 -0.086832
|
||||
v 0.089917 0.345112 0.086832
|
||||
v 0.089917 0.095112 0.086832
|
||||
v -0.086832 -0.154888 0.089918
|
||||
v -0.086832 0.345112 0.089918
|
||||
v 0.086832 0.345112 -0.089917
|
||||
v 0.086832 0.095112 -0.089917
|
||||
v -0.086832 0.095112 0.089918
|
||||
v -0.086832 -0.404888 0.089917
|
||||
v -0.089917 0.095112 -0.086832
|
||||
v -0.089917 -0.404888 -0.086832
|
||||
v -0.043416 0.470112 0.044959
|
||||
v 0.043416 -0.529888 -0.044959
|
||||
v 0.044959 -0.529888 0.043416
|
||||
v -0.044959 0.470112 -0.043416
|
||||
v 0.000000 -0.467388 0.000000
|
||||
v 0.000000 0.032612 0.000000
|
||||
v 0.044959 -0.029888 0.043416
|
||||
v 0.000000 -0.467388 0.000000
|
||||
v 0.000000 0.032612 0.000000
|
||||
v 0.043416 -0.029888 -0.044959
|
||||
v 0.000000 -0.217388 0.000000
|
||||
v 0.000000 0.282612 0.000000
|
||||
v 0.000000 -0.217388 0.000000
|
||||
v 0.000000 0.282612 0.000000
|
||||
v 0.043416 0.220112 -0.044959
|
||||
v 0.044959 0.220112 0.043416
|
||||
v 0.044959 -0.279888 0.043416
|
||||
v 0.043416 -0.279888 -0.044959
|
||||
v 0.000000 -0.342388 0.000000
|
||||
v 0.000000 0.157612 0.000000
|
||||
v 0.000000 -0.342388 0.000000
|
||||
v 0.000000 0.157612 0.000000
|
||||
v 0.043416 0.470112 -0.044959
|
||||
v -0.043416 -0.529888 0.044959
|
||||
v -0.044959 -0.529888 -0.043416
|
||||
v 0.044959 0.470112 0.043416
|
||||
v 0.000000 -0.092388 0.000000
|
||||
v 0.000000 0.407612 0.000000
|
||||
v -0.044959 -0.029888 -0.043416
|
||||
v 0.000000 -0.092388 0.000000
|
||||
v 0.000000 0.407612 0.000000
|
||||
v -0.043416 -0.029888 0.044959
|
||||
v -0.043416 0.220112 0.044959
|
||||
v -0.043416 -0.279888 0.044959
|
||||
v -0.044959 0.220112 -0.043416
|
||||
v -0.044959 -0.279888 -0.043416
|
||||
v 0.086832 -0.217388 -0.089917
|
||||
v 0.086832 -0.092388 -0.089917
|
||||
v 0.043416 -0.154888 -0.044959
|
||||
v 0.086832 -0.467388 -0.089917
|
||||
v 0.086832 -0.342388 -0.089917
|
||||
v 0.043416 -0.404888 -0.044959
|
||||
v 0.089917 -0.217388 0.086832
|
||||
v 0.089917 -0.092388 0.086832
|
||||
v 0.044959 -0.154888 0.043416
|
||||
v 0.089917 -0.467388 0.086832
|
||||
v 0.089917 -0.342388 0.086832
|
||||
v 0.044959 -0.404888 0.043416
|
||||
v -0.089917 -0.217388 -0.086832
|
||||
v -0.089917 -0.092388 -0.086832
|
||||
v -0.044959 -0.154888 -0.043416
|
||||
v -0.089918 0.282612 -0.086832
|
||||
v -0.089918 0.407612 -0.086832
|
||||
v -0.044959 0.345112 -0.043416
|
||||
v 0.089917 0.282612 0.086832
|
||||
v 0.089917 0.407612 0.086832
|
||||
v 0.044959 0.345112 0.043416
|
||||
v 0.089917 0.032612 0.086832
|
||||
v 0.089917 0.157612 0.086832
|
||||
v 0.044959 0.095112 0.043416
|
||||
v -0.086832 -0.217388 0.089917
|
||||
v -0.086832 -0.092388 0.089918
|
||||
v -0.043416 -0.154888 0.044959
|
||||
v -0.086832 0.282612 0.089918
|
||||
v -0.086832 0.407612 0.089918
|
||||
v -0.043416 0.345112 0.044959
|
||||
v 0.086832 0.282612 -0.089917
|
||||
v 0.086832 0.407612 -0.089917
|
||||
v 0.043416 0.345112 -0.044959
|
||||
v 0.086832 0.032612 -0.089917
|
||||
v 0.086832 0.157612 -0.089917
|
||||
v 0.043416 0.095112 -0.044959
|
||||
v -0.086832 0.032612 0.089918
|
||||
v -0.086832 0.157612 0.089918
|
||||
v -0.043416 0.095112 0.044959
|
||||
v -0.086832 -0.467388 0.089917
|
||||
v -0.086832 -0.342388 0.089917
|
||||
v -0.043416 -0.404888 0.044959
|
||||
v -0.089917 0.032612 -0.086832
|
||||
v -0.089917 0.157612 -0.086832
|
||||
v -0.044959 0.095112 -0.043416
|
||||
v -0.089917 -0.467388 -0.086832
|
||||
v -0.089917 -0.342388 -0.086832
|
||||
v -0.044959 -0.404888 -0.043416
|
||||
v -0.044959 -0.342388 -0.043416
|
||||
v -0.044959 0.157612 -0.043416
|
||||
v -0.043416 -0.342388 0.044959
|
||||
v -0.043416 0.157612 0.044959
|
||||
v 0.043416 0.157612 -0.044959
|
||||
v 0.043416 0.032612 -0.044959
|
||||
v 0.043416 0.407612 -0.044959
|
||||
v 0.043416 0.282612 -0.044959
|
||||
v -0.043416 0.407612 0.044959
|
||||
v -0.043416 -0.092388 0.044959
|
||||
v 0.044959 0.157612 0.043416
|
||||
v 0.044959 0.032612 0.043416
|
||||
v 0.044959 0.407612 0.043416
|
||||
v 0.044959 0.282612 0.043416
|
||||
v -0.044959 0.407612 -0.043416
|
||||
v -0.044959 -0.092388 -0.043416
|
||||
v 0.044959 -0.342388 0.043416
|
||||
v 0.044959 -0.467388 0.043416
|
||||
v 0.044959 -0.092388 0.043416
|
||||
v 0.044959 -0.217388 0.043416
|
||||
v 0.043416 -0.342388 -0.044959
|
||||
v 0.043416 -0.467388 -0.044959
|
||||
v 0.043416 -0.092388 -0.044959
|
||||
v 0.043416 -0.217388 -0.044959
|
||||
v -0.044959 -0.217388 -0.043416
|
||||
v -0.044959 0.282612 -0.043416
|
||||
v -0.043416 -0.217388 0.044959
|
||||
v -0.043416 0.282612 0.044959
|
||||
v -0.043416 0.032612 0.044959
|
||||
v -0.043416 -0.467388 0.044959
|
||||
v -0.044959 0.032612 -0.043416
|
||||
v -0.044959 -0.467388 -0.043416
|
||||
vt 0.218362 0.406348
|
||||
vt 0.250401 0.406348
|
||||
vt 0.250401 0.376797
|
||||
vt 0.218362 0.376797
|
||||
vt 0.218362 0.657596
|
||||
vt 0.250401 0.657596
|
||||
vt 0.250401 0.626276
|
||||
vt 0.218362 0.626276
|
||||
vt 0.218362 0.406348
|
||||
vt 0.250401 0.406348
|
||||
vt 0.250401 0.376797
|
||||
vt 0.218362 0.376797
|
||||
vt 0.218362 0.657596
|
||||
vt 0.250401 0.657596
|
||||
vt 0.250401 0.626276
|
||||
vt 0.218362 0.626276
|
||||
vt 0.218362 0.784719
|
||||
vt 0.250401 0.784719
|
||||
vt 0.250401 0.751554
|
||||
vt 0.218362 0.751554
|
||||
vt 0.218362 0.532933
|
||||
vt 0.250401 0.532933
|
||||
vt 0.250401 0.502229
|
||||
vt 0.218362 0.502229
|
||||
vt 0.218362 0.784719
|
||||
vt 0.250401 0.784719
|
||||
vt 0.250401 0.751554
|
||||
vt 0.218362 0.751554
|
||||
vt 0.218362 0.532933
|
||||
vt 0.250401 0.532933
|
||||
vt 0.250401 0.502229
|
||||
vt 0.218362 0.502229
|
||||
vt 0.282961 0.532934
|
||||
vt 0.315521 0.532934
|
||||
vt 0.315521 0.502229
|
||||
vt 0.282961 0.502229
|
||||
vt 0.282961 0.594957
|
||||
vt 0.315521 0.594957
|
||||
vt 0.315521 0.563638
|
||||
vt 0.282961 0.563638
|
||||
vt 0.282961 0.406348
|
||||
vt 0.315521 0.406348
|
||||
vt 0.315521 0.376797
|
||||
vt 0.282961 0.376797
|
||||
vt 0.282961 0.469065
|
||||
vt 0.315521 0.469065
|
||||
vt 0.315521 0.435900
|
||||
vt 0.282961 0.435900
|
||||
vt 0.282961 0.532934
|
||||
vt 0.315521 0.532934
|
||||
vt 0.315521 0.502229
|
||||
vt 0.282961 0.502229
|
||||
vt 0.282961 0.594957
|
||||
vt 0.315521 0.594957
|
||||
vt 0.315521 0.563638
|
||||
vt 0.282961 0.563638
|
||||
vt 0.282961 0.406348
|
||||
vt 0.315521 0.406348
|
||||
vt 0.315521 0.376797
|
||||
vt 0.282961 0.376797
|
||||
vt 0.282961 0.469065
|
||||
vt 0.315521 0.469065
|
||||
vt 0.315521 0.435900
|
||||
vt 0.282961 0.435900
|
||||
vt 0.218362 0.594957
|
||||
vt 0.250401 0.594957
|
||||
vt 0.250401 0.563638
|
||||
vt 0.218362 0.563638
|
||||
vt 0.466901 0.935330
|
||||
vt 0.498940 0.935330
|
||||
vt 0.498940 0.875712
|
||||
vt 0.466901 0.875712
|
||||
vt 0.282961 0.784719
|
||||
vt 0.315521 0.784719
|
||||
vt 0.315521 0.751554
|
||||
vt 0.282961 0.751554
|
||||
vt 0.531500 0.935330
|
||||
vt 0.564060 0.935330
|
||||
vt 0.564060 0.875712
|
||||
vt 0.531500 0.875712
|
||||
vt 0.282961 0.657596
|
||||
vt 0.315521 0.657596
|
||||
vt 0.315521 0.626276
|
||||
vt 0.282961 0.626276
|
||||
vt 0.282961 0.720234
|
||||
vt 0.315521 0.720234
|
||||
vt 0.315521 0.688915
|
||||
vt 0.282961 0.688915
|
||||
vt 0.218362 0.594957
|
||||
vt 0.250401 0.594957
|
||||
vt 0.250401 0.563638
|
||||
vt 0.218362 0.563638
|
||||
vt 0.466901 0.935330
|
||||
vt 0.498940 0.935330
|
||||
vt 0.498940 0.875712
|
||||
vt 0.466901 0.875712
|
||||
vt 0.282961 0.784719
|
||||
vt 0.315521 0.784719
|
||||
vt 0.315521 0.751554
|
||||
vt 0.282961 0.751554
|
||||
vt 0.531500 0.935330
|
||||
vt 0.564060 0.935330
|
||||
vt 0.564060 0.875712
|
||||
vt 0.531500 0.875712
|
||||
vt 0.282961 0.657596
|
||||
vt 0.315521 0.657596
|
||||
vt 0.315521 0.626276
|
||||
vt 0.282961 0.626276
|
||||
vt 0.282961 0.720234
|
||||
vt 0.315521 0.720234
|
||||
vt 0.315521 0.688915
|
||||
vt 0.282961 0.688915
|
||||
vt 0.218362 0.720234
|
||||
vt 0.250401 0.720234
|
||||
vt 0.250401 0.688915
|
||||
vt 0.218362 0.688915
|
||||
vt 0.218362 0.469064
|
||||
vt 0.250401 0.469064
|
||||
vt 0.250401 0.435900
|
||||
vt 0.218362 0.435900
|
||||
vt 0.218362 0.720234
|
||||
vt 0.250401 0.720234
|
||||
vt 0.250401 0.688915
|
||||
vt 0.218362 0.688915
|
||||
vt 0.218362 0.469064
|
||||
vt 0.250401 0.469064
|
||||
vt 0.250401 0.435900
|
||||
vt 0.218362 0.435900
|
||||
vt 0.186322 0.469064
|
||||
vt 0.186322 0.435900
|
||||
vt 0.186322 0.502229
|
||||
vt 0.186322 0.720234
|
||||
vt 0.186322 0.688915
|
||||
vt 0.186322 0.751554
|
||||
vt 0.186322 0.469064
|
||||
vt 0.186322 0.435900
|
||||
vt 0.186322 0.502229
|
||||
vt 0.186322 0.720234
|
||||
vt 0.186322 0.688915
|
||||
vt 0.186322 0.751554
|
||||
vt 0.498940 0.998640
|
||||
vt 0.531500 0.998640
|
||||
vt 0.564060 0.998640
|
||||
vt 0.250401 0.817883
|
||||
vt 0.282961 0.817883
|
||||
vt 0.315521 0.817883
|
||||
vt 0.434861 0.935330
|
||||
vt 0.434861 0.875712
|
||||
vt 0.434861 0.998640
|
||||
vt 0.466901 0.998640
|
||||
vt 0.186322 0.594957
|
||||
vt 0.186322 0.563638
|
||||
vt 0.186322 0.626276
|
||||
vt 0.498940 0.998640
|
||||
vt 0.531500 0.998640
|
||||
vt 0.564060 0.998640
|
||||
vt 0.250401 0.817883
|
||||
vt 0.282961 0.817883
|
||||
vt 0.315521 0.817883
|
||||
vt 0.434861 0.935330
|
||||
vt 0.434861 0.875712
|
||||
vt 0.434861 0.998640
|
||||
vt 0.466901 0.998640
|
||||
vt 0.186322 0.594957
|
||||
vt 0.186322 0.563638
|
||||
vt 0.186322 0.626276
|
||||
vt 0.186322 0.532933
|
||||
vt 0.186322 0.784719
|
||||
vt 0.186322 0.817883
|
||||
vt 0.218362 0.817883
|
||||
vt 0.186322 0.532933
|
||||
vt 0.186322 0.784719
|
||||
vt 0.186322 0.817883
|
||||
vt 0.218362 0.817883
|
||||
vt 0.186322 0.657596
|
||||
vt 0.186322 0.406348
|
||||
vt 0.186322 0.376797
|
||||
vt 0.186322 0.657596
|
||||
vt 0.186322 0.406348
|
||||
vt 0.186322 0.376797
|
||||
vn 0.6947 0.0000 -0.7193
|
||||
vn -0.7193 0.0000 -0.6947
|
||||
usemtl mcl_flowers_tallgrass.png
|
||||
s 1
|
||||
f 170/1/1 59/2/1 3/3/1 79/4/1
|
||||
f 169/5/1 60/6/1 5/7/1 83/8/1
|
||||
f 168/9/2 62/10/2 2/11/2 78/12/2
|
||||
f 167/13/2 63/14/2 6/15/2 86/16/2
|
||||
f 166/17/2 68/18/2 10/19/2 87/20/2
|
||||
f 165/21/2 67/22/2 9/23/2 88/24/2
|
||||
f 164/25/1 66/26/1 8/27/1 89/28/1
|
||||
f 163/29/1 65/30/1 7/31/1 90/32/1
|
||||
f 162/33/2 91/34/2 38/35/2 72/36/2
|
||||
f 161/37/2 92/38/2 39/39/2 93/40/2
|
||||
f 160/41/2 94/42/2 12/43/2 56/44/2
|
||||
f 159/45/2 95/46/2 40/47/2 96/48/2
|
||||
f 158/49/1 97/50/1 37/51/1 71/52/1
|
||||
f 157/53/1 98/54/1 41/55/1 99/56/1
|
||||
f 156/57/1 100/58/1 13/59/1 57/60/1
|
||||
f 155/61/1 101/62/1 42/63/1 102/64/1
|
||||
f 154/65/1 81/66/1 25/67/1 105/68/1
|
||||
f 153/69/1 82/70/1 26/71/1 108/72/1
|
||||
f 152/73/1 109/74/1 34/75/1 70/76/1
|
||||
f 151/77/1 110/78/1 45/79/1 111/80/1
|
||||
f 150/81/1 112/82/1 17/83/1 61/84/1
|
||||
f 149/85/1 113/86/1 46/87/1 114/88/1
|
||||
f 148/89/2 84/90/2 28/91/2 117/92/2
|
||||
f 147/93/2 85/94/2 29/95/2 120/96/2
|
||||
f 146/97/2 121/98/2 31/99/2 69/100/2
|
||||
f 145/101/2 122/102/2 49/103/2 123/104/2
|
||||
f 144/105/2 124/106/2 20/107/2 64/108/2
|
||||
f 143/109/2 125/110/2 50/111/2 126/112/2
|
||||
f 142/113/2 76/114/2 19/115/2 129/116/2
|
||||
f 141/117/2 75/118/2 18/119/2 132/120/2
|
||||
f 140/121/1 74/122/1 16/123/1 135/124/1
|
||||
f 139/125/1 73/126/1 15/127/1 138/128/1
|
||||
f 137/129/1 139/125/1 138/128/1 54/130/1
|
||||
f 36/131/1 90/32/1 139/125/1 137/129/1
|
||||
f 90/32/1 7/31/1 73/126/1 139/125/1
|
||||
f 134/132/1 140/121/1 135/124/1 53/133/1
|
||||
f 35/134/1 89/28/1 140/121/1 134/132/1
|
||||
f 89/28/1 8/27/1 74/122/1 140/121/1
|
||||
f 131/135/2 141/117/2 132/120/2 52/136/2
|
||||
f 33/137/2 88/24/2 141/117/2 131/135/2
|
||||
f 88/24/2 9/23/2 75/118/2 141/117/2
|
||||
f 128/138/2 142/113/2 129/116/2 51/139/2
|
||||
f 32/140/2 87/20/2 142/113/2 128/138/2
|
||||
f 87/20/2 10/19/2 76/114/2 142/113/2
|
||||
f 76/114/2 143/109/2 126/112/2 19/115/2
|
||||
f 10/19/2 69/100/2 143/109/2 76/114/2
|
||||
f 69/100/2 31/99/2 125/110/2 143/109/2
|
||||
f 63/14/2 144/105/2 64/108/2 6/15/2
|
||||
f 19/115/2 126/112/2 144/105/2 63/14/2
|
||||
f 126/112/2 50/111/2 124/106/2 144/105/2
|
||||
f 85/94/2 145/101/2 123/104/2 29/95/2
|
||||
f 1/141/2 77/142/2 145/101/2 85/94/2
|
||||
f 77/142/2 21/143/2 122/102/2 145/101/2
|
||||
f 68/18/2 146/97/2 69/100/2 10/19/2
|
||||
f 29/144/2 123/145/2 146/97/2 68/18/2
|
||||
f 123/145/2 49/146/2 121/98/2 146/97/2
|
||||
f 119/147/2 147/93/2 120/96/2 48/148/2
|
||||
f 11/149/2 55/150/2 147/93/2 119/147/2
|
||||
f 55/150/2 1/141/2 85/94/2 147/93/2
|
||||
f 116/151/2 148/89/2 117/92/2 47/152/2
|
||||
f 30/153/2 86/16/2 148/89/2 116/151/2
|
||||
f 86/16/2 6/15/2 84/90/2 148/89/2
|
||||
f 74/122/1 149/85/1 114/88/1 16/123/1
|
||||
f 8/27/1 70/76/1 149/85/1 74/122/1
|
||||
f 70/76/1 34/75/1 113/86/1 149/85/1
|
||||
f 60/6/1 150/81/1 61/84/1 5/7/1
|
||||
f 16/123/1 114/88/1 150/81/1 60/6/1
|
||||
f 114/88/1 46/87/1 112/82/1 150/81/1
|
||||
f 82/70/1 151/77/1 111/80/1 26/71/1
|
||||
f 4/154/1 80/155/1 151/77/1 82/70/1
|
||||
f 80/155/1 24/156/1 110/78/1 151/77/1
|
||||
f 66/26/1 152/73/1 70/76/1 8/27/1
|
||||
f 26/157/1 111/158/1 152/73/1 66/26/1
|
||||
f 111/158/1 45/159/1 109/74/1 152/73/1
|
||||
f 107/160/1 153/69/1 108/72/1 44/161/1
|
||||
f 14/162/1 58/163/1 153/69/1 107/160/1
|
||||
f 58/163/1 4/154/1 82/70/1 153/69/1
|
||||
f 104/164/1 154/65/1 105/68/1 43/165/1
|
||||
f 27/166/1 83/8/1 154/65/1 104/164/1
|
||||
f 83/8/1 5/7/1 81/66/1 154/65/1
|
||||
f 73/126/1 155/61/1 102/64/1 15/127/1
|
||||
f 7/31/1 71/52/1 155/61/1 73/126/1
|
||||
f 71/52/1 37/51/1 101/62/1 155/61/1
|
||||
f 59/2/1 156/57/1 57/60/1 3/3/1
|
||||
f 15/127/1 102/64/1 156/57/1 59/2/1
|
||||
f 102/64/1 42/63/1 100/58/1 156/57/1
|
||||
f 81/66/1 157/53/1 99/56/1 25/67/1
|
||||
f 5/7/1 61/84/1 157/53/1 81/66/1
|
||||
f 61/84/1 17/83/1 98/54/1 157/53/1
|
||||
f 65/30/1 158/49/1 71/52/1 7/31/1
|
||||
f 25/67/1 99/56/1 158/49/1 65/30/1
|
||||
f 99/56/1 41/55/1 97/50/1 158/49/1
|
||||
f 75/118/2 159/45/2 96/48/2 18/119/2
|
||||
f 9/23/2 72/36/2 159/45/2 75/118/2
|
||||
f 72/36/2 38/35/2 95/46/2 159/45/2
|
||||
f 62/10/2 160/41/2 56/44/2 2/11/2
|
||||
f 18/119/2 96/48/2 160/41/2 62/10/2
|
||||
f 96/48/2 40/47/2 94/42/2 160/41/2
|
||||
f 84/90/2 161/37/2 93/40/2 28/91/2
|
||||
f 6/15/2 64/108/2 161/37/2 84/90/2
|
||||
f 64/108/2 20/107/2 92/38/2 161/37/2
|
||||
f 67/22/2 162/33/2 72/36/2 9/23/2
|
||||
f 28/91/2 93/40/2 162/33/2 67/22/2
|
||||
f 93/40/2 39/39/2 91/34/2 162/33/2
|
||||
f 103/167/1 163/29/1 90/32/1 36/131/1
|
||||
f 43/165/1 105/68/1 163/29/1 103/167/1
|
||||
f 105/68/1 25/67/1 65/30/1 163/29/1
|
||||
f 106/168/1 164/25/1 89/28/1 35/134/1
|
||||
f 44/169/1 108/170/1 164/25/1 106/168/1
|
||||
f 108/170/1 26/157/1 66/26/1 164/25/1
|
||||
f 115/171/2 165/21/2 88/24/2 33/137/2
|
||||
f 47/152/2 117/92/2 165/21/2 115/171/2
|
||||
f 117/92/2 28/91/2 67/22/2 165/21/2
|
||||
f 118/172/2 166/17/2 87/20/2 32/140/2
|
||||
f 48/173/2 120/174/2 166/17/2 118/172/2
|
||||
f 120/174/2 29/144/2 68/18/2 166/17/2
|
||||
f 127/175/2 167/13/2 86/16/2 30/153/2
|
||||
f 51/139/2 129/116/2 167/13/2 127/175/2
|
||||
f 129/116/2 19/115/2 63/14/2 167/13/2
|
||||
f 130/176/2 168/9/2 78/12/2 22/177/2
|
||||
f 52/136/2 132/120/2 168/9/2 130/176/2
|
||||
f 132/120/2 18/119/2 62/10/2 168/9/2
|
||||
f 133/178/1 169/5/1 83/8/1 27/166/1
|
||||
f 53/133/1 135/124/1 169/5/1 133/178/1
|
||||
f 135/124/1 16/123/1 60/6/1 169/5/1
|
||||
f 136/179/1 170/1/1 79/4/1 23/180/1
|
||||
f 54/130/1 138/128/1 170/1/1 136/179/1
|
||||
f 138/128/1 15/127/1 59/2/1 170/1/1
|
||||
o plant_test
|
||||
v -0.000842 0.420173 0.000152
|
||||
v -0.000842 0.420173 0.000152
|
||||
v 0.190595 0.340629 0.003494
|
||||
v 0.002500 0.340629 -0.191284
|
||||
v -0.192278 0.340629 -0.003189
|
||||
v -0.004183 0.340629 0.191589
|
||||
v 0.094876 0.380401 0.001823
|
||||
v 0.193936 0.340629 -0.187943
|
||||
v 0.187253 0.340629 0.194930
|
||||
v 0.000829 0.380401 -0.095566
|
||||
v -0.188937 0.340629 -0.194626
|
||||
v 0.193936 0.340629 -0.187943
|
||||
v -0.096560 0.380401 -0.001519
|
||||
v -0.195620 0.340629 0.188247
|
||||
v -0.188937 0.340629 -0.194626
|
||||
v -0.002513 0.380401 0.095870
|
||||
v 0.187253 0.340629 0.194930
|
||||
v -0.195620 0.340629 0.188247
|
||||
v 0.188924 0.380401 0.099212
|
||||
v -0.099901 0.380401 0.189918
|
||||
v -0.190607 0.380401 -0.098907
|
||||
v 0.098218 0.380401 -0.189613
|
||||
v 0.091535 0.380401 0.193259
|
||||
v 0.192265 0.380401 -0.092225
|
||||
v -0.093219 0.380401 -0.192955
|
||||
v -0.193949 0.380401 0.092529
|
||||
vt 0.373047 0.821932
|
||||
vt 0.500000 0.821932
|
||||
vt 0.500000 0.691073
|
||||
vt 0.373047 0.691073
|
||||
vt 0.312500 0.821932
|
||||
vt 0.500000 0.821932
|
||||
vt 0.500000 0.691073
|
||||
vt 0.312500 0.691073
|
||||
vt 0.312500 0.821932
|
||||
vt 0.500000 0.821932
|
||||
vt 0.500000 0.691073
|
||||
vt 0.312500 0.691073
|
||||
vt 0.312500 0.821932
|
||||
vt 0.500000 0.821932
|
||||
vt 0.500000 0.691073
|
||||
vt 0.312500 0.691073
|
||||
vt 0.701172 0.821932
|
||||
vt 0.701172 0.691073
|
||||
vt 0.623047 0.821932
|
||||
vt 0.623047 0.691073
|
||||
vt 0.623047 0.821932
|
||||
vt 0.623047 0.691073
|
||||
vt 0.623047 0.821932
|
||||
vt 0.623047 0.691073
|
||||
vn 0.0067 -0.9235 -0.3836
|
||||
vn 0.3836 -0.9235 0.0067
|
||||
vn -0.0067 -0.9235 0.3836
|
||||
vn -0.3836 -0.9235 -0.0067
|
||||
usemtl mcl_ocean_bubble_coral_fan.png
|
||||
s 1
|
||||
f 187/181/3 176/182/3 186/183/3 189/184/3
|
||||
f 184/185/4 175/186/4 183/187/4 190/188/4
|
||||
f 181/189/5 174/190/5 180/191/5 191/192/5
|
||||
f 178/193/6 173/194/6 177/195/6 192/196/6
|
||||
f 173/194/6 179/197/6 193/198/6 177/195/6
|
||||
f 174/190/5 182/199/5 194/200/5 180/191/5
|
||||
f 175/186/4 185/201/4 195/202/4 183/187/4
|
||||
f 176/182/3 188/203/3 196/204/3 186/183/3
|
||||
l 177 171
|
||||
l 180 172
|
||||
l 183 171
|
||||
l 186 172
|
||||
o Cube
|
||||
v -0.093808 0.196026 0.093233
|
||||
v -0.093808 0.390929 0.093233
|
||||
v -0.093808 0.196026 -0.093233
|
||||
v -0.093808 0.390929 -0.093233
|
||||
v 0.093808 0.196026 0.093233
|
||||
v 0.093808 0.390929 0.093233
|
||||
v 0.093808 0.196026 -0.093233
|
||||
v 0.093808 0.390929 -0.093233
|
||||
v -0.093808 0.196026 0.000000
|
||||
v -0.093808 0.290470 0.093233
|
||||
v -0.093808 0.390929 0.000000
|
||||
v -0.093808 0.290470 -0.093233
|
||||
v -0.000000 0.196026 -0.093233
|
||||
v -0.000000 0.390929 -0.093233
|
||||
v 0.093808 0.290470 -0.093233
|
||||
v 0.093808 0.196026 0.000000
|
||||
v 0.093808 0.390929 0.000000
|
||||
v 0.093808 0.290470 0.093233
|
||||
v -0.000000 0.196026 0.093233
|
||||
v -0.000000 0.390929 0.093233
|
||||
v -0.000000 0.390929 0.000000
|
||||
v -0.000000 0.196026 0.000000
|
||||
v -0.000000 0.290470 0.093233
|
||||
v 0.093808 0.290470 0.000000
|
||||
v -0.000000 0.290470 -0.093233
|
||||
v -0.093808 0.290470 0.000000
|
||||
v -0.093808 0.196026 0.092775
|
||||
v -0.093808 0.290971 0.093233
|
||||
v -0.093808 0.390929 -0.092775
|
||||
v -0.093808 0.197014 -0.093233
|
||||
v -0.092974 0.196026 -0.093233
|
||||
v 0.092974 0.390929 -0.093233
|
||||
v 0.093808 0.197014 -0.093233
|
||||
v 0.093808 0.196026 -0.092775
|
||||
v 0.093808 0.390929 0.092775
|
||||
v 0.093808 0.197014 0.093233
|
||||
v 0.092974 0.196026 0.093233
|
||||
v -0.092974 0.390929 0.093233
|
||||
v -0.093808 0.196026 -0.092775
|
||||
v -0.093808 0.197014 0.093233
|
||||
v -0.093808 0.390929 0.092775
|
||||
v -0.093808 0.290971 -0.093233
|
||||
v 0.092974 0.196026 -0.093233
|
||||
v -0.092974 0.390929 -0.093233
|
||||
v 0.093808 0.290971 -0.093233
|
||||
v 0.093808 0.196026 0.092775
|
||||
v 0.093808 0.390929 -0.092775
|
||||
v 0.093808 0.290971 0.093233
|
||||
v -0.092974 0.196026 0.093233
|
||||
v 0.092974 0.390929 0.093233
|
||||
v -0.000000 0.390929 0.092775
|
||||
v -0.000000 0.390929 -0.092775
|
||||
v 0.092974 0.390929 0.000000
|
||||
v -0.092974 0.390929 0.000000
|
||||
v -0.000000 0.196026 0.092775
|
||||
v -0.000000 0.196026 -0.092775
|
||||
v -0.092974 0.196026 0.000000
|
||||
v 0.092974 0.196026 0.000000
|
||||
v -0.092974 0.290470 0.093233
|
||||
v 0.092974 0.290470 0.093233
|
||||
v -0.000000 0.197014 0.093233
|
||||
v -0.000000 0.290971 0.093233
|
||||
v 0.093808 0.290470 0.092775
|
||||
v 0.093808 0.290470 -0.092775
|
||||
v 0.093808 0.197014 0.000000
|
||||
v 0.093808 0.290971 0.000000
|
||||
v 0.092974 0.290470 -0.093233
|
||||
v -0.092974 0.290470 -0.093233
|
||||
v -0.000000 0.197014 -0.093233
|
||||
v -0.000000 0.290971 -0.093233
|
||||
v -0.093808 0.290470 -0.092775
|
||||
v -0.093808 0.290470 0.092775
|
||||
v -0.093808 0.197014 0.000000
|
||||
v -0.093808 0.290971 0.000000
|
||||
v -0.093808 0.290971 0.092775
|
||||
v -0.093808 0.197014 0.092775
|
||||
v -0.093808 0.197014 -0.092775
|
||||
v -0.092974 0.290971 -0.093233
|
||||
v -0.092974 0.197014 -0.093233
|
||||
v 0.092974 0.197014 -0.093233
|
||||
v 0.093808 0.290971 -0.092775
|
||||
v 0.093808 0.197014 -0.092775
|
||||
v 0.093808 0.197014 0.092775
|
||||
v 0.092974 0.290971 0.093233
|
||||
v 0.092974 0.197014 0.093233
|
||||
v -0.092974 0.197014 0.093233
|
||||
v 0.092974 0.196026 -0.092775
|
||||
v -0.092974 0.196026 -0.092775
|
||||
v -0.092974 0.196026 0.092775
|
||||
v -0.092974 0.390929 -0.092775
|
||||
v 0.092974 0.390929 -0.092775
|
||||
v 0.092974 0.390929 0.092775
|
||||
v -0.092974 0.390929 0.092775
|
||||
v 0.092974 0.196026 0.092775
|
||||
v -0.092974 0.290971 0.093233
|
||||
v 0.093808 0.290971 0.092775
|
||||
v 0.092974 0.290971 -0.093233
|
||||
v -0.093808 0.290971 -0.092775
|
||||
vt 0.502042 0.373047
|
||||
vt 0.564542 0.373047
|
||||
vt 0.564542 0.435547
|
||||
vt 0.502042 0.435547
|
||||
vt 0.502042 0.437500
|
||||
vt 0.564542 0.437500
|
||||
vt 0.564542 0.500000
|
||||
vt 0.502042 0.500000
|
||||
vt 0.502042 0.687500
|
||||
vt 0.564542 0.687500
|
||||
vt 0.564542 0.750000
|
||||
vt 0.502042 0.750000
|
||||
vt 0.066619 0.765683
|
||||
vt 0.129119 0.765683
|
||||
vt 0.129119 0.879860
|
||||
vt 0.066619 0.879860
|
||||
vt 0.436154 0.687500
|
||||
vt 0.436520 0.687500
|
||||
vt 0.436520 0.750000
|
||||
vt 0.436154 0.750000
|
||||
vt 0.000020 0.937269
|
||||
vt 0.124039 0.937269
|
||||
vt 0.124039 0.999769
|
||||
vt 0.000020 0.999769
|
||||
vt 0.000020 0.937269
|
||||
vt 0.124039 0.937269
|
||||
vt 0.124039 0.999769
|
||||
vt 0.000020 0.999769
|
||||
vt 0.000957 0.875000
|
||||
vt 0.124977 0.875000
|
||||
vt 0.124977 0.937500
|
||||
vt 0.000957 0.937500
|
||||
vt 0.000020 0.812269
|
||||
vt 0.124039 0.812269
|
||||
vt 0.124039 0.874769
|
||||
vt 0.000020 0.874769
|
||||
vt 0.000596 0.374981
|
||||
vt 0.124500 0.374981
|
||||
vt 0.124500 0.437481
|
||||
vt 0.000596 0.437481
|
||||
vt 0.000577 0.250031
|
||||
vt 0.126692 0.250031
|
||||
vt 0.126692 0.376511
|
||||
vt 0.000577 0.376511
|
||||
vt 0.436154 0.562500
|
||||
vt 0.436520 0.562500
|
||||
vt 0.436520 0.625000
|
||||
vt 0.436154 0.625000
|
||||
vt 0.063596 0.765683
|
||||
vt 0.064577 0.765683
|
||||
vt 0.064577 0.879860
|
||||
vt 0.063596 0.879860
|
||||
vt 0.065922 0.760824
|
||||
vt 0.066902 0.760824
|
||||
vt 0.066902 0.823324
|
||||
vt 0.065922 0.823324
|
||||
vt 0.066496 0.688477
|
||||
vt 0.128996 0.688477
|
||||
vt 0.128996 0.815430
|
||||
vt 0.066496 0.815430
|
||||
vt 0.499020 0.687500
|
||||
vt 0.500000 0.687500
|
||||
vt 0.500000 0.750000
|
||||
vt 0.499020 0.750000
|
||||
vt 0.065922 0.687500
|
||||
vt 0.066902 0.687500
|
||||
vt 0.066902 0.750000
|
||||
vt 0.065922 0.750000
|
||||
vt 0.064542 0.687500
|
||||
vt 0.127042 0.687500
|
||||
vt 0.127042 0.812500
|
||||
vt 0.064542 0.812500
|
||||
vt 0.499020 0.437500
|
||||
vt 0.500000 0.437500
|
||||
vt 0.500000 0.500000
|
||||
vt 0.499020 0.500000
|
||||
vt 0.065426 0.740234
|
||||
vt 0.066406 0.740234
|
||||
vt 0.066406 0.802734
|
||||
vt 0.065426 0.802734
|
||||
vt 0.066496 0.689453
|
||||
vt 0.128996 0.689453
|
||||
vt 0.128996 0.814453
|
||||
vt 0.066496 0.814453
|
||||
vt 0.499020 0.373047
|
||||
vt 0.500000 0.373047
|
||||
vt 0.500000 0.435547
|
||||
vt 0.499020 0.435547
|
||||
vt 0.065922 0.690000
|
||||
vt 0.066902 0.690000
|
||||
vt 0.066902 0.752500
|
||||
vt 0.065922 0.752500
|
||||
vt 0.064542 0.690000
|
||||
vt 0.127042 0.690000
|
||||
vt 0.127042 0.815000
|
||||
vt 0.064542 0.815000
|
||||
vt 0.068945 0.690000
|
||||
vt 0.068945 0.752500
|
||||
vt 0.500000 0.308594
|
||||
vt 0.502042 0.308594
|
||||
vt 0.502042 0.371094
|
||||
vt 0.500000 0.371094
|
||||
vt 0.564542 0.308594
|
||||
vt 0.564542 0.371094
|
||||
vt -0.000980 0.690000
|
||||
vt 0.061520 0.690000
|
||||
vt 0.061520 0.815000
|
||||
vt -0.000980 0.815000
|
||||
vt 0.436520 0.308594
|
||||
vt 0.499020 0.308594
|
||||
vt 0.499020 0.371094
|
||||
vt 0.436520 0.371094
|
||||
vt 0.436520 0.373047
|
||||
vt 0.436520 0.435547
|
||||
vt 0.061520 0.877500
|
||||
vt -0.000980 0.877500
|
||||
vt 0.066902 0.815000
|
||||
vt 0.065922 0.815000
|
||||
vt 0.068449 0.740234
|
||||
vt 0.068449 0.802734
|
||||
vt 0.502042 0.312500
|
||||
vt 0.500000 0.312500
|
||||
vt 0.502042 0.689453
|
||||
vt 0.564542 0.689453
|
||||
vt 0.564542 0.751953
|
||||
vt 0.502042 0.751953
|
||||
vt 0.000973 0.689453
|
||||
vt 0.063473 0.689453
|
||||
vt 0.063473 0.814453
|
||||
vt 0.000973 0.814453
|
||||
vt 0.436520 0.689453
|
||||
vt 0.499020 0.689453
|
||||
vt 0.499020 0.751953
|
||||
vt 0.436520 0.751953
|
||||
vt 0.499020 0.312500
|
||||
vt 0.436520 0.437500
|
||||
vt 0.436520 0.500000
|
||||
vt 0.063473 0.876953
|
||||
vt 0.000973 0.876953
|
||||
vt 0.066406 0.865234
|
||||
vt 0.065426 0.865234
|
||||
vt 0.068945 0.687500
|
||||
vt 0.068945 0.750000
|
||||
vt 0.502042 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.564542 0.562500
|
||||
vt -0.000980 0.687500
|
||||
vt 0.061520 0.687500
|
||||
vt 0.061520 0.812500
|
||||
vt -0.000980 0.812500
|
||||
vt 0.499020 0.562500
|
||||
vt 0.061520 0.875000
|
||||
vt -0.000980 0.875000
|
||||
vt 0.066902 0.812500
|
||||
vt 0.065922 0.812500
|
||||
vt 0.068945 0.760824
|
||||
vt 0.068945 0.823324
|
||||
vt 0.502042 0.812500
|
||||
vt 0.500000 0.812500
|
||||
vt 0.564542 0.812500
|
||||
vt 0.000973 0.688477
|
||||
vt 0.063473 0.688477
|
||||
vt 0.063473 0.815430
|
||||
vt 0.000973 0.815430
|
||||
vt 0.499020 0.812500
|
||||
vt 0.436520 0.812500
|
||||
vt 0.001096 0.765683
|
||||
vt 0.001096 0.879860
|
||||
vt 0.063473 0.879883
|
||||
vt 0.000973 0.879883
|
||||
vt 0.000577 0.250031
|
||||
vt 0.000577 0.376511
|
||||
vt 0.499769 0.500000
|
||||
vt 0.436154 0.500000
|
||||
vt 0.499769 0.562500
|
||||
vt 0.124500 0.249981
|
||||
vt 0.000596 0.312481
|
||||
vt 0.124500 0.312481
|
||||
vt 0.499769 0.500000
|
||||
vt 0.436154 0.500000
|
||||
vt 0.436154 0.562500
|
||||
vt 0.499769 0.562500
|
||||
vt 0.124500 0.374981
|
||||
vt 0.124500 0.437481
|
||||
vt 0.126692 0.439011
|
||||
vt 0.000577 0.439011
|
||||
vt 0.000957 0.875000
|
||||
vt 0.000957 0.937500
|
||||
vt 0.564430 0.500000
|
||||
vt 0.501930 0.500000
|
||||
vt 0.501930 0.562500
|
||||
vt 0.564430 0.562500
|
||||
vt 0.564430 0.500000
|
||||
vt 0.564430 0.562500
|
||||
vt 0.501930 0.562500
|
||||
vt 0.501930 0.625000
|
||||
vt 0.564542 0.625000
|
||||
vt 0.501930 0.500000
|
||||
vt 0.501930 0.687500
|
||||
vt 0.501930 0.750000
|
||||
vt 0.124977 1.000000
|
||||
vt 0.000957 1.000000
|
||||
vt 0.000957 1.000000
|
||||
vt 0.000596 0.374981
|
||||
vt 0.000596 0.437481
|
||||
vt 0.000577 0.439011
|
||||
vt 0.128996 0.879883
|
||||
vt 0.066496 0.879883
|
||||
vt 0.068945 0.812500
|
||||
vt 0.127042 0.875000
|
||||
vt 0.064542 0.875000
|
||||
vt 0.068449 0.865234
|
||||
vt 0.128996 0.876953
|
||||
vt 0.066496 0.876953
|
||||
vt 0.068945 0.815000
|
||||
vt 0.127042 0.877500
|
||||
vt 0.064542 0.877500
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
usemtl Material
|
||||
s off
|
||||
f 294/205/7 225/206/7 200/207/7 238/208/7
|
||||
f 293/209/8 228/210/8 204/211/8 241/212/8
|
||||
f 292/213/9 231/214/9 202/215/9 244/216/9
|
||||
f 291/217/10 234/218/10 198/219/10 224/220/10
|
||||
f 290/221/11 242/222/11 201/223/11 233/224/11
|
||||
f 289/225/12 237/226/12 198/227/12 234/228/12
|
||||
f 288/229/12 247/230/12 216/231/12 246/232/12
|
||||
f 287/233/12 248/234/12 217/235/12 249/236/12
|
||||
f 286/237/12 225/238/12 207/239/12 250/240/12
|
||||
f 285/241/11 251/242/11 215/243/11 245/244/11
|
||||
f 284/245/11 252/246/11 218/247/11 253/248/11
|
||||
f 283/249/11 230/250/11 212/251/11 254/252/11
|
||||
f 282/253/10 255/254/10 206/255/10 236/256/10
|
||||
f 281/257/10 256/258/10 219/259/10 257/260/10
|
||||
f 280/261/10 246/262/10 216/263/10 258/264/10
|
||||
f 279/265/9 259/266/9 214/267/9 232/268/9
|
||||
f 278/269/9 260/270/9 220/271/9 261/272/9
|
||||
f 277/273/9 243/274/9 213/275/9 262/276/9
|
||||
f 276/277/8 263/278/8 211/279/8 229/280/8
|
||||
f 275/281/8 264/282/8 221/283/8 265/284/8
|
||||
f 274/285/8 240/286/8 210/287/8 266/288/8
|
||||
f 273/289/7 267/290/7 208/291/7 226/292/7
|
||||
f 272/293/7 268/294/7 222/295/7 269/296/7
|
||||
f 271/297/7 237/298/7 207/299/7 270/300/7
|
||||
f 268/294/7 271/301/7 270/302/7 222/295/7
|
||||
f 206/303/7 224/304/7 271/305/7 268/306/7
|
||||
f 224/304/7 198/307/7 237/308/7 271/305/7
|
||||
f 223/309/7 272/310/7 269/311/7 205/312/7
|
||||
f 197/313/7 236/314/7 272/315/7 223/316/7
|
||||
f 236/314/7 206/303/7 268/306/7 272/315/7
|
||||
f 235/317/7 273/289/7 226/292/7 199/318/7
|
||||
f 205/312/7 269/311/7 273/319/7 235/320/7
|
||||
f 269/296/7 222/295/7 267/321/7 273/322/7
|
||||
f 264/282/8 274/323/8 266/324/8 221/283/8
|
||||
f 208/291/8 238/208/8 274/325/8 264/326/8
|
||||
f 238/327/8 200/328/8 240/329/8 274/330/8
|
||||
f 227/331/8 275/332/8 265/333/8 209/334/8
|
||||
f 199/335/8 226/336/8 275/337/8 227/338/8
|
||||
f 226/292/8 208/291/8 264/326/8 275/339/8
|
||||
f 239/340/8 276/277/8 229/280/8 203/341/8
|
||||
f 209/334/8 265/333/8 276/342/8 239/343/8
|
||||
f 265/284/8 221/283/8 263/344/8 276/345/8
|
||||
f 260/270/9 277/346/9 262/347/9 220/271/9
|
||||
f 211/279/9 241/212/9 277/348/9 260/349/9
|
||||
f 241/212/9 204/211/9 243/350/9 277/348/9
|
||||
f 230/351/9 278/352/9 261/353/9 212/354/9
|
||||
f 203/341/9 229/280/9 278/355/9 230/250/9
|
||||
f 229/280/9 211/279/9 260/349/9 278/355/9
|
||||
f 242/222/9 279/265/9 232/268/9 201/223/9
|
||||
f 212/354/9 261/353/9 279/356/9 242/357/9
|
||||
f 261/272/9 220/271/9 259/358/9 279/359/9
|
||||
f 256/258/10 280/360/10 258/361/10 219/259/10
|
||||
f 214/267/10 244/216/10 280/362/10 256/363/10
|
||||
f 244/216/10 202/215/10 246/364/10 280/362/10
|
||||
f 233/365/10 281/366/10 257/367/10 215/368/10
|
||||
f 201/223/10 232/268/10 281/369/10 233/370/10
|
||||
f 232/268/10 214/267/10 256/363/10 281/369/10
|
||||
f 245/371/10 282/253/10 236/256/10 197/372/10
|
||||
f 215/368/10 257/367/10 282/373/10 245/374/10
|
||||
f 257/260/10 219/259/10 255/254/10 282/253/10
|
||||
f 252/246/11 283/375/11 254/376/11 218/247/11
|
||||
f 209/377/11 239/378/11 283/249/11 252/379/11
|
||||
f 239/378/11 203/341/11 230/250/11 283/249/11
|
||||
f 235/380/11 284/245/11 253/381/11 205/382/11
|
||||
f 199/383/11 227/384/11 284/385/11 235/386/11
|
||||
f 227/384/11 209/377/11 252/379/11 284/385/11
|
||||
f 223/387/11 285/241/11 245/244/11 197/388/11
|
||||
f 205/382/11 253/381/11 285/241/11 223/387/11
|
||||
f 253/248/11 218/247/11 251/389/11 285/390/11
|
||||
f 248/234/12 286/391/12 250/392/12 217/235/12
|
||||
f 210/393/12 240/394/12 286/395/12 248/396/12
|
||||
f 240/394/12 200/397/12 225/398/12 286/395/12
|
||||
f 243/350/12 287/399/12 249/400/12 213/401/12
|
||||
f 204/211/12 228/402/12 287/399/12 243/350/12
|
||||
f 228/402/12 210/393/12 248/396/12 287/399/12
|
||||
f 231/214/12 288/403/12 246/404/12 202/215/12
|
||||
f 213/401/12 249/400/12 288/403/12 231/214/12
|
||||
f 249/236/12 217/235/12 247/405/12 288/406/12
|
||||
f 247/230/12 289/225/12 234/228/12 216/231/12
|
||||
f 217/235/12 250/392/12 289/407/12 247/405/12
|
||||
f 250/240/12 207/239/12 237/226/12 289/225/12
|
||||
f 251/242/11 290/408/11 233/409/11 215/243/11
|
||||
f 218/247/11 254/376/11 290/410/11 251/389/11
|
||||
f 254/252/11 212/251/11 242/222/11 290/221/11
|
||||
f 255/254/10 291/217/10 224/220/10 206/255/10
|
||||
f 219/259/10 258/361/10 291/217/10 255/254/10
|
||||
f 258/264/10 216/263/10 234/411/10 291/412/10
|
||||
f 259/266/9 292/213/9 244/216/9 214/267/9
|
||||
f 220/271/9 262/347/9 292/413/9 259/358/9
|
||||
f 262/276/9 213/275/9 231/414/9 292/415/9
|
||||
f 263/278/8 293/209/8 241/212/8 211/279/8
|
||||
f 221/283/8 266/324/8 293/416/8 263/344/8
|
||||
f 266/288/8 210/287/8 228/417/8 293/418/8
|
||||
f 267/290/7 294/205/7 238/208/7 208/291/7
|
||||
f 222/295/7 270/302/7 294/419/7 267/321/7
|
||||
f 270/300/7 207/299/7 225/420/7 294/421/7
|
After Width: | Height: | Size: 435 KiB |
|
@ -0,0 +1,61 @@
|
|||
--sculk stuff--
|
||||
|
||||
--1)sculk block--
|
||||
--2)sculk catalyst--
|
||||
--3)sculk sensors--
|
||||
--4)sculk shrieker--
|
||||
--5)sculk vein--
|
||||
|
||||
--------------
|
||||
local sounds = mcl_sounds.node_sound_sand_defaults({
|
||||
footstep = {name = "mcl_sculk_block", gain = 0.4},
|
||||
dug = {name = "mcl_sculk_block", gain = 0.44},
|
||||
})
|
||||
---------------
|
||||
--1) sculk block--
|
||||
minetest.register_node("wild_update:sculk", {
|
||||
description = ("Sculk"),
|
||||
tiles = {
|
||||
{ name = "mcl_sculk.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 3.0,
|
||||
}, },
|
||||
},
|
||||
stack_max = 64,
|
||||
drop = "",
|
||||
groups = {handy = 1, hoey = 1, building_block=1,},
|
||||
sounds = sounds,
|
||||
is_ground_content = false,
|
||||
on_destruct = function(pos)
|
||||
mcl_experience.throw_xp(pos,math.random(15,43))
|
||||
end,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.6,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
||||
|
||||
--2)sculk catalyst--
|
||||
--sculk catalyst off--
|
||||
minetest.register_node("wild_update:sculk_catalyst", {
|
||||
description = ("Sculk Catalyst"),
|
||||
tiles = {"mcl_sculk_catalyst_top.png",
|
||||
"mcl_sculk_catalyst_bottom.png","mcl_sculk_catalyst_side.png"
|
||||
},
|
||||
stack_max = 64,
|
||||
drop = "",
|
||||
groups = {handy = 1, hoey = 1, building_block=1,},
|
||||
sounds = sounds,
|
||||
is_ground_content = false,
|
||||
on_destruct = function(pos)
|
||||
mcl_experience.throw_xp(pos,math.random(20,20))
|
||||
end,
|
||||
_mcl_blast_resistance = 3,
|
||||
light_source = 6,
|
||||
_mcl_hardness = 3,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
||||
|
||||
--sculk catalyst on--
|
|
@ -0,0 +1,129 @@
|
|||
local S = minetest.get_translator("mcl_core")
|
||||
------------------------------------------------------------------------
|
||||
|
||||
--
|
||||
-- watered_roots on mangrove roots near water
|
||||
--
|
||||
|
||||
local watered_root_correspondences = {
|
||||
["wild_update:mangrove_roots"] = "wild_update:water_logged_roots",
|
||||
}
|
||||
minetest.register_abm({
|
||||
label = "watered_root",
|
||||
nodenames = {"wild_update:mangrove_roots"},
|
||||
neighbors = {"mcl_core:water_source"},
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
catch_up = false,
|
||||
action = function(pos, node)
|
||||
node.name =watered_root_correspondences[node.name]
|
||||
if node.name then
|
||||
minetest.set_node(pos, node)
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node("wild_update:propagule_test_1", {
|
||||
description = S("Propagule_test"),
|
||||
_tt_help = S("Grows into Mangrove tree"),
|
||||
groups = {plant = 1, not_in_creative_inventory=1, non_mycelium_plant = 1, deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1, destroy_by_lava_flow = 1, compostability = 30},
|
||||
paramtype = "light",
|
||||
on_rotate = false,
|
||||
walkable = true,
|
||||
buildable_to = flase,
|
||||
pointable = true,
|
||||
diggable = true,
|
||||
drop = "wild_update:propagule_test",
|
||||
use_texture_alpha = "clip",
|
||||
drawtype = 'mesh',
|
||||
mesh = 'propagule.obj',
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 },
|
||||
}
|
||||
},
|
||||
tiles = {"mcl_propagule.png"},
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
node_dig_prediction = "mcl_core:dirt",
|
||||
after_dig_node = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if minetest.get_item_group(node.name, "dirt") == 0 then
|
||||
minetest.set_node(pos, {name="mcl_core:dirt"})
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
---------------------
|
||||
local soil_block = ("mcl_core:dirt"),("mcl_core:dirt_with_grass")
|
||||
--------------------------------
|
||||
minetest.register_node("wild_update:propagule_test", {
|
||||
description = "propagule_test",
|
||||
_doc_items_longdesc = "",
|
||||
_tt_help = "",
|
||||
drawtype = "plantlike_rooted",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
place_param2 = 1,
|
||||
tiles = { "dirt.png" },
|
||||
special_tiles = { { name = "mcl_mangrove_propagule.png" } },
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.5, 0.5, -0.5, 0.5, 1.0, 0.5 },
|
||||
}
|
||||
},
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1, not_in_creative_inventory=1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
drop = "wild_update:propagule",
|
||||
node_placement_prediction = "",
|
||||
node_dig_prediction = "mcl_core:dirt",
|
||||
after_dig_node = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
if minetest.get_item_group(node.name, "dirt") == 0 then
|
||||
minetest.set_node(pos, {name="mcl_core:dirt"})
|
||||
end
|
||||
end,
|
||||
_mcl_hardness = 0,
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
||||
|
||||
--------------
|
||||
-- node changer--
|
||||
minetest.override_item("wild_update:propagule",{
|
||||
on_place = function(itemstack, user, pointed_thing)
|
||||
-- Use pointed node's on_rightclick function first, if present
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
if user and not user:get_player_control().sneak then
|
||||
if minetest.registered_nodes[node.name] and minetest.registered_nodes[node.name].on_rightclick then
|
||||
return minetest.registered_nodes[node.name].on_rightclick (pointed_thing.under, node, user, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
-- Place on dirt
|
||||
if pointed_thing.under and node.name == "mcl_core:dirt" then
|
||||
local protname = user:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.under, protname) then
|
||||
minetest.record_protection_violation(pointed_thing.under, protname)
|
||||
return itemstack
|
||||
end
|
||||
minetest.set_node(pointed_thing.under, { name = "wild_update:propagule_test", param2 = node.param2 })
|
||||
minetest.sound_play(mcl_sounds.node_sound_leaves_defaults{pos=pointed_thing.under, gain=0.5, max_hear_range=16}, true)
|
||||
if not minetest.is_creative_enabled(user:get_player_name()) then
|
||||
itemstack:take_item(1) -- 1 use
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
end,
|
||||
})
|
|
@ -0,0 +1,518 @@
|
|||
|
||||
minetest.register_node("wild_update:mangrove_propagule", {
|
||||
description = "propagule",
|
||||
_tt_help = ("Needs soil and light to grow"),
|
||||
_doc_items_longdesc = ("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike_rooted",
|
||||
paramtype = "light",
|
||||
special_tiles = {{name = "mcl_mangrove_propagule.png", tileable_vertical = true}},
|
||||
waving = 2,
|
||||
visual_scale = 1.0,
|
||||
tiles = "mcl_mangrove_propagule.png",
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1,deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "wild_update:mangrove_propagule",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 1,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "mcl_core:dirt" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(4, 6)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "wild_update:mangrove_propagule",
|
||||
param2 = height * 16})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "mcl_core:dirt"})
|
||||
end
|
||||
})
|
||||
|
||||
|
||||
|
||||
--------------------------
|
||||
minetest.register_node("wild_update:mangrove_propagule", {
|
||||
description = "propagule",
|
||||
_tt_help = ("Needs soil and light to grow"),
|
||||
_doc_items_longdesc = ("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike_rooted",
|
||||
node_dig_prediction = "mcl_core:dirt",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
special_tiles = {{name = "mcl_mangrove_propagule.png", tileable_vertical = true}},
|
||||
waving = 2,
|
||||
visual_scale = 1.0,
|
||||
tiles = "mcl_mangrove_propagule.png",
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(4, 6)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "wild_update:mangrove_propagule",
|
||||
param2 = height * 16})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "mcl_core:dirt"})
|
||||
end
|
||||
})
|
||||
|
||||
-------------------------
|
||||
|
||||
minetest.register_node("default:sand_with_kelp", {
|
||||
description = S("Kelp"),
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "default_kelp.png", tileable_vertical = true}},
|
||||
inventory_image = "default_kelp.png",
|
||||
wield_image = "default_kelp.png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 3.5, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults({
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local height = math.random(4, 6)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "default:sand_with_kelp",
|
||||
param2 = height * 16})
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end
|
||||
})
|
||||
|
||||
-----------------------------
|
||||
|
||||
register_sapling("propagule", S("mangrove_propagule"),
|
||||
S("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
S("Needs soil and light to grow"),
|
||||
"mcl_mangrove_propagule.png", {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16})
|
||||
|
||||
minetest.register_node("wild_update:mangrove_propagule:", {
|
||||
description = "propagule",
|
||||
_tt_help = ("Needs soil and light to grow"),
|
||||
_doc_items_longdesc = ("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 2,
|
||||
visual_scale = 1.0,
|
||||
tiles = {texture},
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
end
|
||||
|
||||
----------------
|
||||
|
||||
local surfaces = {
|
||||
{ "dirt_with_grass", "mcl_core:dirt_with_grass" },
|
||||
{ "dirt", "mcl_core:dirt" },
|
||||
{ "sand", "mcl_core:sand", 1 },
|
||||
}
|
||||
|
||||
local function propagule_on_place(itemstack, placer, pointed_thing)
|
||||
if pointed_thing.type ~= "node" or not placer then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local player_name = placer:get_player_name()
|
||||
local pos_under = pointed_thing.under
|
||||
local pos_above = pointed_thing.above
|
||||
local node_under = minetest.get_node(pos_under)
|
||||
local node_above = minetest.get_node(pos_above)
|
||||
local def_under = minetest.registered_nodes[node_under.name]
|
||||
local def_above = minetest.registered_nodes[node_above.name]
|
||||
|
||||
if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then
|
||||
return def_under.on_rightclick(pos_under, node_under,
|
||||
placer, itemstack, pointed_thing) or itemstack
|
||||
end
|
||||
|
||||
if pos_under.y >= pos_above.y then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- Placement rules:
|
||||
-- propagule can only be placed on top of dirt inside water
|
||||
local g_above_water = minetest.get_item_group(node_above.name, "water")
|
||||
end
|
||||
|
||||
if minetest.is_protected(pos_under, player_name) or
|
||||
minetest.is_protected(pos_above, player_name) then
|
||||
minetest.log("action", player_name
|
||||
.. " tried to place " .. itemstack:get_name()
|
||||
.. " at protected position "
|
||||
.. minetest.pos_to_string(pos_under))
|
||||
minetest.record_protection_violation(pos_under, player_name)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- Select a propagule node
|
||||
if node_under.name == "mcl_core:dirt" then
|
||||
node_under.name = "wild_update:mangrove_propagule_dirt"
|
||||
elseif node_under.name == "mcl_core:dirt_with_grass" then
|
||||
node_under.name = "wild_update:mangrove_propagule_dirt_with_grass"
|
||||
elseif node_under.name == "mcl_core:sand" then
|
||||
node_under.name = "wild_update:mangrove_propagule_sand"
|
||||
else
|
||||
return itemstack
|
||||
end
|
||||
node_under.param2 = minetest.registered_items[node_under.name].place_param2 or 3
|
||||
if node_under.param2 < 8 and math.random(1,2) == 1 then
|
||||
-- Random horizontal displacement
|
||||
node_under.param2 = node_under.param2 + 8
|
||||
end
|
||||
local def_node = minetest.registered_items[node_under.name]
|
||||
if def_node.sounds then
|
||||
minetest.sound_play(def_node.sounds.place, { gain = 0.5, pos = pos_under }, true)
|
||||
end
|
||||
minetest.set_node(pos_under, node_under)
|
||||
if not minetest.is_creative_enabled(player_name) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end
|
||||
--------------testing----------------
|
||||
|
||||
|
||||
minetest.register_node("wild_update:propagule", {
|
||||
description = "propagule",
|
||||
_tt_help = ("Needs soil and light to grow"),
|
||||
_doc_items_longdesc = ("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike",
|
||||
node_dig_prediction = "mcl_core:dirt",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
special_tiles = {{name = "mcl_mangrove_propagule.png", tileable_vertical = true}},
|
||||
waving = 2,
|
||||
visual_scale = 1.0,
|
||||
tiles = "mcl_mangrove_propagule.png",
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-5/16, -0.5, -5/16, 5/16, 0.5, 5/16},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
|
||||
|
||||
----------------------------------------------------------
|
||||
minetest.register_node("wild_update:propagule", {
|
||||
description = "propagule",
|
||||
_tt_help = ("Needs soil and light to grow"),
|
||||
_doc_items_longdesc = ("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike",
|
||||
node_dig_prediction = "mcl_core:dirt",
|
||||
waving = 1,
|
||||
special_tiles = {{name = "mcl_mangrove_propagule.png", tileable_vertical = true}},
|
||||
visual_scale = 1.0,
|
||||
tiles = "mcl_mangrove_propagule.png",
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.5, 0.5, -0.5, 0.5, 1.3, 0.5 },
|
||||
},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
end
|
||||
|
||||
------------------------------working-------------------
|
||||
minetest.register_node("wild_update:propagule", {
|
||||
description = "propagule",
|
||||
_tt_help = ("Needs soil and light to grow"),
|
||||
_doc_items_longdesc = ("When placed on soil (such as dirt) and exposed to light, an propagule will grow into an mangrove after some time."),
|
||||
_doc_items_hidden = false,
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
special_tiles = {{name = "mcl_mangrove_propagule.png", tileable_vertical = true}},
|
||||
visual_scale = 1.0,
|
||||
tiles = "mcl_mangrove_propagule.png",
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 },
|
||||
{ -0.5, 0.5, -0.5, 0.5, 1.3, 0.5 },
|
||||
},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x-1,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "mcl_core:dirt",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
|
@ -0,0 +1,233 @@
|
|||
local function register_sapling(subname, description, longdesc, tt_help, texture, selbox)
|
||||
minetest.register_node("wild_update:"..subname, {
|
||||
description = description,
|
||||
_tt_help = tt_help,
|
||||
_doc_items_longdesc = longdesc,
|
||||
_doc_items_hidden = false,
|
||||
drawtype = 'mesh',
|
||||
mesh = 'propagule.obj',
|
||||
waving = 1,
|
||||
visual_scale = 1.0,
|
||||
tiles = "mcl_propagule.png",
|
||||
inventory_image = texture,
|
||||
wield_image = texture,
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, -- Base
|
||||
},
|
||||
},
|
||||
stack_max = 64,
|
||||
groups = {
|
||||
plant = 1, sapling = 1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("stage", 0)
|
||||
end,
|
||||
local p = pointed_thing.above
|
||||
p.y = p.y - 1
|
||||
p.x = p.x - 0
|
||||
p.z = p.z - 0
|
||||
on_place = mcl_util.generate_on_place_plant_function(function(pos, node, pointed_thing.above, value)
|
||||
local node_below = minetest.get_node_or_nil({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if not node_below then return false end
|
||||
local nn = node_below.name
|
||||
return ((minetest.get_item_group(nn, "grass_block") == 1) or
|
||||
nn=="mcl_core:podzol" or nn=="mcl_core:podzol_snow" or
|
||||
nn=="mcl_core:dirt")
|
||||
end),
|
||||
node_placement_prediction = "",
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 0,
|
||||
})
|
||||
end
|
||||
-----------------------
|
||||
Propagule hanging
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("wild_update:hanging_propagule_1", {
|
||||
description = S("Hanging Propagule"),
|
||||
_tt_help = S("Grows on Mangrove leaves"),
|
||||
_doc_items_longdesc = "",
|
||||
_doc_items_usagehelp = "",
|
||||
groups = {
|
||||
plant = 1, sapling = 1, not_in_creative_inventory=1, non_mycelium_plant = 1, attached_node = 1,
|
||||
deco_block = 1, dig_immediate = 3, dig_by_water = 0, dig_by_piston = 1,
|
||||
destroy_by_lava_flow = 1, compostability = 30
|
||||
},
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
drop = "wild_update:propagule",
|
||||
drawtype = 'mesh',
|
||||
mesh = 'hanging_propagule.obj',
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.125, -0.5, -0.125, 0.125, 0.5, 0.125}, -- Base
|
||||
},
|
||||
},
|
||||
tiles = {"mcl_mangrove_propagule_hanging_0.png"},
|
||||
inventory_image = "mcl_mangrove_propagule.png",
|
||||
wield_image = "mcl_mangrove_propagule.png",
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_farming:beetroot_0", {
|
||||
description = S("Premature Beetroot Plant (Stage 1)"),
|
||||
_doc_items_longdesc = S("Beetroot plants are plants which grow on farmland under sunlight in 4 stages. On hydrated farmland, they grow a bit faster. They can be harvested at any time but will only yield a profit when mature."),
|
||||
_doc_items_entry_name = S("Premature Beetroot Plant"),
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
sunlight_propagates = true,
|
||||
place_param2 = 3,
|
||||
walkable = false,
|
||||
drawtype = "plantlike",
|
||||
drop = "mcl_farming:beetroot_seeds",
|
||||
tiles = {"mcl_farming_beetroot_0.png"},
|
||||
inventory_image = "mcl_farming_beetroot_0.png",
|
||||
wield_image = "mcl_farming_beetroot_0.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
|
||||
},
|
||||
},
|
||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
_mcl_blast_resistance = 0,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_farming:beetroot_1", {
|
||||
description = S("Premature Beetroot Plant (Stage 2)"),
|
||||
_doc_items_create_entry = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
sunlight_propagates = true,
|
||||
place_param2 = 3,
|
||||
walkable = false,
|
||||
drawtype = "plantlike",
|
||||
drop = "mcl_farming:beetroot_seeds",
|
||||
tiles = {"mcl_farming_beetroot_1.png"},
|
||||
inventory_image = "mcl_farming_beetroot_1.png",
|
||||
wield_image = "mcl_farming_beetroot_1.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, -3/16, 0.5}
|
||||
},
|
||||
},
|
||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
_mcl_blast_resistance = 0,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_farming:beetroot_2", {
|
||||
description = S("Premature Beetroot Plant (Stage 3)"),
|
||||
_doc_items_create_entry = false,
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
sunlight_propagates = true,
|
||||
place_param2 = 3,
|
||||
walkable = false,
|
||||
drawtype = "plantlike",
|
||||
drop = "mcl_farming:beetroot_seeds",
|
||||
tiles = {"mcl_farming_beetroot_2.png"},
|
||||
inventory_image = "mcl_farming_beetroot_2.png",
|
||||
wield_image = "mcl_farming_beetroot_2.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 2/16, 0.5}
|
||||
},
|
||||
},
|
||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
_mcl_blast_resistance = 0,
|
||||
})
|
||||
|
||||
minetest.register_node("mcl_farming:beetroot", {
|
||||
description = S("Mature Beetroot Plant"),
|
||||
_doc_items_longdesc = S("A mature beetroot plant is a farming plant which is ready to be harvested for a beetroot and some beetroot seeds. It won't grow any further."),
|
||||
_doc_items_create_entry = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
sunlight_propagates = true,
|
||||
place_param2 = 3,
|
||||
walkable = false,
|
||||
drawtype = "plantlike",
|
||||
drop = {
|
||||
--[[ drops 1 beetroot guaranteed.
|
||||
drops 0-3 beetroot seeds:
|
||||
0 seeds: 42.18%
|
||||
1 seed: 14.06%
|
||||
2 seeds: 18.75%
|
||||
3 seeds: 25% ]]
|
||||
max_items = 2,
|
||||
items = {
|
||||
{ items = {"mcl_farming:beetroot_item"}, rarity = 1 },
|
||||
{ items = {"mcl_farming:beetroot_seeds 3"}, rarity = 4 },
|
||||
{ items = {"mcl_farming:beetroot_seeds 2"}, rarity = 4 },
|
||||
{ items = {"mcl_farming:beetroot_seeds 1"}, rarity = 4 },
|
||||
},
|
||||
},
|
||||
tiles = {"mcl_farming_beetroot_3.png"},
|
||||
inventory_image = "mcl_farming_beetroot_3.png",
|
||||
wield_image = "mcl_farming_beetroot_3.png",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 3/16, 0.5}
|
||||
},
|
||||
},
|
||||
groups = {dig_immediate=3, not_in_creative_inventory=1,plant=1,attached_node=1,dig_by_water=1,destroy_by_lava_flow=1,dig_by_piston=1,beetroot=4},
|
||||
sounds = mcl_sounds.node_sound_leaves_defaults(),
|
||||
_mcl_blast_resistance = 0,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_farming:beetroot_item", {
|
||||
description = S("Beetroot"),
|
||||
_doc_items_longdesc = S("Beetroots are both used as food item and a dye ingredient. Pigs like beetroots, too."),
|
||||
_doc_items_usagehelp = S("Hold it in your hand and right-click to eat it. Rightclick an animal to feed it."),
|
||||
inventory_image = "mcl_farming_beetroot.png",
|
||||
wield_image = "mcl_farming_beetroot.png",
|
||||
on_place = minetest.item_eat(1),
|
||||
on_secondary_use = minetest.item_eat(1),
|
||||
groups = {food = 2, eatable = 1, compostability = 65},
|
||||
_mcl_saturation = 1.2,
|
||||
})
|
||||
|
||||
minetest.register_craftitem("mcl_farming:beetroot_soup", {
|
||||
description = S("Beetroot Soup"),
|
||||
_doc_items_longdesc = S("Beetroot soup is a food item."),
|
||||
stack_max = 1,
|
||||
inventory_image = "mcl_farming_beetroot_soup.png",
|
||||
wield_image = "mcl_farming_beetroot_soup.png",
|
||||
on_place = minetest.item_eat(6, "mcl_core:bowl"),
|
||||
on_secondary_use = minetest.item_eat(6, "mcl_core:bowl"),
|
||||
groups = { food = 3, eatable = 6 },
|
||||
_mcl_saturation = 7.2,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "mcl_farming:beetroot_soup",
|
||||
recipe = {
|
||||
{ "mcl_farming:beetroot_item","mcl_farming:beetroot_item","mcl_farming:beetroot_item", },
|
||||
{ "mcl_farming:beetroot_item","mcl_farming:beetroot_item","mcl_farming:beetroot_item", },
|
||||
{ "", "mcl_core:bowl", "" },
|
||||
},
|
||||
})
|
||||
|
||||
mcl_farming:add_plant("plant_beetroot", "mcl_farming:beetroot", {"mcl_farming:beetroot_0", "mcl_farming:beetroot_1", "mcl_farming:beetroot_2"}, 68, 3)
|
||||
|
||||
if minetest.get_modpath("doc") then
|
||||
for i=1,2 do
|
||||
doc.add_entry_alias("nodes", "mcl_farming:beetroot_0", "nodes", "mcl_farming:beetroot_"..i)
|
||||
end
|
||||
end
|
|
@ -0,0 +1,5 @@
|
|||
minetest.register_craftitem("wild_update:echo_shard", {
|
||||
description = "Echo Shard",
|
||||
tt_help = "Can be used to craft recovery compasses",
|
||||
inventory_image = "mcl_echo_shard.png"
|
||||
})
|
|
@ -0,0 +1,31 @@
|
|||
--sculk stuff--
|
||||
|
||||
1)sculk block
|
||||
2)sculk catalyst
|
||||
3)sculk sensors
|
||||
4)sculk shrieker
|
||||
5)sculk vein
|
||||
|
||||
---------------
|
||||
1) sculk block
|
||||
minetest.register_node("wild_update:sculk", {
|
||||
description = ("Sculk"),
|
||||
tiles = {
|
||||
{ name = "mcl_sculk.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 3.0,
|
||||
}, },
|
||||
},
|
||||
stack_max = 64,
|
||||
drop = "",
|
||||
groups = {handy = 1, hoey = 1, shovely = 3, building_block=1, pickaxey = 3},
|
||||
sounds = mcl_sounds.node_sound_sand_defaults(),
|
||||
is_ground_content = false,
|
||||
on_destruct = mcl_experience.throw_xp(pos,math.random(15,43))
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.6,
|
||||
_mcl_silk_touch_drop = true,
|
||||
})
|
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 6.7 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 7.4 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 311 B |
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 6.5 KiB |