first commit
commit
4b458d3512
|
@ -0,0 +1,339 @@
|
|||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
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
|
||||
this service 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.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute 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 and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the 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 a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, 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.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE 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.
|
||||
|
||||
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
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
{description}
|
||||
Copyright (C) {year} {fullname}
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
{signature of Ty Coon}, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
|
@ -0,0 +1,6 @@
|
|||
meseconductors mod
|
||||
|
||||
based on moremesecons-mod(pack) by minermoder27
|
||||
(https://forum.minetest.net/viewtopic.php?f=9&t=7837&hilit=moremesecons)
|
||||
|
||||
|
|
@ -0,0 +1,418 @@
|
|||
minetest.register_craft({
|
||||
output = 'meseconductors:default_wood',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:wood', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_tree',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:tree', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_dirt',
|
||||
recipe = {
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
{'default:mese_crystal_fragment', 'default:dirt', 'default:mese_crystal_fragment'},
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_dirt_with_grass',
|
||||
recipe = {
|
||||
{'default:grass_1', 'default:mese_crystal_fragment', ''},
|
||||
{'default:mese_crystal_fragment', 'default:dirt', 'default:mese_crystal_fragment'},
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_dirt_with_snow',
|
||||
recipe = {
|
||||
{'default:snow', 'default:mese_crystal_fragment', ''},
|
||||
{'default:mese_crystal_fragment', 'default:dirt', 'default:mese_crystal_fragment'},
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_cobble',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:cobble', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_desert_cobble',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:desert_cobble', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_sand',
|
||||
recipe = {
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
{'default:mese_crystal_fragment', 'default:sand', 'default:mese_crystal_fragment'},
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_desert_sand',
|
||||
recipe = {
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
{'default:mese_crystal_fragment', 'default:desert_sand', 'default:mese_crystal_fragment'},
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_stone',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:stone', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_desert_stone',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:desert_stone', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_goldblock',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'default:mese_crystal', 'default:goldblock', 'default:mese_crystal'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_diamondblock',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'default:mese_crystal', 'default:diamondblock', 'default:mese_crystal'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_junglewood',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:junglewood', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_jungletree',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:jungletree', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_mossycobble',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:mossycobble', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_obsidian',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:obsidian', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_sandstone',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:sandstone', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_sandstonebrick',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:sandstonebrick', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_stonebrick',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:stonebrick', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_pine_tree',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:pine_tree', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_pine_wood',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:pine_wood', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_acacia_wood',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:acacia_wood', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_acacia_tree',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:acacia_tree', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_brick',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:brick', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_cactus',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:cactus', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
if minetest.get_modpath("technic") == false then
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_glass',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:glass', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:default_obsidian_glass',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'mesecons:mesecon', 'default:obsidian_glass', 'mesecons:mesecon'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
local recipes = {
|
||||
{"default:mese_crystal_fragment 4", "default:glass", "meseconductors:default_glass"},
|
||||
{"default:mese_crystal_fragment 4", "default:obsidian_glass", "meseconductors:default_obsidian_glass"},
|
||||
}
|
||||
for _, data in pairs(recipes) do
|
||||
technic.register_alloy_recipe({input = {data[1], data[2]}, output = data[3], time = data[4]})
|
||||
end
|
||||
|
||||
if meseconductors.use_moreblocks and minetest.get_modpath("moreblocks") then
|
||||
|
||||
local nodes = {"iron_stone_bricks", "grey_bricks", "cactus_brick", "stone_tile", "split_stone_tile", "wood_tile", "wood_tile_full"}
|
||||
|
||||
|
||||
if minetest.get_modpath("technic") == false then
|
||||
nodes = {"iron_stone_bricks", "grey_bricks", "cactus_brick", "stone_tile", "split_stone_tile", "wood_tile", "wood_tile_full", "super_glow_glass", "glow_glass", "clean_glass"}
|
||||
|
||||
else
|
||||
local recipes = {
|
||||
{"default:mese_crystal_fragment 4", "moreblocks:super_glow_glass", "meseconductors:moreblocks_super_glow_glass"},
|
||||
{"default:mese_crystal_fragment 4", "moreblocks:glow_glass", "meseconductors:moreblocks_glow_glass"},
|
||||
{"default:mese_crystal_fragment 4", "moreblocks:clean_glass", "meseconductors:moreblocks_clean_glass"},
|
||||
}
|
||||
for _, data in pairs(recipes) do
|
||||
technic.register_alloy_recipe({input = {data[1], data[2]}, output = data[3], time = data[4]})
|
||||
end
|
||||
end
|
||||
for i in ipairs(nodes) do
|
||||
local node = nodes[i]
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:moreblocks_"..node,
|
||||
recipe = {
|
||||
{"", "mesecons:mesecon", ""},
|
||||
{"mesecons:mesecon", "moreblocks:"..node, "mesecons:mesecon"},
|
||||
{"", "mesecons:mesecon", ""},
|
||||
}
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
if meseconductors.use_building_blocks and minetest.get_modpath("building_blocks") then
|
||||
|
||||
local nodes = {"Adobe", "hardwood", "grate", "Marble"}
|
||||
for i in ipairs(nodes) do
|
||||
local node = nodes[i]
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:building_blocks_"..node,
|
||||
recipe = {
|
||||
{"", "mesecons:mesecon", ""},
|
||||
{"mesecons:mesecon", "building_blocks:"..node, "mesecons:mesecon"},
|
||||
{"", "mesecons:mesecon", ""},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:building_blocks_Tar',
|
||||
recipe = {
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
{'default:mese_crystal_fragment', 'building_blocks:Tar', 'default:mese_crystal_fragment'},
|
||||
{'', 'default:mese_crystal_fragment', ''},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
if meseconductors.use_quartz and minetest.get_modpath("quartz") then
|
||||
|
||||
local nodes = {"block", "chiseled", "pillar"}
|
||||
for i in ipairs(nodes) do
|
||||
local node = nodes[i]
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:quartz_"..node,
|
||||
recipe = {
|
||||
{"", "mesecons:mesecon", ""},
|
||||
{"mesecons:mesecon", "quartz:"..node, "mesecons:mesecon"},
|
||||
{"", "mesecons:mesecon", ""},
|
||||
}
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
if meseconductors.use_glooptest and minetest.get_modpath("glooptest") then
|
||||
|
||||
if minetest.get_modpath("technic") == false then
|
||||
|
||||
local nodes = {"crystal_glass", "reinforced_crystal_glass", "akalin_crystal_glass", "alatro_crystal_glass", "arol_crystal_glass", "talinite_crystal_glass"}
|
||||
for i in ipairs(nodes) do
|
||||
local node = nodes[i]
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:glooptest_"..node,
|
||||
recipe = {
|
||||
{"", "mesecons:mesecon", ""},
|
||||
{"mesecons:mesecon", "glooptest:"..node, "mesecons:mesecon"},
|
||||
{"", "mesecons:mesecon", ""},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
else
|
||||
local recipes = {
|
||||
{"default:mese_crystal_fragment 4", "glooptest:crystal_glass", "meseconductors:glooptest_crystal_glass"},
|
||||
{"default:mese_crystal_fragment 4", "glooptest:reinforced_crystal_glass", "meseconductors:glooptest_reinforced_crystal_glass"},
|
||||
{"default:mese_crystal_fragment 4", "glooptest:akalin_crystal_glass", "meseconductors:glooptest_akalin_crystal_glass"},
|
||||
{"default:mese_crystal_fragment 4", "glooptest:alatro_crystal_glass", "meseconductors:glooptest_alatro_crystal_glass"},
|
||||
{"default:mese_crystal_fragment 4", "glooptest:arol_crystal_glass", "meseconductors:glooptest_arol_crystal_glass"},
|
||||
{"default:mese_crystal_fragment 4", "glooptest:talinite_crystal_glass", "meseconductors:glooptest_talinite_crystal_glass"},
|
||||
}
|
||||
for _, data in pairs(recipes) do
|
||||
technic.register_alloy_recipe({input = {data[1], data[2]}, output = data[3], time = data[4]})
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if meseconductors.use_gloopblocks and minetest.get_modpath("gloopblocks") then
|
||||
local nodes = {"cement", "pavement", "stone_mossy"}
|
||||
for i in ipairs(nodes) do
|
||||
local node = nodes[i]
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:gloopblocks_"..node,
|
||||
recipe = {
|
||||
{"", "mesecons:mesecon", ""},
|
||||
{"mesecons:mesecon", "gloopblocks:"..node, "mesecons:mesecon"},
|
||||
{"", "mesecons:mesecon", ""},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'meseconductors:gloopblocks_rainbow_block',
|
||||
recipe = {
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
{'default:mese_crystal', 'gloopblocks:rainbow_block', 'default:mese_crystal'},
|
||||
{'', 'mesecons:mesecon', ''},
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
|
||||
if meseconductors.use_moretrees and minetest.get_modpath("moretrees") then
|
||||
local tree_nodes = {"beech_trunk", "beech_planks", "apple_tree_trunk", "apple_tree_planks", "oak_trunk", "oak_planks", "sequoia_trunk", "sequoia_planks", "birch_trunk", "birch_planks", "palm_trunk", "palm_planks", "spruce_trunk", "spruce_planks", "willow_trunk", "willow_planks", "rubber_tree_trunk", "rubber_tree_planks", "fir_trunk", "fir_planks"}
|
||||
for i in ipairs(tree_nodes) do
|
||||
local node = tree_nodes[i]
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:moretrees_"..node,
|
||||
recipe = {
|
||||
{"", "mesecons:mesecon", ""},
|
||||
{"mesecons:mesecon", "moretrees:"..node, "mesecons:mesecon"},
|
||||
{"", "mesecons:mesecon", ""},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
end
|
|
@ -0,0 +1,34 @@
|
|||
-- Global configuration variables
|
||||
|
||||
|
||||
--highlight all nodes when receiving a mesecon signal, buggy atm
|
||||
meseconductors.highlight_conducting = false
|
||||
|
||||
-- highlight all conductalbe nodes, useful for debugging, not working yet
|
||||
meseconductors.debug_highlight_all = false
|
||||
|
||||
--mods
|
||||
|
||||
--moreblocks
|
||||
meseconductors.use_moreblocks = true
|
||||
|
||||
--building_blocks
|
||||
meseconductors.use_building_blocks = true
|
||||
|
||||
--glooptest
|
||||
meseconductors.use_glooptest = true
|
||||
|
||||
--gloopblocks
|
||||
meseconductors.use_gloopblocks = true
|
||||
|
||||
--quartz
|
||||
meseconductors.use_quartz = true
|
||||
|
||||
--moretrees
|
||||
meseconductors.use_moretrees = true
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
mesecons
|
||||
default
|
||||
technic?
|
||||
intllib?
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
meseconductors = {}
|
||||
|
||||
local modpath=minetest.get_modpath("meseconductors")
|
||||
|
||||
local worldpath=minetest.get_worldpath()
|
||||
dofile(modpath.."/default_settings.txt")
|
||||
|
||||
if io.open(worldpath.."/meseconductors_settings.txt","r") == nil then
|
||||
io.input(modpath.."/default_settings.txt")
|
||||
io.output(worldpath.."/meseconductors_settings.txt")
|
||||
|
||||
local size = 2^13 -- good buffer size (8K)
|
||||
while true do
|
||||
local block = io.read(size)
|
||||
if not block then
|
||||
io.close()
|
||||
break
|
||||
end
|
||||
io.write(block)
|
||||
end
|
||||
else
|
||||
dofile(worldpath.."/meseconductors_settings.txt")
|
||||
end
|
||||
|
||||
|
||||
local S -- Load translation library if intllib is installed:
|
||||
if intllib then
|
||||
S = intllib.Getter(minetest.get_current_modname())
|
||||
else
|
||||
S = function(s) return s end
|
||||
end
|
||||
meseconductors.gettext = S
|
||||
|
||||
|
||||
dofile(minetest.get_modpath("meseconductors").."/nodes.lua")
|
||||
dofile(minetest.get_modpath("meseconductors").."/crafting.lua")
|
||||
dofile(minetest.get_modpath("meseconductors").."/lightstones.lua")
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
local lightstone_rules = {
|
||||
{x=0, y=0, z=-1},
|
||||
{x=1, y=0, z=0},
|
||||
{x=-1, y=0, z=0},
|
||||
{x=0, y=0, z=1},
|
||||
{x=1, y=1, z=0},
|
||||
{x=1, y=-1, z=0},
|
||||
{x=-1, y=1, z=0},
|
||||
{x=-1, y=-1, z=0},
|
||||
{x=0, y=1, z=1},
|
||||
{x=0, y=-1, z=1},
|
||||
{x=0, y=1, z=-1},
|
||||
{x=0, y=-1, z=-1},
|
||||
{x=0, y=-1, z=0},
|
||||
}
|
||||
|
||||
function meseconductors:lightstone_add(name, base_item, texture_off, texture_on)
|
||||
minetest.register_node("meseconductors:lightstone_" .. name .. "_off", {
|
||||
tiles = {texture_off},
|
||||
groups = {cracky=2, mesecon_effector_off = 1, mesecon = 2},
|
||||
description=name.." Lightstone",
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
mesecons = {effector = {
|
||||
rules = lightstone_rules,
|
||||
action_on = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "meseconductors:lightstone_" .. name .. "_on", param2 = node.param2})
|
||||
end,
|
||||
}}
|
||||
})
|
||||
minetest.register_node("meseconductors:lightstone_" .. name .. "_on", {
|
||||
tiles = {texture_on},
|
||||
groups = {cracky=2,not_in_creative_inventory=1, mesecon = 2},
|
||||
drop = "meseconductors:lightstone_" .. name .. "_off",
|
||||
light_source = LIGHT_MAX-1,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
mesecons = {effector = {
|
||||
rules = lightstone_rules,
|
||||
action_off = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "meseconductors:lightstone_" .. name .. "_off", param2 = node.param2})
|
||||
end,
|
||||
}}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:lightstone_" .. name .. "_off",
|
||||
recipe = {
|
||||
{"mesecons_materials:glue","default:glass","mesecons_materials:glue"},
|
||||
{base_item,"mesecons_torch:mesecon_torch_on",base_item},
|
||||
{"default:glass","mesecons:mesecon","default:glass"}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
meseconductors:lightstone_add("red", "default:clay_brick", "lightstone_red_off.png", "lightstone_red_on.png")
|
||||
meseconductors:lightstone_add("green", "default:cactus", "lightstone_green_off.png", "lightstone_green_on.png")
|
||||
|
||||
if minetest.get_modpath("moreblocks") then
|
||||
|
||||
|
||||
stairsplus:register_all(
|
||||
"meseconductors",
|
||||
"lightstone_red_off",
|
||||
"meseconductors:lightstone_red_off",
|
||||
{
|
||||
description = "Red Lightstone",
|
||||
tiles = {"lightstone_red_off.png"},
|
||||
groups = {cracky=2, mesecon_effector_off = 1, mesecon = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
|
||||
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
stairsplus:register_all(
|
||||
"meseconductors",
|
||||
"lightstone_red_on",
|
||||
"meseconductors:lightstone_red_on",
|
||||
{
|
||||
description = "Red Lightstone On",
|
||||
drop = "lightstone_red_off",
|
||||
tiles = {"lightstone_red_on.png"},
|
||||
groups = {cracky=2,not_in_creative_inventory=1, mesecon = 2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
light_source = LIGHT_MAX-1,
|
||||
|
||||
}
|
||||
)
|
||||
|
||||
end
|
||||
|
||||
local lamp_cbox = {
|
||||
type = "fixed",
|
||||
fixed = { -11/32, -8/16, -11/32, 11/32, 4/16, 11/32 }
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- Node Definition
|
||||
|
||||
minetest.register_node("meseconductors:mese_light_off", {
|
||||
|
||||
drawtype = "mesh",
|
||||
mesh = "mese_light.obj",
|
||||
tiles = {"mese_light.png"},
|
||||
groups = {cracky=3},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
description = "Mese Light",
|
||||
selection_box = lamp_cbox,
|
||||
collision_box = lamp_cbox,
|
||||
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "meseconductors:mese_light_on", param2 = node.param2})
|
||||
|
||||
--on_place = minetest.rotate_node
|
||||
end
|
||||
|
||||
}}
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("meseconductors:mese_light_on", {
|
||||
|
||||
drawtype = "mesh",
|
||||
mesh = "mese_light.obj",
|
||||
tiles = {"mese_light_on.png"},
|
||||
groups = {cracky=3, not_in_creative_inventory=1},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
description = "Mese Light On (hey - cheated???)",
|
||||
selection_box = lamp_cbox,
|
||||
collision_box = lamp_cbox,
|
||||
on_place = minetest.rotate_node,
|
||||
light_source = 15,
|
||||
mesecons = {effector = {
|
||||
action_off = function (pos, node)
|
||||
minetest.swap_node(pos, {name = "meseconductors:mese_light_off", param2 = node.param2})
|
||||
end
|
||||
}}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_craft({
|
||||
output = "meseconductors:mese_light_off 2",
|
||||
recipe = {
|
||||
{ "", "default:glass", ""},
|
||||
{ "mesecons:mesecon", "default:torch", "mesecons:mesecon"},
|
||||
{ "", "default:glass", ""}
|
||||
},
|
||||
})
|
||||
|
||||
|
|
@ -0,0 +1,532 @@
|
|||
# Blender v2.75 (sub 0) OBJ File: 'mese_light.blend'
|
||||
# www.blender.org
|
||||
mtllib mese_light.mtl
|
||||
o mese_light_Cube.001
|
||||
v -0.000000 -0.500000 -0.360196
|
||||
v -0.137841 -0.500000 -0.332777
|
||||
v -0.254697 -0.500000 -0.254697
|
||||
v -0.332777 -0.500000 -0.137841
|
||||
v -0.360196 -0.500000 0.000000
|
||||
v -0.332777 -0.500000 0.137841
|
||||
v -0.254697 -0.500000 0.254697
|
||||
v -0.137841 -0.500000 0.332777
|
||||
v -0.000000 -0.500000 0.360196
|
||||
v 0.137841 -0.500000 0.332777
|
||||
v 0.254697 -0.500000 0.254697
|
||||
v 0.332777 -0.500000 0.137841
|
||||
v 0.360196 -0.500000 -0.000000
|
||||
v 0.332777 -0.500000 -0.137841
|
||||
v 0.254697 -0.500000 -0.254697
|
||||
v 0.137841 -0.500000 -0.332777
|
||||
v -0.000000 -0.470856 -0.399097
|
||||
v -0.152728 -0.470856 -0.368718
|
||||
v -0.282204 -0.470856 -0.282204
|
||||
v -0.368718 -0.470856 -0.152728
|
||||
v -0.399097 -0.470856 0.000000
|
||||
v -0.368718 -0.470856 0.152728
|
||||
v -0.282204 -0.470856 0.282204
|
||||
v -0.152728 -0.470856 0.368718
|
||||
v -0.000000 -0.470856 0.399097
|
||||
v 0.152728 -0.470856 0.368718
|
||||
v 0.282204 -0.470856 0.282205
|
||||
v 0.368718 -0.470856 0.152728
|
||||
v 0.399097 -0.470856 -0.000000
|
||||
v 0.368718 -0.470856 -0.152728
|
||||
v 0.282204 -0.470856 -0.282205
|
||||
v 0.152728 -0.470856 -0.368718
|
||||
v -0.000000 -0.340856 -0.399097
|
||||
v -0.152728 -0.340856 -0.368718
|
||||
v -0.282204 -0.340856 -0.282204
|
||||
v -0.368718 -0.340856 -0.152728
|
||||
v -0.399097 -0.340856 0.000000
|
||||
v -0.368718 -0.340856 0.152728
|
||||
v -0.282204 -0.340856 0.282204
|
||||
v -0.152728 -0.340856 0.368718
|
||||
v -0.000000 -0.340856 0.399097
|
||||
v 0.152728 -0.340856 0.368718
|
||||
v 0.282204 -0.340856 0.282205
|
||||
v 0.368718 -0.340856 0.152728
|
||||
v 0.399097 -0.340856 -0.000000
|
||||
v 0.368718 -0.340856 -0.152728
|
||||
v 0.282204 -0.340856 -0.282205
|
||||
v 0.152728 -0.340856 -0.368718
|
||||
v -0.000000 -0.314025 -0.375978
|
||||
v -0.143880 -0.314025 -0.347358
|
||||
v -0.265856 -0.314025 -0.265856
|
||||
v -0.347358 -0.314025 -0.143880
|
||||
v -0.375978 -0.314025 0.000000
|
||||
v -0.347358 -0.314025 0.143880
|
||||
v -0.265856 -0.314025 0.265856
|
||||
v -0.143881 -0.314025 0.347358
|
||||
v -0.000000 -0.314025 0.375978
|
||||
v 0.143880 -0.314025 0.347358
|
||||
v 0.265856 -0.314025 0.265857
|
||||
v 0.347358 -0.314025 0.143881
|
||||
v 0.375978 -0.314025 -0.000000
|
||||
v 0.347358 -0.314025 -0.143881
|
||||
v 0.265856 -0.314025 -0.265857
|
||||
v 0.143880 -0.314025 -0.347358
|
||||
v -0.000000 -0.303292 -0.294344
|
||||
v -0.112641 -0.303292 -0.271939
|
||||
v -0.208133 -0.303292 -0.208133
|
||||
v -0.271939 -0.303292 -0.112641
|
||||
v -0.294344 -0.303292 0.000000
|
||||
v -0.271939 -0.303292 0.112641
|
||||
v -0.208133 -0.303292 0.208133
|
||||
v -0.112641 -0.303292 0.271939
|
||||
v -0.000000 -0.303292 0.294344
|
||||
v 0.112641 -0.303292 0.271939
|
||||
v 0.208133 -0.303292 0.208133
|
||||
v 0.271939 -0.303292 0.112641
|
||||
v 0.294344 -0.303292 -0.000000
|
||||
v 0.271939 -0.303292 -0.112641
|
||||
v 0.208133 -0.303292 -0.208133
|
||||
v 0.112640 -0.303292 -0.271939
|
||||
v -0.000000 -0.311431 0.000000
|
||||
v -0.000000 -0.500000 -0.000000
|
||||
v -0.129423 -0.303292 -0.312455
|
||||
v -0.000000 -0.303292 -0.338199
|
||||
v -0.239143 -0.303292 -0.239143
|
||||
v -0.312455 -0.303292 -0.129423
|
||||
v -0.338199 -0.303292 0.000000
|
||||
v -0.312455 -0.303292 0.129423
|
||||
v -0.239143 -0.303292 0.239143
|
||||
v -0.129423 -0.303292 0.312455
|
||||
v -0.000000 -0.303292 0.338199
|
||||
v 0.129423 -0.303292 0.312455
|
||||
v 0.239143 -0.303292 0.239143
|
||||
v 0.312455 -0.303292 0.129423
|
||||
v 0.338199 -0.303292 -0.000000
|
||||
v 0.312455 -0.303292 -0.129423
|
||||
v 0.239143 -0.303292 -0.239143
|
||||
v 0.129423 -0.303292 -0.312455
|
||||
v -0.104207 -0.311431 -0.251578
|
||||
v -0.000000 -0.311431 -0.272306
|
||||
v -0.192549 -0.311431 -0.192549
|
||||
v -0.251578 -0.311431 -0.104207
|
||||
v -0.272306 -0.311431 0.000000
|
||||
v -0.251578 -0.311431 0.104207
|
||||
v -0.192549 -0.311431 0.192549
|
||||
v -0.104207 -0.311431 0.251578
|
||||
v -0.000000 -0.311431 0.272306
|
||||
v 0.104207 -0.311431 0.251578
|
||||
v 0.192549 -0.311431 0.192549
|
||||
v 0.251578 -0.311431 0.104207
|
||||
v 0.272306 -0.311431 -0.000000
|
||||
v 0.251578 -0.311431 -0.104207
|
||||
v 0.192549 -0.311431 -0.192549
|
||||
v 0.104207 -0.311431 -0.251578
|
||||
vt 0.906877 0.255885
|
||||
vt 0.906877 0.187404
|
||||
vt 1.125240 0.187404
|
||||
vt 1.125240 0.255885
|
||||
vt -1.058388 0.255885
|
||||
vt -1.058388 0.187404
|
||||
vt -0.840026 0.187404
|
||||
vt -0.840026 0.255885
|
||||
vt 0.688514 0.255885
|
||||
vt 0.688514 0.187404
|
||||
vt -1.276751 0.255885
|
||||
vt -1.276751 0.187404
|
||||
vt 0.470151 0.255885
|
||||
vt 0.470151 0.187404
|
||||
vt 1.998691 0.255885
|
||||
vt 1.998691 0.187404
|
||||
vt 2.217053 0.187404
|
||||
vt 2.217053 0.255885
|
||||
vt 0.251788 0.255885
|
||||
vt 0.251788 0.187404
|
||||
vt 1.780328 0.255885
|
||||
vt 1.780328 0.187404
|
||||
vt 0.033425 0.255885
|
||||
vt 0.033425 0.187404
|
||||
vt 1.561965 0.255885
|
||||
vt 1.561965 0.187404
|
||||
vt -0.184938 0.255885
|
||||
vt -0.184938 0.187404
|
||||
vt 1.343602 0.255885
|
||||
vt 1.343602 0.187404
|
||||
vt -0.621663 0.255885
|
||||
vt -0.621663 0.187404
|
||||
vt -0.403300 0.187404
|
||||
vt -0.403300 0.255885
|
||||
vt -0.403300 0.004252
|
||||
vt -0.184938 0.004252
|
||||
vt 1.125240 0.004252
|
||||
vt 1.343602 0.004252
|
||||
vt -0.840026 0.004252
|
||||
vt -0.621663 0.004252
|
||||
vt 0.906877 0.004252
|
||||
vt -1.058388 0.004252
|
||||
vt 0.688514 0.004252
|
||||
vt -1.276751 0.004252
|
||||
vt 0.470151 0.004252
|
||||
vt 1.998691 0.004252
|
||||
vt 2.217053 0.004252
|
||||
vt 0.251788 0.004252
|
||||
vt 1.780328 0.004252
|
||||
vt 0.033425 0.004252
|
||||
vt 1.561965 0.004252
|
||||
vt 0.695253 0.269939
|
||||
vt 0.695253 0.309841
|
||||
vt 0.524449 0.309841
|
||||
vt 0.524449 0.269939
|
||||
vt -0.500372 0.269939
|
||||
vt -0.500372 0.309841
|
||||
vt -0.671176 0.309841
|
||||
vt -0.671176 0.269939
|
||||
vt 0.866056 0.269939
|
||||
vt 0.866056 0.309841
|
||||
vt -0.329569 0.269939
|
||||
vt -0.329569 0.309841
|
||||
vt 1.207663 0.269939
|
||||
vt 1.207663 0.309841
|
||||
vt 1.036859 0.309841
|
||||
vt 1.036859 0.269939
|
||||
vt -0.158765 0.269939
|
||||
vt -0.158765 0.309841
|
||||
vt 1.378466 0.269939
|
||||
vt 1.378466 0.309841
|
||||
vt 0.012038 0.269939
|
||||
vt 0.012038 0.309841
|
||||
vt 1.549270 0.269939
|
||||
vt 1.549270 0.309841
|
||||
vt 0.182842 0.269939
|
||||
vt 0.182842 0.309841
|
||||
vt 1.720073 0.269939
|
||||
vt 1.720073 0.309841
|
||||
vt 0.353645 0.269939
|
||||
vt 0.353645 0.309841
|
||||
vt -0.841979 0.269939
|
||||
vt -0.841979 0.309841
|
||||
vt -1.012783 0.309841
|
||||
vt -1.012783 0.269939
|
||||
vt 1.720073 0.354087
|
||||
vt 1.549270 0.354087
|
||||
vt 0.353645 0.354087
|
||||
vt 0.182842 0.354087
|
||||
vt -0.841979 0.354087
|
||||
vt -1.012783 0.354087
|
||||
vt 0.524449 0.354087
|
||||
vt -0.671176 0.354087
|
||||
vt 0.695253 0.354087
|
||||
vt -0.500372 0.354087
|
||||
vt 0.866056 0.354087
|
||||
vt -0.329569 0.354087
|
||||
vt 1.207663 0.354087
|
||||
vt 1.036859 0.354087
|
||||
vt -0.158765 0.354087
|
||||
vt 1.378466 0.354087
|
||||
vt 0.012038 0.354087
|
||||
vt 0.526729 0.806887
|
||||
vt 0.682966 0.775809
|
||||
vt 0.682966 0.837964
|
||||
vt 0.495651 0.650650
|
||||
vt 0.557806 0.650650
|
||||
vt 0.659180 0.895388
|
||||
vt 0.615230 0.674436
|
||||
vt 0.394278 0.895388
|
||||
vt 0.438228 0.939338
|
||||
vt 0.495651 0.963124
|
||||
vt 0.438228 0.674436
|
||||
vt 0.557806 0.963124
|
||||
vt 0.615230 0.939338
|
||||
vt 0.394278 0.718386
|
||||
vt 0.370492 0.775809
|
||||
vt 0.659180 0.718386
|
||||
vt 0.370492 0.837964
|
||||
vt 0.162053 0.964004
|
||||
vt 0.193812 0.804345
|
||||
vt 0.225570 0.964004
|
||||
vt 0.162054 0.644686
|
||||
vt 0.103372 0.668993
|
||||
vt 0.284251 0.939698
|
||||
vt 0.058459 0.713906
|
||||
vt 0.329164 0.894785
|
||||
vt 0.034153 0.772587
|
||||
vt 0.353471 0.836103
|
||||
vt 0.034153 0.836103
|
||||
vt 0.353471 0.772587
|
||||
vt 0.058459 0.894785
|
||||
vt 0.329164 0.713906
|
||||
vt 0.103372 0.939698
|
||||
vt 0.284251 0.668993
|
||||
vt 0.225570 0.644686
|
||||
vt 1.036859 0.403494
|
||||
vt 1.207663 0.403494
|
||||
vt 1.378466 0.403494
|
||||
vt 1.549270 0.403494
|
||||
vt 1.720073 0.403494
|
||||
vt -1.012783 0.403494
|
||||
vt -0.841979 0.403494
|
||||
vt -0.671176 0.403494
|
||||
vt -0.500372 0.403494
|
||||
vt -0.329569 0.403494
|
||||
vt -0.158765 0.403494
|
||||
vt 0.012038 0.403494
|
||||
vt 0.182842 0.403494
|
||||
vt 0.353645 0.403494
|
||||
vt 0.524449 0.403494
|
||||
vt 0.695253 0.403494
|
||||
vt 0.866056 0.403494
|
||||
vt 1.036859 0.429961
|
||||
vt 1.207663 0.429961
|
||||
vt 1.378466 0.429961
|
||||
vt 1.549270 0.429961
|
||||
vt 1.720073 0.429961
|
||||
vt -1.012783 0.429961
|
||||
vt -0.841979 0.429961
|
||||
vt -0.671176 0.429961
|
||||
vt -0.500372 0.429961
|
||||
vt -0.329569 0.429961
|
||||
vt -0.158765 0.429961
|
||||
vt 0.012038 0.429961
|
||||
vt 0.182842 0.429961
|
||||
vt 0.353645 0.429961
|
||||
vt 0.524449 0.429961
|
||||
vt 0.695253 0.429961
|
||||
vt 0.866056 0.429961
|
||||
vn 0.247900 -0.936500 0.247900
|
||||
vn 0.639500 -0.426600 0.639500
|
||||
vn 0.346100 -0.426600 0.835600
|
||||
vn 0.134200 -0.936500 0.323900
|
||||
vn -0.323900 -0.936500 -0.134200
|
||||
vn -0.835600 -0.426600 -0.346100
|
||||
vn -0.639500 -0.426600 -0.639500
|
||||
vn -0.247900 -0.936500 -0.247900
|
||||
vn 0.323900 -0.936500 0.134200
|
||||
vn 0.835600 -0.426600 0.346100
|
||||
vn -0.350600 -0.936500 0.000000
|
||||
vn -0.904400 -0.426600 0.000000
|
||||
vn 0.350600 -0.936500 0.000000
|
||||
vn 0.904400 -0.426600 0.000000
|
||||
vn -0.323900 -0.936500 0.134200
|
||||
vn -0.835600 -0.426600 0.346100
|
||||
vn 0.323900 -0.936500 -0.134200
|
||||
vn 0.835600 -0.426600 -0.346100
|
||||
vn -0.247900 -0.936500 0.247900
|
||||
vn -0.639500 -0.426600 0.639500
|
||||
vn 0.247900 -0.936500 -0.247900
|
||||
vn 0.639500 -0.426600 -0.639500
|
||||
vn -0.134200 -0.936500 0.323900
|
||||
vn -0.346100 -0.426600 0.835600
|
||||
vn 0.134200 -0.936500 -0.323900
|
||||
vn 0.346100 -0.426600 -0.835600
|
||||
vn 0.000000 -0.936500 0.350600
|
||||
vn 0.000000 -0.426600 0.904400
|
||||
vn -0.134200 -0.936500 -0.323900
|
||||
vn -0.346100 -0.426600 -0.835600
|
||||
vn 0.000000 -0.426600 -0.904400
|
||||
vn 0.000000 -0.936500 -0.350600
|
||||
vn 0.000000 0.334800 -0.942300
|
||||
vn 0.360600 0.334800 -0.870500
|
||||
vn 0.360600 0.334800 0.870500
|
||||
vn 0.000000 0.334800 0.942300
|
||||
vn -0.666300 0.334800 -0.666300
|
||||
vn -0.360600 0.334800 -0.870500
|
||||
vn 0.666300 0.334800 0.666300
|
||||
vn -0.870500 0.334800 -0.360600
|
||||
vn 0.870500 0.334800 0.360600
|
||||
vn -0.942300 0.334800 0.000000
|
||||
vn 0.942300 0.334800 0.000000
|
||||
vn -0.870500 0.334800 0.360600
|
||||
vn 0.870500 0.334800 -0.360600
|
||||
vn -0.666300 0.334800 0.666300
|
||||
vn 0.666300 0.334800 -0.666300
|
||||
vn -0.360600 0.334800 0.870500
|
||||
vn 0.397800 0.826700 -0.397800
|
||||
vn 0.519800 0.826700 -0.215300
|
||||
vn -0.215300 0.826700 0.519800
|
||||
vn -0.397800 0.826700 0.397800
|
||||
vn 0.215300 0.826700 -0.519800
|
||||
vn 0.000000 0.826700 0.562600
|
||||
vn -0.215300 0.826700 -0.519800
|
||||
vn 0.000000 0.826700 -0.562600
|
||||
vn 0.215300 0.826700 0.519800
|
||||
vn -0.397800 0.826700 -0.397800
|
||||
vn 0.397800 0.826700 0.397800
|
||||
vn -0.519800 0.826700 -0.215300
|
||||
vn 0.519800 0.826700 0.215300
|
||||
vn -0.562600 0.826700 0.000000
|
||||
vn 0.562600 0.826700 0.000000
|
||||
vn -0.519800 0.826700 0.215300
|
||||
vn -0.154800 0.987900 0.000000
|
||||
vn -0.143000 0.987900 -0.059200
|
||||
vn 0.154800 0.987900 0.000000
|
||||
vn 0.143000 0.987900 0.059200
|
||||
vn -0.143000 0.987900 0.059200
|
||||
vn 0.143000 0.987900 -0.059200
|
||||
vn -0.109400 0.987900 0.109400
|
||||
vn 0.109400 0.987900 -0.109400
|
||||
vn -0.059200 0.987900 0.143000
|
||||
vn 0.059200 0.987900 -0.143000
|
||||
vn 0.000000 0.987900 0.154800
|
||||
vn -0.059200 0.987900 -0.143000
|
||||
vn 0.000000 0.987900 -0.154800
|
||||
vn 0.059200 0.987900 0.143000
|
||||
vn -0.109400 0.987900 -0.109400
|
||||
vn 0.109400 0.987900 0.109400
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -0.182100 0.980400 -0.075400
|
||||
vn -0.197100 0.980400 0.000000
|
||||
vn 0.075400 0.980400 -0.182100
|
||||
vn 0.000000 0.980400 -0.197100
|
||||
vn -0.182100 0.980400 0.075400
|
||||
vn -0.075400 0.980400 -0.182100
|
||||
vn 0.139300 0.980400 0.139300
|
||||
vn 0.075400 0.980400 0.182100
|
||||
vn 0.000000 0.980400 0.197100
|
||||
vn 0.139300 0.980400 -0.139300
|
||||
vn -0.075400 0.980400 0.182100
|
||||
vn -0.139300 0.980400 0.139300
|
||||
vn 0.182100 0.980400 -0.075400
|
||||
vn 0.197100 0.980400 0.000000
|
||||
vn -0.139300 0.980400 -0.139300
|
||||
vn 0.182100 0.980400 0.075400
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 0.988000 0.154500
|
||||
vn 0.059100 0.988000 0.142700
|
||||
vn 0.109200 0.988000 0.109200
|
||||
vn 0.142700 0.988000 0.059100
|
||||
vn 0.154500 0.988000 0.000000
|
||||
vn 0.142700 0.988000 -0.059100
|
||||
vn 0.109200 0.988000 -0.109200
|
||||
vn 0.059100 0.988000 -0.142700
|
||||
vn 0.000000 0.988000 -0.154500
|
||||
vn -0.059100 0.988000 -0.142700
|
||||
vn -0.109200 0.988000 -0.109200
|
||||
vn -0.142700 0.988000 -0.059100
|
||||
vn -0.154500 0.988000 0.000000
|
||||
vn -0.142700 0.988000 0.059100
|
||||
vn -0.109200 0.988000 0.109200
|
||||
vn -0.059100 0.988000 0.142700
|
||||
usemtl None
|
||||
s 1
|
||||
f 11/1/1 27/2/2 26/3/3 10/4/4
|
||||
f 4/5/5 20/6/6 19/7/7 3/8/8
|
||||
f 12/9/9 28/10/10 27/2/2 11/1/1
|
||||
f 5/11/11 21/12/12 20/6/6 4/5/5
|
||||
f 13/13/13 29/14/14 28/10/10 12/9/9
|
||||
f 6/15/15 22/16/16 21/17/12 5/18/11
|
||||
f 14/19/17 30/20/18 29/14/14 13/13/13
|
||||
f 7/21/19 23/22/20 22/16/16 6/15/15
|
||||
f 15/23/21 31/24/22 30/20/18 14/19/17
|
||||
f 8/25/23 24/26/24 23/22/20 7/21/19
|
||||
f 16/27/25 32/28/26 31/24/22 15/23/21
|
||||
f 9/29/27 25/30/28 24/26/24 8/25/23
|
||||
f 2/31/29 18/32/30 17/33/31 1/34/32
|
||||
f 1/34/32 17/33/31 32/28/26 16/27/25
|
||||
f 10/4/4 26/3/3 25/30/28 9/29/27
|
||||
f 3/8/8 19/7/7 18/32/30 2/31/29
|
||||
f 17/33/31 33/35/33 48/36/34 32/28/26
|
||||
f 26/3/3 42/37/35 41/38/36 25/30/28
|
||||
f 19/7/7 35/39/37 34/40/38 18/32/30
|
||||
f 27/2/2 43/41/39 42/37/35 26/3/3
|
||||
f 20/6/6 36/42/40 35/39/37 19/7/7
|
||||
f 28/10/10 44/43/41 43/41/39 27/2/2
|
||||
f 21/12/12 37/44/42 36/42/40 20/6/6
|
||||
f 29/14/14 45/45/43 44/43/41 28/10/10
|
||||
f 22/16/16 38/46/44 37/47/42 21/17/12
|
||||
f 30/20/18 46/48/45 45/45/43 29/14/14
|
||||
f 23/22/20 39/49/46 38/46/44 22/16/16
|
||||
f 31/24/22 47/50/47 46/48/45 30/20/18
|
||||
f 24/26/24 40/51/48 39/49/46 23/22/20
|
||||
f 32/28/26 48/36/34 47/50/47 31/24/22
|
||||
f 25/30/28 41/38/36 40/51/48 24/26/24
|
||||
f 18/32/30 34/40/38 33/35/33 17/33/31
|
||||
f 47/52/47 63/53/49 62/54/50 46/55/45
|
||||
f 40/56/48 56/57/51 55/58/52 39/59/46
|
||||
f 48/60/34 64/61/53 63/53/49 47/52/47
|
||||
f 41/62/36 57/63/54 56/57/51 40/56/48
|
||||
f 34/64/38 50/65/55 49/66/56 33/67/33
|
||||
f 33/67/33 49/66/56 64/61/53 48/60/34
|
||||
f 42/68/35 58/69/57 57/63/54 41/62/36
|
||||
f 35/70/37 51/71/58 50/65/55 34/64/38
|
||||
f 43/72/39 59/73/59 58/69/57 42/68/35
|
||||
f 36/74/40 52/75/60 51/71/58 35/70/37
|
||||
f 44/76/41 60/77/61 59/73/59 43/72/39
|
||||
f 37/78/42 53/79/62 52/75/60 36/74/40
|
||||
f 45/80/43 61/81/63 60/77/61 44/76/41
|
||||
f 38/82/44 54/83/64 53/84/62 37/85/42
|
||||
f 46/55/45 62/54/50 61/81/63 45/80/43
|
||||
f 39/59/46 55/58/52 54/83/64 38/82/44
|
||||
f 53/79/62 87/86/65 86/87/66 52/75/60
|
||||
f 61/81/63 95/88/67 94/89/68 60/77/61
|
||||
f 54/83/64 88/90/69 87/91/65 53/84/62
|
||||
f 62/54/50 96/92/70 95/88/67 61/81/63
|
||||
f 55/58/52 89/93/71 88/90/69 54/83/64
|
||||
f 63/53/49 97/94/72 96/92/70 62/54/50
|
||||
f 56/57/51 90/95/73 89/93/71 55/58/52
|
||||
f 64/61/53 98/96/74 97/94/72 63/53/49
|
||||
f 57/63/54 91/97/75 90/95/73 56/57/51
|
||||
f 50/65/55 83/98/76 84/99/77 49/66/56
|
||||
f 49/66/56 84/99/77 98/96/74 64/61/53
|
||||
f 58/69/57 92/100/78 91/97/75 57/63/54
|
||||
f 51/71/58 85/101/79 83/98/76 50/65/55
|
||||
f 59/73/59 93/102/80 92/100/78 58/69/57
|
||||
f 52/75/60 86/87/66 85/101/79 51/71/58
|
||||
f 60/77/61 94/89/68 93/102/80 59/73/59
|
||||
f 81/103/81 110/104/82 111/105/83
|
||||
f 81/103/81 106/106/84 107/107/85
|
||||
f 112/108/86 81/103/81 111/105/83
|
||||
f 107/107/85 108/109/87 81/103/81
|
||||
f 101/110/88 81/103/81 99/111/89
|
||||
f 81/103/81 100/112/90 99/111/89
|
||||
f 81/103/81 105/113/91 106/106/84
|
||||
f 114/114/92 81/103/81 113/115/93
|
||||
f 81/103/81 104/116/94 105/113/91
|
||||
f 113/115/93 81/103/81 112/108/86
|
||||
f 103/117/95 104/116/94 81/103/81
|
||||
f 108/109/87 109/118/96 81/103/81
|
||||
f 102/119/97 81/103/81 101/110/88
|
||||
f 109/118/96 110/104/82 81/103/81
|
||||
f 103/117/95 81/103/81 102/119/97
|
||||
f 114/114/92 100/112/90 81/103/81
|
||||
f 10/120/4 82/121/98 11/122/1
|
||||
f 3/123/8 82/121/98 4/124/5
|
||||
f 11/122/1 82/121/98 12/125/9
|
||||
f 4/124/5 82/121/98 5/126/11
|
||||
f 12/125/9 82/121/98 13/127/13
|
||||
f 5/126/11 82/121/98 6/128/15
|
||||
f 13/127/13 82/121/98 14/129/17
|
||||
f 6/128/15 82/121/98 7/130/19
|
||||
f 14/129/17 82/121/98 15/131/21
|
||||
f 7/130/19 82/121/98 8/132/23
|
||||
f 15/131/21 82/121/98 16/133/25
|
||||
f 8/132/23 82/121/98 9/134/27
|
||||
f 1/135/32 82/121/98 2/136/29
|
||||
f 16/133/25 82/121/98 1/135/32
|
||||
f 9/134/27 82/121/98 10/120/4
|
||||
f 2/136/29 82/121/98 3/123/8
|
||||
f 65/137/99 84/99/77 83/98/76 66/138/100
|
||||
f 66/138/100 83/98/76 85/101/79 67/139/101
|
||||
f 67/139/101 85/101/79 86/87/66 68/140/102
|
||||
f 68/140/102 86/87/66 87/86/65 69/141/103
|
||||
f 69/142/103 87/91/65 88/90/69 70/143/104
|
||||
f 70/143/104 88/90/69 89/93/71 71/144/105
|
||||
f 71/144/105 89/93/71 90/95/73 72/145/106
|
||||
f 72/145/106 90/95/73 91/97/75 73/146/107
|
||||
f 73/146/107 91/97/75 92/100/78 74/147/108
|
||||
f 74/147/108 92/100/78 93/102/80 75/148/109
|
||||
f 75/148/109 93/102/80 94/89/68 76/149/110
|
||||
f 76/149/110 94/89/68 95/88/67 77/150/111
|
||||
f 77/150/111 95/88/67 96/92/70 78/151/112
|
||||
f 78/151/112 96/92/70 97/94/72 79/152/113
|
||||
f 79/152/113 97/94/72 98/96/74 80/153/114
|
||||
f 80/153/114 98/96/74 84/99/77 65/137/99
|
||||
f 100/154/90 65/137/99 66/138/100 99/155/89
|
||||
f 99/155/89 66/138/100 67/139/101 101/156/88
|
||||
f 101/156/88 67/139/101 68/140/102 102/157/97
|
||||
f 102/157/97 68/140/102 69/141/103 103/158/95
|
||||
f 103/159/95 69/142/103 70/143/104 104/160/94
|
||||
f 104/160/94 70/143/104 71/144/105 105/161/91
|
||||
f 105/161/91 71/144/105 72/145/106 106/162/84
|
||||
f 106/162/84 72/145/106 73/146/107 107/163/85
|
||||
f 107/163/85 73/146/107 74/147/108 108/164/87
|
||||
f 108/164/87 74/147/108 75/148/109 109/165/96
|
||||
f 109/165/96 75/148/109 76/149/110 110/166/82
|
||||
f 110/166/82 76/149/110 77/150/111 111/167/83
|
||||
f 111/167/83 77/150/111 78/151/112 112/168/86
|
||||
f 112/168/86 78/151/112 79/152/113 113/169/93
|
||||
f 113/169/93 79/152/113 80/153/114 114/170/92
|
||||
f 114/170/92 80/153/114 65/137/99 100/154/90
|
|
@ -0,0 +1,356 @@
|
|||
local S = meseconductors.gettext
|
||||
|
||||
function meseconductors:register_wire_block(mod, node)
|
||||
|
||||
if minetest.get_modpath(mod) then
|
||||
|
||||
local offstate = "meseconductors:"..mod.."_"..node
|
||||
local onstate = "meseconductors:"..mod.."_"..node.."_on"
|
||||
local description = minetest.registered_nodes[mod ..":"..node].description .. "(conductable)"
|
||||
local textures2 = minetest.registered_nodes[mod ..":"..node].tiles
|
||||
local groups = table.copy(minetest.registered_nodes[mod ..":"..node].groups)
|
||||
table.insert(groups, 2, oddly_breakable_by_hand)
|
||||
local drawtype = minetest.registered_nodes[mod ..":"..node].drawtype
|
||||
local paramtype = minetest.registered_nodes[mod ..":"..node].paramtype
|
||||
local sounds = minetest.registered_nodes[mod ..":"..node].sounds
|
||||
local sunlight_propagates = minetest.registered_nodes[mod ..":"..node].sunlight_propagates
|
||||
local light_source = minetest.registered_nodes[mod ..":"..node].light_source
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
local mesewire_rules =
|
||||
{
|
||||
{x = 1, y = 0, z = 0},
|
||||
{x =-1, y = 0, z = 0},
|
||||
{x = 0, y = 1, z = 0},
|
||||
{x = 0, y =-1, z = 0},
|
||||
{x = 0, y = 0, z = 1},
|
||||
{x = 0, y = 0, z =-1},
|
||||
}
|
||||
|
||||
minetest.register_node(offstate, {
|
||||
tiles = textures2,
|
||||
groups = groups,
|
||||
description = description,
|
||||
drawtype = drawtype,
|
||||
paramtype = paramtype,
|
||||
sounds = sounds,
|
||||
sunlight_propagates = sunlight_propagates,
|
||||
light_source = light_source,
|
||||
mesecons = {conductor = {
|
||||
state = "off",
|
||||
onstate = "meseconductors:"..mod.."_"..node.."_on",
|
||||
rules = mesewire_rules
|
||||
}}
|
||||
})
|
||||
local textures_on = table.copy(textures2)
|
||||
if meseconductors.highlight_conducting then
|
||||
for i = 1, #textures_on, 1 do
|
||||
local t = textures_on[i]
|
||||
minetest.log("error", "type " .. type(t))
|
||||
if type(t) == "string" then
|
||||
|
||||
textures_on[i] = t .."^[brighten"
|
||||
else
|
||||
textures_on[i] = textures2[i]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local groups_on = table.copy(groups)
|
||||
table.insert(groups_on, 1, not_in_creative_inventory)
|
||||
|
||||
|
||||
minetest.register_node(onstate, {
|
||||
tiles = textures_on,
|
||||
groups = groups_on,
|
||||
drop = offstate,
|
||||
drawtype = drawtype,
|
||||
paramtype = paramtype,
|
||||
sounds = sounds,
|
||||
sunlight_propagates = sunlight_propagates,
|
||||
light_source = light_source,
|
||||
mesecons = {conductor = {
|
||||
state = "on",
|
||||
offstate = "meseconductors:"..mod.."_"..node,
|
||||
rules = mesewire_rules
|
||||
}},
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"wood")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"tree")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"dirt")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"dirt_with_grass")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"dirt_with_snow")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"cobble")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"desert_cobble")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"sand")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"desert_sand")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"stone")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"desert_stone")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"goldblock")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"diamondblock")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"jungletree")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"junglewood")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"mossycobble")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"obsidian")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"obsidian_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"glass")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"sandstone")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"sandstonebrick")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"stonebrick")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"pine_tree")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"pine_wood")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"acacia_tree")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"acacia_wood")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"brick")
|
||||
meseconductors:register_wire_block(
|
||||
"default",
|
||||
"cactus")
|
||||
|
||||
if meseconductors.use_moreblocks then
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"super_glow_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"glow_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"iron_stone_bricks")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"grey_bricks")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"clean_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"cactus_brick")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"stone_tile")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"split_stone_tile")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"wood_tile")
|
||||
meseconductors:register_wire_block(
|
||||
"moreblocks",
|
||||
"wood_tile_full")
|
||||
end
|
||||
|
||||
if meseconductors.use_building_blocks then
|
||||
meseconductors:register_wire_block(
|
||||
"building_blocks",
|
||||
"Adobe")
|
||||
meseconductors:register_wire_block(
|
||||
"building_blocks",
|
||||
"hardwood")
|
||||
meseconductors:register_wire_block(
|
||||
"building_blocks",
|
||||
"Tar")
|
||||
meseconductors:register_wire_block(
|
||||
"building_blocks",
|
||||
"grate")
|
||||
meseconductors:register_wire_block(
|
||||
"building_blocks",
|
||||
"Marble")
|
||||
end
|
||||
|
||||
if meseconductors.use_quartz then
|
||||
meseconductors:register_wire_block(
|
||||
"quartz",
|
||||
"block")
|
||||
meseconductors:register_wire_block(
|
||||
"quartz",
|
||||
"chiseled")
|
||||
meseconductors:register_wire_block(
|
||||
"quartz",
|
||||
"pillar")
|
||||
|
||||
end
|
||||
|
||||
if meseconductors.use_glooptest then
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"glooptest",
|
||||
"crystal_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"glooptest",
|
||||
"reinforced_crystal_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"glooptest",
|
||||
"akalin_crystal_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"glooptest",
|
||||
"alatro_crystal_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"glooptest",
|
||||
"arol_crystal_glass")
|
||||
meseconductors:register_wire_block(
|
||||
"glooptest",
|
||||
"talinite_crystal_glass")
|
||||
|
||||
end
|
||||
|
||||
|
||||
if meseconductors.use_gloopblocks then
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"gloopblocks",
|
||||
"rainbow_block")
|
||||
meseconductors:register_wire_block(
|
||||
"gloopblocks",
|
||||
"cement")
|
||||
meseconductors:register_wire_block(
|
||||
"gloopblocks",
|
||||
"pavement")
|
||||
meseconductors:register_wire_block(
|
||||
"gloopblocks",
|
||||
"stone_mossy")
|
||||
end
|
||||
|
||||
if meseconductors.use_moretrees then
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"beech_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"beech_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"apple_tree_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"apple_tree_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"oak_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"oak_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"sequoia_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"sequoia_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"birch_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"birch_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"palm_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"palm_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"spruce_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"spruce_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"willow_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"willow_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"rubber_tree_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"rubber_tree_planks")
|
||||
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"fir_trunk")
|
||||
meseconductors:register_wire_block(
|
||||
"moretrees",
|
||||
"fir_planks")
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 445 B |
Binary file not shown.
After Width: | Height: | Size: 594 B |
Binary file not shown.
After Width: | Height: | Size: 521 B |
Binary file not shown.
After Width: | Height: | Size: 635 B |
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Loading…
Reference in New Issue