Add mod pipeworks
|
@ -0,0 +1,502 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you have the freedom to distribute copies of free software (and charge
|
||||
for this service if you wish); that you receive source code or can get
|
||||
it if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy,
|
||||
and you may at your option offer warranty protection in exchange for a
|
||||
fee.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote
|
||||
it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser General Public License from time to time.
|
||||
Such new versions will be similar in spirit to the present version,
|
||||
but may differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
specifies a version number of this License which applies to it and
|
||||
"any later version", you have the option of following the terms and
|
||||
conditions either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes make exceptions for this. Our
|
||||
decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
If you develop a new library, and you want it to be of the greatest
|
||||
possible use to the public, we recommend making it free software that
|
||||
everyone can redistribute and change. You can do so by permitting
|
||||
redistribution under these terms (or, alternatively, under the terms of the
|
||||
ordinary General Public License).
|
||||
|
||||
To apply these terms, attach the following notices to the library. It is
|
||||
safest to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least the
|
||||
"copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the library's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1990
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
|
@ -0,0 +1,22 @@
|
|||
This mod uses nodeboxes to supply a complete set of 3D pipes and tubes,
|
||||
along devices that work with them.
|
||||
|
||||
See https://github.com/VanessaE/pipeworks/wiki/ for detailed information about usage of this mod.
|
||||
|
||||
Unlike the previous version of this mod, these pipes are rounded, and when
|
||||
placed, they'll automatically join together as needed. Pipes can go vertically
|
||||
or horizontally, and there are enough nodes defined to allow for all possible
|
||||
connections. Valves and pumps can only be placed horizontally, and will
|
||||
automatically rotate and join with neighboring pipes as objects are added, as
|
||||
well as joining with each other under certain circumstances.
|
||||
|
||||
Pipes come in two variants: one type bears one or more dark windows on each
|
||||
pipe, suggesting they're empty, while the other type bears green-tinted
|
||||
windows, as if full (the two colors should also be easy to select if you want
|
||||
to change them in a paint program). These windows only appear on straight
|
||||
lengths and on certain junctions.
|
||||
|
||||
This mod is a work in progress.
|
||||
|
||||
Please note that owing to the nature of this mod, I have opted to use 64px
|
||||
textures. Anything less just looks terrible.
|
|
@ -0,0 +1,413 @@
|
|||
local autocrafterCache = {} -- caches some recipe data to avoid to call the slow function minetest.get_craft_result() every second
|
||||
|
||||
local craft_time = 1
|
||||
|
||||
local function count_index(invlist)
|
||||
local index = {}
|
||||
for _, stack in pairs(invlist) do
|
||||
if not stack:is_empty() then
|
||||
local stack_name = stack:get_name()
|
||||
index[stack_name] = (index[stack_name] or 0) + stack:get_count()
|
||||
end
|
||||
end
|
||||
return index
|
||||
end
|
||||
|
||||
local function get_item_info(stack)
|
||||
local name = stack:get_name()
|
||||
local def = minetest.registered_items[name]
|
||||
local description = def and def.description or "Unknown item"
|
||||
return description, name
|
||||
end
|
||||
|
||||
local function get_craft(pos, inventory, hash)
|
||||
local hash = hash or minetest.hash_node_position(pos)
|
||||
local craft = autocrafterCache[hash]
|
||||
if not craft then
|
||||
local recipe = inventory:get_list("recipe")
|
||||
local output, decremented_input = minetest.get_craft_result({method = "normal", width = 3, items = recipe})
|
||||
craft = {recipe = recipe, consumption=count_index(recipe), output = output, decremented_input = decremented_input}
|
||||
autocrafterCache[hash] = craft
|
||||
end
|
||||
return craft
|
||||
end
|
||||
|
||||
local function autocraft(inventory, craft)
|
||||
if not craft then return false end
|
||||
local output_item = craft.output.item
|
||||
|
||||
-- check if we have enough room in dst
|
||||
if not inventory:room_for_item("dst", output_item) then return false end
|
||||
local consumption = craft.consumption
|
||||
local inv_index = count_index(inventory:get_list("src"))
|
||||
-- check if we have enough material available
|
||||
for itemname, number in pairs(consumption) do
|
||||
if (not inv_index[itemname]) or inv_index[itemname] < number then return false end
|
||||
end
|
||||
-- consume material
|
||||
for itemname, number in pairs(consumption) do
|
||||
for i = 1, number do -- We have to do that since remove_item does not work if count > stack_max
|
||||
inventory:remove_item("src", ItemStack(itemname))
|
||||
end
|
||||
end
|
||||
|
||||
-- craft the result into the dst inventory and add any "replacements" as well
|
||||
inventory:add_item("dst", output_item)
|
||||
for i = 1, 9 do
|
||||
inventory:add_item("dst", craft.decremented_input.items[i])
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
-- returns false to stop the timer, true to continue running
|
||||
-- is started only from start_autocrafter(pos) after sanity checks and cached recipe
|
||||
local function run_autocrafter(pos, elapsed)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inventory = meta:get_inventory()
|
||||
local craft = get_craft(pos, inventory)
|
||||
local output_item = craft.output.item
|
||||
-- only use crafts that have an actual result
|
||||
if output_item:is_empty() then
|
||||
meta:set_string("infotext", "unconfigured Autocrafter: unknown recipe")
|
||||
return false
|
||||
end
|
||||
|
||||
for step = 1, math.floor(elapsed/craft_time) do
|
||||
local continue = autocraft(inventory, craft)
|
||||
if not continue then return false end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
local function start_crafter(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_int("enabled") == 1 then
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
if not timer:is_started() then
|
||||
timer:start(craft_time)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function after_inventory_change(pos)
|
||||
start_crafter(pos)
|
||||
end
|
||||
|
||||
-- note, that this function assumes allready being updated to virtual items
|
||||
-- and doesn't handle recipes with stacksizes > 1
|
||||
local function after_recipe_change(pos, inventory)
|
||||
local meta = minetest.get_meta(pos)
|
||||
-- if we emptied the grid, there's no point in keeping it running or cached
|
||||
if inventory:is_empty("recipe") then
|
||||
minetest.get_node_timer(pos):stop()
|
||||
autocrafterCache[minetest.hash_node_position(pos)] = nil
|
||||
meta:set_string("infotext", "unconfigured Autocrafter")
|
||||
inventory:set_stack("output", 1, "")
|
||||
return
|
||||
end
|
||||
local recipe_changed = false
|
||||
local recipe = inventory:get_list("recipe")
|
||||
|
||||
local hash = minetest.hash_node_position(pos)
|
||||
local craft = autocrafterCache[hash]
|
||||
|
||||
if craft then
|
||||
-- check if it changed
|
||||
local cached_recipe = craft.recipe
|
||||
for i = 1, 9 do
|
||||
if recipe[i]:get_name() ~= cached_recipe[i]:get_name() then
|
||||
autocrafterCache[hash] = nil -- invalidate recipe
|
||||
craft = nil
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
craft = craft or get_craft(pos, inventory, hash)
|
||||
local output_item = craft.output.item
|
||||
local description, name = get_item_info(output_item)
|
||||
meta:set_string("infotext", string.format("'%s' Autocrafter (%s)", description, name))
|
||||
inventory:set_stack("output", 1, output_item)
|
||||
|
||||
after_inventory_change(pos)
|
||||
end
|
||||
|
||||
-- clean out unknown items and groups, which would be handled like unknown items in the crafting grid
|
||||
-- if minetest supports query by group one day, this might replace them
|
||||
-- with a canonical version instead
|
||||
local function normalize(item_list)
|
||||
for i = 1, #item_list do
|
||||
local name = item_list[i]
|
||||
if not minetest.registered_items[name] then
|
||||
item_list[i] = ""
|
||||
end
|
||||
end
|
||||
return item_list
|
||||
end
|
||||
|
||||
local function on_output_change(pos, inventory, stack)
|
||||
if not stack then
|
||||
inventory:set_list("output", {})
|
||||
inventory:set_list("recipe", {})
|
||||
else
|
||||
local input = minetest.get_craft_recipe(stack:get_name())
|
||||
if not input.items or input.type ~= "normal" then return end
|
||||
local items, width = normalize(input.items), input.width
|
||||
local item_idx, width_idx = 1, 1
|
||||
for i = 1, 9 do
|
||||
if width_idx <= width then
|
||||
inventory:set_stack("recipe", i, items[item_idx])
|
||||
item_idx = item_idx + 1
|
||||
else
|
||||
inventory:set_stack("recipe", i, ItemStack(""))
|
||||
end
|
||||
width_idx = (width_idx < 3) and (width_idx + 1) or 1
|
||||
end
|
||||
-- we'll set the output slot in after_recipe_change to the actual result of the new recipe
|
||||
end
|
||||
after_recipe_change(pos, inventory)
|
||||
end
|
||||
|
||||
-- returns false if we shouldn't bother attempting to start the timer again after this
|
||||
local function update_meta(meta, enabled)
|
||||
local state = enabled and "on" or "off"
|
||||
meta:set_int("enabled", enabled and 1 or 0)
|
||||
local fs = "size[8,12]"..
|
||||
"list[context;recipe;0,0;3,3;]"..
|
||||
"image[3,1;1,1;gui_hb_bg.png^[colorize:#141318:255]"..
|
||||
"list[context;output;3,1;1,1;]"..
|
||||
"image_button[3,2;1,0.6;pipeworks_button_" .. state .. ".png;" .. state .. ";;;false;pipeworks_button_interm.png]" ..
|
||||
"list[context;src;0,4.5;8,3;]"..
|
||||
"list[context;dst;4,0;4,3;]"..
|
||||
init.gui_bg..
|
||||
init.gui_bg_img..
|
||||
init.gui_slots..
|
||||
init.get_hotbar_bg(0,8) ..
|
||||
"list[current_player;main;0,8;8,4;]" ..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;src]" ..
|
||||
"listring[current_player;main]"..
|
||||
"listring[context;dst]" ..
|
||||
"listring[current_player;main]"
|
||||
if minetest.get_modpath("digilines") then
|
||||
fs = fs.."field[1,3.5;4,1;channel;Channel;${channel}]"
|
||||
fs = fs.."button_exit[5,3.2;2,1;save;Save]"
|
||||
end
|
||||
meta:set_string("formspec",fs)
|
||||
|
||||
-- toggling the button doesn't quite call for running a recipe change check
|
||||
-- so instead we run a minimal version for infotext setting only
|
||||
-- this might be more written code, but actually executes less
|
||||
local output = meta:get_inventory():get_stack("output", 1)
|
||||
if output:is_empty() then -- doesn't matter if paused or not
|
||||
meta:set_string("infotext", "unconfigured Autocrafter")
|
||||
return false
|
||||
end
|
||||
|
||||
local description, name = get_item_info(output)
|
||||
local infotext = enabled and string.format("'%s' Autocrafter (%s)", description, name)
|
||||
or string.format("paused '%s' Autocrafter", description)
|
||||
|
||||
meta:set_string("infotext", infotext)
|
||||
return enabled
|
||||
end
|
||||
|
||||
-- 1st version of the autocrafter had actual items in the crafting grid
|
||||
-- the 2nd replaced these with virtual items, dropped the content on update and set "virtual_items" to string "1"
|
||||
-- the third added an output inventory, changed the formspec and added a button for enabling/disabling
|
||||
-- so we work out way backwards on this history and update each single case to the newest version
|
||||
local function upgrade_autocrafter(pos, meta)
|
||||
local meta = meta or minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
|
||||
if inv:get_size("output") == 0 then -- we are version 2 or 1
|
||||
inv:set_size("output", 1)
|
||||
-- migrate the old autocrafters into an "enabled" state
|
||||
update_meta(meta, true)
|
||||
|
||||
if meta:get_string("virtual_items") == "1" then -- we are version 2
|
||||
-- we allready dropped stuff, so lets remove the metadatasetting (we are not being called again for this node)
|
||||
meta:set_string("virtual_items", "")
|
||||
else -- we are version 1
|
||||
local recipe = inv:get_list("recipe")
|
||||
if not recipe then return end
|
||||
for idx, stack in ipairs(recipe) do
|
||||
if not stack:is_empty() then
|
||||
minetest.add_item(pos, stack)
|
||||
stack:set_count(1)
|
||||
stack:set_wear(0)
|
||||
inv:set_stack("recipe", idx, stack)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- update the recipe, cache, and start the crafter
|
||||
autocrafterCache[minetest.hash_node_position(pos)] = nil
|
||||
after_recipe_change(pos, inv)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("pipeworks:autocrafter", {
|
||||
description = "Autocrafter",
|
||||
drawtype = "normal",
|
||||
tiles = {"pipeworks_autocrafter.png"},
|
||||
groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1},
|
||||
tube = {insert_object = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local added = inv:add_item("src", stack)
|
||||
after_inventory_change(pos)
|
||||
return added
|
||||
end,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:room_for_item("src", stack)
|
||||
end,
|
||||
input_inventory = "dst",
|
||||
connect_sides = {left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1}},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("src", 3*8)
|
||||
inv:set_size("recipe", 3*3)
|
||||
inv:set_size("dst", 4*3)
|
||||
inv:set_size("output", 1)
|
||||
update_meta(meta, false)
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not pipeworks.may_configure(pos, sender) then return end
|
||||
local meta = minetest.get_meta(pos)
|
||||
if fields.on then
|
||||
update_meta(meta, false)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
elseif fields.off then
|
||||
if update_meta(meta, true) then
|
||||
start_crafter(pos)
|
||||
end
|
||||
elseif fields.save then
|
||||
meta:set_string("channel",fields.channel)
|
||||
end
|
||||
end,
|
||||
can_dig = function(pos, player)
|
||||
upgrade_autocrafter(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return (inv:is_empty("src") and inv:is_empty("dst"))
|
||||
end,
|
||||
after_place_node = pipeworks.scan_for_tube_objects,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_tube_objects(pos)
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
autocrafterCache[minetest.hash_node_position(pos)] = nil
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
upgrade_autocrafter(pos)
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
if listname == "recipe" then
|
||||
stack:set_count(1)
|
||||
inv:set_stack(listname, index, stack)
|
||||
after_recipe_change(pos, inv)
|
||||
return 0
|
||||
elseif listname == "output" then
|
||||
on_output_change(pos, inv, stack)
|
||||
return 0
|
||||
end
|
||||
after_inventory_change(pos)
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
if not pipeworks.may_configure(pos, player) then
|
||||
minetest.log("action", string.format("%s attempted to take from autocrafter at %s", player:get_player_name(), minetest.pos_to_string(pos)))
|
||||
return 0
|
||||
end
|
||||
upgrade_autocrafter(pos)
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
if listname == "recipe" then
|
||||
inv:set_stack(listname, index, ItemStack(""))
|
||||
after_recipe_change(pos, inv)
|
||||
return 0
|
||||
elseif listname == "output" then
|
||||
on_output_change(pos, inv, nil)
|
||||
return 0
|
||||
end
|
||||
after_inventory_change(pos)
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
upgrade_autocrafter(pos)
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
|
||||
if to_list == "output" then
|
||||
on_output_change(pos, inv, stack)
|
||||
return 0
|
||||
elseif from_list == "output" then
|
||||
on_output_change(pos, inv, nil)
|
||||
if to_list ~= "recipe" then
|
||||
return 0
|
||||
end -- else fall through to recipe list handling
|
||||
end
|
||||
|
||||
if from_list == "recipe" or to_list == "recipe" then
|
||||
if from_list == "recipe" then
|
||||
inv:set_stack(from_list, from_index, ItemStack(""))
|
||||
end
|
||||
if to_list == "recipe" then
|
||||
stack:set_count(1)
|
||||
inv:set_stack(to_list, to_index, stack)
|
||||
end
|
||||
after_recipe_change(pos, inv)
|
||||
return 0
|
||||
end
|
||||
|
||||
after_inventory_change(pos)
|
||||
return count
|
||||
end,
|
||||
on_timer = run_autocrafter,
|
||||
digiline = {
|
||||
receptor = {},
|
||||
effector = {
|
||||
action = function(pos,node,channel,msg)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if channel ~= meta:get_string("channel") then return end
|
||||
if type(msg) == "table" then
|
||||
if #msg < 3 then return end
|
||||
local inv = meta:get_inventory()
|
||||
for y=0,2,1 do
|
||||
for x=1,3,1 do
|
||||
local slot = y*3+x
|
||||
if minetest.registered_items[msg[y+1][x]] then
|
||||
inv:set_stack("recipe",slot,ItemStack(msg[y+1][x]))
|
||||
else
|
||||
inv:set_stack("recipe",slot,ItemStack(""))
|
||||
end
|
||||
end
|
||||
end
|
||||
after_recipe_change(pos,inv)
|
||||
elseif msg == "off" then
|
||||
update_meta(meta, false)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
elseif msg == "on" then
|
||||
if update_meta(meta, true) then
|
||||
start_crafter(pos)
|
||||
end
|
||||
elseif msg == "single" then
|
||||
run_autocrafter(pos,1)
|
||||
end
|
||||
end,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:autocrafter 2",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "base:mese_crystal", "base:steel_ingot" },
|
||||
{ "homedecor:plastic_sheeting", "base:steel_ingot", "homedecor:plastic_sheeting" },
|
||||
{ "base:steel_ingot", "base:mese_crystal", "base:steel_ingot" }
|
||||
},
|
||||
})
|
|
@ -0,0 +1,214 @@
|
|||
--[[
|
||||
|
||||
autorouting for pipes
|
||||
|
||||
To connect pipes to some node, include this in the node def...
|
||||
|
||||
pipe_connections = {
|
||||
pattern = <string>, -- if supplied, search for this pattern instead of the exact node name
|
||||
left = <bool>, -- true (or 1) if the left side of the node needs to connect to a pipe
|
||||
right = <bool>, -- or from the right side, etc.
|
||||
top = <bool>,
|
||||
bottom = <bool>,
|
||||
front = <bool>,
|
||||
back = <bool>,
|
||||
left_param2 = <num>, -- the node must have this param2 to connect from the left
|
||||
right_param2 = <num>, -- or right, etc.
|
||||
top_param2 = <num>, -- Omit some or all of these to skip checking param2 for those sides
|
||||
bottom_param2 = <num>,
|
||||
front_param2 = <num>,
|
||||
back_param2 = <num>,
|
||||
},
|
||||
|
||||
...then add, pipeworks.scan_for_pipe_objects(pos)
|
||||
to your node's after_dig_node and after_place_node callbacks.
|
||||
|
||||
]]--
|
||||
|
||||
-- get the axis dir (just 6 faces) of target node, assumes the pipe is the axis
|
||||
|
||||
function pipeworks.get_axis_dir(nodetable, pattern)
|
||||
local pxm,pxp,pym,pyp,pzm,pzp
|
||||
|
||||
if string.find(nodetable.nxm.name, pattern)
|
||||
and minetest.facedir_to_dir(nodetable.nxm.param2).x ~= 0 then
|
||||
pxm=1
|
||||
end
|
||||
|
||||
if string.find(nodetable.nxp.name, pattern)
|
||||
and minetest.facedir_to_dir(nodetable.nxp.param2).x ~= 0 then
|
||||
pxp=1
|
||||
end
|
||||
|
||||
if string.find(nodetable.nzm.name, pattern)
|
||||
and minetest.facedir_to_dir(nodetable.nzm.param2).z ~= 0 then
|
||||
pzm=1
|
||||
end
|
||||
|
||||
if string.find(nodetable.nzp.name, pattern)
|
||||
and minetest.facedir_to_dir(nodetable.nzp.param2).z ~= 0 then
|
||||
pzp=1
|
||||
end
|
||||
|
||||
if string.find(nodetable.nym.name, pattern)
|
||||
and minetest.facedir_to_dir(nodetable.nym.param2).y ~= 0 then
|
||||
pym=1
|
||||
end
|
||||
|
||||
if string.find(nodetable.nyp.name, pattern)
|
||||
and minetest.facedir_to_dir(nodetable.nyp.param2).y ~= 0 then
|
||||
pyp=1
|
||||
end
|
||||
local match = pxm or pxp or pym or pyp or pzm or pzp
|
||||
return match,pxm,pxp,pym,pyp,pzm,pzp
|
||||
end
|
||||
|
||||
local tube_table = {[0] = 1, 2, 2, 4, 2, 4, 4, 5, 2, 3, 4, 6, 4, 6, 5, 7, 2, 4, 3, 6, 4, 5, 6, 7, 4, 6, 6, 8, 5, 7, 7, 9, 2, 4, 4, 5, 3, 6, 6, 7, 4, 6, 5, 7, 6, 8, 7, 9, 4, 5, 6, 7, 6, 7, 8, 9, 5, 7, 7, 9, 7, 9, 9, 10}
|
||||
local tube_table_facedirs = {[0] = 0, 0, 5, 0, 3, 4, 3, 0, 2, 0, 2, 0, 6, 4, 3, 0, 7, 12, 5, 12, 7, 4, 5, 5, 18, 20, 16, 0, 7, 4, 7, 0, 1, 8, 1, 1, 1, 13, 1, 1, 10, 8, 2, 2, 17, 4, 3, 6, 9, 9, 9, 9, 21, 13, 1, 1, 10, 10, 11, 2, 19, 4, 3, 0}
|
||||
|
||||
local function autoroute_pipes(pos)
|
||||
local nctr = minetest.get_node(pos)
|
||||
local state = "_empty"
|
||||
if (string.find(nctr.name, "pipeworks:pipe_") == nil) then return end
|
||||
if (string.find(nctr.name, "_loaded") ~= nil) then state = "_loaded" end
|
||||
local nsurround = pipeworks.scan_pipe_surroundings(pos)
|
||||
|
||||
if nsurround == 0 then nsurround = 9 end
|
||||
minetest.swap_node(pos, {name = "pipeworks:pipe_"..tube_table[nsurround]..state,
|
||||
param2 = tube_table_facedirs[nsurround]})
|
||||
end
|
||||
|
||||
function pipeworks.scan_for_pipe_objects(pos)
|
||||
autoroute_pipes({ x=pos.x-1, y=pos.y , z=pos.z })
|
||||
autoroute_pipes({ x=pos.x+1, y=pos.y , z=pos.z })
|
||||
autoroute_pipes({ x=pos.x , y=pos.y-1, z=pos.z })
|
||||
autoroute_pipes({ x=pos.x , y=pos.y+1, z=pos.z })
|
||||
autoroute_pipes({ x=pos.x , y=pos.y , z=pos.z-1 })
|
||||
autoroute_pipes({ x=pos.x , y=pos.y , z=pos.z+1 })
|
||||
autoroute_pipes(pos)
|
||||
end
|
||||
|
||||
-- auto-rotation code for various devices the pipes attach to
|
||||
|
||||
function pipeworks.scan_pipe_surroundings(pos)
|
||||
local pxm=0
|
||||
local pxp=0
|
||||
local pym=0
|
||||
local pyp=0
|
||||
local pzm=0
|
||||
local pzp=0
|
||||
|
||||
local nxm = minetest.get_node({ x=pos.x-1, y=pos.y , z=pos.z })
|
||||
local nxp = minetest.get_node({ x=pos.x+1, y=pos.y , z=pos.z })
|
||||
local nym = minetest.get_node({ x=pos.x , y=pos.y-1, z=pos.z })
|
||||
local nyp = minetest.get_node({ x=pos.x , y=pos.y+1, z=pos.z })
|
||||
local nzm = minetest.get_node({ x=pos.x , y=pos.y , z=pos.z-1 })
|
||||
local nzp = minetest.get_node({ x=pos.x , y=pos.y , z=pos.z+1 })
|
||||
|
||||
local nodetable = {
|
||||
nxm = nxm,
|
||||
nxp = nxp,
|
||||
nym = nym,
|
||||
nyp = nyp,
|
||||
nzm = nzm,
|
||||
nzp = nzp
|
||||
}
|
||||
|
||||
-- standard handling for pipes...
|
||||
|
||||
if string.find(nxm.name, "pipeworks:pipe_") then pxm=1 end
|
||||
if string.find(nxp.name, "pipeworks:pipe_") then pxp=1 end
|
||||
if string.find(nym.name, "pipeworks:pipe_") then pym=1 end
|
||||
if string.find(nyp.name, "pipeworks:pipe_") then pyp=1 end
|
||||
if string.find(nzm.name, "pipeworks:pipe_") then pzm=1 end
|
||||
if string.find(nzp.name, "pipeworks:pipe_") then pzp=1 end
|
||||
|
||||
-- Special handling for valves...
|
||||
|
||||
local match,a,b,c,d,e,f = pipeworks.get_axis_dir(nodetable, "pipeworks:valve")
|
||||
if match then
|
||||
pxm = a or pxm
|
||||
pxp = b or pxp
|
||||
pym = c or pym
|
||||
pyp = d or pyp
|
||||
pzm = e or pzm
|
||||
pzp = f or pzp
|
||||
end
|
||||
|
||||
-- ...flow sensors...
|
||||
|
||||
local match,a,b,c,d,e,f = pipeworks.get_axis_dir(nodetable, "pipeworks:flow_sensor")
|
||||
if match then
|
||||
pxm = a or pxm
|
||||
pxp = b or pxp
|
||||
pym = c or pym
|
||||
pyp = d or pyp
|
||||
pzm = e or pzm
|
||||
pzp = f or pzp
|
||||
end
|
||||
|
||||
-- ...sealed pipe entry/exit...
|
||||
|
||||
local match,a,b,c,d,e,f = pipeworks.get_axis_dir(nodetable, "pipeworks:entry_panel")
|
||||
if match then
|
||||
pxm = a or pxm
|
||||
pxp = b or pxp
|
||||
pym = c or pym
|
||||
pyp = d or pyp
|
||||
pzm = e or pzm
|
||||
pzp = f or pzp
|
||||
end
|
||||
|
||||
-- ... other nodes
|
||||
|
||||
local def_left = minetest.registered_nodes[nxp.name] -- the node that {pos} is to the left of (not the
|
||||
local def_right = minetest.registered_nodes[nxm.name] -- ...note that is AT the left!), etc.
|
||||
local def_bottom = minetest.registered_nodes[nyp.name]
|
||||
local def_top = minetest.registered_nodes[nym.name]
|
||||
local def_front = minetest.registered_nodes[nzp.name]
|
||||
local def_back = minetest.registered_nodes[nzm.name]
|
||||
|
||||
if def_left and def_left.pipe_connections and def_left.pipe_connections.left
|
||||
and (not def_left.pipe_connections.pattern or string.find(nxp.name, def_left.pipe_connections.pattern))
|
||||
and (not def_left.pipe_connections.left_param2 or (nxp.param2 == def_left.pipe_connections.left_param2)) then
|
||||
pxp = 1
|
||||
end
|
||||
if def_right and def_right.pipe_connections and def_right.pipe_connections.right
|
||||
and (not def_right.pipe_connections.pattern or string.find(nxm.name, def_right.pipe_connections.pattern))
|
||||
and (not def_right.pipe_connections.right_param2 or (nxm.param2 == def_right.pipe_connections.right_param2)) then
|
||||
pxm = 1
|
||||
end
|
||||
if def_top and def_top.pipe_connections and def_top.pipe_connections.top
|
||||
and (not def_top.pipe_connections.pattern or string.find(nym.name, def_top.pipe_connections.pattern))
|
||||
and (not def_top.pipe_connections.top_param2 or (nym.param2 == def_top.pipe_connections.top_param2)) then
|
||||
pym = 1
|
||||
end
|
||||
if def_bottom and def_bottom.pipe_connections and def_bottom.pipe_connections.bottom
|
||||
and (not def_bottom.pipe_connections.pattern or string.find(nyp.name, def_bottom.pipe_connections.pattern))
|
||||
and (not def_bottom.pipe_connections.bottom_param2 or (nyp.param2 == def_bottom.pipe_connections.bottom_param2)) then
|
||||
pyp = 1
|
||||
end
|
||||
if def_front and def_front.pipe_connections and def_front.pipe_connections.front
|
||||
and (not def_front.pipe_connections.pattern or string.find(nzp.name, def_front.pipe_connections.pattern))
|
||||
and (not def_front.pipe_connections.front_param2 or (nzp.param2 == def_front.pipe_connections.front_param2)) then
|
||||
pzp = 1
|
||||
end
|
||||
if def_back and def_back.pipe_connections and def_back.pipe_connections.back
|
||||
and (not def_back.pipe_connections.pattern or string.find(nzm.name, def_back.pipe_connections.pattern))
|
||||
and (not def_back.pipe_connections.back_param2 or (nzm.param2 == def_back.pipe_connections.back_param2)) then
|
||||
pzm = 1
|
||||
end
|
||||
|
||||
print("stage 2 returns "..pxm+8*pxp+2*pym+16*pyp+4*pzm+32*pzp..
|
||||
" for nodes surrounding "..minetest.get_node(pos).name.." at "..minetest.pos_to_string(pos))
|
||||
return pxm+8*pxp+2*pym+16*pyp+4*pzm+32*pzp
|
||||
end
|
||||
|
||||
function pipeworks.look_for_stackable_tanks(pos)
|
||||
local tym = minetest.get_node({ x=pos.x , y=pos.y-1, z=pos.z })
|
||||
|
||||
if string.find(tym.name, "pipeworks:storage_tank_") ~= nil or
|
||||
string.find(tym.name, "pipeworks:expansion_tank_") ~= nil then
|
||||
minetest.add_node(pos, { name = "pipeworks:expansion_tank_0", param2 = tym.param2})
|
||||
end
|
||||
end
|
|
@ -0,0 +1,122 @@
|
|||
-- autorouting for pneumatic tubes
|
||||
|
||||
local function is_tube(nodename)
|
||||
return pipeworks.table_contains(pipeworks.tubenodes, nodename)
|
||||
end
|
||||
|
||||
--a function for determining which side of the node we are on
|
||||
local function nodeside(node, tubedir)
|
||||
if node.param2 < 0 or node.param2 > 23 then
|
||||
node.param2 = 0
|
||||
end
|
||||
|
||||
local backdir = minetest.facedir_to_dir(node.param2)
|
||||
local back = pipeworks.vector_dot(backdir, tubedir)
|
||||
if back == 1 then
|
||||
return "back"
|
||||
elseif back == -1 then
|
||||
return "front"
|
||||
end
|
||||
|
||||
local topdir = pipeworks.facedir_to_top_dir(node.param2)
|
||||
local top = pipeworks.vector_dot(topdir, tubedir)
|
||||
if top == 1 then
|
||||
return "top"
|
||||
elseif top == -1 then
|
||||
return "bottom"
|
||||
end
|
||||
|
||||
local rightdir = pipeworks.facedir_to_right_dir(node.param2)
|
||||
local right = pipeworks.vector_dot(rightdir, tubedir)
|
||||
if right == 1 then
|
||||
return "right"
|
||||
else
|
||||
return "left"
|
||||
end
|
||||
end
|
||||
|
||||
local vts = {0, 3, 1, 4, 2, 5}
|
||||
local tube_table = {[0] = 1, 2, 2, 4, 2, 4, 4, 5, 2, 3, 4, 6, 4, 6, 5, 7, 2, 4, 3, 6, 4, 5, 6, 7, 4, 6, 6, 8, 5, 7, 7, 9, 2, 4, 4, 5, 3, 6, 6, 7, 4, 6, 5, 7, 6, 8, 7, 9, 4, 5, 6, 7, 6, 7, 8, 9, 5, 7, 7, 9, 7, 9, 9, 10}
|
||||
local tube_table_facedirs = {[0] = 0, 0, 5, 0, 3, 4, 3, 0, 2, 0, 2, 0, 6, 4, 3, 0, 7, 12, 5, 12, 7, 4, 5, 5, 18, 20, 16, 0, 7, 4, 7, 0, 1, 8, 1, 1, 1, 13, 1, 1, 10, 8, 2, 2, 17, 4, 3, 6, 9, 9, 9, 9, 21, 13, 1, 1, 10, 10, 11, 2, 19, 4, 3, 0}
|
||||
local function tube_autoroute(pos)
|
||||
local active = {0, 0, 0, 0, 0, 0}
|
||||
local nctr = minetest.get_node(pos)
|
||||
if not is_tube(nctr.name) then return end
|
||||
|
||||
local adjustments = {
|
||||
{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}
|
||||
}
|
||||
-- xm = 1, xp = 2, ym = 3, yp = 4, zm = 5, zp = 6
|
||||
|
||||
local positions = {}
|
||||
local nodes = {}
|
||||
for i, adj in ipairs(adjustments) do
|
||||
positions[i] = vector.add(pos, adj)
|
||||
nodes[i] = minetest.get_node(positions[i])
|
||||
end
|
||||
|
||||
for i, node in ipairs(nodes) do
|
||||
local idef = minetest.registered_nodes[node.name]
|
||||
-- handle the tubes themselves
|
||||
if is_tube(node.name) then
|
||||
active[i] = 1
|
||||
-- handle new style connectors
|
||||
elseif idef and idef.tube and idef.tube.connect_sides then
|
||||
local dir = adjustments[i]
|
||||
if idef.tube.connect_sides[nodeside(node, vector.multiply(dir, -1))] then
|
||||
active[i] = 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- all sides checked, now figure which tube to use.
|
||||
|
||||
local nodedef = minetest.registered_nodes[nctr.name]
|
||||
local basename = nodedef.basename
|
||||
if nodedef.style == "old" then
|
||||
local nsurround = ""
|
||||
for i, n in ipairs(active) do
|
||||
nsurround = nsurround..n
|
||||
end
|
||||
nctr.name = basename.."_"..nsurround
|
||||
elseif nodedef.style == "6d" then
|
||||
local s = 0
|
||||
for i, n in ipairs(active) do
|
||||
if n == 1 then
|
||||
s = s + 2^vts[i]
|
||||
end
|
||||
end
|
||||
nctr.name = basename.."_"..tube_table[s]
|
||||
nctr.param2 = tube_table_facedirs[s]
|
||||
end
|
||||
minetest.swap_node(pos, nctr)
|
||||
end
|
||||
|
||||
function pipeworks.scan_for_tube_objects(pos)
|
||||
for side = 0, 6 do
|
||||
tube_autoroute(vector.add(pos, pipeworks.directions.side_to_dir(side)))
|
||||
end
|
||||
end
|
||||
|
||||
function pipeworks.after_place(pos)
|
||||
pipeworks.scan_for_tube_objects(pos)
|
||||
end
|
||||
|
||||
function pipeworks.after_dig(pos)
|
||||
pipeworks.scan_for_tube_objects(pos)
|
||||
end
|
||||
|
||||
if minetest.get_modpath("mesecons_mvps") then
|
||||
mesecon.register_on_mvps_move(function(moved_nodes)
|
||||
for _, n in ipairs(moved_nodes) do
|
||||
pipeworks.scan_for_tube_objects(n.pos)
|
||||
pipeworks.scan_for_tube_objects(n.oldpos)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
Changelog
|
||||
---------
|
||||
|
||||
2013-01-13: Tubes can transport items now! Namely, I added Novatux/Nore's item
|
||||
transport mod as a default part of this mod, to make tubes do something useful!
|
||||
Thanks to Nore and RealBadAngel for the code contributions!
|
||||
|
||||
2013-01-05: made storage tanks connect from top/bottom, made storage tank and
|
||||
pipe textures use the ^ combine operator so they can show the actual liquid
|
||||
going through the pipes/tanks.
|
||||
|
||||
2013-01-04 (a bit later): Made pipes able to carry water! It was just a minor
|
||||
logic error resulting from moving the water flowing code into it's own file
|
||||
when I originally imported it. Many thanks to Mauvebic for writing it!
|
||||
|
||||
2013-01-04: First stage of integrating Mauvebic's water flowing code. This is
|
||||
experimental and doesn't move water yet - but at least it doesn't break
|
||||
anything :-)
|
||||
|
||||
2013-01-01: Various minor tweaks to textures, facedir settings, some other
|
||||
stuff. Changed crafting recipes to account for revamped pumps, valves, etc.
|
||||
Now requires the moreores mod and most recent git (for mese crystal fragments)
|
||||
to craft a pump. Added a "sealed" entry/exit panel (really just a horizontal
|
||||
pipe with a metal panel overlayed into the middle). Also, tweaked pipes to
|
||||
always drop the empty ones. Revamped pumps so that now they should sit in/on
|
||||
liquid and be connected only from the top, relegated grates to decorational-
|
||||
only, added outlet spigot. Got rid of a few obsolete textures. Got rid of
|
||||
that whole _x and _z naming thing - now all directional devices (pumps, valves,
|
||||
spigots, tanks) use facedir. Valves, spigots no longer auto-rotate to find
|
||||
nearby pipes.
|
||||
|
||||
2012-09-17: Added test object for pneumatic tube autorouting code, made tubes
|
||||
connect to it and any object that bears groups={tubedevice=1} (connects to any
|
||||
side)
|
||||
|
||||
2012-09-05: All recipes doubled except for junglegrass -> plastic sheet (since
|
||||
that is derived from home decor)
|
||||
|
||||
2012-09-02: Fixed plastic sheeting recipe. Added crafting recipes for various
|
||||
objects, with options: If homedecor is installed, use the plastic sheeting
|
||||
therein. If not, we define it manually. If the Technic mod is installed,
|
||||
don't define any recipes at all. Also removed the extra "loaded!" messages and
|
||||
tweaked the default pipe alias to point to something that is actually visible
|
||||
:-)
|
||||
|
||||
2012-09-01: flattened wielded pipe segment.
|
||||
|
||||
2012-08-24: Added square-ish pneumatic tubes with their own autoplace code
|
||||
(does not connect to steel pipes or pipe-oriented devices), then revised their
|
||||
textures shortly after. Fixed a recursion bug that sometimes caused a stack
|
||||
overflow. Old pipes were overriding the pipeworks:pipe defintion that belongs
|
||||
with the new pipes.
|
||||
|
||||
2012-08-22: Added outlet grate, made it participate in autoplace algorithm.
|
||||
Extended storage tank to show fill level in 10% steps (0% to 100%). Added
|
||||
"expansion tank" that appears if the user stacks tanks upwards. (Downwards is
|
||||
not checked).
|
||||
|
||||
2012-08-21: Made storage tank participate in autoplace algorithm. Tuned API a
|
||||
little to allow for more flexible placement. Re-organized code a bit to allow
|
||||
for some upcoming rules changes. Made storage tanks' upper/lower fittins and
|
||||
intake grate participate in autoplace algorithm.
|
||||
|
||||
2012-08-20: Added temporary nodes for storage tank and intake grating, but
|
||||
without autoplace.
|
||||
|
||||
2012-08-19: Pumps and valves now fully participate in the
|
||||
auto-rotate/auto-place algorithm.
|
||||
|
||||
2012-08-18: Total rewrite again. All pipes are now nice and round-looking, and
|
||||
they auto-connect! Also added temporary nodes for pump and valve (each with an
|
||||
on/off setting - punch to change). No crafting recipes yet and the pipes still
|
||||
don't do anything useful yet. Soon.
|
||||
|
||||
2012-08-06: Moved this changelog off the forum post and into a separate file.
|
||||
|
||||
2012-08-05 (multiple updates): Rewrote pipeworks to use loops and tables to
|
||||
create the nodes. Requires far less code now. Added -X, +X, -Y, +Y, -Z, +Z
|
||||
capped stubs and a short centered horizontal segment. Changed node definitions
|
||||
so that the aforementioned "short centered" segment is given on dig/drop.
|
||||
Renamed it to just "pipeworks:pipe" (and pipe_loaded). Added empty/loaded
|
||||
indicator images to the capped ends, removed some redundant comments. Made the
|
||||
empty/loaded indication at the capped end more prominent.
|
||||
|
||||
2012-07-21: Added screenshot showing pipes as they look now that nodebox
|
||||
texture rotation is fixed.
|
||||
|
||||
2012-07-18: Changed the mod name and all internals to 'pipeworks' instead of
|
||||
'pipes'... after a couple of mistakes :-)
|
||||
|
||||
2012-07-12: moved project to github.
|
||||
|
||||
2012-06-23: Initial release, followed by reworking the textures a bit.
|
|
@ -0,0 +1,159 @@
|
|||
----------------------
|
||||
-- Vector functions --
|
||||
----------------------
|
||||
|
||||
function pipeworks.vector_cross(a, b)
|
||||
return {
|
||||
x = a.y * b.z - a.z * b.y,
|
||||
y = a.z * b.x - a.x * b.z,
|
||||
z = a.x * b.y - a.y * b.x
|
||||
}
|
||||
end
|
||||
|
||||
function pipeworks.vector_dot(a, b)
|
||||
return a.x * b.x + a.y * b.y + a.z * b.z
|
||||
end
|
||||
|
||||
-----------------------
|
||||
-- Facedir functions --
|
||||
-----------------------
|
||||
|
||||
function pipeworks.facedir_to_top_dir(facedir)
|
||||
return ({[0] = {x = 0, y = 1, z = 0},
|
||||
{x = 0, y = 0, z = 1},
|
||||
{x = 0, y = 0, z = -1},
|
||||
{x = 1, y = 0, z = 0},
|
||||
{x = -1, y = 0, z = 0},
|
||||
{x = 0, y = -1, z = 0}})
|
||||
[math.floor(facedir / 4)]
|
||||
end
|
||||
|
||||
function pipeworks.facedir_to_right_dir(facedir)
|
||||
return pipeworks.vector_cross(
|
||||
pipeworks.facedir_to_top_dir(facedir),
|
||||
minetest.facedir_to_dir(facedir)
|
||||
)
|
||||
end
|
||||
|
||||
local directions = {}
|
||||
pipeworks.directions = directions
|
||||
function directions.side_to_dir(side)
|
||||
return ({[0] = vector.new(),
|
||||
vector.new( 0, 1, 0),
|
||||
vector.new( 0, -1, 0),
|
||||
vector.new( 1, 0, 0),
|
||||
vector.new(-1, 0, 0),
|
||||
vector.new( 0, 0, 1),
|
||||
vector.new( 0, 0, -1)
|
||||
})[side]
|
||||
end
|
||||
|
||||
function directions.dir_to_side(dir)
|
||||
local c = pipeworks.vector_dot(dir, vector.new(1, 2, 3)) + 4
|
||||
return ({6, 2, 4, 0, 3, 1, 5})[c]
|
||||
end
|
||||
|
||||
----------------------
|
||||
-- String functions --
|
||||
----------------------
|
||||
|
||||
--[[function pipeworks.string_split(str, sep)
|
||||
local fields = {}
|
||||
local index = 1
|
||||
local expr = "([^"..sep.."])+"
|
||||
string.gsub(str, expr, function(substring)
|
||||
fields[index] = substring
|
||||
index = index + 1
|
||||
end)
|
||||
return fields
|
||||
end]]
|
||||
|
||||
function pipeworks.string_startswith(str, substr)
|
||||
return str:sub(1, substr:len()) == substr
|
||||
end
|
||||
|
||||
---------------------
|
||||
-- Table functions --
|
||||
---------------------
|
||||
|
||||
function pipeworks.table_contains(tbl, element)
|
||||
for _, elt in pairs(tbl) do
|
||||
if elt == element then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function pipeworks.table_extend(tbl, tbl2)
|
||||
local index = #tbl + 1
|
||||
for _, elt in ipairs(tbl2) do
|
||||
tbl[index] = elt
|
||||
index = index + 1
|
||||
end
|
||||
end
|
||||
|
||||
function pipeworks.table_recursive_replace(tbl, pattern, replace_with)
|
||||
if type(tbl) == "table" then
|
||||
local tbl2 = {}
|
||||
for key, value in pairs(tbl) do
|
||||
tbl2[key] = pipeworks.table_recursive_replace(value, pattern, replace_with)
|
||||
end
|
||||
return tbl2
|
||||
elseif type(tbl) == "string" then
|
||||
return tbl:gsub(pattern, replace_with)
|
||||
else
|
||||
return tbl
|
||||
end
|
||||
end
|
||||
|
||||
------------------------
|
||||
-- Formspec functions --
|
||||
------------------------
|
||||
|
||||
local fs_helpers = {}
|
||||
pipeworks.fs_helpers = fs_helpers
|
||||
function fs_helpers.on_receive_fields(pos, fields)
|
||||
local meta = minetest.get_meta(pos)
|
||||
for field, value in pairs(fields) do
|
||||
if pipeworks.string_startswith(field, "fs_helpers_cycling:") then
|
||||
local l = field:split(":")
|
||||
local new_value = tonumber(l[2])
|
||||
local meta_name = l[3]
|
||||
meta:set_int(meta_name, new_value)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function fs_helpers.cycling_button(meta, base, meta_name, values)
|
||||
local current_value = meta:get_int(meta_name)
|
||||
local new_value = (current_value + 1) % (#values)
|
||||
local val = values[current_value + 1]
|
||||
local text
|
||||
local texture_name = nil
|
||||
local addopts = nil
|
||||
--when we get a table, we know the caller wants an image_button
|
||||
if type(val) == "table" then
|
||||
text = val["text"]
|
||||
texture_name = val["texture"]
|
||||
addopts = val["addopts"]
|
||||
else
|
||||
text = val
|
||||
end
|
||||
local field = "fs_helpers_cycling:"..new_value..":"..meta_name
|
||||
return base..";"..(texture_name and texture_name..";" or "")..field..";"..minetest.formspec_escape(text)..(addopts and ";"..addopts or "").."]"
|
||||
end
|
||||
|
||||
---------
|
||||
-- Env --
|
||||
---------
|
||||
|
||||
function pipeworks.load_position(pos)
|
||||
if pos.x < -30912 or pos.y < -30912 or pos.z < -30912 or
|
||||
pos.x > 30927 or pos.y > 30927 or pos.z > 30927 then return end
|
||||
if minetest.get_node_or_nil(pos) then
|
||||
return
|
||||
end
|
||||
local vm = minetest.get_voxel_manip()
|
||||
vm:read_from_map(pos, pos)
|
||||
end
|
|
@ -0,0 +1,242 @@
|
|||
-- this bit of code modifies the default chests and furnaces to be compatible
|
||||
-- with pipeworks.
|
||||
--
|
||||
-- the formspecs found here are basically copies of the ones from minetest_game
|
||||
-- plus bits from pipeworks' sorting tubes
|
||||
|
||||
-- Pipeworks Specific
|
||||
local fs_helpers = pipeworks.fs_helpers
|
||||
local tube_entry = "^pipeworks_tube_connection_wooden.png"
|
||||
|
||||
-- Chest Locals
|
||||
local open_chests = {}
|
||||
|
||||
local function get_chest_formspec(pos)
|
||||
local spos = pos.x .. "," .. pos.y .. "," .. pos.z
|
||||
local formspec =
|
||||
"size[8,9]" ..
|
||||
init.gui_bg ..
|
||||
init.gui_bg_img ..
|
||||
init.gui_slots ..
|
||||
"list[nodemeta:" .. spos .. ";main;0,0.3;8,4;]" ..
|
||||
"list[current_player;main;0,4.85;8,1;]" ..
|
||||
"list[current_player;main;0,6.08;8,3;8]" ..
|
||||
"listring[nodemeta:" .. spos .. ";main]" ..
|
||||
"listring[current_player;main]" ..
|
||||
init.get_hotbar_bg(0,4.85)
|
||||
|
||||
-- Pipeworks Switch
|
||||
formspec = formspec ..
|
||||
fs_helpers.cycling_button(
|
||||
minetest.get_meta(pos),
|
||||
pipeworks.button_base,
|
||||
"splitstacks",
|
||||
{
|
||||
pipeworks.button_off,
|
||||
pipeworks.button_on
|
||||
}
|
||||
)..pipeworks.button_label
|
||||
|
||||
return formspec
|
||||
end
|
||||
|
||||
local function chest_lid_obstructed(pos)
|
||||
local above = { x = pos.x, y = pos.y + 1, z = pos.z }
|
||||
local def = minetest.registered_nodes[minetest.get_node(above).name]
|
||||
-- allow ladders, signs, wallmounted things and torches to not obstruct
|
||||
if def.drawtype == "airlike" or
|
||||
def.drawtype == "signlike" or
|
||||
def.drawtype == "torchlike" or
|
||||
(def.drawtype == "nodebox" and def.paramtype2 == "wallmounted") then
|
||||
return false
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
if formname == "pipeworks:chest_formspec" and player then
|
||||
local pn = player:get_player_name()
|
||||
if open_chests[pn] then
|
||||
local pos = open_chests[pn].pos
|
||||
if fields.quit then
|
||||
local sound = open_chests[pn].sound
|
||||
local swap = open_chests[pn].swap
|
||||
local node = minetest.get_node(pos)
|
||||
|
||||
open_chests[pn] = nil
|
||||
for k, v in pairs(open_chests) do
|
||||
if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then
|
||||
return true
|
||||
end
|
||||
end
|
||||
minetest.after(0.2, function()
|
||||
minetest.swap_node(pos, { name = "chests:" .. swap, param2 = node.param2 })
|
||||
|
||||
-- Pipeworks notification
|
||||
pipeworks.after_place(pos)
|
||||
end)
|
||||
minetest.sound_play(sound, {gain = 0.3, pos = pos, max_hear_distance = 10})
|
||||
end
|
||||
|
||||
-- Pipeworks Switch
|
||||
if pipeworks.may_configure(pos, player) and not fields.quit then
|
||||
fs_helpers.on_receive_fields(pos, fields)
|
||||
minetest.show_formspec(player:get_player_name(), "pipeworks:chest_formspec", get_chest_formspec(pos))
|
||||
end
|
||||
return true
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
-- Original Definitions
|
||||
local old_chest_def = table.copy(minetest.registered_items["chests:chest"])
|
||||
local old_chest_open_def = table.copy(minetest.registered_items["chests:chest_open"])
|
||||
local old_chest_locked_def = table.copy(minetest.registered_items["chests:chest_locked"])
|
||||
local old_chest_locked_open_def = table.copy(minetest.registered_items["chests:chest_locked_open"])
|
||||
|
||||
-- Override Construction
|
||||
local override_protected, override, override_open, override_protected_open
|
||||
override_protected = {
|
||||
tiles = {
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_lock.png",
|
||||
"chests_chest_inside.png"
|
||||
},
|
||||
after_place_node = function(pos, placer)
|
||||
old_chest_locked_def.after_place_node(pos, placer)
|
||||
pipeworks.after_place(pos)
|
||||
end,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
if not base.can_interact_with_node(clicker, pos) then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.sound_play(old_chest_locked_def.sound_open, {gain = 0.3,
|
||||
pos = pos, max_hear_distance = 10})
|
||||
if not chest_lid_obstructed(pos) then
|
||||
minetest.swap_node(pos,
|
||||
{ name = "chests:" .. "chest_locked" .. "_open",
|
||||
param2 = node.param2 })
|
||||
end
|
||||
minetest.after(0.2, minetest.show_formspec,
|
||||
clicker:get_player_name(),
|
||||
"pipeworks:chest_formspec", get_chest_formspec(pos))
|
||||
open_chests[clicker:get_player_name()] = { pos = pos,
|
||||
sound = old_chest_locked_def.sound_close, swap = "chest_locked" }
|
||||
end,
|
||||
groups = table.copy(old_chest_locked_def.groups),
|
||||
tube = {
|
||||
insert_object = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:add_item("main", stack)
|
||||
end,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if meta:get_int("splitstacks") == 1 then
|
||||
stack = stack:peek_item(1)
|
||||
end
|
||||
return inv:room_for_item("main", stack)
|
||||
end,
|
||||
input_inventory = "main",
|
||||
connect_sides = {left = 1, right = 1, back = 1, bottom = 1, top = 1}
|
||||
},
|
||||
after_dig_node = pipeworks.after_dig
|
||||
}
|
||||
override = {
|
||||
tiles = {
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_front.png",
|
||||
"chests_chest_inside.png"
|
||||
},
|
||||
on_rightclick = function(pos, node, clicker)
|
||||
minetest.sound_play(old_chest_def.sound_open, {gain = 0.3, pos = pos,
|
||||
max_hear_distance = 10})
|
||||
if not chest_lid_obstructed(pos) then
|
||||
minetest.swap_node(pos, {
|
||||
name = "chests:" .. "chest" .. "_open",
|
||||
param2 = node.param2 })
|
||||
end
|
||||
minetest.after(0.2, minetest.show_formspec,
|
||||
clicker:get_player_name(),
|
||||
"pipeworks:chest_formspec", get_chest_formspec(pos))
|
||||
open_chests[clicker:get_player_name()] = { pos = pos,
|
||||
sound = old_chest_def.sound_close, swap = "chest" }
|
||||
end,
|
||||
groups = table.copy(old_chest_def.groups),
|
||||
tube = {
|
||||
insert_object = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:add_item("main", stack)
|
||||
end,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if meta:get_int("splitstacks") == 1 then
|
||||
stack = stack:peek_item(1)
|
||||
end
|
||||
return inv:room_for_item("main", stack)
|
||||
end,
|
||||
input_inventory = "main",
|
||||
connect_sides = {left = 1, right = 1, back = 1, bottom = 1, top = 1}
|
||||
},
|
||||
after_place_node = pipeworks.after_place,
|
||||
after_dig_node = pipeworks.after_dig
|
||||
}
|
||||
--[[local override_common = {
|
||||
|
||||
}
|
||||
for k,v in pairs(override_common) do
|
||||
override_protected[k] = v
|
||||
override[k] = v
|
||||
end]]
|
||||
|
||||
override_open = table.copy(override)
|
||||
override_open.groups = table.copy(old_chest_open_def.groups)
|
||||
override_open.tube = table.copy(override.tube)
|
||||
override_open.tube.connect_sides = table.copy(override.tube.connect_sides)
|
||||
override_open.tube.connect_sides.top = nil
|
||||
|
||||
override_protected_open = table.copy(override_protected)
|
||||
override_protected_open.groups = table.copy(old_chest_locked_open_def.groups)
|
||||
override_protected_open.tube = table.copy(override_protected.tube)
|
||||
override_protected_open.tube.connect_sides = table.copy(override_protected.tube.connect_sides)
|
||||
override_protected_open.tube.connect_sides.top = nil
|
||||
|
||||
override_protected.tiles = { -- Rearranged according to the chest registration in Minetest_Game.
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry.."^[transformFX",
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_lock.png",
|
||||
}
|
||||
override.tiles = {
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_top.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry.."^[transformFX",
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_side.png"..tube_entry,
|
||||
"chests_chest_front.png",
|
||||
}
|
||||
|
||||
-- Add the extra groups
|
||||
for i,v in ipairs({override_protected, override, override_open, override_protected_open}) do
|
||||
v.groups.tubedevice = 1
|
||||
v.groups.tubedevice_receiver = 1
|
||||
end
|
||||
|
||||
-- Override with the new modifications.
|
||||
minetest.override_item("chests:chest", override)
|
||||
minetest.override_item("chests:chest_open", override_open)
|
||||
minetest.override_item("chests:chest_locked", override_protected)
|
||||
minetest.override_item("chests:chest_locked_open", override_protected_open)
|
||||
|
|
@ -0,0 +1,433 @@
|
|||
|
||||
-- this file is basically a modified copy of
|
||||
-- minetest_game/mods/default/furnaces.lua
|
||||
|
||||
local fs_helpers = pipeworks.fs_helpers
|
||||
|
||||
tube_entry = "^pipeworks_tube_connection_stony.png"
|
||||
|
||||
local function active_formspec(fuel_percent, item_percent, pos, meta)
|
||||
local formspec =
|
||||
"size[8,8.5]"..
|
||||
init.gui_bg..
|
||||
init.gui_bg_img..
|
||||
init.gui_slots..
|
||||
"list[current_name;src;2.75,0.5;1,1;]"..
|
||||
"list[current_name;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;furnace_furnace_fire_bg.png^[lowpart:"..
|
||||
(100-fuel_percent)..":furnace_furnace_fire_fg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:"..
|
||||
(item_percent)..":gui_furnace_arrow_fg.png^[transformR270]"..
|
||||
"list[current_name;dst;4.75,0.96;2,2;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[current_name;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[current_name;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[current_name;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
init.get_hotbar_bg(0, 4.25) ..
|
||||
fs_helpers.cycling_button(
|
||||
meta,
|
||||
"image_button[0,3.5;1,0.6",
|
||||
"split_material_stacks",
|
||||
{
|
||||
pipeworks.button_off,
|
||||
pipeworks.button_on
|
||||
}
|
||||
).."label[0.9,3.51;Allow splitting incoming material (not fuel) stacks from tubes]"
|
||||
return formspec
|
||||
end
|
||||
|
||||
local function inactive_formspec(pos, meta)
|
||||
local formspec = "size[8,8.5]"..
|
||||
init.gui_bg..
|
||||
init.gui_bg_img..
|
||||
init.gui_slots..
|
||||
"list[current_name;src;2.75,0.5;1,1;]"..
|
||||
"list[current_name;fuel;2.75,2.5;1,1;]"..
|
||||
"image[2.75,1.5;1,1;furnace_furnace_fire_bg.png]"..
|
||||
"image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]"..
|
||||
"list[current_name;dst;4.75,0.96;2,2;]"..
|
||||
"list[current_player;main;0,4.25;8,1;]"..
|
||||
"list[current_player;main;0,5.5;8,3;8]"..
|
||||
"listring[current_name;dst]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[current_name;src]"..
|
||||
"listring[current_player;main]"..
|
||||
"listring[current_name;fuel]"..
|
||||
"listring[current_player;main]"..
|
||||
init.get_hotbar_bg(0, 4.25) ..
|
||||
fs_helpers.cycling_button(
|
||||
meta,
|
||||
"image_button[0,3.5;1,0.6",
|
||||
"split_material_stacks",
|
||||
{
|
||||
pipeworks.button_off,
|
||||
pipeworks.button_on
|
||||
}
|
||||
).."label[0.9,3.51;Allow splitting incoming material (not fuel) stacks from tubes]"
|
||||
return formspec
|
||||
end
|
||||
|
||||
--
|
||||
-- Node callback functions that are the same for active and inactive furnace
|
||||
--
|
||||
|
||||
local function can_dig(pos, player)
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_put(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if listname == "fuel" then
|
||||
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
|
||||
if inv:is_empty("src") then
|
||||
meta:set_string("infotext", "Furnace is empty")
|
||||
end
|
||||
return stack:get_count()
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif listname == "src" then
|
||||
return stack:get_count()
|
||||
elseif listname == "dst" then
|
||||
return 0
|
||||
end
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local stack = inv:get_stack(from_list, from_index)
|
||||
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
|
||||
end
|
||||
|
||||
local function allow_metadata_inventory_take(pos, listname, index, stack, player)
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
return 0
|
||||
end
|
||||
return stack:get_count()
|
||||
end
|
||||
|
||||
local function swap_node(pos, name)
|
||||
local node = minetest.get_node(pos)
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
minetest.swap_node(pos, node)
|
||||
end
|
||||
|
||||
local function furnace_node_timer(pos, elapsed)
|
||||
--
|
||||
-- Inizialize metadata
|
||||
--
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fuel_time = meta:get_float("fuel_time") or 0
|
||||
local src_time = meta:get_float("src_time") or 0
|
||||
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
|
||||
|
||||
local inv = meta:get_inventory()
|
||||
local srclist, fuellist
|
||||
|
||||
local cookable, cooked
|
||||
local fuel
|
||||
|
||||
local update = true
|
||||
while update do
|
||||
update = false
|
||||
|
||||
srclist = inv:get_list("src")
|
||||
fuellist = inv:get_list("fuel")
|
||||
|
||||
--
|
||||
-- Cooking
|
||||
--
|
||||
|
||||
-- Check if we have cookable content
|
||||
local aftercooked
|
||||
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist})
|
||||
cookable = cooked.time ~= 0
|
||||
|
||||
-- Check if we have enough fuel to burn
|
||||
if fuel_time < fuel_totaltime then
|
||||
-- The furnace is currently active and has enough fuel
|
||||
fuel_time = fuel_time + elapsed
|
||||
-- If there is a cookable item then check if it is ready yet
|
||||
if cookable then
|
||||
src_time = src_time + elapsed
|
||||
if src_time >= cooked.time then
|
||||
-- Place result in dst list if possible
|
||||
if inv:room_for_item("dst", cooked.item) then
|
||||
inv:add_item("dst", cooked.item)
|
||||
inv:set_stack("src", 1, aftercooked.items[1])
|
||||
src_time = src_time - cooked.time
|
||||
update = true
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
-- Furnace ran out of fuel
|
||||
if cookable then
|
||||
-- We need to get new fuel
|
||||
local afterfuel
|
||||
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
|
||||
|
||||
if fuel.time == 0 then
|
||||
-- No valid fuel in fuel list
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
else
|
||||
-- Take fuel from fuel list
|
||||
inv:set_stack("fuel", 1, afterfuel.items[1])
|
||||
update = true
|
||||
fuel_totaltime = fuel.time + (fuel_time - fuel_totaltime)
|
||||
src_time = src_time + elapsed
|
||||
end
|
||||
else
|
||||
-- We don't need to get new fuel since there is no cookable item
|
||||
fuel_totaltime = 0
|
||||
src_time = 0
|
||||
end
|
||||
fuel_time = 0
|
||||
end
|
||||
|
||||
elapsed = 0
|
||||
end
|
||||
|
||||
if fuel and fuel_totaltime > fuel.time then
|
||||
fuel_totaltime = fuel.time
|
||||
end
|
||||
if srclist[1]:is_empty() then
|
||||
src_time = 0
|
||||
end
|
||||
|
||||
--
|
||||
-- Update formspec, infotext and node
|
||||
--
|
||||
local formspec = inactive_formspec(pos, meta)
|
||||
local item_state
|
||||
local item_percent = 0
|
||||
if cookable then
|
||||
item_percent = math.floor(src_time / cooked.time * 100)
|
||||
if item_percent > 100 then
|
||||
item_state = "100% (output full)"
|
||||
else
|
||||
item_state = item_percent .. "%"
|
||||
end
|
||||
else
|
||||
if srclist[1]:is_empty() then
|
||||
item_state = "Empty"
|
||||
else
|
||||
item_state = "Not cookable"
|
||||
end
|
||||
end
|
||||
|
||||
local fuel_state = "Empty"
|
||||
local active = "inactive "
|
||||
local result = false
|
||||
|
||||
if fuel_totaltime ~= 0 then
|
||||
active = "active "
|
||||
local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100)
|
||||
fuel_state = fuel_percent .. "%"
|
||||
formspec = active_formspec(fuel_percent, item_percent, pos, meta)
|
||||
swap_node(pos, "furnace:furnace_active")
|
||||
-- make sure timer restarts automatically
|
||||
result = true
|
||||
else
|
||||
if not fuellist[1]:is_empty() then
|
||||
fuel_state = "0%"
|
||||
end
|
||||
swap_node(pos, "furnace:furnace")
|
||||
-- stop timer on the inactive furnace
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end
|
||||
|
||||
local infotext = "Furnace " .. active .. "(Item: " .. item_state .. "; Fuel: " .. fuel_state .. ")"
|
||||
|
||||
--
|
||||
-- Set meta values
|
||||
--
|
||||
meta:set_float("fuel_totaltime", fuel_totaltime)
|
||||
meta:set_float("fuel_time", fuel_time)
|
||||
meta:set_float("src_time", src_time)
|
||||
meta:set_string("formspec", formspec)
|
||||
meta:set_string("infotext", infotext)
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
--
|
||||
-- Node definitions
|
||||
--
|
||||
|
||||
minetest.register_node(":furnace:furnace", {
|
||||
description = "Furnace",
|
||||
tiles = {
|
||||
"furnace_furnace_top.png"..tube_entry,
|
||||
"furnace_furnace_bottom.png"..tube_entry,
|
||||
"furnace_furnace_side.png"..tube_entry,
|
||||
"furnace_furnace_side.png"..tube_entry,
|
||||
"furnace_furnace_side.png"..tube_entry,
|
||||
"furnace_furnace_front.png"
|
||||
},
|
||||
groups = {cracky = 2, tubedevice = 1, tubedevice_receiver = 1},
|
||||
tube = {
|
||||
insert_object = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
if not timer:is_started() then
|
||||
timer:start(1.0)
|
||||
end
|
||||
if direction.y == 1 then
|
||||
return inv:add_item("fuel", stack)
|
||||
else
|
||||
return inv:add_item("src", stack)
|
||||
end
|
||||
end,
|
||||
can_insert = function(pos,node,stack,direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if direction.y == 1 then
|
||||
return inv:room_for_item("fuel", stack)
|
||||
else
|
||||
if meta:get_int("split_material_stacks") == 1 then
|
||||
stack = stack:peek_item(1)
|
||||
end
|
||||
return inv:room_for_item("src", stack)
|
||||
end
|
||||
end,
|
||||
input_inventory = "dst",
|
||||
connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1}
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = base.node_sound_stone_defaults(),
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
on_timer = furnace_node_timer,
|
||||
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", inactive_formspec(pos, meta))
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size('src', 1)
|
||||
inv:set_size('fuel', 1)
|
||||
inv:set_size('dst', 4)
|
||||
end,
|
||||
|
||||
on_metadata_inventory_move = function(pos)
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_metadata_inventory_put = function(pos)
|
||||
-- start timer function, it will sort out whether furnace can burn or not.
|
||||
minetest.get_node_timer(pos):start(1.0)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
local drops = {}
|
||||
base.get_inventory_drops(pos, "src", drops)
|
||||
base.get_inventory_drops(pos, "fuel", drops)
|
||||
base.get_inventory_drops(pos, "dst", drops)
|
||||
drops[#drops+1] = "furnace:furnace"
|
||||
minetest.remove_node(pos)
|
||||
return drops
|
||||
end,
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not pipeworks.may_configure(pos, sender) then return end
|
||||
fs_helpers.on_receive_fields(pos, fields)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local formspec = inactive_formspec(pos, meta)
|
||||
meta:set_string("formspec", formspec)
|
||||
end,
|
||||
after_place_node = pipeworks.after_place,
|
||||
after_dig_node = pipeworks.after_dig
|
||||
})
|
||||
|
||||
minetest.register_node(":furnace:furnace_active", {
|
||||
description = "Furnace",
|
||||
tiles = {
|
||||
"furnace_furnace_top.png"..tube_entry,
|
||||
"furnace_furnace_bottom.png"..tube_entry,
|
||||
"furnace_furnace_side.png"..tube_entry,
|
||||
"furnace_furnace_side.png"..tube_entry,
|
||||
"furnace_furnace_side.png"..tube_entry,
|
||||
{
|
||||
image = "furnace_furnace_front_active.png",
|
||||
backface_culling = false,
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 1.5
|
||||
},
|
||||
}
|
||||
},
|
||||
groups = {cracky = 2, tubedevice = 1, tubedevice_receiver = 1, not_in_creative_inventory = 1},
|
||||
tube = {
|
||||
insert_object = function(pos,node,stack,direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
if not timer:is_started() then
|
||||
timer:start(1.0)
|
||||
end
|
||||
if direction.y == 1 then
|
||||
return inv:add_item("fuel", stack)
|
||||
else
|
||||
return inv:add_item("src", stack)
|
||||
end
|
||||
end,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
if direction.y == 1 then
|
||||
return inv:room_for_item("fuel", stack)
|
||||
else
|
||||
if meta:get_int("split_material_stacks") == 1 then
|
||||
stack = stack:peek_item(1)
|
||||
end
|
||||
return inv:room_for_item("src", stack)
|
||||
end
|
||||
end,
|
||||
input_inventory = "dst",
|
||||
connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1}
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
light_source = 8,
|
||||
drop = "furnace:furnace",
|
||||
legacy_facedir_simple = true,
|
||||
is_ground_content = false,
|
||||
sounds = base.node_sound_stone_defaults(),
|
||||
on_timer = furnace_node_timer,
|
||||
|
||||
can_dig = can_dig,
|
||||
|
||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not pipeworks.may_configure(pos, sender) then return end
|
||||
fs_helpers.on_receive_fields(pos, fields)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local formspec = active_formspec(0, 0, pos, meta)
|
||||
meta:set_string("formspec", formspec)
|
||||
end,
|
||||
after_place_node = pipeworks.after_place,
|
||||
after_dig_node = pipeworks.after_dig
|
||||
})
|
||||
|
|
@ -0,0 +1,151 @@
|
|||
-- Crafting recipes for pipes
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:pipe_1_empty 12",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "base:steel_ingot", "base:steel_ingot" },
|
||||
{ "", "", "" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "base:steel_ingot" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:spigot 3",
|
||||
recipe = {
|
||||
{ "pipeworks:pipe_1_empty", "" },
|
||||
{ "", "pipeworks:pipe_1_empty" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:entry_panel_empty 2",
|
||||
recipe = {
|
||||
{ "", "base:steel_ingot", "" },
|
||||
{ "", "pipeworks:pipe_1_empty", "" },
|
||||
{ "", "base:steel_ingot", "" },
|
||||
},
|
||||
})
|
||||
|
||||
-- Various ancillary pipe devices
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:pump_off 2",
|
||||
recipe = {
|
||||
{ "base:stone", "base:steel_ingot", "base:stone" },
|
||||
{ "base:copper_ingot", "base:mese_crystal_fragment", "base:copper_ingot" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "base:steel_ingot" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:valve_off_empty 2",
|
||||
recipe = {
|
||||
{ "", "group:stick", "" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "base:steel_ingot" },
|
||||
{ "", "base:steel_ingot", "" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:storage_tank_0 2",
|
||||
recipe = {
|
||||
{ "", "base:steel_ingot", "base:steel_ingot" },
|
||||
{ "base:steel_ingot", "base:glass", "base:steel_ingot" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:grating 2",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "", "base:steel_ingot" },
|
||||
{ "", "pipeworks:pipe_1_empty", "" },
|
||||
{ "base:steel_ingot", "", "base:steel_ingot" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:flow_sensor_empty 2",
|
||||
recipe = {
|
||||
{ "pipeworks:pipe_1_empty", "mesecons:mesecon", "pipeworks:pipe_1_empty" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:fountainhead 2",
|
||||
recipe = {
|
||||
{ "pipeworks:pipe_1_empty" },
|
||||
{ "pipeworks:pipe_1_empty" }
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
-- Crafting recipes for pneumatic tubes
|
||||
|
||||
-- If homedecor is not installed, we need to register its crafting chain for
|
||||
-- plastic sheeting so that pipeworks remains compatible with it.
|
||||
|
||||
if minetest.get_modpath("homedecor") == nil then
|
||||
|
||||
minetest.register_craftitem(":homedecor:oil_extract", {
|
||||
description = "Oil extract",
|
||||
inventory_image = "homedecor_oil_extract.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem(":homedecor:paraffin", {
|
||||
description = "Unprocessed paraffin",
|
||||
inventory_image = "homedecor_paraffin.png",
|
||||
})
|
||||
|
||||
minetest.register_alias("homedecor:plastic_base", "homedecor:paraffin")
|
||||
|
||||
minetest.register_craftitem(":homedecor:plastic_sheeting", {
|
||||
description = "Plastic sheet",
|
||||
inventory_image = "homedecor_plastic_sheeting.png",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "homedecor:oil_extract 4",
|
||||
recipe = {
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "homedecor:paraffin",
|
||||
recipe = "homedecor:oil_extract",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "homedecor:plastic_sheeting",
|
||||
recipe = "homedecor:paraffin",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:oil_extract",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:paraffin",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "homedecor:plastic_sheeting",
|
||||
burntime = 30,
|
||||
})
|
||||
end
|
||||
|
||||
|
|
@ -0,0 +1,83 @@
|
|||
local straight = function(pos, node, velocity, stack) return {velocity} end
|
||||
|
||||
minetest.register_node("pipeworks:steel_block_embedded_tube", {
|
||||
description = "Airtight steelblock embedded tube",
|
||||
tiles = {
|
||||
"base_steel_block.png", "base_steel_block.png",
|
||||
"base_steel_block.png", "base_steel_block.png",
|
||||
"base_steel_block.png^pipeworks_tube_connection_metallic.png",
|
||||
"base_steel_block.png^pipeworks_tube_connection_metallic.png",
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=1, oddly_breakable_by_hand = 1, tubedevice = 1},
|
||||
legacy_facedir_simple = true,
|
||||
sounds = base.node_sound_stone_defaults(),
|
||||
tube = {
|
||||
connect_sides = {front = 1, back = 1,},
|
||||
priority = 50,
|
||||
can_go = straight,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local dir = minetest.facedir_to_dir(node.param2)
|
||||
return vector.equals(dir, direction) or vector.equals(vector.multiply(dir, -1), direction)
|
||||
end,
|
||||
},
|
||||
after_place_node = pipeworks.after_place,
|
||||
after_dig_node = pipeworks.after_dig,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:steel_block_embedded_tube 1",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "base:steel_ingot", "base:steel_ingot" },
|
||||
{ "base:steel_ingot", "pipeworks:tube_1", "base:steel_ingot" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "base:steel_ingot" }
|
||||
},
|
||||
})
|
||||
|
||||
local pane_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -9/64, -9/64, -8/16, 9/64, 9/64, 8/16 }, -- tube
|
||||
{ -8/16, -8/16, -1/16, 8/16, 8/16, 1/16 } -- pane
|
||||
}
|
||||
}
|
||||
minetest.register_node("pipeworks:steel_pane_embedded_tube", {
|
||||
drawtype = "nodebox",
|
||||
description = "Airtight panel embedded tube ",
|
||||
tiles = {
|
||||
"pipeworks_pane_embedded_tube_sides.png^[transformR90",
|
||||
"pipeworks_pane_embedded_tube_sides.png^[transformR90",
|
||||
"pipeworks_pane_embedded_tube_sides.png",
|
||||
"pipeworks_pane_embedded_tube_sides.png",
|
||||
"pipeworks_pane_embedded_tube_ends.png", "pipeworks_pane_embedded_tube_ends.png",
|
||||
},
|
||||
node_box = pane_box,
|
||||
selection_box = pane_box,
|
||||
collision_box = pane_box,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=1, oddly_breakable_by_hand = 1, tubedevice = 1},
|
||||
legacy_facedir_simple = true,
|
||||
sounds = base.node_sound_stone_defaults(),
|
||||
tube = {
|
||||
connect_sides = {front = 1, back = 1,},
|
||||
priority = 50,
|
||||
can_go = straight,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local dir = minetest.facedir_to_dir(node.param2)
|
||||
return vector.equals(dir, direction) or vector.equals(vector.multiply(dir, -1), direction)
|
||||
end,
|
||||
},
|
||||
after_place_node = pipeworks.after_place,
|
||||
after_dig_node = pipeworks.after_dig,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:steel_pane_embedded_tube 1",
|
||||
recipe = {
|
||||
{ "", "base:steel_ingot", "" },
|
||||
{ "", "pipeworks:tube_1", "" },
|
||||
{ "", "base:steel_ingot", "" }
|
||||
},
|
||||
})
|
|
@ -0,0 +1,40 @@
|
|||
-- Various settings
|
||||
|
||||
local prefix = "pipeworks_"
|
||||
|
||||
local settings = {
|
||||
enable_pipes = true,
|
||||
enable_autocrafter = true,
|
||||
enable_deployer = true,
|
||||
enable_dispenser = true,
|
||||
enable_node_breaker = true,
|
||||
enable_teleport_tube = true,
|
||||
enable_pipe_devices = true,
|
||||
enable_redefines = true,
|
||||
enable_mese_tube = true,
|
||||
enable_detector_tube = true,
|
||||
enable_digiline_detector_tube = true,
|
||||
enable_conductor_tube = true,
|
||||
enable_accelerator_tube = true,
|
||||
enable_crossing_tube = true,
|
||||
enable_sand_tube = true,
|
||||
enable_mese_sand_tube = true,
|
||||
enable_one_way_tube = true,
|
||||
enable_priority_tube = true,
|
||||
enable_cyclic_mode = true,
|
||||
drop_on_routing_fail = false,
|
||||
|
||||
delete_item_on_clearobject = true,
|
||||
}
|
||||
|
||||
for name, value in pairs(settings) do
|
||||
local setting_type = type(value)
|
||||
if setting_type == "boolean" then
|
||||
pipeworks[name] = minetest.settings:get_bool(prefix..name)
|
||||
if pipeworks[name] == nil then
|
||||
pipeworks[name] = value
|
||||
end
|
||||
else
|
||||
pipeworks[name] = value
|
||||
end
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
init
|
||||
base
|
||||
chests
|
||||
tools
|
||||
mesecons?
|
||||
mesecons_mvps?
|
||||
digilines?
|
|
@ -0,0 +1 @@
|
|||
This mod uses mesh nodes and nodeboxes to supply a complete set of 3D pipes and tubes, along with devices that work with them.
|
|
@ -0,0 +1,638 @@
|
|||
|
||||
-- rotation handlers
|
||||
|
||||
function pipeworks.fix_after_rotation(pos, node, user, mode, new_param2)
|
||||
|
||||
if string.find(node.name, "spigot") then new_param2 = new_param2 % 4 end
|
||||
|
||||
newnode = string.gsub(node.name, "_on", "_off")
|
||||
minetest.swap_node(pos, { name = newnode, param2 = new_param2 })
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function pipeworks.rotate_on_place(itemstack, placer, pointed_thing)
|
||||
|
||||
local playername = placer:get_player_name()
|
||||
if not minetest.is_protected(pointed_thing.under, playername)
|
||||
and not minetest.is_protected(pointed_thing.above, playername) then
|
||||
|
||||
local node = minetest.get_node(pointed_thing.under)
|
||||
|
||||
if (not placer:get_player_control().sneak)
|
||||
and minetest.registered_nodes[node.name]
|
||||
and minetest.registered_nodes[node.name].on_rightclick then
|
||||
minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack)
|
||||
else
|
||||
|
||||
local pitch = placer:get_look_pitch()
|
||||
local above = pointed_thing.above
|
||||
local under = pointed_thing.under
|
||||
local fdir = minetest.dir_to_facedir(placer:get_look_dir())
|
||||
local undernode = minetest.get_node(under)
|
||||
local abovenode = minetest.get_node(above)
|
||||
local uname = undernode.name
|
||||
local aname = abovenode.name
|
||||
local isabove = (above.x == under.x) and (above.z == under.z) and (pitch > 0)
|
||||
local pos1 = above
|
||||
|
||||
-- check if the object should be turned vertically
|
||||
if above.x == under.x
|
||||
and above.z == under.z
|
||||
and (
|
||||
string.find(uname, "pipeworks:pipe_")
|
||||
or string.find(uname, "pipeworks:storage_")
|
||||
or string.find(uname, "pipeworks:expansion_")
|
||||
or ( string.find(uname, "pipeworks:grating") and not isabove )
|
||||
or ( string.find(uname, "pipeworks:pump_") and not isabove )
|
||||
|
||||
or (
|
||||
( string.find(uname, "pipeworks:valve")
|
||||
or string.find(uname, "pipeworks:entry_panel")
|
||||
or string.find(uname, "pipeworks:flow_sensor") )
|
||||
and minetest.facedir_to_dir(undernode.param2).y ~= 0 )
|
||||
)
|
||||
then
|
||||
fdir = 17
|
||||
end
|
||||
|
||||
if minetest.registered_nodes[uname]
|
||||
and minetest.registered_nodes[uname]["buildable_to"] then
|
||||
pos1 = under
|
||||
end
|
||||
|
||||
if minetest.registered_nodes[minetest.get_node(pos1).name]
|
||||
and not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end
|
||||
|
||||
local placednode = string.gsub(itemstack:get_name(), "_loaded", "_empty")
|
||||
placednode = string.gsub(placednode, "_on", "_off")
|
||||
|
||||
minetest.add_node(pos1, {name = placednode, param2 = fdir })
|
||||
pipeworks.scan_for_pipe_objects(pos1)
|
||||
|
||||
if not pipeworks.expect_infinite_stacks then
|
||||
itemstack:take_item()
|
||||
end
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- List of devices that should participate in the autoplace algorithm
|
||||
|
||||
local pipereceptor_on = nil
|
||||
local pipereceptor_off = nil
|
||||
|
||||
if minetest.get_modpath("mesecons") then
|
||||
pipereceptor_on = {
|
||||
receptor = {
|
||||
state = mesecon.state.on,
|
||||
rules = pipeworks.mesecons_rules
|
||||
}
|
||||
}
|
||||
|
||||
pipereceptor_off = {
|
||||
receptor = {
|
||||
state = mesecon.state.off,
|
||||
rules = pipeworks.mesecons_rules
|
||||
}
|
||||
}
|
||||
end
|
||||
|
||||
local pipes_devicelist = {
|
||||
"pump",
|
||||
"valve",
|
||||
"storage_tank_0",
|
||||
"storage_tank_1",
|
||||
"storage_tank_2",
|
||||
"storage_tank_3",
|
||||
"storage_tank_4",
|
||||
"storage_tank_5",
|
||||
"storage_tank_6",
|
||||
"storage_tank_7",
|
||||
"storage_tank_8",
|
||||
"storage_tank_9",
|
||||
"storage_tank_10"
|
||||
}
|
||||
|
||||
-- Now define the nodes.
|
||||
|
||||
local states = { "on", "off" }
|
||||
local dgroups = ""
|
||||
|
||||
for s in ipairs(states) do
|
||||
|
||||
if states[s] == "off" then
|
||||
dgroups = {snappy=3, pipe=1}
|
||||
else
|
||||
dgroups = {snappy=3, pipe=1, not_in_creative_inventory=1}
|
||||
end
|
||||
|
||||
minetest.register_node("pipeworks:pump_"..states[s], {
|
||||
description = "Pump/Intake Module",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_pump.obj",
|
||||
tiles = { "pipeworks_pump_"..states[s]..".png" },
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = dgroups,
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
pipe_connections = { top = 1 },
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
drop = "pipeworks:pump_off",
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.add_node(pos,{name="pipeworks:pump_on", param2 = node.param2})
|
||||
end,
|
||||
action_off = function (pos, node)
|
||||
minetest.add_node(pos,{name="pipeworks:pump_off", param2 = node.param2})
|
||||
end
|
||||
}},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.add_node(pos, { name = "pipeworks:pump_"..states[3-s], param2 = fdir })
|
||||
end,
|
||||
on_rotate = screwdriver.rotate_simple
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:valve_"..states[s].."_empty", {
|
||||
description = "Valve",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_valve_"..states[s]..".obj",
|
||||
tiles = { "pipeworks_valve.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
|
||||
},
|
||||
groups = dgroups,
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
on_place = pipeworks.rotate_on_place,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
drop = "pipeworks:valve_off_empty",
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2})
|
||||
end,
|
||||
action_off = function (pos, node)
|
||||
minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2})
|
||||
end
|
||||
}},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.add_node(pos, { name = "pipeworks:valve_"..states[3-s].."_empty", param2 = fdir })
|
||||
end,
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("pipeworks:valve_on_loaded", {
|
||||
description = "Valve",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_valve_on.obj",
|
||||
tiles = { "pipeworks_valve.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -5/16, -4/16, -8/16, 5/16, 5/16, 8/16 }
|
||||
},
|
||||
groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
on_place = pipeworks.rotate_on_place,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
drop = "pipeworks:valve_off_empty",
|
||||
mesecons = {effector = {
|
||||
action_on = function (pos, node)
|
||||
minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2})
|
||||
end,
|
||||
action_off = function (pos, node)
|
||||
minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2})
|
||||
end
|
||||
}},
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
local fdir = node.param2
|
||||
minetest.add_node(pos, { name = "pipeworks:valve_off_empty", param2 = fdir })
|
||||
end,
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
-- grating
|
||||
|
||||
minetest.register_node("pipeworks:grating", {
|
||||
description = "Decorative grating",
|
||||
tiles = {
|
||||
"pipeworks_grating_top.png",
|
||||
"pipeworks_grating_sides.png",
|
||||
"pipeworks_grating_sides.png",
|
||||
"pipeworks_grating_sides.png",
|
||||
"pipeworks_grating_sides.png",
|
||||
"pipeworks_grating_sides.png"
|
||||
},
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = { -0.49, -0.49, -0.49, 0.49, 0.5, 0.49 }
|
||||
},
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
groups = {snappy=3, pipe=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
pipe_connections = { top = 1 },
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
})
|
||||
|
||||
-- outlet spigot
|
||||
|
||||
minetest.register_node("pipeworks:spigot", {
|
||||
description = "Spigot outlet",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_spigot.obj",
|
||||
tiles = { "pipeworks_spigot.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
pipe_connections = { left=1, right=1, front=1, back=1,
|
||||
left_param2 = 3, right_param2 = 1, front_param2 = 2, back_param2 = 0 },
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 }
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 }
|
||||
},
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:spigot_pouring", {
|
||||
description = "Spigot outlet",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_spigot_pouring.obj",
|
||||
tiles = {
|
||||
{
|
||||
name = "base_water_flowing_animated.png",
|
||||
animation = {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 0.8,
|
||||
},
|
||||
},
|
||||
{ name = "pipeworks_spigot.png" }
|
||||
},
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
pipe_connections = { left=1, right=1, front=1, back=1,
|
||||
left_param2 = 3, right_param2 = 1, front_param2 = 2, back_param2 = 0 },
|
||||
after_place_node = function(pos)
|
||||
minetest.set_node(pos, { name = "pipeworks:spigot", param2 = minetest.get_node(pos).param2 })
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 }
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 }
|
||||
},
|
||||
drop = "pipeworks:spigot",
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
-- sealed pipe entry/exit (horizontal pipe passing through a metal
|
||||
-- wall, for use in places where walls should look like they're airtight)
|
||||
|
||||
local panel_cbox = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 },
|
||||
{ -8/16, -8/16, -1/16, 8/16, 8/16, 1/16 }
|
||||
}
|
||||
}
|
||||
|
||||
minetest.register_node("pipeworks:entry_panel_empty", {
|
||||
description = "Airtight Pipe entry/exit",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_entry_panel.obj",
|
||||
tiles = { "pipeworks_entry_panel.png" },
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
on_place = pipeworks.rotate_on_place,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
selection_box = panel_cbox,
|
||||
collision_box = panel_cbox,
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:entry_panel_loaded", {
|
||||
description = "Airtight Pipe entry/exit",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_entry_panel.obj",
|
||||
tiles = { "pipeworks_entry_panel.png" },
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
on_place = pipeworks.rotate_on_place,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
selection_box = panel_cbox,
|
||||
collision_box = panel_cbox,
|
||||
drop = "pipeworks:entry_panel_empty",
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:flow_sensor_empty", {
|
||||
description = "Flow Sensor",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_flow_sensor.obj",
|
||||
tiles = { "pipeworks_flow_sensor_off.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
on_place = pipeworks.rotate_on_place,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
if mesecon then
|
||||
mesecon.receptor_off(pos, rules)
|
||||
end
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 },
|
||||
{ -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 },
|
||||
}
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 },
|
||||
{ -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 },
|
||||
}
|
||||
},
|
||||
mesecons = pipereceptor_off,
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:flow_sensor_loaded", {
|
||||
description = "Flow sensor (on)",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_flow_sensor.obj",
|
||||
tiles = { "pipeworks_flow_sensor_on.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
on_place = pipeworks.rotate_on_place,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
if mesecon then
|
||||
mesecon.receptor_on(pos, rules)
|
||||
end
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 },
|
||||
{ -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 },
|
||||
}
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{ -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 },
|
||||
{ -3/16, -3/16, -4/16, 3/16, 3/16, 4/16 },
|
||||
}
|
||||
},
|
||||
drop = "pipeworks:flow_sensor_empty",
|
||||
mesecons = pipereceptor_on,
|
||||
on_rotate = pipeworks.fix_after_rotation
|
||||
})
|
||||
|
||||
-- tanks
|
||||
|
||||
for fill = 0, 10 do
|
||||
local filldesc="empty"
|
||||
local sgroups = {snappy=3, pipe=1, tankfill=fill+1}
|
||||
local image = nil
|
||||
|
||||
if fill ~= 0 then
|
||||
filldesc=fill.."0% full"
|
||||
sgroups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1}
|
||||
image = "pipeworks_storage_tank_fittings.png"
|
||||
end
|
||||
|
||||
minetest.register_node("pipeworks:expansion_tank_"..fill, {
|
||||
description = "Expansion Tank ("..filldesc..")... You hacker, you.",
|
||||
tiles = {
|
||||
"pipeworks_storage_tank_fittings.png",
|
||||
"pipeworks_storage_tank_fittings.png",
|
||||
"pipeworks_storage_tank_back.png",
|
||||
"pipeworks_storage_tank_back.png",
|
||||
"pipeworks_storage_tank_back.png",
|
||||
pipeworks.liquid_texture.."^pipeworks_storage_tank_front_"..fill..".png"
|
||||
},
|
||||
inventory_image = image,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
drop = "pipeworks:storage_tank_0",
|
||||
pipe_connections = { top = 1, bottom = 1},
|
||||
after_place_node = function(pos)
|
||||
pipeworks.look_for_stackable_tanks(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:storage_tank_"..fill, {
|
||||
description = "Fluid Storage Tank ("..filldesc..")",
|
||||
tiles = {
|
||||
"pipeworks_storage_tank_fittings.png",
|
||||
"pipeworks_storage_tank_fittings.png",
|
||||
"pipeworks_storage_tank_back.png",
|
||||
"pipeworks_storage_tank_back.png",
|
||||
"pipeworks_storage_tank_back.png",
|
||||
pipeworks.liquid_texture.."^pipeworks_storage_tank_front_"..fill..".png"
|
||||
},
|
||||
inventory_image = image,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = sgroups,
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
drop = "pipeworks:storage_tank_0",
|
||||
pipe_connections = { top = 1, bottom = 1},
|
||||
after_place_node = function(pos)
|
||||
pipeworks.look_for_stackable_tanks(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
})
|
||||
end
|
||||
|
||||
-- fountainhead
|
||||
|
||||
minetest.register_node("pipeworks:fountainhead", {
|
||||
description = "Fountainhead",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_fountainhead.obj",
|
||||
tiles = { "pipeworks_fountainhead.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
groups = {snappy=3, pipe=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
pipe_connections = { bottom = 1 },
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
if mesecon then
|
||||
mesecon.receptor_on(pos, rules)
|
||||
end
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 }
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 }
|
||||
},
|
||||
on_rotate = false
|
||||
})
|
||||
|
||||
minetest.register_node("pipeworks:fountainhead_pouring", {
|
||||
description = "Fountainhead",
|
||||
drawtype = "mesh",
|
||||
mesh = "pipeworks_fountainhead.obj",
|
||||
tiles = { "pipeworks_fountainhead.png" },
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
groups = {snappy=3, pipe=1, not_in_creative_inventory=1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
pipe_connections = { bottom = 1 },
|
||||
after_place_node = function(pos)
|
||||
minetest.set_node(pos, { name = "pipeworks:fountainhead", param2 = minetest.get_node(pos).param2 })
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
if mesecon then
|
||||
mesecon.receptor_on(pos, rules)
|
||||
end
|
||||
end,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 }
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 }
|
||||
},
|
||||
drop = "pipeworks:fountainhead",
|
||||
on_rotate = false
|
||||
})
|
||||
|
||||
minetest.register_alias("pipeworks:valve_off_loaded", "pipeworks:valve_off_empty")
|
||||
minetest.register_alias("pipeworks:entry_panel", "pipeworks:entry_panel_empty")
|
||||
|
||||
minetest.register_lbm({
|
||||
name = "pipeworks:rotate_valves_flowsensors",
|
||||
label = "Flip pipeworks valves and flow sensors around X/Z",
|
||||
run_at_every_load = false,
|
||||
nodenames = {
|
||||
"pipeworks:flow_sensor_empty",
|
||||
"pipeworks:flow_sensor_loaded",
|
||||
"pipeworks:valve_off_empty",
|
||||
"pipeworks:valve_on_empty",
|
||||
"pipeworks:valve_off_loaded",
|
||||
},
|
||||
action = function(pos, node)
|
||||
local dir = minetest.facedir_to_dir(node.param2)
|
||||
local newdir = { x=dir.z, y=dir.y, z=dir.x }
|
||||
local newfdir = minetest.dir_to_facedir(newdir)
|
||||
minetest.swap_node(pos, { name = node.name, param2 = newfdir })
|
||||
end
|
||||
})
|
|
@ -0,0 +1,492 @@
|
|||
local fs_helpers = pipeworks.fs_helpers
|
||||
|
||||
local function delay(x)
|
||||
return (function() return x end)
|
||||
end
|
||||
|
||||
local function set_filter_infotext(data, meta)
|
||||
local infotext = data.wise_desc.." Filter-Injector"
|
||||
if meta:get_int("slotseq_mode") == 2 then
|
||||
infotext = infotext .. " (slot #"..meta:get_int("slotseq_index").." next)"
|
||||
end
|
||||
meta:set_string("infotext", infotext)
|
||||
end
|
||||
|
||||
local function set_filter_formspec(data, meta)
|
||||
local itemname = data.wise_desc.." Filter-Injector"
|
||||
|
||||
local formspec
|
||||
if data.digiline then
|
||||
formspec = "size[8,2.7]"..
|
||||
"item_image[0,0;1,1;pipeworks:"..data.name.."]"..
|
||||
"label[1,0;"..minetest.formspec_escape(itemname).."]"..
|
||||
"field[0.3,1.5;8.0,1;channel;Channel;${channel}]"..
|
||||
fs_helpers.cycling_button(meta, "button[0,2;4,1", "slotseq_mode",
|
||||
{"Sequence slots by Priority",
|
||||
"Sequence slots Randomly",
|
||||
"Sequence slots by Rotation"})..
|
||||
fs_helpers.cycling_button(meta, "button[4,2;4,1", "exmatch_mode",
|
||||
{"Exact match - off",
|
||||
"Exact match - on "})
|
||||
else
|
||||
local exmatch_button = ""
|
||||
if data.stackwise then
|
||||
exmatch_button =
|
||||
fs_helpers.cycling_button(meta, "button[4,3.5;4,1", "exmatch_mode",
|
||||
{"Exact match - off",
|
||||
"Exact match - on "})
|
||||
end
|
||||
|
||||
formspec = "size[8,8.5]"..
|
||||
"item_image[0,0;1,1;pipeworks:"..data.name.."]"..
|
||||
"label[1,0;"..minetest.formspec_escape(itemname).."]"..
|
||||
"label[0,1;Prefer item types:]"..
|
||||
"list[context;main;0,1.5;8,2;]"..
|
||||
fs_helpers.cycling_button(meta, "button[0,3.5;4,1", "slotseq_mode",
|
||||
{"Sequence slots by Priority",
|
||||
"Sequence slots Randomly",
|
||||
"Sequence slots by Rotation"})..
|
||||
exmatch_button..
|
||||
"list[current_player;main;0,4.5;8,4;]" ..
|
||||
"listring[]"
|
||||
end
|
||||
meta:set_string("formspec", formspec)
|
||||
end
|
||||
|
||||
-- todo SOON: this function has *way too many* parameters
|
||||
local function grabAndFire(data,slotseq_mode,exmatch_mode,filtmeta,frominv,frominvname,frompos,fromnode,filterfor,fromtube,fromdef,dir,fakePlayer,all,digiline)
|
||||
local sposes = {}
|
||||
if not frominvname or not frominv:get_list(frominvname) then return end
|
||||
for spos,stack in ipairs(frominv:get_list(frominvname)) do
|
||||
local matches
|
||||
if filterfor == "" then
|
||||
matches = stack:get_name() ~= ""
|
||||
else
|
||||
local fname = filterfor.name
|
||||
local fgroup = filterfor.group
|
||||
local fwear = filterfor.wear
|
||||
local fmetadata = filterfor.metadata
|
||||
matches = (not fname -- If there's a name filter,
|
||||
or stack:get_name() == fname) -- it must match.
|
||||
|
||||
and (not fgroup -- If there's a group filter,
|
||||
or (type(fgroup) == "string" -- it must be a string
|
||||
and minetest.get_item_group( -- and it must match.
|
||||
stack:get_name(), fgroup) ~= 0))
|
||||
|
||||
and (not fwear -- If there's a wear filter:
|
||||
or (type(fwear) == "number" -- If it's a number,
|
||||
and stack:get_wear() == fwear) -- it must match.
|
||||
or (type(fwear) == "table" -- If it's a table:
|
||||
and (not fwear[1] -- If there's a lower bound,
|
||||
or (type(fwear[1]) == "number" -- it must be a number
|
||||
and fwear[1] <= stack:get_wear())) -- and it must be <= the actual wear.
|
||||
and (not fwear[2] -- If there's an upper bound
|
||||
or (type(fwear[2]) == "number" -- it must be a number
|
||||
and stack:get_wear() < fwear[2])))) -- and it must be > the actual wear.
|
||||
-- If the wear filter is of any other type, fail.
|
||||
--
|
||||
and (not fmetadata -- If there's a matadata filter,
|
||||
or (type(fmetadata) == "string" -- it must be a string
|
||||
and stack:get_metadata() == fmetadata)) -- and it must match.
|
||||
end
|
||||
if matches then table.insert(sposes, spos) end
|
||||
end
|
||||
if #sposes == 0 then return false end
|
||||
if slotseq_mode == 1 then
|
||||
for i = #sposes, 2, -1 do
|
||||
local j = math.random(i)
|
||||
local t = sposes[j]
|
||||
sposes[j] = sposes[i]
|
||||
sposes[i] = t
|
||||
end
|
||||
elseif slotseq_mode == 2 then
|
||||
local headpos = filtmeta:get_int("slotseq_index")
|
||||
table.sort(sposes, function (a, b)
|
||||
if a >= headpos then
|
||||
if b < headpos then return true end
|
||||
else
|
||||
if b >= headpos then return false end
|
||||
end
|
||||
return a < b
|
||||
end)
|
||||
end
|
||||
for _, spos in ipairs(sposes) do
|
||||
local stack = frominv:get_stack(frominvname, spos)
|
||||
local doRemove = stack:get_count()
|
||||
if fromtube.can_remove then
|
||||
doRemove = fromtube.can_remove(frompos, fromnode, stack, dir)
|
||||
elseif fromdef.allow_metadata_inventory_take then
|
||||
doRemove = fromdef.allow_metadata_inventory_take(frompos, frominvname,spos, stack, fakePlayer)
|
||||
end
|
||||
-- stupid lack of continue statements grumble
|
||||
if doRemove > 0 then
|
||||
if slotseq_mode == 2 then
|
||||
local nextpos = spos + 1
|
||||
if nextpos > frominv:get_size(frominvname) then
|
||||
nextpos = 1
|
||||
end
|
||||
filtmeta:set_int("slotseq_index", nextpos)
|
||||
set_filter_infotext(data, filtmeta)
|
||||
end
|
||||
local item
|
||||
local count
|
||||
if all then
|
||||
count = math.min(stack:get_count(), doRemove)
|
||||
if filterfor.count and (filterfor.count > 1 or digiline) then
|
||||
if exmatch_mode ~= 0 and filterfor.count > count then
|
||||
return false -- not enough, fail
|
||||
else
|
||||
-- limit quantity to filter amount
|
||||
count = math.min(filterfor.count, count)
|
||||
end
|
||||
end
|
||||
else
|
||||
count = 1
|
||||
end
|
||||
if fromtube.remove_items then
|
||||
-- it could be the entire stack...
|
||||
item = fromtube.remove_items(frompos, fromnode, stack, dir, count)
|
||||
else
|
||||
item = stack:take_item(count)
|
||||
frominv:set_stack(frominvname, spos, stack)
|
||||
if fromdef.on_metadata_inventory_take then
|
||||
fromdef.on_metadata_inventory_take(frompos, frominvname, spos, item, fakePlayer)
|
||||
end
|
||||
end
|
||||
local pos = vector.add(frompos, vector.multiply(dir, 1.4))
|
||||
local start_pos = vector.add(frompos, dir)
|
||||
local item1 = pipeworks.tube_inject_item(pos, start_pos, dir, item, fakePlayer:get_player_name())
|
||||
return true-- only fire one item, please
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local function punch_filter(data, filtpos, filtnode, msg)
|
||||
local filtmeta = minetest.get_meta(filtpos)
|
||||
local filtinv = filtmeta:get_inventory()
|
||||
local owner = filtmeta:get_string("owner")
|
||||
local fakePlayer = {
|
||||
get_player_name = delay(owner),
|
||||
is_fake_player = ":pipeworks",
|
||||
get_wielded_item = delay(ItemStack(nil))
|
||||
} -- TODO: use a mechanism as the wielder one
|
||||
local dir = pipeworks.facedir_to_right_dir(filtnode.param2)
|
||||
local frompos = vector.subtract(filtpos, dir)
|
||||
local fromnode = minetest.get_node(frompos)
|
||||
if not fromnode then return end
|
||||
local fromdef = minetest.registered_nodes[fromnode.name]
|
||||
if not fromdef then return end
|
||||
local fromtube = fromdef.tube
|
||||
local input_special_cases = {
|
||||
["technic:mv_furnace"] = "dst",
|
||||
["technic:mv_furnace_active"] = "dst",
|
||||
["technic:mv_electric_furnace"] = "dst",
|
||||
["technic:mv_electric_furnace_active"] = "dst",
|
||||
["technic:mv_alloy_furnace"] = "dst",
|
||||
["technic:mv_alloy_furnace_active"] = "dst",
|
||||
["technic:mv_centrifuge"] = "dst",
|
||||
["technic:mv_centrifuge_active"] = "dst",
|
||||
["technic:mv_compressor"] = "dst",
|
||||
["technic:mv_compressor_active"] = "dst",
|
||||
["technic:mv_extractor"] = "dst",
|
||||
["technic:mv_extractor_active"] = "dst",
|
||||
["technic:mv_grinder"] = "dst",
|
||||
["technic:mv_grinder_active"] = "dst",
|
||||
["technic:tool_workshop"] = "src",
|
||||
}
|
||||
|
||||
-- make sure there's something appropriate to inject the item into
|
||||
local todir = pipeworks.facedir_to_right_dir(filtnode.param2)
|
||||
local topos = vector.add(filtpos, todir)
|
||||
local tonode = minetest.get_node(topos)
|
||||
local todef = minetest.registered_nodes[tonode.name]
|
||||
|
||||
if not todef
|
||||
or not (minetest.get_item_group(tonode.name, "tube") == 1
|
||||
or minetest.get_item_group(tonode.name, "tubedevice") == 1
|
||||
or minetest.get_item_group(tonode.name, "tubedevice_receiver") == 1) then
|
||||
return
|
||||
end
|
||||
|
||||
if fromtube then fromtube.input_inventory = input_special_cases[fromnode.name] or fromtube.input_inventory end
|
||||
if not (fromtube and fromtube.input_inventory) then return end
|
||||
|
||||
local slotseq_mode
|
||||
local exact_match
|
||||
|
||||
local filters = {}
|
||||
if data.digiline then
|
||||
local function add_filter(name, group, count, wear, metadata)
|
||||
table.insert(filters, {name = name, group = group, count = count, wear = wear, metadata = metadata})
|
||||
end
|
||||
|
||||
local function add_itemstring_filter(filter)
|
||||
local filterstack = ItemStack(filter)
|
||||
local filtername = filterstack:get_name()
|
||||
local filtercount = filterstack:get_count()
|
||||
local filterwear = string.match(filter, "%S*:%S*%s%d%s(%d)") and filterstack:get_wear()
|
||||
local filtermetadata = string.match(filter, "%S*:%S*%s%d%s%d(%s.*)") and filterstack:get_metadata()
|
||||
|
||||
add_filter(filtername, nil, filtercount, filterwear, filtermetadata)
|
||||
end
|
||||
|
||||
local t_msg = type(msg)
|
||||
if t_msg == "table" then
|
||||
local slotseq = msg.slotseq
|
||||
local t_slotseq = type(slotseq)
|
||||
if t_slotseq == "number" and slotseq >= 0 and slotseq <= 2 then
|
||||
slotseq_mode = slotseq
|
||||
elseif t_slotseq == "string" then
|
||||
slotseq = string.lower(slotseq)
|
||||
if slotseq == "priority" then
|
||||
slotseq_mode = 0
|
||||
elseif slotseq == "random" then
|
||||
slotseq_mode = 1
|
||||
elseif slotseq == "rotation" then
|
||||
slotseq_mode = 2
|
||||
end
|
||||
end
|
||||
|
||||
local exmatch = msg.exmatch
|
||||
local t_exmatch = type(exmatch)
|
||||
if t_exmatch == "number" and exmatch >= 0 and exmatch <= 1 then
|
||||
exact_match = exmatch
|
||||
elseif t_exmatch == "boolean" then
|
||||
exact_match = exmatch and 1 or 0
|
||||
end
|
||||
|
||||
local slotseq_index = msg.slotseq_index
|
||||
if type(slotseq_index) == "number" then
|
||||
-- This should allow any valid index, but I'm not completely sure what
|
||||
-- constitutes a valid index, so I'm only allowing resetting it to 1.
|
||||
if slotseq_index == 1 then
|
||||
filtmeta:set_int("slotseq_index", slotseq_index)
|
||||
set_filter_infotext(data, filtmeta)
|
||||
end
|
||||
end
|
||||
|
||||
if slotseq_mode ~= nil then
|
||||
filtmeta:set_int("slotseq_mode", slotseq_mode)
|
||||
end
|
||||
|
||||
if exact_match ~= nil then
|
||||
filtmeta:set_int("exmatch_mode", exact_match)
|
||||
end
|
||||
|
||||
if slotseq_mode ~= nil or exact_match ~= nil then
|
||||
set_filter_formspec(data, filtmeta)
|
||||
end
|
||||
|
||||
if msg.nofire then
|
||||
return
|
||||
end
|
||||
|
||||
if msg.name or msg.group or msg.count or msg.wear or msg.metadata then
|
||||
add_filter(msg.name, msg.group, msg.count, msg.wear, msg.metadata)
|
||||
else
|
||||
for _, filter in ipairs(msg) do
|
||||
local t_filter = type(filter)
|
||||
if t_filter == "table" then
|
||||
if filter.name or filter.group or filter.count or filter.wear or filter.metadata then
|
||||
add_filter(filter.name, filter.group, filter.count, filter.wear, filter.metadata)
|
||||
end
|
||||
elseif t_filter == "string" then
|
||||
add_itemstring_filter(filter)
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif t_msg == "string" then
|
||||
add_itemstring_filter(msg)
|
||||
end
|
||||
else
|
||||
for _, filterstack in ipairs(filtinv:get_list("main")) do
|
||||
local filtername = filterstack:get_name()
|
||||
local filtercount = filterstack:get_count()
|
||||
if filtername ~= "" then table.insert(filters, {name = filtername, count = filtercount}) end
|
||||
end
|
||||
end
|
||||
if #filters == 0 then table.insert(filters, "") end
|
||||
|
||||
if slotseq_mode == nil then
|
||||
slotseq_mode = filtmeta:get_int("slotseq_mode")
|
||||
end
|
||||
|
||||
if exact_match == nil then
|
||||
exact_match = filtmeta:get_int("exmatch_mode")
|
||||
end
|
||||
|
||||
local frominv
|
||||
if fromtube.return_input_invref then
|
||||
local pos = vector.add(filtpos, vector.multiply(dir, -1))
|
||||
frominv = fromtube.return_input_invref(pos, fromnode, dir, owner)
|
||||
if not frominv then
|
||||
return
|
||||
end
|
||||
else
|
||||
local frommeta = minetest.get_meta(frompos)
|
||||
frominv = frommeta:get_inventory()
|
||||
end
|
||||
if fromtube.before_filter then fromtube.before_filter(frompos) end
|
||||
for _, frominvname in ipairs(type(fromtube.input_inventory) == "table" and fromtube.input_inventory or {fromtube.input_inventory}) do
|
||||
local done = false
|
||||
for _, filterfor in ipairs(filters) do
|
||||
if grabAndFire(data, slotseq_mode, exact_match, filtmeta, frominv, frominvname, frompos, fromnode, filterfor, fromtube, fromdef, dir, fakePlayer, data.stackwise, data.digiline) then
|
||||
done = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if done then break end
|
||||
end
|
||||
if fromtube.after_filter then fromtube.after_filter(frompos) end
|
||||
end
|
||||
|
||||
for _, data in ipairs({
|
||||
{
|
||||
name = "filter",
|
||||
wise_desc = "Itemwise",
|
||||
stackwise = false,
|
||||
},
|
||||
{
|
||||
name = "mese_filter",
|
||||
wise_desc = "Stackwise",
|
||||
stackwise = true,
|
||||
},
|
||||
{ -- register even if no digilines
|
||||
name = "digiline_filter",
|
||||
wise_desc = "Digiline",
|
||||
stackwise = true,
|
||||
digiline = true,
|
||||
},
|
||||
}) do
|
||||
local node = {
|
||||
description = data.wise_desc.." Filter-Injector",
|
||||
tiles = {
|
||||
"pipeworks_"..data.name.."_top.png",
|
||||
"pipeworks_"..data.name.."_top.png",
|
||||
"pipeworks_"..data.name.."_output.png",
|
||||
"pipeworks_"..data.name.."_input.png",
|
||||
"pipeworks_"..data.name.."_side.png",
|
||||
"pipeworks_"..data.name.."_top.png",
|
||||
},
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, mesecon = 2},
|
||||
legacy_facedir_simple = true,
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
set_filter_formspec(data, meta)
|
||||
set_filter_infotext(data, meta)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("main", 8*2)
|
||||
end,
|
||||
after_place_node = function (pos, placer)
|
||||
minetest.get_meta(pos):set_string("owner", placer:get_player_name())
|
||||
pipeworks.after_place(pos)
|
||||
end,
|
||||
after_dig_node = pipeworks.after_dig,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
return count
|
||||
end,
|
||||
can_dig = function(pos, player)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
tube = {connect_sides = {right = 1}},
|
||||
}
|
||||
|
||||
if data.digiline then
|
||||
node.groups.mesecon = nil
|
||||
if not minetest.get_modpath("digilines") then
|
||||
node.groups.not_in_creative_inventory = 1
|
||||
end
|
||||
|
||||
node.on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not pipeworks.may_configure(pos, sender) then return end
|
||||
fs_helpers.on_receive_fields(pos, fields)
|
||||
|
||||
if fields.channel then
|
||||
minetest.get_meta(pos):set_string("channel", fields.channel)
|
||||
end
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
--meta:set_int("slotseq_index", 1)
|
||||
set_filter_formspec(data, meta)
|
||||
set_filter_infotext(data, meta)
|
||||
end
|
||||
node.digiline = {
|
||||
effector = {
|
||||
action = function(pos, node, channel, msg)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local setchan = meta:get_string("channel")
|
||||
if setchan ~= channel then return end
|
||||
|
||||
punch_filter(data, pos, node, msg)
|
||||
end,
|
||||
},
|
||||
}
|
||||
else
|
||||
node.on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not pipeworks.may_configure(pos, sender) then return end
|
||||
fs_helpers.on_receive_fields(pos, fields)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("slotseq_index", 1)
|
||||
set_filter_formspec(data, meta)
|
||||
set_filter_infotext(data, meta)
|
||||
end
|
||||
node.mesecons = {
|
||||
effector = {
|
||||
action_on = function(pos, node)
|
||||
punch_filter(data, pos, node)
|
||||
end,
|
||||
},
|
||||
}
|
||||
node.on_punch = function (pos, node, puncher)
|
||||
punch_filter(data, pos, node)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
minetest.register_node("pipeworks:"..data.name, node)
|
||||
end
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:filter 2",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "base:steel_ingot", "homedecor:plastic_sheeting" },
|
||||
{ "group:stick", "base:mese_crystal", "homedecor:plastic_sheeting" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:mese_filter 2",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "base:steel_ingot", "homedecor:plastic_sheeting" },
|
||||
{ "group:stick", "base:mese", "homedecor:plastic_sheeting" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
|
||||
if minetest.get_modpath("digilines") then
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:digiline_filter 2",
|
||||
recipe = {
|
||||
{ "base:steel_ingot", "base:steel_ingot", "homedecor:plastic_sheeting" },
|
||||
{ "group:stick", "digilines:wire_std_00000000", "homedecor:plastic_sheeting" },
|
||||
{ "base:steel_ingot", "base:steel_ingot", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
|
@ -0,0 +1,134 @@
|
|||
-- This file provides the actual flow and pathfinding logic that makes water
|
||||
-- move through the pipes.
|
||||
--
|
||||
-- Contributed by mauvebic, 2013-01-03, rewritten a bit by Vanessa Ezekowitz
|
||||
--
|
||||
|
||||
local finitewater = minetest.settings:get_bool("liquid_finite")
|
||||
|
||||
pipeworks.check_for_liquids = function(pos)
|
||||
local coords = {
|
||||
{x=pos.x,y=pos.y-1,z=pos.z},
|
||||
{x=pos.x,y=pos.y+1,z=pos.z},
|
||||
{x=pos.x-1,y=pos.y,z=pos.z},
|
||||
{x=pos.x+1,y=pos.y,z=pos.z},
|
||||
{x=pos.x,y=pos.y,z=pos.z-1},
|
||||
{x=pos.x,y=pos.y,z=pos.z+1}, }
|
||||
for i =1,6 do
|
||||
local name = minetest.get_node(coords[i]).name
|
||||
if name and string.find(name,"water") then
|
||||
if finitewater then minetest.remove_node(coords[i]) end
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
pipeworks.check_for_inflows = function(pos,node)
|
||||
local coords = {
|
||||
{x=pos.x,y=pos.y-1,z=pos.z},
|
||||
{x=pos.x,y=pos.y+1,z=pos.z},
|
||||
{x=pos.x-1,y=pos.y,z=pos.z},
|
||||
{x=pos.x+1,y=pos.y,z=pos.z},
|
||||
{x=pos.x,y=pos.y,z=pos.z-1},
|
||||
{x=pos.x,y=pos.y,z=pos.z+1},
|
||||
}
|
||||
local newnode = false
|
||||
local source = false
|
||||
for i = 1, 6 do
|
||||
if newnode then break end
|
||||
local testnode = minetest.get_node(coords[i])
|
||||
local name = testnode.name
|
||||
if name and (name == "pipeworks:pump_on" and pipeworks.check_for_liquids(coords[i])) or string.find(name,"_loaded") then
|
||||
if string.find(name,"_loaded") then
|
||||
source = minetest.get_meta(coords[i]):get_string("source")
|
||||
if source == minetest.pos_to_string(pos) then break end
|
||||
end
|
||||
if string.find(name, "valve") or string.find(name, "sensor") then
|
||||
|
||||
if ((i == 3 or i == 4) and minetest.facedir_to_dir(testnode.param2).x ~= 0)
|
||||
or ((i == 5 or i == 6) and minetest.facedir_to_dir(testnode.param2).z ~= 0)
|
||||
or ((i == 1 or i == 2) and minetest.facedir_to_dir(testnode.param2).y ~= 0) then
|
||||
|
||||
newnode = string.gsub(node.name,"empty","loaded")
|
||||
source = {x=coords[i].x,y=coords[i].y,z=coords[i].z}
|
||||
end
|
||||
else
|
||||
newnode = string.gsub(node.name,"empty","loaded")
|
||||
source = {x=coords[i].x,y=coords[i].y,z=coords[i].z}
|
||||
end
|
||||
end
|
||||
end
|
||||
if newnode then
|
||||
minetest.add_node(pos,{name=newnode, param2 = node.param2})
|
||||
minetest.get_meta(pos):set_string("source",minetest.pos_to_string(source))
|
||||
end
|
||||
end
|
||||
|
||||
pipeworks.check_sources = function(pos,node)
|
||||
local sourcepos = minetest.string_to_pos(minetest.get_meta(pos):get_string("source"))
|
||||
if not sourcepos then return end
|
||||
local source = minetest.get_node(sourcepos).name
|
||||
local newnode = false
|
||||
if source and not ((source == "pipeworks:pump_on" and pipeworks.check_for_liquids(sourcepos)) or string.find(source,"_loaded") or source == "ignore" ) then
|
||||
newnode = string.gsub(node.name,"loaded","empty")
|
||||
end
|
||||
|
||||
if newnode then
|
||||
minetest.add_node(pos,{name=newnode, param2 = node.param2})
|
||||
minetest.get_meta(pos):set_string("source","")
|
||||
end
|
||||
end
|
||||
|
||||
pipeworks.spigot_check = function(pos, node)
|
||||
local belowname = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name
|
||||
if belowname and (belowname == "air" or belowname == "base:water_flowing" or belowname == "base:water_source") then
|
||||
local spigotname = minetest.get_node(pos).name
|
||||
local fdir=node.param2 % 4
|
||||
local check = {
|
||||
{x=pos.x,y=pos.y,z=pos.z+1},
|
||||
{x=pos.x+1,y=pos.y,z=pos.z},
|
||||
{x=pos.x,y=pos.y,z=pos.z-1},
|
||||
{x=pos.x-1,y=pos.y,z=pos.z}
|
||||
}
|
||||
local near_node = minetest.get_node(check[fdir+1])
|
||||
if near_node and string.find(near_node.name, "_loaded") then
|
||||
if spigotname and spigotname == "pipeworks:spigot" then
|
||||
minetest.add_node(pos,{name = "pipeworks:spigot_pouring", param2 = fdir})
|
||||
if finitewater or belowname ~= "base:water_source" then
|
||||
minetest.add_node({x=pos.x,y=pos.y-1,z=pos.z},{name = "base:water_source"})
|
||||
end
|
||||
end
|
||||
else
|
||||
if spigotname == "pipeworks:spigot_pouring" then
|
||||
minetest.add_node({x=pos.x,y=pos.y,z=pos.z},{name = "pipeworks:spigot", param2 = fdir})
|
||||
if belowname == "base:water_source" and not finitewater then
|
||||
minetest.remove_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
pipeworks.fountainhead_check = function(pos, node)
|
||||
local abovename = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}).name
|
||||
if abovename and (abovename == "air" or abovename == "base:water_flowing" or abovename == "base:water_source") then
|
||||
local fountainhead_name = minetest.get_node(pos).name
|
||||
local near_node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z})
|
||||
if near_node and string.find(near_node.name, "_loaded") then
|
||||
if fountainhead_name and fountainhead_name == "pipeworks:fountainhead" then
|
||||
minetest.add_node(pos,{name = "pipeworks:fountainhead_pouring"})
|
||||
if finitewater or abovename ~= "base:water_source" then
|
||||
minetest.add_node({x=pos.x,y=pos.y+1,z=pos.z},{name = "base:water_source"})
|
||||
end
|
||||
end
|
||||
else
|
||||
if fountainhead_name == "pipeworks:fountainhead_pouring" then
|
||||
minetest.add_node({x=pos.x,y=pos.y,z=pos.z},{name = "pipeworks:fountainhead"})
|
||||
if abovename == "base:water_source" and not finitewater then
|
||||
minetest.remove_node({x=pos.x,y=pos.y+1,z=pos.z})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,125 @@
|
|||
-- Pipeworks mod by Vanessa Ezekowitz - 2013-07-13
|
||||
--
|
||||
-- This mod supplies various steel pipes and plastic pneumatic tubes
|
||||
-- and devices that they can connect to.
|
||||
--
|
||||
-- License: WTFPL
|
||||
--
|
||||
|
||||
pipeworks = {}
|
||||
|
||||
local DEBUG = false
|
||||
|
||||
pipeworks.worldpath = minetest.get_worldpath()
|
||||
pipeworks.modpath = minetest.get_modpath("pipeworks")
|
||||
|
||||
dofile(pipeworks.modpath.."/default_settings.lua")
|
||||
|
||||
-- Read the external config file if it exists.
|
||||
local worldsettingspath = pipeworks.worldpath.."/pipeworks_settings.txt"
|
||||
local worldsettingsfile = io.open(worldsettingspath, "r")
|
||||
if worldsettingsfile then
|
||||
worldsettingsfile:close()
|
||||
dofile(worldsettingspath)
|
||||
end
|
||||
|
||||
-- Random variables
|
||||
|
||||
pipeworks.expect_infinite_stacks = true
|
||||
if minetest.get_modpath("unified_inventory") or not minetest.settings:get_bool("creative_mode") then
|
||||
pipeworks.expect_infinite_stacks = false
|
||||
end
|
||||
|
||||
pipeworks.meseadjlist={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=0,y=1,z=0},{x=0,y=-1,z=0},{x=1,y=0,z=0},{x=-1,y=0,z=0}}
|
||||
|
||||
pipeworks.rules_all = {{x=0, y=0, z=1},{x=0, y=0, z=-1},{x=1, y=0, z=0},{x=-1, y=0, z=0},
|
||||
{x=0, y=1, z=1},{x=0, y=1, z=-1},{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=1, y=-1, z=0},{x=-1, y=-1, z=0},
|
||||
{x=0, y=1, z=0}, {x=0, y=-1, z=0}}
|
||||
|
||||
pipeworks.mesecons_rules={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=1,z=0},{x=0,y=-1,z=0}}
|
||||
|
||||
pipeworks.liquid_texture = "base_water.png"
|
||||
|
||||
pipeworks.button_off = {text="", texture="pipeworks_button_off.png", addopts="false;false;pipeworks_button_interm.png"}
|
||||
pipeworks.button_on = {text="", texture="pipeworks_button_on.png", addopts="false;false;pipeworks_button_interm.png"}
|
||||
pipeworks.button_base = "image_button[0,4.3;1,0.6"
|
||||
pipeworks.button_label = "label[0.9,4.31;Allow splitting incoming stacks from tubes]"
|
||||
|
||||
-- Helper functions
|
||||
|
||||
function pipeworks.fix_image_names(table, replacement)
|
||||
local outtable={}
|
||||
for i in ipairs(table) do
|
||||
outtable[i]=string.gsub(table[i], "_XXXXX", replacement)
|
||||
end
|
||||
|
||||
return outtable
|
||||
end
|
||||
|
||||
function pipeworks.add_node_box(t, b)
|
||||
if not t or not b then return end
|
||||
for i in ipairs(b)
|
||||
do table.insert(t, b[i])
|
||||
end
|
||||
end
|
||||
|
||||
function pipeworks.may_configure(pos, player)
|
||||
local name = player:get_player_name()
|
||||
local meta = minetest.get_meta(pos)
|
||||
local owner = meta:get_string("owner")
|
||||
|
||||
if owner ~= "" then -- wielders and filters
|
||||
return owner == name
|
||||
end
|
||||
return not minetest.is_protected(pos, name)
|
||||
end
|
||||
|
||||
function pipeworks.replace_name(tbl,tr,name)
|
||||
local ntbl={}
|
||||
for key,i in pairs(tbl) do
|
||||
if type(i)=="string" then
|
||||
ntbl[key]=string.gsub(i,tr,name)
|
||||
elseif type(i)=="table" then
|
||||
ntbl[key]=pipeworks.replace_name(i,tr,name)
|
||||
else
|
||||
ntbl[key]=i
|
||||
end
|
||||
end
|
||||
return ntbl
|
||||
end
|
||||
|
||||
-------------------------------------------
|
||||
-- Load the various other parts of the mod
|
||||
|
||||
dofile(pipeworks.modpath.."/common.lua")
|
||||
dofile(pipeworks.modpath.."/models.lua")
|
||||
dofile(pipeworks.modpath.."/autoplace_pipes.lua")
|
||||
dofile(pipeworks.modpath.."/autoplace_tubes.lua")
|
||||
dofile(pipeworks.modpath.."/luaentity.lua")
|
||||
dofile(pipeworks.modpath.."/item_transport.lua")
|
||||
dofile(pipeworks.modpath.."/flowing_logic.lua")
|
||||
dofile(pipeworks.modpath.."/crafts.lua")
|
||||
dofile(pipeworks.modpath.."/tube_registration.lua")
|
||||
dofile(pipeworks.modpath.."/routing_tubes.lua")
|
||||
dofile(pipeworks.modpath.."/sorting_tubes.lua")
|
||||
dofile(pipeworks.modpath.."/vacuum_tubes.lua")
|
||||
dofile(pipeworks.modpath.."/signal_tubes.lua")
|
||||
dofile(pipeworks.modpath.."/decorative_tubes.lua")
|
||||
dofile(pipeworks.modpath.."/filter-injector.lua")
|
||||
dofile(pipeworks.modpath.."/trashcan.lua")
|
||||
dofile(pipeworks.modpath.."/wielder.lua")
|
||||
|
||||
if pipeworks.enable_pipes then dofile(pipeworks.modpath.."/pipes.lua") end
|
||||
if pipeworks.enable_teleport_tube then dofile(pipeworks.modpath.."/teleport_tube.lua") end
|
||||
if pipeworks.enable_pipe_devices then dofile(pipeworks.modpath.."/devices.lua") end
|
||||
if pipeworks.enable_redefines then
|
||||
dofile(pipeworks.modpath.."/compat-chests.lua")
|
||||
dofile(pipeworks.modpath.."/compat-furnaces.lua")
|
||||
end
|
||||
if pipeworks.enable_autocrafter then dofile(pipeworks.modpath.."/autocrafter.lua") end
|
||||
|
||||
minetest.register_alias("pipeworks:pipe", "pipeworks:pipe_110000_empty")
|
||||
|
||||
print("Pipeworks loaded!")
|
||||
|
|
@ -0,0 +1,331 @@
|
|||
local luaentity = pipeworks.luaentity
|
||||
local enable_max_limit = minetest.settings:get("pipeworks_enable_items_per_tube_limit")
|
||||
local max_tube_limit = tonumber(minetest.settings:get("pipeworks_max_items_per_tube")) or 30
|
||||
if enable_max_limit == nil then enable_max_limit = true end
|
||||
|
||||
function pipeworks.tube_item(pos, item)
|
||||
error("obsolete pipeworks.tube_item() called; change caller to use pipeworks.tube_inject_item() instead")
|
||||
end
|
||||
|
||||
function pipeworks.tube_inject_item(pos, start_pos, velocity, item, owner)
|
||||
-- Take item in any format
|
||||
local stack = ItemStack(item)
|
||||
local obj = luaentity.add_entity(pos, "pipeworks:tubed_item")
|
||||
obj:set_item(stack:to_string())
|
||||
obj.start_pos = vector.new(start_pos)
|
||||
obj:setvelocity(velocity)
|
||||
obj.owner = owner
|
||||
--obj:set_color("red") -- todo: this is test-only code
|
||||
return obj
|
||||
end
|
||||
|
||||
-- adding two tube functions
|
||||
-- can_remove(pos,node,stack,dir) returns the maximum number of items of that stack that can be removed
|
||||
-- remove_items(pos,node,stack,dir,count) removes count items and returns them
|
||||
-- both optional w/ sensible defaults and fallback to normal allow_* function
|
||||
-- XXX: possibly change insert_object to insert_item
|
||||
|
||||
local adjlist={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=0,y=1,z=0},{x=0,y=-1,z=0},{x=1,y=0,z=0},{x=-1,y=0,z=0}}
|
||||
|
||||
function pipeworks.notvel(tbl, vel)
|
||||
local tbl2={}
|
||||
for _,val in ipairs(tbl) do
|
||||
if val.x ~= -vel.x or val.y ~= -vel.y or val.z ~= -vel.z then table.insert(tbl2, val) end
|
||||
end
|
||||
return tbl2
|
||||
end
|
||||
|
||||
local tube_item_count = {}
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
if not luaentity.entities then
|
||||
return
|
||||
end
|
||||
tube_item_count = {}
|
||||
for id, entity in pairs(luaentity.entities) do
|
||||
if entity.name == "pipeworks:tubed_item" then
|
||||
local h = minetest.hash_node_position(vector.round(entity._pos))
|
||||
tube_item_count[h] = (tube_item_count[h] or 0) + 1
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
local function go_next(pos, velocity, stack, owner)
|
||||
local next_positions = {}
|
||||
local max_priority = 0
|
||||
local cnode = minetest.get_node(pos)
|
||||
local cmeta = minetest.get_meta(pos)
|
||||
local can_go
|
||||
local speed = math.abs(velocity.x + velocity.y + velocity.z)
|
||||
if speed == 0 then
|
||||
speed = 1
|
||||
end
|
||||
local vel = {x = velocity.x/speed, y = velocity.y/speed, z = velocity.z/speed,speed=speed}
|
||||
if speed >= 4.1 then
|
||||
speed = 4
|
||||
elseif speed >= 1.1 then
|
||||
speed = speed - 0.1
|
||||
else
|
||||
speed = 1
|
||||
end
|
||||
vel.speed = speed
|
||||
if minetest.registered_nodes[cnode.name] and minetest.registered_nodes[cnode.name].tube and minetest.registered_nodes[cnode.name].tube.can_go then
|
||||
can_go = minetest.registered_nodes[cnode.name].tube.can_go(pos, cnode, vel, stack)
|
||||
else
|
||||
can_go = pipeworks.notvel(adjlist, vel)
|
||||
end
|
||||
for _, vect in ipairs(can_go) do
|
||||
local npos = vector.add(pos, vect)
|
||||
pipeworks.load_position(npos)
|
||||
local node = minetest.get_node(npos)
|
||||
local reg_node = minetest.registered_nodes[node.name]
|
||||
if reg_node then
|
||||
local tube_def = reg_node.tube
|
||||
local tubedevice = minetest.get_item_group(node.name, "tubedevice")
|
||||
local tube_priority = (tube_def and tube_def.priority) or 100
|
||||
if tubedevice > 0 and tube_priority >= max_priority then
|
||||
if not tube_def or not tube_def.can_insert or
|
||||
tube_def.can_insert(npos, node, stack, vect, owner) then
|
||||
if tube_priority > max_priority then
|
||||
max_priority = tube_priority
|
||||
next_positions = {}
|
||||
end
|
||||
next_positions[#next_positions + 1] = {pos = npos, vect = vect}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if enable_max_limit then
|
||||
local h = minetest.hash_node_position(pos)
|
||||
local itemcount = tube_item_count[h] or 0
|
||||
if itemcount > max_tube_limit then
|
||||
cmeta:set_string("the_tube_was", minetest.serialize(cnode))
|
||||
print("[Pipeworks] Warning - a tube at "..minetest.pos_to_string(pos).." broke due to too many items ("..itemcount..")")
|
||||
minetest.swap_node(pos, {name = "pipeworks:broken_tube_1"})
|
||||
pipeworks.scan_for_tube_objects(pos)
|
||||
end
|
||||
end
|
||||
|
||||
if not next_positions[1] then
|
||||
return false, nil
|
||||
end
|
||||
|
||||
local n = (cmeta:get_int("tubedir") % (#next_positions)) + 1
|
||||
if pipeworks.enable_cyclic_mode then
|
||||
cmeta:set_int("tubedir", n)
|
||||
end
|
||||
local new_velocity = vector.multiply(next_positions[n].vect, vel.speed)
|
||||
return true, new_velocity
|
||||
end
|
||||
|
||||
minetest.register_entity("pipeworks:tubed_item", {
|
||||
initial_properties = {
|
||||
hp_max = 1,
|
||||
physical = false,
|
||||
collisionbox = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1},
|
||||
visual = "wielditem",
|
||||
visual_size = {x = 0.15, y = 0.15},
|
||||
textures = {""},
|
||||
spritediv = {x = 1, y = 1},
|
||||
initial_sprite_basepos = {x = 0, y = 0},
|
||||
is_visible = false,
|
||||
},
|
||||
|
||||
physical_state = false,
|
||||
|
||||
from_data = function(self, itemstring)
|
||||
local stack = ItemStack(itemstring)
|
||||
local itemtable = stack:to_table()
|
||||
local itemname = nil
|
||||
if itemtable then
|
||||
itemname = stack:to_table().name
|
||||
end
|
||||
local item_texture = nil
|
||||
local item_type = ""
|
||||
if minetest.registered_items[itemname] then
|
||||
item_texture = minetest.registered_items[itemname].inventory_image
|
||||
item_type = minetest.registered_items[itemname].type
|
||||
end
|
||||
self.object:set_properties({
|
||||
is_visible = true,
|
||||
textures = {stack:get_name()}
|
||||
})
|
||||
local def = stack:get_definition()
|
||||
self.object:setyaw((def and def.type == "node") and 0 or math.pi * 0.25)
|
||||
end,
|
||||
|
||||
get_staticdata = luaentity.get_staticdata,
|
||||
on_activate = function(self, staticdata) -- Legacy code, should be replaced later by luaentity.on_activate
|
||||
if staticdata == "" or staticdata == nil then
|
||||
return
|
||||
end
|
||||
if staticdata == "toremove" then
|
||||
self.object:remove()
|
||||
return
|
||||
end
|
||||
local item = minetest.deserialize(staticdata)
|
||||
pipeworks.tube_inject_item(self.object:getpos(), item.start_pos, item.velocity, item.itemstring)
|
||||
self.object:remove()
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_entity("pipeworks:color_entity", {
|
||||
initial_properties = {
|
||||
hp_max = 1,
|
||||
physical = false,
|
||||
collisionbox = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1},
|
||||
visual = "cube",
|
||||
visual_size = {x = 3.5, y = 3.5, z = 3.5}, -- todo: find correct size
|
||||
textures = {""},
|
||||
is_visible = false,
|
||||
},
|
||||
|
||||
physical_state = false,
|
||||
|
||||
from_data = function(self, color)
|
||||
local t = "pipeworks_color_"..color..".png"
|
||||
local prop = {
|
||||
is_visible = true,
|
||||
visual = "cube",
|
||||
textures = {t, t, t, t, t, t} -- todo: textures
|
||||
}
|
||||
self.object:set_properties(prop)
|
||||
end,
|
||||
|
||||
get_staticdata = luaentity.get_staticdata,
|
||||
on_activate = luaentity.on_activate,
|
||||
})
|
||||
|
||||
luaentity.register_entity("pipeworks:tubed_item", {
|
||||
itemstring = '',
|
||||
item_entity = nil,
|
||||
color_entity = nil,
|
||||
color = nil,
|
||||
start_pos = nil,
|
||||
|
||||
set_item = function(self, item)
|
||||
local itemstring = ItemStack(item):to_string() -- Accept any input format
|
||||
if self.itemstring == itemstring then
|
||||
return
|
||||
end
|
||||
if self.item_entity then
|
||||
self:remove_attached_entity(self.item_entity)
|
||||
end
|
||||
self.itemstring = itemstring
|
||||
self.item_entity = self:add_attached_entity("pipeworks:tubed_item", itemstring)
|
||||
end,
|
||||
|
||||
set_color = function(self, color)
|
||||
if self.color == color then
|
||||
return
|
||||
end
|
||||
self.color = color
|
||||
if self.color_entity then
|
||||
self:remove_attached_entity(self.color_entity)
|
||||
end
|
||||
if color then
|
||||
self.color_entity = self:add_attached_entity("pipeworks:color_entity", color)
|
||||
else
|
||||
self.color_entity = nil
|
||||
end
|
||||
end,
|
||||
|
||||
on_step = function(self, dtime)
|
||||
local pos = self:getpos()
|
||||
if self.start_pos == nil then
|
||||
self.start_pos = vector.round(pos)
|
||||
self:setpos(pos)
|
||||
end
|
||||
|
||||
local stack = ItemStack(self.itemstring)
|
||||
|
||||
local velocity = self:getvelocity()
|
||||
|
||||
local moved = false
|
||||
local speed = math.abs(velocity.x + velocity.y + velocity.z)
|
||||
if speed == 0 then
|
||||
speed = 1
|
||||
moved = true
|
||||
end
|
||||
local vel = {x = velocity.x / speed, y = velocity.y / speed, z = velocity.z / speed, speed = speed}
|
||||
local moved_by = vector.distance(pos, self.start_pos)
|
||||
|
||||
if moved_by >= 1 then
|
||||
self.start_pos = vector.add(self.start_pos, vel)
|
||||
moved = true
|
||||
end
|
||||
|
||||
pipeworks.load_position(self.start_pos)
|
||||
local node = minetest.get_node(self.start_pos)
|
||||
if moved and minetest.get_item_group(node.name, "tubedevice_receiver") == 1 then
|
||||
local leftover
|
||||
if minetest.registered_nodes[node.name].tube and minetest.registered_nodes[node.name].tube.insert_object then
|
||||
leftover = minetest.registered_nodes[node.name].tube.insert_object(self.start_pos, node, stack, vel, self.owner)
|
||||
else
|
||||
leftover = stack
|
||||
end
|
||||
if leftover:is_empty() then
|
||||
self:remove()
|
||||
return
|
||||
end
|
||||
velocity = vector.multiply(velocity, -1)
|
||||
self:setpos(vector.subtract(self.start_pos, vector.multiply(vel, moved_by - 1)))
|
||||
self:setvelocity(velocity)
|
||||
self:set_item(leftover:to_string())
|
||||
return
|
||||
end
|
||||
|
||||
if moved then
|
||||
local found_next, new_velocity = go_next(self.start_pos, velocity, stack, self.owner) -- todo: color
|
||||
local rev_vel = vector.multiply(velocity, -1)
|
||||
local rev_dir = vector.direction(self.start_pos,vector.add(self.start_pos,rev_vel))
|
||||
local rev_node = minetest.get_node(vector.round(vector.add(self.start_pos,rev_dir)))
|
||||
local tube_present = minetest.get_item_group(rev_node.name,"tubedevice") == 1
|
||||
if not found_next then
|
||||
if pipeworks.drop_on_routing_fail or not tube_present or
|
||||
minetest.get_item_group(rev_node.name,"tube") ~= 1 then
|
||||
-- Using add_item instead of item_drop since this makes pipeworks backward
|
||||
-- compatible with Minetest 0.4.13.
|
||||
-- Using item_drop here makes Minetest 0.4.13 crash.
|
||||
local dropped_item = minetest.add_item(self.start_pos, stack)
|
||||
dropped_item:setvelocity(vector.multiply(velocity, 5))
|
||||
self:remove()
|
||||
return
|
||||
else
|
||||
velocity = vector.multiply(velocity, -1)
|
||||
self:setpos(vector.subtract(self.start_pos, vector.multiply(vel, moved_by - 1)))
|
||||
self:setvelocity(velocity)
|
||||
end
|
||||
end
|
||||
|
||||
if new_velocity and not vector.equals(velocity, new_velocity) then
|
||||
local nvelr = math.abs(new_velocity.x + new_velocity.y + new_velocity.z)
|
||||
self:setpos(vector.add(self.start_pos, vector.multiply(new_velocity, (moved_by - 1) / nvelr)))
|
||||
self:setvelocity(new_velocity)
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
if minetest.get_modpath("mesecons_mvps") then
|
||||
mesecon.register_mvps_unmov("pipeworks:tubed_item")
|
||||
mesecon.register_mvps_unmov("pipeworks:color_entity")
|
||||
mesecon.register_on_mvps_move(function(moved_nodes)
|
||||
local moved = {}
|
||||
for _, n in ipairs(moved_nodes) do
|
||||
moved[minetest.hash_node_position(n.oldpos)] = vector.subtract(n.pos, n.oldpos)
|
||||
end
|
||||
for id, entity in pairs(luaentity.entities) do
|
||||
if entity.name == "pipeworks:tubed_item" then
|
||||
local pos = entity:getpos()
|
||||
local rpos = vector.round(pos)
|
||||
local dir = moved[minetest.hash_node_position(rpos)]
|
||||
if dir then
|
||||
entity:setpos(vector.add(pos, dir))
|
||||
entity.start_pos = vector.add(entity.start_pos, dir)
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
|
@ -0,0 +1,59 @@
|
|||
|
||||
if not minetest.get_modpath("auto_tree_tap") and
|
||||
minetest.get_modpath("technic") then
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = { "auto_tree_tap:off", "auto_tree_tap:on" },
|
||||
chance = 1,
|
||||
interval = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local fdir = node.param2
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("pick", 1)
|
||||
inv:set_size("ghost_pick", 1)
|
||||
inv:set_size("main", 100)
|
||||
minetest.set_node(pos, {name = "pipeworks:nodebreaker_off", param2 = fdir})
|
||||
minetest.registered_nodes["pipeworks:nodebreaker_off"].on_punch(pos, node)
|
||||
inv:set_stack("pick", 1, ItemStack("technic:treetap"))
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node(":auto_tree_tap:off", {
|
||||
description = "Auto-Tap",
|
||||
tiles = {"pipeworks_nodebreaker_top_off.png","pipeworks_nodebreaker_bottom_off.png","pipeworks_nodebreaker_side2_off.png","pipeworks_nodebreaker_side1_off.png",
|
||||
"pipeworks_nodebreaker_back.png","pipeworks_nodebreaker_front_off.png"},
|
||||
is_ground_content = true,
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon = 2,tubedevice=1, not_in_creative_inventory=1 },
|
||||
sounds = base.node_sound_stone_defaults(),
|
||||
tube = {connect_sides={back=1}},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("pick", 1)
|
||||
inv:set_stack("pick", 1, ItemStack("tools:pick_mese"))
|
||||
end,
|
||||
after_place_node = function (pos, placer)
|
||||
pipeworks.scan_for_tube_objects(pos, placer)
|
||||
local placer_pos = placer:getpos()
|
||||
|
||||
--correct for the player's height
|
||||
if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end
|
||||
|
||||
--correct for 6d facedir
|
||||
if placer_pos then
|
||||
local dir = {
|
||||
x = pos.x - placer_pos.x,
|
||||
y = pos.y - placer_pos.y,
|
||||
z = pos.z - placer_pos.z
|
||||
}
|
||||
local node = minetest.get_node(pos)
|
||||
node.param2 = minetest.dir_to_facedir(dir, true)
|
||||
minetest.set_node(pos, node)
|
||||
minetest.log("action", "real (6d) facedir: " .. node.param2)
|
||||
end
|
||||
end,
|
||||
after_dig_node = pipeworks.scan_for_tube_objects,
|
||||
})
|
||||
end
|
|
@ -0,0 +1,374 @@
|
|||
local max_entity_id = 1000000000000 -- If you need more, there's a problem with your code
|
||||
|
||||
local luaentity = {}
|
||||
pipeworks.luaentity = luaentity
|
||||
|
||||
luaentity.registered_entities = {}
|
||||
|
||||
local filename = minetest.get_worldpath().."/luaentities"
|
||||
local function read_file()
|
||||
local f = io.open(filename, "r")
|
||||
if f == nil then return {} end
|
||||
local t = f:read("*all")
|
||||
f:close()
|
||||
if t == "" or t == nil then return {} end
|
||||
return minetest.deserialize(t) or {}
|
||||
end
|
||||
|
||||
local function write_file(tbl)
|
||||
local f = io.open(filename, "w")
|
||||
f:write(minetest.serialize(tbl))
|
||||
f:close()
|
||||
end
|
||||
|
||||
local function read_entities()
|
||||
local t = read_file()
|
||||
for _, entity in pairs(t) do
|
||||
|
||||
local x=entity.start_pos.x
|
||||
local y=entity.start_pos.y
|
||||
local z=entity.start_pos.z
|
||||
|
||||
x=math.max(-30912,x)
|
||||
y=math.max(-30912,y)
|
||||
z=math.max(-30912,z)
|
||||
x=math.min(30927,x)
|
||||
y=math.min(30927,y)
|
||||
z=math.min(30927,z)
|
||||
|
||||
entity.start_pos.x = x
|
||||
entity.start_pos.y = y
|
||||
entity.start_pos.z = z
|
||||
|
||||
setmetatable(entity, luaentity.registered_entities[entity.name])
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
local function write_entities()
|
||||
for _, entity in pairs(luaentity.entities) do
|
||||
setmetatable(entity, nil)
|
||||
for _, attached in pairs(entity._attached_entities) do
|
||||
if attached.entity then
|
||||
attached.entity:remove()
|
||||
attached.entity = nil
|
||||
end
|
||||
end
|
||||
entity._attached_entities_master = nil
|
||||
end
|
||||
write_file(luaentity.entities)
|
||||
end
|
||||
|
||||
minetest.register_on_shutdown(write_entities)
|
||||
luaentity.entities_index = 0
|
||||
|
||||
local function get_blockpos(pos)
|
||||
return {x = math.floor(pos.x / 16),
|
||||
y = math.floor(pos.y / 16),
|
||||
z = math.floor(pos.z / 16)}
|
||||
end
|
||||
|
||||
local active_blocks = {} -- These only contain active blocks near players (i.e., not forceloaded ones)
|
||||
|
||||
local move_entities_globalstep_part1 = function(dtime)
|
||||
local active_block_range = tonumber(minetest.settings:get("active_block_range")) or 2
|
||||
local new_active_blocks = {}
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
local blockpos = get_blockpos(player:getpos())
|
||||
local minp = vector.subtract(blockpos, active_block_range)
|
||||
local maxp = vector.add(blockpos, active_block_range)
|
||||
|
||||
for x = minp.x, maxp.x do
|
||||
for y = minp.y, maxp.y do
|
||||
for z = minp.z, maxp.z do
|
||||
local pos = {x = x, y = y, z = z}
|
||||
new_active_blocks[minetest.hash_node_position(pos)] = pos
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
active_blocks = new_active_blocks
|
||||
-- todo: callbacks on block load/unload
|
||||
end
|
||||
|
||||
local function is_active(pos)
|
||||
return active_blocks[minetest.hash_node_position(get_blockpos(pos))] ~= nil
|
||||
end
|
||||
|
||||
local entitydef_default = {
|
||||
_attach = function(self, attached, attach_to)
|
||||
local attached_def = self._attached_entities[attached]
|
||||
local attach_to_def = self._attached_entities[attach_to]
|
||||
attached_def.entity:set_attach(
|
||||
attach_to_def.entity, "",
|
||||
vector.subtract(attached_def.offset, attach_to_def.offset), -- todo: Does not work because is object space
|
||||
vector.new(0, 0, 0)
|
||||
)
|
||||
end,
|
||||
_set_master = function(self, index)
|
||||
self._attached_entities_master = index
|
||||
if not index then
|
||||
return
|
||||
end
|
||||
local def = self._attached_entities[index]
|
||||
if not def.entity then
|
||||
return
|
||||
end
|
||||
def.entity:setpos(vector.add(self._pos, def.offset))
|
||||
def.entity:setvelocity(self._velocity)
|
||||
def.entity:setacceleration(self._acceleration)
|
||||
end,
|
||||
_attach_all = function(self)
|
||||
local master = self._attached_entities_master
|
||||
if not master then
|
||||
return
|
||||
end
|
||||
for id, entity in pairs(self._attached_entities) do
|
||||
if id ~= master and entity.entity then
|
||||
self:_attach(id, master)
|
||||
end
|
||||
end
|
||||
end,
|
||||
_detach_all = function(self)
|
||||
local master = self._attached_entities_master
|
||||
for id, entity in pairs(self._attached_entities) do
|
||||
if id ~= master and entity.entity then
|
||||
entity.entity:set_detach()
|
||||
end
|
||||
end
|
||||
end,
|
||||
_add_attached = function(self, index)
|
||||
local entity = self._attached_entities[index]
|
||||
if entity.entity then
|
||||
return
|
||||
end
|
||||
local entity_pos = vector.add(self._pos, entity.offset)
|
||||
if not is_active(entity_pos) then
|
||||
return
|
||||
end
|
||||
local ent = minetest.add_entity(entity_pos, entity.name):get_luaentity()
|
||||
ent:from_data(entity.data)
|
||||
ent.parent_id = self._id
|
||||
ent.attached_id = index
|
||||
entity.entity = ent.object
|
||||
local master = self._attached_entities_master
|
||||
if master then
|
||||
self:_attach(index, master)
|
||||
else
|
||||
self:_set_master(index)
|
||||
end
|
||||
end,
|
||||
_remove_attached = function(self, index)
|
||||
local master = self._attached_entities_master
|
||||
local entity = self._attached_entities[index]
|
||||
local ent = entity and entity.entity
|
||||
if entity then entity.entity = nil end
|
||||
if index == master then
|
||||
self:_detach_all()
|
||||
local newmaster
|
||||
for id, attached in pairs(self._attached_entities) do
|
||||
if id ~= master and attached.entity then
|
||||
newmaster = id
|
||||
break
|
||||
end
|
||||
end
|
||||
self:_set_master(newmaster)
|
||||
self:_attach_all()
|
||||
elseif master and ent then
|
||||
ent:set_detach()
|
||||
end
|
||||
if ent then
|
||||
ent:remove()
|
||||
end
|
||||
end,
|
||||
_add_loaded = function(self)
|
||||
for id, _ in pairs(self._attached_entities) do
|
||||
self:_add_attached(id)
|
||||
end
|
||||
end,
|
||||
getid = function(self)
|
||||
return self._id
|
||||
end,
|
||||
getpos = function(self)
|
||||
return vector.new(self._pos)
|
||||
end,
|
||||
setpos = function(self, pos)
|
||||
self._pos = vector.new(pos)
|
||||
--for _, entity in pairs(self._attached_entities) do
|
||||
-- if entity.entity then
|
||||
-- entity.entity:setpos(vector.add(self._pos, entity.offset))
|
||||
-- end
|
||||
--end
|
||||
local master = self._attached_entities_master
|
||||
if master then
|
||||
local master_def = self._attached_entities[master]
|
||||
master_def.entity:setpos(vector.add(self._pos, master_def.offset))
|
||||
end
|
||||
end,
|
||||
getvelocity = function(self)
|
||||
return vector.new(self._velocity)
|
||||
end,
|
||||
setvelocity = function(self, velocity)
|
||||
self._velocity = vector.new(velocity)
|
||||
local master = self._attached_entities_master
|
||||
if master then
|
||||
self._attached_entities[master].entity:setvelocity(self._velocity)
|
||||
end
|
||||
end,
|
||||
getacceleration = function(self)
|
||||
return vector.new(self._acceleration)
|
||||
end,
|
||||
setacceleration = function(self, acceleration)
|
||||
self._acceleration = vector.new(acceleration)
|
||||
local master = self._attached_entities_master
|
||||
if master then
|
||||
self._attached_entities[master].entity:setacceleration(self._acceleration)
|
||||
end
|
||||
end,
|
||||
remove = function(self)
|
||||
self:_detach_all()
|
||||
for _, entity in pairs(self._attached_entities) do
|
||||
if entity.entity then
|
||||
entity.entity:remove()
|
||||
end
|
||||
end
|
||||
luaentity.entities[self._id] = nil
|
||||
end,
|
||||
add_attached_entity = function(self, name, data, offset)
|
||||
local index = #self._attached_entities + 1
|
||||
self._attached_entities[index] = {
|
||||
name = name,
|
||||
data = data,
|
||||
offset = vector.new(offset),
|
||||
}
|
||||
self:_add_attached(index)
|
||||
return index
|
||||
end,
|
||||
remove_attached_entity = function(self, index)
|
||||
self:_remove_attached(index)
|
||||
self._attached_entities[index] = nil
|
||||
end,
|
||||
}
|
||||
|
||||
function luaentity.register_entity(name, prototype)
|
||||
-- name = check_modname_prefix(name)
|
||||
prototype.name = name
|
||||
setmetatable(prototype, {__index = entitydef_default})
|
||||
prototype.__index = prototype -- Make it possible to use it as metatable
|
||||
luaentity.registered_entities[name] = prototype
|
||||
end
|
||||
|
||||
-- function luaentity.get_entity_definition(entity)
|
||||
-- return luaentity.registered_entities[entity.name]
|
||||
-- end
|
||||
|
||||
function luaentity.add_entity(pos, name)
|
||||
if not luaentity.entities then
|
||||
minetest.after(0, luaentity.add_entity, vector.new(pos), name)
|
||||
return
|
||||
end
|
||||
local index = luaentity.entities_index
|
||||
while luaentity.entities[index] do
|
||||
index = index + 1
|
||||
if index >= max_entity_id then
|
||||
index = 0
|
||||
end
|
||||
end
|
||||
luaentity.entities_index = index
|
||||
|
||||
local entity = {
|
||||
name = name,
|
||||
_id = index,
|
||||
_pos = vector.new(pos),
|
||||
_velocity = {x = 0, y = 0, z = 0},
|
||||
_acceleration = {x = 0, y = 0, z = 0},
|
||||
_attached_entities = {},
|
||||
}
|
||||
|
||||
local prototype = luaentity.registered_entities[name]
|
||||
setmetatable(entity, prototype) -- Default to prototype for other methods
|
||||
luaentity.entities[index] = entity
|
||||
|
||||
if entity.on_activate then
|
||||
entity:on_activate()
|
||||
end
|
||||
return entity
|
||||
end
|
||||
|
||||
-- todo: check if remove in get_staticdata works
|
||||
function luaentity.get_staticdata(self)
|
||||
local parent = luaentity.entities[self.parent_id]
|
||||
if parent and parent._remove_attached then
|
||||
parent:_remove_attached(self.attached_id)
|
||||
end
|
||||
return "toremove"
|
||||
end
|
||||
|
||||
function luaentity.on_activate(self, staticdata)
|
||||
if staticdata == "toremove" then
|
||||
self.object:remove()
|
||||
end
|
||||
end
|
||||
|
||||
function luaentity.get_objects_inside_radius(pos, radius)
|
||||
local objects = {}
|
||||
local index = 1
|
||||
for id, entity in pairs(luaentity.entities) do
|
||||
if vector.distance(pos, entity:getpos()) <= radius then
|
||||
objects[index] = entity
|
||||
index = index + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local move_entities_globalstep_part2 = function(dtime)
|
||||
if not luaentity.entities then
|
||||
luaentity.entities = read_entities()
|
||||
end
|
||||
for id, entity in pairs(luaentity.entities) do
|
||||
local master = entity._attached_entities_master
|
||||
local master_def = master and entity._attached_entities[master]
|
||||
local master_entity = master_def and master_def.entity
|
||||
local master_entity_pos = master_entity and master_entity:getpos()
|
||||
if master_entity_pos then
|
||||
entity._pos = vector.subtract(master_entity_pos, master_def.offset)
|
||||
entity._velocity = master_entity:getvelocity()
|
||||
entity._acceleration = master_entity:getacceleration()
|
||||
else
|
||||
entity._pos = vector.add(vector.add(
|
||||
entity._pos,
|
||||
vector.multiply(entity._velocity, dtime)),
|
||||
vector.multiply(entity._acceleration, 0.5 * dtime * dtime))
|
||||
entity._velocity = vector.add(
|
||||
entity._velocity,
|
||||
vector.multiply(entity._acceleration, dtime))
|
||||
end
|
||||
if master and not master_entity_pos then -- The entity has somehow been cleared
|
||||
if pipeworks.delete_item_on_clearobject then
|
||||
entity:remove()
|
||||
else
|
||||
entity:_remove_attached(master)
|
||||
entity:_add_loaded()
|
||||
if entity.on_step then
|
||||
entity:on_step(dtime)
|
||||
end
|
||||
end
|
||||
else
|
||||
entity:_add_loaded()
|
||||
if entity.on_step then
|
||||
entity:on_step(dtime)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local handle_active_blocks_timer = 0.1
|
||||
|
||||
minetest.register_globalstep(function(dtime)
|
||||
handle_active_blocks_timer = handle_active_blocks_timer + dtime
|
||||
if dtime < 0.2 or handle_active_blocks_timer >= (dtime * 3) then
|
||||
handle_active_blocks_timer = 0.1
|
||||
move_entities_globalstep_part1(dtime)
|
||||
move_entities_globalstep_part2(dtime)
|
||||
end
|
||||
end)
|
|
@ -0,0 +1 @@
|
|||
name = pipeworks
|
|
@ -0,0 +1,49 @@
|
|||
-----------------------------------
|
||||
-- The various pipe select boxes
|
||||
|
||||
pipeworks.pipe_selectboxes = {
|
||||
{ -32/64, -8/64, -8/64, 8/64, 8/64, 8/64 },
|
||||
{ -8/64 , -8/64, -8/64, 32/64, 8/64, 8/64 },
|
||||
{ -8/64 , -32/64, -8/64, 8/64, 8/64, 8/64 },
|
||||
{ -8/64 , -8/64, -8/64, 8/64, 32/64, 8/64 },
|
||||
{ -8/64 , -8/64, -32/64, 8/64, 8/64, 8/64 },
|
||||
{ -8/64 , -8/64, -8/64, 8/64, 8/64, 32/64 }
|
||||
}
|
||||
|
||||
-- Tube models
|
||||
|
||||
pipeworks.tube_leftstub = {
|
||||
{ -32/64, -9/64, -9/64, 9/64, 9/64, 9/64 }, -- tube segment against -X face
|
||||
}
|
||||
|
||||
pipeworks.tube_rightstub = {
|
||||
{ -9/64, -9/64, -9/64, 32/64, 9/64, 9/64 }, -- tube segment against +X face
|
||||
}
|
||||
|
||||
pipeworks.tube_bottomstub = {
|
||||
{ -9/64, -32/64, -9/64, 9/64, 9/64, 9/64 }, -- tube segment against -Y face
|
||||
}
|
||||
|
||||
pipeworks.tube_topstub = {
|
||||
{ -9/64, -9/64, -9/64, 9/64, 32/64, 9/64 }, -- tube segment against +Y face
|
||||
}
|
||||
|
||||
pipeworks.tube_frontstub = {
|
||||
{ -9/64, -9/64, -32/64, 9/64, 9/64, 9/64 }, -- tube segment against -Z face
|
||||
}
|
||||
|
||||
pipeworks.tube_backstub = {
|
||||
{ -9/64, -9/64, -9/64, 9/64, 9/64, 32/64 }, -- tube segment against -Z face
|
||||
}
|
||||
|
||||
pipeworks.tube_boxes = {pipeworks.tube_leftstub, pipeworks.tube_rightstub, pipeworks.tube_bottomstub, pipeworks.tube_topstub, pipeworks.tube_frontstub, pipeworks.tube_backstub}
|
||||
|
||||
pipeworks.tube_selectboxes = {
|
||||
{ -32/64, -10/64, -10/64, 10/64, 10/64, 10/64 },
|
||||
{ -10/64 , -10/64, -10/64, 32/64, 10/64, 10/64 },
|
||||
{ -10/64 , -32/64, -10/64, 10/64, 10/64, 10/64 },
|
||||
{ -10/64 , -10/64, -10/64, 10/64, 32/64, 10/64 },
|
||||
{ -10/64 , -10/64, -32/64, 10/64, 10/64, 10/64 },
|
||||
{ -10/64 , -10/64, -10/64, 10/64, 10/64, 32/64 }
|
||||
}
|
||||
|
|
@ -0,0 +1,390 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-entry-panel.blend'
|
||||
# www.blender.org
|
||||
o Cube.001
|
||||
v 0.030483 -0.153248 -0.468750
|
||||
v 0.030483 -0.153248 -0.500000
|
||||
v -0.030483 -0.153248 -0.468750
|
||||
v -0.030483 -0.153248 -0.500000
|
||||
v -0.086808 -0.129917 -0.468750
|
||||
v -0.086808 -0.129917 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.153248 -0.030483 -0.468750
|
||||
v -0.153248 -0.030483 -0.500000
|
||||
v -0.153248 0.030483 -0.468750
|
||||
v -0.153248 0.030483 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.086808 0.129917 -0.468750
|
||||
v -0.086808 0.129917 -0.500000
|
||||
v -0.030483 0.153248 -0.468750
|
||||
v -0.030483 0.153247 -0.500000
|
||||
v 0.030483 0.153248 -0.468750
|
||||
v 0.030483 0.153248 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.129917 0.086808 -0.468750
|
||||
v 0.129917 0.086808 -0.500000
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.129917 -0.086808 -0.468750
|
||||
v 0.129917 -0.086808 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.024386 -0.122598 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v -0.069446 -0.103934 -0.468750
|
||||
v -0.103934 -0.069446 -0.468750
|
||||
v -0.122598 -0.024386 -0.468750
|
||||
v -0.122598 0.024386 -0.468750
|
||||
v -0.103934 0.069446 -0.468750
|
||||
v -0.069446 0.103934 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v 0.024386 0.122598 -0.468750
|
||||
v 0.069446 0.103934 -0.468750
|
||||
v 0.103934 0.069446 -0.468750
|
||||
v 0.122598 0.024386 -0.468750
|
||||
v 0.122598 -0.024387 -0.468750
|
||||
v 0.103934 -0.069447 -0.468750
|
||||
v 0.069446 -0.103934 -0.468750
|
||||
v 0.000000 -0.000000 -0.468750
|
||||
v 0.000000 -0.000000 -0.500000
|
||||
v -0.103934 -0.069446 0.468750
|
||||
v -0.069447 -0.103933 0.468750
|
||||
v -0.024387 -0.122598 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v 0.086808 -0.129917 0.500000
|
||||
v 0.086808 -0.129917 0.468750
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.153247 -0.030483 0.500000
|
||||
v 0.153247 -0.030483 0.468750
|
||||
v 0.153247 0.030483 0.500000
|
||||
v 0.153247 0.030483 0.468750
|
||||
v 0.129917 0.086808 0.500000
|
||||
v 0.129917 0.086808 0.468750
|
||||
v 0.086808 0.129917 0.500000
|
||||
v 0.086808 0.129917 0.468750
|
||||
v 0.030483 0.153248 0.500000
|
||||
v 0.030483 0.153248 0.468750
|
||||
v -0.030483 0.153248 0.500000
|
||||
v -0.030483 0.153248 0.468750
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.129917 0.086808 0.500000
|
||||
v -0.129917 0.086808 0.468750
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.129917 -0.086808 0.500000
|
||||
v -0.129917 -0.086808 0.468750
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.030483 -0.153247 0.500000
|
||||
v -0.030483 -0.153247 0.468750
|
||||
v 0.030483 -0.153247 0.500000
|
||||
v 0.030483 -0.153247 0.468750
|
||||
v -0.122598 -0.024386 0.468750
|
||||
v -0.122598 0.024387 0.468750
|
||||
v -0.103934 0.069447 0.468750
|
||||
v -0.069447 0.103934 0.468750
|
||||
v -0.024387 0.122598 0.468750
|
||||
v 0.024386 0.122598 0.468750
|
||||
v 0.069446 0.103934 0.468750
|
||||
v 0.103933 0.069447 0.468750
|
||||
v 0.122598 0.024387 0.468750
|
||||
v 0.122598 -0.024386 0.468750
|
||||
v 0.103933 -0.069446 0.468750
|
||||
v 0.069446 -0.103933 0.468750
|
||||
v -0.000000 0.000000 0.468750
|
||||
v -0.000000 0.000000 0.500000
|
||||
v 0.500000 -0.500000 0.062500
|
||||
v -0.500000 -0.500000 0.062500
|
||||
v -0.500000 -0.500000 -0.062500
|
||||
v 0.500000 -0.500000 -0.062500
|
||||
v 0.500000 0.500000 0.062500
|
||||
v -0.500000 0.500000 0.062500
|
||||
v -0.500000 0.500000 -0.062500
|
||||
v 0.500000 0.500000 -0.062500
|
||||
vt 0.871212 0.265152
|
||||
vt 0.840909 0.265152
|
||||
vt 0.840909 0.295455
|
||||
vt 0.871212 0.295455
|
||||
vt 0.810606 0.265152
|
||||
vt 0.810606 0.295455
|
||||
vt 0.780303 0.265152
|
||||
vt 0.780303 0.295455
|
||||
vt 0.750000 0.265152
|
||||
vt 0.750000 0.295455
|
||||
vt 0.719697 0.265152
|
||||
vt 0.719697 0.295455
|
||||
vt 0.689394 0.265152
|
||||
vt 0.689394 0.295455
|
||||
vt 0.659091 0.265152
|
||||
vt 0.659091 0.295455
|
||||
vt 0.628788 0.265152
|
||||
vt 0.628788 0.295455
|
||||
vt 0.598485 0.265152
|
||||
vt 0.598485 0.295455
|
||||
vt 0.568182 0.265152
|
||||
vt 0.568182 0.295455
|
||||
vt 0.537879 0.265152
|
||||
vt 0.537879 0.295455
|
||||
vt 0.507576 0.265152
|
||||
vt 0.507576 0.295455
|
||||
vt 0.992424 0.265152
|
||||
vt 0.962121 0.265152
|
||||
vt 0.962121 0.295455
|
||||
vt 0.992424 0.295455
|
||||
vt 0.931818 0.265152
|
||||
vt 0.931818 0.295455
|
||||
vt 0.901515 0.265152
|
||||
vt 0.901515 0.295455
|
||||
vt 0.613449 0.318703
|
||||
vt 0.597693 0.397916
|
||||
vt 0.581936 0.318703
|
||||
vt 0.765436 0.318703
|
||||
vt 0.781192 0.397916
|
||||
vt 0.796949 0.318703
|
||||
vt 0.826063 0.330762
|
||||
vt 0.848346 0.353045
|
||||
vt 0.860405 0.382159
|
||||
vt 0.860405 0.413672
|
||||
vt 0.848346 0.442786
|
||||
vt 0.826063 0.465069
|
||||
vt 0.796949 0.477128
|
||||
vt 0.765436 0.477128
|
||||
vt 0.736322 0.465069
|
||||
vt 0.714039 0.442786
|
||||
vt 0.701980 0.413672
|
||||
vt 0.701980 0.382159
|
||||
vt 0.714039 0.353045
|
||||
vt 0.736322 0.330762
|
||||
vt 0.552823 0.330762
|
||||
vt 0.530540 0.353045
|
||||
vt 0.518480 0.382159
|
||||
vt 0.518480 0.413672
|
||||
vt 0.530540 0.442786
|
||||
vt 0.552822 0.465069
|
||||
vt 0.581936 0.477128
|
||||
vt 0.613449 0.477128
|
||||
vt 0.642563 0.465069
|
||||
vt 0.664846 0.442786
|
||||
vt 0.676906 0.413672
|
||||
vt 0.676906 0.382159
|
||||
vt 0.664846 0.353045
|
||||
vt 0.642563 0.330762
|
||||
vt 0.598485 0.250000
|
||||
vt 0.598485 0.007576
|
||||
vt 0.628788 0.007576
|
||||
vt 0.628788 0.250000
|
||||
vt 0.552823 0.330759
|
||||
vt 0.581937 0.318699
|
||||
vt 0.597694 0.397912
|
||||
vt 0.530540 0.353042
|
||||
vt 0.518481 0.382156
|
||||
vt 0.518481 0.413668
|
||||
vt 0.530540 0.442782
|
||||
vt 0.552823 0.465065
|
||||
vt 0.581937 0.477125
|
||||
vt 0.613450 0.477125
|
||||
vt 0.642564 0.465065
|
||||
vt 0.664847 0.442782
|
||||
vt 0.676906 0.413668
|
||||
vt 0.676906 0.382156
|
||||
vt 0.664847 0.353042
|
||||
vt 0.642564 0.330759
|
||||
vt 0.613450 0.318699
|
||||
vt 0.736320 0.330759
|
||||
vt 0.765434 0.318699
|
||||
vt 0.781190 0.397912
|
||||
vt 0.714037 0.353041
|
||||
vt 0.701978 0.382156
|
||||
vt 0.701978 0.413668
|
||||
vt 0.714037 0.442782
|
||||
vt 0.736320 0.465065
|
||||
vt 0.765434 0.477125
|
||||
vt 0.796947 0.477125
|
||||
vt 0.826061 0.465065
|
||||
vt 0.848344 0.442782
|
||||
vt 0.860403 0.413668
|
||||
vt 0.860403 0.382156
|
||||
vt 0.848344 0.353041
|
||||
vt 0.826061 0.330759
|
||||
vt 0.796947 0.318699
|
||||
vt 0.931818 0.250000
|
||||
vt 0.931818 0.007576
|
||||
vt 0.962121 0.007576
|
||||
vt 0.962121 0.250000
|
||||
vt 0.871212 0.250000
|
||||
vt 0.871212 0.007576
|
||||
vt 0.901515 0.007576
|
||||
vt 0.901515 0.250000
|
||||
vt 0.780303 0.250000
|
||||
vt 0.780303 0.007576
|
||||
vt 0.810606 0.007576
|
||||
vt 0.810606 0.250000
|
||||
vt 0.840909 0.250000
|
||||
vt 0.840909 0.007576
|
||||
vt 0.750000 0.250000
|
||||
vt 0.750000 0.007576
|
||||
vt 0.719697 0.250000
|
||||
vt 0.719697 0.007576
|
||||
vt 0.689394 0.250000
|
||||
vt 0.689394 0.007576
|
||||
vt 0.659091 0.250000
|
||||
vt 0.659091 0.007576
|
||||
vt 0.568182 0.250000
|
||||
vt 0.568182 0.007576
|
||||
vt 0.537879 0.250000
|
||||
vt 0.537879 0.007576
|
||||
vt 0.507576 0.250000
|
||||
vt 0.507576 0.007576
|
||||
vt 0.992424 0.007576
|
||||
vt 0.992424 0.250000
|
||||
vt 0.507576 0.507576
|
||||
vt 0.992424 0.507576
|
||||
vt 0.992424 0.992424
|
||||
vt 0.507576 0.992424
|
||||
vt 0.068182 0.492424
|
||||
vt 0.007576 0.492424
|
||||
vt 0.007576 0.007576
|
||||
vt 0.068182 0.007576
|
||||
vt 0.492424 0.992424
|
||||
vt 0.007576 0.992424
|
||||
vt 0.007576 0.507576
|
||||
vt 0.492424 0.507576
|
||||
vt 0.295455 0.492424
|
||||
vt 0.234848 0.492424
|
||||
vt 0.234848 0.007576
|
||||
vt 0.295455 0.007576
|
||||
vt 0.219697 0.007576
|
||||
vt 0.219697 0.492424
|
||||
vt 0.159091 0.492424
|
||||
vt 0.159091 0.007576
|
||||
vt 0.083333 0.492424
|
||||
vt 0.083333 0.007576
|
||||
vt 0.143939 0.007576
|
||||
vt 0.143939 0.492424
|
||||
s off
|
||||
f 1/1 3/2 4/3 2/4
|
||||
f 3/2 5/5 6/6 4/3
|
||||
f 5/5 7/7 8/8 6/6
|
||||
f 7/7 9/9 10/10 8/8
|
||||
f 9/9 11/11 12/12 10/10
|
||||
f 11/11 13/13 14/14 12/12
|
||||
f 13/13 15/15 16/16 14/14
|
||||
f 15/15 17/17 18/18 16/16
|
||||
f 17/17 19/19 20/20 18/18
|
||||
f 19/19 21/21 22/22 20/20
|
||||
f 21/21 23/23 24/24 22/22
|
||||
f 23/23 25/25 26/26 24/24
|
||||
f 25/27 27/28 28/29 26/30
|
||||
f 27/28 29/31 30/32 28/29
|
||||
f 31/33 1/1 2/4 32/34
|
||||
f 29/31 31/33 32/34 30/32
|
||||
f 4/35 50/36 2/37
|
||||
f 1/38 49/39 3/40
|
||||
f 3/40 49/39 5/41
|
||||
f 5/41 49/39 7/42
|
||||
f 7/42 49/39 9/43
|
||||
f 9/43 49/39 11/44
|
||||
f 11/44 49/39 13/45
|
||||
f 13/45 49/39 15/46
|
||||
f 15/46 49/39 17/47
|
||||
f 17/47 49/39 19/48
|
||||
f 19/48 49/39 21/49
|
||||
f 21/49 49/39 23/50
|
||||
f 23/50 49/39 25/51
|
||||
f 25/51 49/39 27/52
|
||||
f 27/52 49/39 29/53
|
||||
f 29/53 49/39 31/54
|
||||
f 31/54 49/39 1/38
|
||||
f 2/37 50/36 32/55
|
||||
f 32/55 50/36 30/56
|
||||
f 30/56 50/36 28/57
|
||||
f 28/57 50/36 26/58
|
||||
f 26/58 50/36 24/59
|
||||
f 24/59 50/36 22/60
|
||||
f 22/60 50/36 20/61
|
||||
f 20/61 50/36 18/62
|
||||
f 18/62 50/36 16/63
|
||||
f 16/63 50/36 14/64
|
||||
f 14/64 50/36 12/65
|
||||
f 12/65 50/36 10/66
|
||||
f 10/66 50/36 8/67
|
||||
f 8/67 50/36 6/68
|
||||
f 6/68 50/36 4/35
|
||||
f 41/69 91/70 92/71 42/72
|
||||
f 81/73 83/74 100/75
|
||||
f 79/76 81/73 100/75
|
||||
f 77/77 79/76 100/75
|
||||
f 75/78 77/77 100/75
|
||||
f 73/79 75/78 100/75
|
||||
f 71/80 73/79 100/75
|
||||
f 69/81 71/80 100/75
|
||||
f 67/82 69/81 100/75
|
||||
f 65/83 67/82 100/75
|
||||
f 63/84 65/83 100/75
|
||||
f 61/85 63/84 100/75
|
||||
f 59/86 61/85 100/75
|
||||
f 57/87 59/86 100/75
|
||||
f 55/88 57/87 100/75
|
||||
f 85/89 55/88 100/75
|
||||
f 56/90 86/91 99/92
|
||||
f 58/93 56/90 99/92
|
||||
f 60/94 58/93 99/92
|
||||
f 62/95 60/94 99/92
|
||||
f 64/96 62/95 99/92
|
||||
f 66/97 64/96 99/92
|
||||
f 68/98 66/97 99/92
|
||||
f 70/99 68/98 99/92
|
||||
f 72/100 70/99 99/92
|
||||
f 74/101 72/100 99/92
|
||||
f 76/102 74/101 99/92
|
||||
f 78/103 76/102 99/92
|
||||
f 80/104 78/103 99/92
|
||||
f 82/105 80/104 99/92
|
||||
f 84/106 82/105 99/92
|
||||
f 86/91 84/106 99/92
|
||||
f 83/74 85/89 100/75
|
||||
f 58/22 57/21 55/19 56/20
|
||||
f 56/20 55/19 85/17 86/18
|
||||
f 60/24 59/23 57/21 58/22
|
||||
f 62/26 61/25 59/23 60/24
|
||||
f 64/29 63/28 61/27 62/30
|
||||
f 66/32 65/31 63/28 64/29
|
||||
f 68/34 67/33 65/31 66/32
|
||||
f 70/4 69/1 67/33 68/34
|
||||
f 72/3 71/2 69/1 70/4
|
||||
f 74/6 73/5 71/2 72/3
|
||||
f 76/8 75/7 73/5 74/6
|
||||
f 78/10 77/9 75/7 76/8
|
||||
f 80/12 79/11 77/9 78/10
|
||||
f 82/14 81/13 79/11 80/12
|
||||
f 84/16 83/15 81/13 82/14
|
||||
f 86/18 85/17 83/15 84/16
|
||||
f 36/107 51/108 87/109 37/110
|
||||
f 34/111 53/112 52/113 35/114
|
||||
f 47/115 97/116 98/117 48/118
|
||||
f 33/119 54/120 53/112 34/111
|
||||
f 35/114 52/113 51/108 36/107
|
||||
f 48/118 98/117 54/120 33/119
|
||||
f 46/121 96/122 97/116 47/115
|
||||
f 45/123 95/124 96/122 46/121
|
||||
f 44/125 94/126 95/124 45/123
|
||||
f 43/127 93/128 94/126 44/125
|
||||
f 42/72 92/71 93/128 43/127
|
||||
f 40/129 90/130 91/70 41/69
|
||||
f 39/131 89/132 90/130 40/129
|
||||
f 38/133 88/134 89/132 39/131
|
||||
f 37/110 87/109 88/135 38/136
|
||||
f 105/137 106/138 102/139 101/140
|
||||
f 106/141 107/142 103/143 102/144
|
||||
f 107/145 108/146 104/147 103/148
|
||||
f 108/149 105/150 101/151 104/152
|
||||
f 101/153 102/154 103/155 104/156
|
||||
f 108/157 107/158 106/159 105/160
|
|
@ -0,0 +1,380 @@
|
|||
# Blender v2.72 (sub 0) OBJ File: 'pipe-flow-sensor.blend'
|
||||
# www.blender.org
|
||||
o Cube.001
|
||||
v -0.030483 -0.153248 0.468750
|
||||
v -0.030483 -0.153248 0.500000
|
||||
v 0.030483 -0.153248 0.468750
|
||||
v 0.030483 -0.153248 0.500000
|
||||
v 0.086808 -0.129917 0.468750
|
||||
v 0.086808 -0.129917 0.500000
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.153248 -0.030483 0.468750
|
||||
v 0.153248 -0.030483 0.500000
|
||||
v 0.153248 0.030483 0.468750
|
||||
v 0.153248 0.030483 0.500000
|
||||
v 0.129917 0.086808 0.468750
|
||||
v 0.129917 0.086808 0.500000
|
||||
v 0.086808 0.129917 0.468750
|
||||
v 0.086808 0.129917 0.500000
|
||||
v 0.030483 0.153248 0.468750
|
||||
v 0.030483 0.153247 0.500000
|
||||
v -0.030483 0.153248 0.468750
|
||||
v -0.030483 0.153248 0.500000
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.129917 0.086808 0.468750
|
||||
v -0.129917 0.086808 0.500000
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.129917 -0.086808 0.468750
|
||||
v -0.129917 -0.086808 0.500000
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.024386 -0.122598 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v 0.069446 -0.103934 0.468750
|
||||
v 0.103934 -0.069446 0.468750
|
||||
v 0.122598 -0.024386 0.468750
|
||||
v 0.122598 0.024386 0.468750
|
||||
v 0.103934 0.069446 0.468750
|
||||
v 0.069446 0.103934 0.468750
|
||||
v 0.024386 0.122598 0.468750
|
||||
v -0.024386 0.122598 0.468750
|
||||
v -0.069446 0.103934 0.468750
|
||||
v -0.103934 0.069446 0.468750
|
||||
v -0.122598 0.024386 0.468750
|
||||
v -0.122598 -0.024387 0.468750
|
||||
v -0.103934 -0.069447 0.468750
|
||||
v -0.069446 -0.103934 0.468750
|
||||
v -0.000000 -0.000000 0.468750
|
||||
v -0.000000 -0.000000 0.500000
|
||||
v 0.103934 -0.069446 -0.468750
|
||||
v 0.069446 -0.103933 -0.468750
|
||||
v 0.024386 -0.122598 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v -0.086808 -0.129917 -0.500000
|
||||
v -0.086808 -0.129917 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.153248 -0.030483 -0.500000
|
||||
v -0.153248 -0.030483 -0.468750
|
||||
v -0.153248 0.030483 -0.500000
|
||||
v -0.153248 0.030483 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.086808 0.129917 -0.500000
|
||||
v -0.086808 0.129917 -0.468750
|
||||
v -0.030483 0.153248 -0.500000
|
||||
v -0.030483 0.153248 -0.468750
|
||||
v 0.030483 0.153248 -0.500000
|
||||
v 0.030483 0.153248 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.129917 0.086808 -0.500000
|
||||
v 0.129917 0.086808 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.129917 -0.086808 -0.500000
|
||||
v 0.129917 -0.086808 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.030483 -0.153247 -0.500000
|
||||
v 0.030483 -0.153247 -0.468750
|
||||
v -0.030483 -0.153247 -0.500000
|
||||
v -0.030483 -0.153247 -0.468750
|
||||
v 0.122598 -0.024386 -0.468750
|
||||
v 0.122598 0.024387 -0.468750
|
||||
v 0.103934 0.069447 -0.468750
|
||||
v 0.069446 0.103934 -0.468750
|
||||
v 0.024386 0.122598 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v -0.069446 0.103934 -0.468750
|
||||
v -0.103934 0.069447 -0.468750
|
||||
v -0.122598 0.024387 -0.468750
|
||||
v -0.122598 -0.024386 -0.468750
|
||||
v -0.103934 -0.069446 -0.468750
|
||||
v -0.069446 -0.103933 -0.468750
|
||||
v 0.000000 0.000000 -0.468750
|
||||
v 0.000000 0.000000 -0.500000
|
||||
v 0.187500 -0.187500 -0.250000
|
||||
v 0.187500 -0.187500 0.250000
|
||||
v -0.187500 -0.187500 0.250000
|
||||
v -0.187500 -0.187500 -0.250000
|
||||
v 0.187500 0.187500 -0.250000
|
||||
v 0.187500 0.187500 0.250000
|
||||
v -0.187500 0.187500 0.250000
|
||||
v -0.187500 0.187500 -0.250000
|
||||
vt 0.813725 0.460784
|
||||
vt 0.774510 0.460784
|
||||
vt 0.774510 0.500000
|
||||
vt 0.813725 0.500000
|
||||
vt 0.735294 0.460784
|
||||
vt 0.735294 0.500000
|
||||
vt 0.696078 0.460784
|
||||
vt 0.696078 0.500000
|
||||
vt 0.656863 0.460784
|
||||
vt 0.656863 0.500000
|
||||
vt 0.617647 0.460784
|
||||
vt 0.617647 0.500000
|
||||
vt 0.578431 0.460784
|
||||
vt 0.578431 0.500000
|
||||
vt 0.539216 0.460784
|
||||
vt 0.539216 0.500000
|
||||
vt 0.500000 0.460784
|
||||
vt 0.500000 0.500000
|
||||
vt 0.460784 0.460784
|
||||
vt 0.460784 0.500000
|
||||
vt 0.421569 0.460784
|
||||
vt 0.421569 0.500000
|
||||
vt 0.382353 0.460784
|
||||
vt 0.382353 0.500000
|
||||
vt 0.343137 0.460784
|
||||
vt 0.343137 0.500000
|
||||
vt 0.970588 0.460784
|
||||
vt 0.931373 0.460784
|
||||
vt 0.931373 0.500000
|
||||
vt 0.970588 0.500000
|
||||
vt 0.892157 0.460784
|
||||
vt 0.892157 0.500000
|
||||
vt 0.852941 0.460784
|
||||
vt 0.852941 0.500000
|
||||
vt 0.480968 0.531171
|
||||
vt 0.460590 0.633014
|
||||
vt 0.440211 0.531171
|
||||
vt 0.677539 0.531171
|
||||
vt 0.697917 0.633014
|
||||
vt 0.718296 0.531171
|
||||
vt 0.755950 0.546676
|
||||
vt 0.784770 0.575325
|
||||
vt 0.800366 0.612756
|
||||
vt 0.800366 0.653272
|
||||
vt 0.784770 0.690703
|
||||
vt 0.755950 0.719352
|
||||
vt 0.718296 0.734857
|
||||
vt 0.677539 0.734857
|
||||
vt 0.639884 0.719352
|
||||
vt 0.611065 0.690703
|
||||
vt 0.595468 0.653272
|
||||
vt 0.595468 0.612756
|
||||
vt 0.611065 0.575325
|
||||
vt 0.639885 0.546676
|
||||
vt 0.402557 0.546676
|
||||
vt 0.373737 0.575325
|
||||
vt 0.358140 0.612756
|
||||
vt 0.358140 0.653272
|
||||
vt 0.373737 0.690703
|
||||
vt 0.402557 0.719352
|
||||
vt 0.440211 0.734857
|
||||
vt 0.480968 0.734857
|
||||
vt 0.518622 0.719352
|
||||
vt 0.547442 0.690703
|
||||
vt 0.563039 0.653272
|
||||
vt 0.563039 0.612756
|
||||
vt 0.547442 0.575325
|
||||
vt 0.518622 0.546676
|
||||
vt 0.460784 0.441176
|
||||
vt 0.460784 0.127451
|
||||
vt 0.500000 0.127451
|
||||
vt 0.500000 0.441176
|
||||
vt 0.402558 0.719348
|
||||
vt 0.518623 0.719348
|
||||
vt 0.639882 0.719347
|
||||
vt 0.755947 0.719347
|
||||
vt 0.755948 0.546671
|
||||
vt 0.892157 0.441176
|
||||
vt 0.892157 0.127451
|
||||
vt 0.931373 0.127451
|
||||
vt 0.931373 0.441176
|
||||
vt 0.813725 0.441176
|
||||
vt 0.813725 0.127451
|
||||
vt 0.852941 0.127451
|
||||
vt 0.852941 0.441176
|
||||
vt 0.696078 0.441176
|
||||
vt 0.696078 0.127451
|
||||
vt 0.735294 0.127451
|
||||
vt 0.735294 0.441176
|
||||
vt 0.774510 0.441176
|
||||
vt 0.774510 0.127451
|
||||
vt 0.656863 0.441176
|
||||
vt 0.656863 0.127451
|
||||
vt 0.617647 0.441176
|
||||
vt 0.617647 0.127451
|
||||
vt 0.578431 0.441176
|
||||
vt 0.578431 0.127451
|
||||
vt 0.539216 0.441176
|
||||
vt 0.539216 0.127451
|
||||
vt 0.421569 0.441176
|
||||
vt 0.421569 0.127451
|
||||
vt 0.382353 0.441176
|
||||
vt 0.382353 0.127451
|
||||
vt 0.343137 0.441176
|
||||
vt 0.343137 0.127451
|
||||
vt 0.970588 0.127451
|
||||
vt 0.970588 0.441176
|
||||
vt 0.009804 0.500000
|
||||
vt 0.323529 0.500000
|
||||
vt 0.323529 0.735294
|
||||
vt 0.009804 0.735294
|
||||
vt 0.264706 0.990196
|
||||
vt 0.264706 0.754902
|
||||
vt 0.500000 0.754902
|
||||
vt 0.500000 0.990196
|
||||
vt 0.519608 0.754902
|
||||
vt 0.833333 0.754902
|
||||
vt 0.833333 0.990196
|
||||
vt 0.519608 0.990196
|
||||
vt 0.245098 0.754902
|
||||
vt 0.245098 0.990196
|
||||
vt 0.009804 0.990196
|
||||
vt 0.009804 0.754902
|
||||
vt 0.323529 0.245098
|
||||
vt 0.009804 0.245098
|
||||
vt 0.009804 0.009804
|
||||
vt 0.323529 0.009804
|
||||
vt 0.009804 0.254902
|
||||
vt 0.323529 0.254902
|
||||
vt 0.323529 0.490196
|
||||
vt 0.009804 0.490196
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.382700 -0.923900 -0.000000
|
||||
vn 0.707100 -0.707100 -0.000000
|
||||
vn 0.923900 -0.382700 -0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.923900 0.382700 0.000000
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn 0.382700 0.923900 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -0.382700 0.923900 0.000000
|
||||
vn -0.707100 0.707100 0.000000
|
||||
vn -0.923900 0.382700 0.000000
|
||||
vn -1.000000 -0.000000 0.000000
|
||||
vn -0.923900 -0.382700 -0.000000
|
||||
vn -0.382700 -0.923900 -0.000000
|
||||
vn -0.707100 -0.707100 -0.000000
|
||||
vn 0.000000 -0.000000 1.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
g Cube.001_Cube.001_None
|
||||
s off
|
||||
f 1/1/1 3/2/1 4/3/1 2/4/1
|
||||
f 3/2/2 5/5/2 6/6/2 4/3/2
|
||||
f 5/5/3 7/7/3 8/8/3 6/6/3
|
||||
f 7/7/4 9/9/4 10/10/4 8/8/4
|
||||
f 9/9/5 11/11/5 12/12/5 10/10/5
|
||||
f 11/11/6 13/13/6 14/14/6 12/12/6
|
||||
f 13/13/7 15/15/7 16/16/7 14/14/7
|
||||
f 15/15/8 17/17/8 18/18/8 16/16/8
|
||||
f 17/17/9 19/19/9 20/20/9 18/18/9
|
||||
f 19/19/10 21/21/10 22/22/10 20/20/10
|
||||
f 21/21/11 23/23/11 24/24/11 22/22/11
|
||||
f 23/23/12 25/25/12 26/26/12 24/24/12
|
||||
f 25/27/13 27/28/13 28/29/13 26/30/13
|
||||
f 27/28/14 29/31/14 30/32/14 28/29/14
|
||||
f 31/33/15 1/1/15 2/4/15 32/34/15
|
||||
f 29/31/16 31/33/16 32/34/16 30/32/16
|
||||
f 4/35/17 50/36/17 2/37/17
|
||||
f 1/38/18 49/39/18 3/40/18
|
||||
f 3/40/18 49/39/18 5/41/18
|
||||
f 5/41/18 49/39/18 7/42/18
|
||||
f 7/42/18 49/39/18 9/43/18
|
||||
f 9/43/18 49/39/18 11/44/18
|
||||
f 11/44/18 49/39/18 13/45/18
|
||||
f 13/45/18 49/39/18 15/46/18
|
||||
f 15/46/18 49/39/18 17/47/18
|
||||
f 17/47/18 49/39/18 19/48/18
|
||||
f 19/48/18 49/39/18 21/49/18
|
||||
f 21/49/18 49/39/18 23/50/18
|
||||
f 23/50/18 49/39/18 25/51/18
|
||||
f 25/51/18 49/39/18 27/52/18
|
||||
f 27/52/18 49/39/18 29/53/18
|
||||
f 29/53/18 49/39/18 31/54/18
|
||||
f 31/54/18 49/39/18 1/38/18
|
||||
f 2/37/17 50/36/17 32/55/17
|
||||
f 32/55/17 50/36/17 30/56/17
|
||||
f 30/56/17 50/36/17 28/57/17
|
||||
f 28/57/17 50/36/17 26/58/17
|
||||
f 26/58/17 50/36/17 24/59/17
|
||||
f 24/59/17 50/36/17 22/60/17
|
||||
f 22/60/17 50/36/17 20/61/17
|
||||
f 20/61/17 50/36/17 18/62/17
|
||||
f 18/62/17 50/36/17 16/63/17
|
||||
f 16/63/17 50/36/17 14/64/17
|
||||
f 14/64/17 50/36/17 12/65/17
|
||||
f 12/65/17 50/36/17 10/66/17
|
||||
f 10/66/17 50/36/17 8/67/17
|
||||
f 8/67/17 50/36/17 6/68/17
|
||||
f 6/68/17 50/36/17 4/35/17
|
||||
f 41/69/9 91/70/9 92/71/9 42/72/9
|
||||
f 81/55/18 83/37/18 100/36/18
|
||||
f 79/56/18 81/55/18 100/36/18
|
||||
f 77/57/18 79/56/18 100/36/18
|
||||
f 75/58/18 77/57/18 100/36/18
|
||||
f 73/59/18 75/58/18 100/36/18
|
||||
f 71/73/18 73/59/18 100/36/18
|
||||
f 69/61/18 71/73/18 100/36/18
|
||||
f 67/62/18 69/61/18 100/36/18
|
||||
f 65/74/18 67/62/18 100/36/18
|
||||
f 63/64/18 65/74/18 100/36/18
|
||||
f 61/65/18 63/64/18 100/36/18
|
||||
f 59/66/18 61/65/18 100/36/18
|
||||
f 57/67/18 59/66/18 100/36/18
|
||||
f 55/68/18 57/67/18 100/36/18
|
||||
f 85/35/18 55/68/18 100/36/18
|
||||
f 56/54/17 86/38/17 99/39/17
|
||||
f 58/53/17 56/54/17 99/39/17
|
||||
f 60/52/17 58/53/17 99/39/17
|
||||
f 62/51/17 60/52/17 99/39/17
|
||||
f 64/50/17 62/51/17 99/39/17
|
||||
f 66/75/17 64/50/17 99/39/17
|
||||
f 68/48/17 66/75/17 99/39/17
|
||||
f 70/47/17 68/48/17 99/39/17
|
||||
f 72/76/17 70/47/17 99/39/17
|
||||
f 74/45/17 72/76/17 99/39/17
|
||||
f 76/44/17 74/45/17 99/39/17
|
||||
f 78/43/17 76/44/17 99/39/17
|
||||
f 80/42/17 78/43/17 99/39/17
|
||||
f 82/77/17 80/42/17 99/39/17
|
||||
f 84/40/17 82/77/17 99/39/17
|
||||
f 86/38/17 84/40/17 99/39/17
|
||||
f 83/37/18 85/35/18 100/36/18
|
||||
f 58/22/16 57/21/16 55/19/16 56/20/16
|
||||
f 56/20/15 55/19/15 85/17/15 86/18/15
|
||||
f 60/24/14 59/23/14 57/21/14 58/22/14
|
||||
f 62/26/13 61/25/13 59/23/13 60/24/13
|
||||
f 64/29/12 63/28/12 61/27/12 62/30/12
|
||||
f 66/32/11 65/31/11 63/28/11 64/29/11
|
||||
f 68/34/10 67/33/10 65/31/10 66/32/10
|
||||
f 70/4/9 69/1/9 67/33/9 68/34/9
|
||||
f 72/3/8 71/2/8 69/1/8 70/4/8
|
||||
f 74/6/7 73/5/7 71/2/7 72/3/7
|
||||
f 76/8/6 75/7/6 73/5/6 74/6/6
|
||||
f 78/10/5 77/9/5 75/7/5 76/8/5
|
||||
f 80/12/4 79/11/4 77/9/4 78/10/4
|
||||
f 82/14/3 81/13/3 79/11/3 80/12/3
|
||||
f 84/16/2 83/15/2 81/13/2 82/14/2
|
||||
f 86/18/1 85/17/1 83/15/1 84/16/1
|
||||
f 36/78/4 51/79/4 87/80/4 37/81/4
|
||||
f 34/82/2 53/83/2 52/84/2 35/85/2
|
||||
f 47/86/16 97/87/16 98/88/16 48/89/16
|
||||
f 33/90/1 54/91/1 53/83/1 34/82/1
|
||||
f 35/85/3 52/84/3 51/79/3 36/78/3
|
||||
f 48/89/15 98/88/15 54/91/15 33/90/15
|
||||
f 46/92/14 96/93/14 97/87/14 47/86/14
|
||||
f 45/94/13 95/95/13 96/93/13 46/92/13
|
||||
f 44/96/12 94/97/12 95/95/12 45/94/12
|
||||
f 43/98/11 93/99/11 94/97/11 44/96/11
|
||||
f 42/72/10 92/71/10 93/99/10 43/98/10
|
||||
f 40/100/8 90/101/8 91/70/8 41/69/8
|
||||
f 39/102/7 89/103/7 90/101/7 40/100/7
|
||||
f 38/104/6 88/105/6 89/103/6 39/102/6
|
||||
f 37/81/5 87/80/5 88/106/5 38/107/5
|
||||
f 105/108/5 106/109/5 102/110/5 101/111/5
|
||||
f 106/112/17 107/113/17 103/114/17 102/115/17
|
||||
f 107/116/13 108/117/13 104/118/13 103/119/13
|
||||
f 108/120/18 105/121/18 101/122/18 104/123/18
|
||||
f 101/124/1 102/125/1 103/126/1 104/127/1
|
||||
f 108/128/9 107/129/9 106/130/9 105/131/9
|
|
@ -0,0 +1,352 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-fountainhead.blend'
|
||||
# www.blender.org
|
||||
o Cube.001
|
||||
v 0.153248 -0.468750 -0.030483
|
||||
v 0.153248 -0.500000 -0.030483
|
||||
v 0.153248 -0.468750 0.030483
|
||||
v 0.153248 -0.500000 0.030483
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v 0.030483 -0.500000 0.153248
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.500000 0.153248
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.129917 -0.500000 0.086808
|
||||
v -0.153247 -0.468750 0.030483
|
||||
v -0.153247 -0.500000 0.030483
|
||||
v -0.153247 -0.468750 -0.030483
|
||||
v -0.153247 -0.500000 -0.030483
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.129917 -0.500000 -0.086808
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.086807 -0.500000 -0.129917
|
||||
v -0.030482 -0.468750 -0.153248
|
||||
v -0.030482 -0.500000 -0.153248
|
||||
v 0.030483 -0.468750 -0.153248
|
||||
v 0.030483 -0.500000 -0.153248
|
||||
v 0.086808 -0.468750 -0.129917
|
||||
v 0.086808 -0.500000 -0.129917
|
||||
v 0.129918 -0.468750 -0.086808
|
||||
v 0.129918 -0.500000 -0.086808
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.122598 -0.468750 0.024386
|
||||
v 0.103934 -0.468750 0.069446
|
||||
v 0.069447 -0.468750 0.103934
|
||||
v 0.024387 -0.468750 0.122598
|
||||
v -0.024386 -0.468750 0.122598
|
||||
v -0.069446 -0.468750 0.103934
|
||||
v -0.103933 -0.468750 0.069446
|
||||
v -0.122598 -0.468750 0.024386
|
||||
v -0.122598 -0.468750 -0.024386
|
||||
v -0.103933 -0.468750 -0.069446
|
||||
v -0.069446 -0.468750 -0.103934
|
||||
v -0.024386 -0.468750 -0.122598
|
||||
v 0.024387 -0.468750 -0.122598
|
||||
v 0.069447 -0.468750 -0.103934
|
||||
v 0.103934 -0.468750 -0.069446
|
||||
v 0.000000 -0.468750 0.000000
|
||||
v 0.000000 -0.500000 -0.000000
|
||||
v 0.069446 0.312500 0.103934
|
||||
v 0.103933 0.312500 0.069447
|
||||
v 0.122598 0.312500 0.024387
|
||||
v 0.122598 0.312500 -0.024386
|
||||
v 0.129917 0.500000 -0.086808
|
||||
v 0.129917 0.312500 -0.086808
|
||||
v 0.086808 0.500000 -0.129917
|
||||
v 0.086808 0.312500 -0.129917
|
||||
v 0.030483 0.500000 -0.153247
|
||||
v 0.030483 0.312500 -0.153248
|
||||
v -0.030483 0.500000 -0.153247
|
||||
v -0.030483 0.312500 -0.153248
|
||||
v -0.086808 0.500000 -0.129917
|
||||
v -0.086808 0.312500 -0.129917
|
||||
v -0.129918 0.500000 -0.086808
|
||||
v -0.129918 0.312500 -0.086808
|
||||
v -0.153248 0.500000 -0.030483
|
||||
v -0.153248 0.312500 -0.030483
|
||||
v -0.153248 0.500000 0.030483
|
||||
v -0.153248 0.312500 0.030483
|
||||
v -0.129918 0.500000 0.086808
|
||||
v -0.129918 0.312500 0.086808
|
||||
v -0.086808 0.500000 0.129917
|
||||
v -0.086808 0.312500 0.129917
|
||||
v -0.030483 0.500000 0.153248
|
||||
v -0.030483 0.312500 0.153248
|
||||
v 0.030482 0.500000 0.153248
|
||||
v 0.030482 0.312500 0.153248
|
||||
v 0.086807 0.500000 0.129917
|
||||
v 0.086807 0.312500 0.129917
|
||||
v 0.129917 0.500000 0.086808
|
||||
v 0.129917 0.312500 0.086808
|
||||
v 0.153247 0.500000 0.030483
|
||||
v 0.153247 0.312500 0.030483
|
||||
v 0.153247 0.500000 -0.030483
|
||||
v 0.153247 0.312500 -0.030483
|
||||
v 0.024386 0.312500 0.122598
|
||||
v -0.024387 0.312500 0.122598
|
||||
v -0.069447 0.312500 0.103934
|
||||
v -0.103934 0.312500 0.069446
|
||||
v -0.122599 0.312500 0.024386
|
||||
v -0.122599 0.312500 -0.024386
|
||||
v -0.103934 0.312500 -0.069446
|
||||
v -0.069447 0.312500 -0.103934
|
||||
v -0.024387 0.312500 -0.122598
|
||||
v 0.024386 0.312500 -0.122598
|
||||
v 0.069446 0.312500 -0.103933
|
||||
v 0.103933 0.312500 -0.069446
|
||||
v -0.000000 0.312500 0.000000
|
||||
v -0.000000 0.500000 0.000000
|
||||
vt 0.680556 0.486111
|
||||
vt 0.625000 0.486111
|
||||
vt 0.625000 0.652778
|
||||
vt 0.680556 0.652778
|
||||
vt 0.569444 0.486111
|
||||
vt 0.569444 0.652778
|
||||
vt 0.513889 0.486111
|
||||
vt 0.513889 0.652778
|
||||
vt 0.458333 0.486111
|
||||
vt 0.458333 0.652778
|
||||
vt 0.402778 0.486111
|
||||
vt 0.402778 0.652778
|
||||
vt 0.347222 0.486111
|
||||
vt 0.347222 0.652778
|
||||
vt 0.291667 0.486111
|
||||
vt 0.291667 0.652778
|
||||
vt 0.236111 0.486111
|
||||
vt 0.236111 0.652778
|
||||
vt 0.180556 0.486111
|
||||
vt 0.180556 0.652778
|
||||
vt 0.125000 0.486111
|
||||
vt 0.125000 0.652778
|
||||
vt 0.069444 0.486111
|
||||
vt 0.069444 0.652778
|
||||
vt 0.013889 0.486111
|
||||
vt 0.013889 0.652778
|
||||
vt 0.902778 0.486111
|
||||
vt 0.847222 0.486111
|
||||
vt 0.847222 0.652778
|
||||
vt 0.902778 0.652778
|
||||
vt 0.791667 0.486111
|
||||
vt 0.791667 0.652778
|
||||
vt 0.736111 0.486111
|
||||
vt 0.736111 0.652778
|
||||
vt 0.194034 0.696809
|
||||
vt 0.165430 0.839757
|
||||
vt 0.136827 0.696809
|
||||
vt 0.469943 0.696809
|
||||
vt 0.498546 0.839757
|
||||
vt 0.527150 0.696809
|
||||
vt 0.580002 0.718572
|
||||
vt 0.620453 0.758784
|
||||
vt 0.642345 0.811323
|
||||
vt 0.642345 0.868191
|
||||
vt 0.620453 0.920730
|
||||
vt 0.580002 0.960942
|
||||
vt 0.527149 0.982704
|
||||
vt 0.469943 0.982704
|
||||
vt 0.417091 0.960942
|
||||
vt 0.376639 0.920730
|
||||
vt 0.354747 0.868191
|
||||
vt 0.354747 0.811323
|
||||
vt 0.376639 0.758784
|
||||
vt 0.417091 0.718572
|
||||
vt 0.083975 0.718572
|
||||
vt 0.043524 0.758784
|
||||
vt 0.021631 0.811323
|
||||
vt 0.021631 0.868191
|
||||
vt 0.043523 0.920730
|
||||
vt 0.083975 0.960942
|
||||
vt 0.136827 0.982704
|
||||
vt 0.194034 0.982704
|
||||
vt 0.246886 0.960942
|
||||
vt 0.287337 0.920730
|
||||
vt 0.309229 0.868191
|
||||
vt 0.309229 0.811323
|
||||
vt 0.287337 0.758784
|
||||
vt 0.246886 0.718572
|
||||
vt 0.180556 0.458333
|
||||
vt 0.180556 0.013889
|
||||
vt 0.236111 0.013889
|
||||
vt 0.236111 0.458333
|
||||
vt 0.750889 0.718565
|
||||
vt 0.803741 0.696803
|
||||
vt 0.832345 0.839750
|
||||
vt 0.710438 0.758777
|
||||
vt 0.688546 0.811316
|
||||
vt 0.688546 0.868184
|
||||
vt 0.710438 0.920723
|
||||
vt 0.750889 0.960935
|
||||
vt 0.803741 0.982698
|
||||
vt 0.860948 0.982698
|
||||
vt 0.913800 0.960935
|
||||
vt 0.954251 0.920723
|
||||
vt 0.976143 0.868184
|
||||
vt 0.976143 0.811316
|
||||
vt 0.954251 0.758777
|
||||
vt 0.913800 0.718565
|
||||
vt 0.860948 0.696803
|
||||
vt 0.417087 0.718565
|
||||
vt 0.469939 0.696803
|
||||
vt 0.498543 0.839750
|
||||
vt 0.376636 0.758777
|
||||
vt 0.354744 0.811316
|
||||
vt 0.354744 0.868184
|
||||
vt 0.376636 0.920723
|
||||
vt 0.417087 0.960935
|
||||
vt 0.469939 0.982698
|
||||
vt 0.527146 0.982698
|
||||
vt 0.579998 0.960935
|
||||
vt 0.620449 0.920723
|
||||
vt 0.642341 0.868184
|
||||
vt 0.642341 0.811316
|
||||
vt 0.620449 0.758777
|
||||
vt 0.579998 0.718565
|
||||
vt 0.527146 0.696803
|
||||
vt 0.791667 0.458333
|
||||
vt 0.791667 0.013889
|
||||
vt 0.847222 0.013889
|
||||
vt 0.847222 0.458333
|
||||
vt 0.680556 0.458333
|
||||
vt 0.680556 0.013889
|
||||
vt 0.736111 0.013889
|
||||
vt 0.736111 0.458333
|
||||
vt 0.513889 0.458333
|
||||
vt 0.513889 0.013889
|
||||
vt 0.569444 0.013889
|
||||
vt 0.569444 0.458333
|
||||
vt 0.625000 0.458333
|
||||
vt 0.625000 0.013889
|
||||
vt 0.458333 0.458333
|
||||
vt 0.458333 0.013889
|
||||
vt 0.402778 0.458333
|
||||
vt 0.402778 0.013889
|
||||
vt 0.347222 0.458333
|
||||
vt 0.347222 0.013889
|
||||
vt 0.291667 0.458333
|
||||
vt 0.291667 0.013889
|
||||
vt 0.125000 0.458333
|
||||
vt 0.125000 0.013889
|
||||
vt 0.069444 0.458333
|
||||
vt 0.069444 0.013889
|
||||
vt 0.013889 0.458333
|
||||
vt 0.013889 0.013889
|
||||
vt 0.902778 0.013889
|
||||
vt 0.902778 0.458333
|
||||
s off
|
||||
f 1/1 3/2 4/3 2/4
|
||||
f 3/2 5/5 6/6 4/3
|
||||
f 5/5 7/7 8/8 6/6
|
||||
f 7/7 9/9 10/10 8/8
|
||||
f 9/9 11/11 12/12 10/10
|
||||
f 11/11 13/13 14/14 12/12
|
||||
f 13/13 15/15 16/16 14/14
|
||||
f 15/15 17/17 18/18 16/16
|
||||
f 17/17 19/19 20/20 18/18
|
||||
f 19/19 21/21 22/22 20/20
|
||||
f 21/21 23/23 24/24 22/22
|
||||
f 23/23 25/25 26/26 24/24
|
||||
f 25/27 27/28 28/29 26/30
|
||||
f 27/28 29/31 30/32 28/29
|
||||
f 31/33 1/1 2/4 32/34
|
||||
f 29/31 31/33 32/34 30/32
|
||||
f 4/35 50/36 2/37
|
||||
f 1/38 49/39 3/40
|
||||
f 3/40 49/39 5/41
|
||||
f 5/41 49/39 7/42
|
||||
f 7/42 49/39 9/43
|
||||
f 9/43 49/39 11/44
|
||||
f 11/44 49/39 13/45
|
||||
f 13/45 49/39 15/46
|
||||
f 15/46 49/39 17/47
|
||||
f 17/47 49/39 19/48
|
||||
f 19/48 49/39 21/49
|
||||
f 21/49 49/39 23/50
|
||||
f 23/50 49/39 25/51
|
||||
f 25/51 49/39 27/52
|
||||
f 27/52 49/39 29/53
|
||||
f 29/53 49/39 31/54
|
||||
f 31/54 49/39 1/38
|
||||
f 2/37 50/36 32/55
|
||||
f 32/55 50/36 30/56
|
||||
f 30/56 50/36 28/57
|
||||
f 28/57 50/36 26/58
|
||||
f 26/58 50/36 24/59
|
||||
f 24/59 50/36 22/60
|
||||
f 22/60 50/36 20/61
|
||||
f 20/61 50/36 18/62
|
||||
f 18/62 50/36 16/63
|
||||
f 16/63 50/36 14/64
|
||||
f 14/64 50/36 12/65
|
||||
f 12/65 50/36 10/66
|
||||
f 10/66 50/36 8/67
|
||||
f 8/67 50/36 6/68
|
||||
f 6/68 50/36 4/35
|
||||
f 41/69 91/70 92/71 42/72
|
||||
f 81/73 83/74 100/75
|
||||
f 79/76 81/73 100/75
|
||||
f 77/77 79/76 100/75
|
||||
f 75/78 77/77 100/75
|
||||
f 73/79 75/78 100/75
|
||||
f 71/80 73/79 100/75
|
||||
f 69/81 71/80 100/75
|
||||
f 67/82 69/81 100/75
|
||||
f 65/83 67/82 100/75
|
||||
f 63/84 65/83 100/75
|
||||
f 61/85 63/84 100/75
|
||||
f 59/86 61/85 100/75
|
||||
f 57/87 59/86 100/75
|
||||
f 55/88 57/87 100/75
|
||||
f 85/89 55/88 100/75
|
||||
f 56/90 86/91 99/92
|
||||
f 58/93 56/90 99/92
|
||||
f 60/94 58/93 99/92
|
||||
f 62/95 60/94 99/92
|
||||
f 64/96 62/95 99/92
|
||||
f 66/97 64/96 99/92
|
||||
f 68/98 66/97 99/92
|
||||
f 70/99 68/98 99/92
|
||||
f 72/100 70/99 99/92
|
||||
f 74/101 72/100 99/92
|
||||
f 76/102 74/101 99/92
|
||||
f 78/103 76/102 99/92
|
||||
f 80/104 78/103 99/92
|
||||
f 82/105 80/104 99/92
|
||||
f 84/106 82/105 99/92
|
||||
f 86/91 84/106 99/92
|
||||
f 83/74 85/89 100/75
|
||||
f 58/22 57/21 55/19 56/20
|
||||
f 56/20 55/19 85/17 86/18
|
||||
f 60/24 59/23 57/21 58/22
|
||||
f 62/26 61/25 59/23 60/24
|
||||
f 64/29 63/28 61/27 62/30
|
||||
f 66/32 65/31 63/28 64/29
|
||||
f 68/34 67/33 65/31 66/32
|
||||
f 70/4 69/1 67/33 68/34
|
||||
f 72/3 71/2 69/1 70/4
|
||||
f 74/6 73/5 71/2 72/3
|
||||
f 76/8 75/7 73/5 74/6
|
||||
f 78/10 77/9 75/7 76/8
|
||||
f 80/12 79/11 77/9 78/10
|
||||
f 82/14 81/13 79/11 80/12
|
||||
f 84/16 83/15 81/13 82/14
|
||||
f 86/18 85/17 83/15 84/16
|
||||
f 36/107 51/108 87/109 37/110
|
||||
f 34/111 53/112 52/113 35/114
|
||||
f 47/115 97/116 98/117 48/118
|
||||
f 33/119 54/120 53/112 34/111
|
||||
f 35/114 52/113 51/108 36/107
|
||||
f 48/118 98/117 54/120 33/119
|
||||
f 46/121 96/122 97/116 47/115
|
||||
f 45/123 95/124 96/122 46/121
|
||||
f 44/125 94/126 95/124 45/123
|
||||
f 43/127 93/128 94/126 44/125
|
||||
f 42/72 92/71 93/128 43/127
|
||||
f 40/129 90/130 91/70 41/69
|
||||
f 39/131 89/132 90/130 40/129
|
||||
f 38/133 88/134 89/132 39/131
|
||||
f 37/110 87/109 88/135 38/136
|
|
@ -0,0 +1,891 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-6way.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_pipe_10.mtl
|
||||
o Cube.000
|
||||
v 0.069446 -0.468750 -0.103934
|
||||
v 0.103933 -0.468750 -0.069446
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.122598 -0.468750 0.024386
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.500000 0.153247
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.500000 0.153247
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129918 -0.500000 0.086808
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153248 -0.500000 0.030483
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.153248 -0.500000 -0.030483
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v -0.129918 -0.500000 -0.086808
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.500000 -0.153248
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v 0.030482 -0.500000 -0.153248
|
||||
v 0.030482 -0.468750 -0.153248
|
||||
v 0.086807 -0.500000 -0.129917
|
||||
v 0.086807 -0.468750 -0.129917
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153247 -0.500000 -0.030483
|
||||
v 0.153247 -0.468750 -0.030483
|
||||
v 0.153247 -0.500000 0.030483
|
||||
v 0.153247 -0.468750 0.030483
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v -0.024387 -0.468750 -0.122598
|
||||
v -0.069447 -0.468750 -0.103934
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v -0.122599 -0.468750 -0.024386
|
||||
v -0.122599 -0.468750 0.024386
|
||||
v -0.103934 -0.468750 0.069446
|
||||
v -0.069447 -0.468750 0.103934
|
||||
v -0.024387 -0.468750 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.069446 -0.468750 0.103933
|
||||
v 0.103933 -0.468750 0.069446
|
||||
v -0.000000 -0.468750 -0.000000
|
||||
v -0.000000 -0.500000 -0.000000
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.153248 0.468750 0.030483
|
||||
v 0.153248 0.500000 0.030483
|
||||
v 0.153248 0.468750 -0.030483
|
||||
v 0.153248 0.500000 -0.030483
|
||||
v 0.129917 0.468750 -0.086808
|
||||
v 0.129917 0.500000 -0.086808
|
||||
v 0.086808 0.468750 -0.129917
|
||||
v 0.086808 0.500000 -0.129917
|
||||
v 0.030483 0.468750 -0.153248
|
||||
v 0.030483 0.500000 -0.153248
|
||||
v -0.030483 0.468750 -0.153248
|
||||
v -0.030483 0.500000 -0.153248
|
||||
v -0.086808 0.468750 -0.129917
|
||||
v -0.086808 0.500000 -0.129917
|
||||
v -0.129917 0.468750 -0.086808
|
||||
v -0.129917 0.500000 -0.086808
|
||||
v -0.153247 0.468750 -0.030483
|
||||
v -0.153247 0.500000 -0.030483
|
||||
v -0.153247 0.468750 0.030483
|
||||
v -0.153247 0.500000 0.030483
|
||||
v -0.129917 0.468750 0.086808
|
||||
v -0.129917 0.500000 0.086808
|
||||
v -0.086808 0.468750 0.129917
|
||||
v -0.086808 0.500000 0.129917
|
||||
v -0.030483 0.468750 0.153248
|
||||
v -0.030483 0.500000 0.153248
|
||||
v 0.030483 0.468750 0.153248
|
||||
v 0.030483 0.500000 0.153248
|
||||
v 0.086808 0.468750 0.129917
|
||||
v 0.086808 0.500000 0.129917
|
||||
v 0.129917 0.468750 0.086808
|
||||
v 0.129918 0.500000 0.086808
|
||||
v 0.122598 0.468750 0.024386
|
||||
v 0.122598 0.468750 -0.024386
|
||||
v 0.103934 0.468750 -0.069446
|
||||
v 0.069447 0.468750 -0.103934
|
||||
v 0.024387 0.468750 -0.122598
|
||||
v -0.024386 0.468750 -0.122598
|
||||
v -0.069446 0.468750 -0.103934
|
||||
v -0.103933 0.468750 -0.069446
|
||||
v -0.122598 0.468750 -0.024386
|
||||
v -0.122598 0.468750 0.024386
|
||||
v -0.103933 0.468750 0.069446
|
||||
v -0.069446 0.468750 0.103934
|
||||
v -0.024386 0.468750 0.122598
|
||||
v 0.024387 0.468750 0.122598
|
||||
v 0.069447 0.468750 0.103934
|
||||
v 0.103934 0.468750 0.069446
|
||||
v 0.000000 0.468750 -0.000000
|
||||
v 0.000000 0.500000 0.000000
|
||||
v -0.024386 0.024390 -0.122598
|
||||
v -0.069446 0.024390 -0.103934
|
||||
v -0.103934 0.024390 -0.069446
|
||||
v -0.122598 0.024390 -0.024386
|
||||
v -0.122598 0.024390 0.024386
|
||||
v -0.103934 0.024390 0.069446
|
||||
v -0.069446 0.024390 0.103934
|
||||
v -0.024386 0.024389 0.122598
|
||||
v 0.024386 0.024389 0.122598
|
||||
v 0.103934 0.024390 0.069446
|
||||
v 0.069446 0.024390 0.103934
|
||||
v 0.103934 0.024390 -0.069446
|
||||
v 0.122598 0.024390 -0.024386
|
||||
v 0.122598 0.024390 0.024386
|
||||
v 0.069446 0.024390 -0.103934
|
||||
v 0.024386 0.024390 -0.122598
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.500000 -0.153248 -0.030483
|
||||
v 0.468750 -0.129917 -0.086808
|
||||
v 0.500000 -0.129917 -0.086808
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.468750 -0.030483 -0.153248
|
||||
v 0.500000 -0.030483 -0.153248
|
||||
v 0.468750 0.030483 -0.153248
|
||||
v 0.500000 0.030483 -0.153248
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.500000 0.153247 -0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.468750 -0.122598 0.024386
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 -0.069446 -0.103934
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.468750 0.069446 -0.103934
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.468750 0.122598 0.024386
|
||||
v 0.468750 0.103934 0.069446
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.468750 -0.024387 0.122598
|
||||
v 0.468750 -0.069447 0.103934
|
||||
v 0.468750 -0.103934 0.069446
|
||||
v 0.468750 -0.000000 -0.000000
|
||||
v 0.500000 -0.000000 0.000000
|
||||
v -0.468750 -0.069446 -0.103934
|
||||
v -0.468750 -0.103933 -0.069446
|
||||
v -0.468750 -0.122598 -0.024387
|
||||
v -0.468750 -0.122598 0.024386
|
||||
v -0.500000 -0.129917 0.086808
|
||||
v -0.468750 -0.129917 0.086808
|
||||
v -0.500000 -0.086808 0.129917
|
||||
v -0.468750 -0.086808 0.129917
|
||||
v -0.500000 -0.030483 0.153247
|
||||
v -0.468750 -0.030483 0.153248
|
||||
v -0.500000 0.030483 0.153247
|
||||
v -0.468750 0.030483 0.153248
|
||||
v -0.500000 0.086808 0.129917
|
||||
v -0.468750 0.086808 0.129917
|
||||
v -0.500000 0.129917 0.086808
|
||||
v -0.468750 0.129917 0.086808
|
||||
v -0.500000 0.153248 0.030483
|
||||
v -0.468750 0.153248 0.030483
|
||||
v -0.500000 0.153248 -0.030483
|
||||
v -0.468750 0.153248 -0.030483
|
||||
v -0.500000 0.129917 -0.086808
|
||||
v -0.468750 0.129917 -0.086808
|
||||
v -0.500000 0.086808 -0.129917
|
||||
v -0.468750 0.086808 -0.129917
|
||||
v -0.500000 0.030483 -0.153248
|
||||
v -0.468750 0.030483 -0.153248
|
||||
v -0.500000 -0.030483 -0.153248
|
||||
v -0.468750 -0.030483 -0.153248
|
||||
v -0.500000 -0.086808 -0.129917
|
||||
v -0.468750 -0.086808 -0.129917
|
||||
v -0.500000 -0.129917 -0.086808
|
||||
v -0.468750 -0.129917 -0.086808
|
||||
v -0.500000 -0.153247 -0.030483
|
||||
v -0.468750 -0.153247 -0.030483
|
||||
v -0.500000 -0.153247 0.030483
|
||||
v -0.468750 -0.153247 0.030483
|
||||
v -0.468750 -0.024386 -0.122598
|
||||
v -0.468750 0.024387 -0.122598
|
||||
v -0.468750 0.069447 -0.103934
|
||||
v -0.468750 0.103934 -0.069446
|
||||
v -0.468750 0.122598 -0.024386
|
||||
v -0.468750 0.122598 0.024386
|
||||
v -0.468750 0.103934 0.069446
|
||||
v -0.468750 0.069447 0.103934
|
||||
v -0.468750 0.024387 0.122598
|
||||
v -0.468750 -0.024386 0.122598
|
||||
v -0.468750 -0.069446 0.103933
|
||||
v -0.468750 -0.103933 0.069446
|
||||
v -0.468750 0.000000 -0.000000
|
||||
v -0.500000 0.000000 -0.000000
|
||||
v 0.069446 -0.103934 0.468750
|
||||
v 0.103933 -0.069447 0.468750
|
||||
v 0.122598 -0.024387 0.468750
|
||||
v 0.122598 0.024386 0.468750
|
||||
v 0.129917 0.086807 0.500000
|
||||
v 0.129917 0.086807 0.468750
|
||||
v 0.086808 0.129917 0.500000
|
||||
v 0.086808 0.129917 0.468750
|
||||
v 0.030483 0.153247 0.500000
|
||||
v 0.030483 0.153247 0.468750
|
||||
v -0.030483 0.153247 0.500000
|
||||
v -0.030483 0.153247 0.468750
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.129918 0.086808 0.500000
|
||||
v -0.129917 0.086808 0.468750
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.129918 -0.086808 0.500000
|
||||
v -0.129917 -0.086808 0.468750
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.030483 -0.153248 0.500000
|
||||
v -0.030483 -0.153248 0.468750
|
||||
v 0.030482 -0.153248 0.500000
|
||||
v 0.030482 -0.153248 0.468750
|
||||
v 0.086807 -0.129917 0.500000
|
||||
v 0.086807 -0.129917 0.468750
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.153247 -0.030483 0.500000
|
||||
v 0.153247 -0.030483 0.468750
|
||||
v 0.153247 0.030483 0.500000
|
||||
v 0.153247 0.030483 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v -0.024387 -0.122598 0.468750
|
||||
v -0.069447 -0.103934 0.468750
|
||||
v -0.103934 -0.069447 0.468750
|
||||
v -0.122599 -0.024387 0.468750
|
||||
v -0.122599 0.024386 0.468750
|
||||
v -0.103934 0.069446 0.468750
|
||||
v -0.069447 0.103933 0.468750
|
||||
v -0.024387 0.122598 0.468750
|
||||
v 0.024386 0.122598 0.468750
|
||||
v 0.069446 0.103933 0.468750
|
||||
v 0.103933 0.069446 0.468750
|
||||
v -0.000000 -0.000000 0.468750
|
||||
v -0.000000 -0.000000 0.500000
|
||||
v -0.024386 -0.122598 0.024391
|
||||
v -0.069446 -0.103934 0.024391
|
||||
v -0.103934 -0.069446 0.024391
|
||||
v -0.122598 -0.024386 0.024391
|
||||
v -0.122598 0.024386 0.024391
|
||||
v -0.103934 0.069446 0.024391
|
||||
v -0.069446 0.103934 0.024391
|
||||
v -0.024386 0.122598 0.024391
|
||||
v 0.024386 0.122598 0.024391
|
||||
v 0.103934 0.069446 0.024391
|
||||
v 0.069446 0.103934 0.024391
|
||||
v 0.103934 -0.069446 0.024391
|
||||
v 0.122598 -0.024386 0.024391
|
||||
v 0.122598 0.024386 0.024391
|
||||
v 0.069446 -0.103934 0.024391
|
||||
v 0.024386 -0.122598 0.024391
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.129917 -0.086808 -0.468750
|
||||
v 0.129917 -0.086808 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.030483 -0.153248 -0.468750
|
||||
v 0.030483 -0.153248 -0.500000
|
||||
v -0.030483 -0.153248 -0.468750
|
||||
v -0.030483 -0.153248 -0.500000
|
||||
v -0.086808 -0.129917 -0.468750
|
||||
v -0.086808 -0.129917 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.153247 -0.030483 -0.468750
|
||||
v -0.153247 -0.030483 -0.500000
|
||||
v -0.153247 0.030483 -0.468750
|
||||
v -0.153247 0.030483 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.086808 0.129917 -0.468750
|
||||
v -0.086808 0.129917 -0.500000
|
||||
v -0.030483 0.153248 -0.468750
|
||||
v -0.030483 0.153248 -0.500000
|
||||
v 0.030483 0.153248 -0.468750
|
||||
v 0.030483 0.153248 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.129917 0.086808 -0.468750
|
||||
v 0.129918 0.086808 -0.500000
|
||||
v 0.122598 0.024386 -0.468750
|
||||
v 0.122598 -0.024386 -0.468750
|
||||
v 0.103934 -0.069446 -0.468750
|
||||
v 0.069447 -0.103934 -0.468750
|
||||
v 0.024387 -0.122598 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v -0.069446 -0.103934 -0.468750
|
||||
v -0.103933 -0.069446 -0.468750
|
||||
v -0.122598 -0.024386 -0.468750
|
||||
v -0.122598 0.024386 -0.468750
|
||||
v -0.103933 0.069446 -0.468750
|
||||
v -0.069446 0.103934 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v 0.024387 0.122598 -0.468750
|
||||
v 0.069447 0.103934 -0.468750
|
||||
v 0.103934 0.069446 -0.468750
|
||||
v 0.000000 -0.000000 -0.468750
|
||||
v 0.000000 0.000000 -0.500000
|
||||
v -0.024386 -0.122598 -0.024390
|
||||
v -0.069446 -0.103934 -0.024391
|
||||
v -0.103934 -0.069446 -0.024391
|
||||
v -0.122598 -0.024386 -0.024391
|
||||
v -0.122598 0.024386 -0.024391
|
||||
v -0.103934 0.069446 -0.024390
|
||||
v -0.069446 0.103934 -0.024390
|
||||
v -0.024386 0.122598 -0.024389
|
||||
v 0.024386 0.122598 -0.024389
|
||||
v 0.103934 0.069446 -0.024390
|
||||
v 0.069446 0.103934 -0.024390
|
||||
v 0.103934 -0.069446 -0.024390
|
||||
v 0.122598 -0.024386 -0.024390
|
||||
v 0.122598 0.024386 -0.024390
|
||||
v 0.069446 -0.103934 -0.024390
|
||||
v 0.024386 -0.122598 -0.024390
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.218363 0.657325
|
||||
vt 0.185866 0.820702
|
||||
vt 0.153368 0.657325
|
||||
vt 0.531836 0.657325
|
||||
vt 0.564334 0.820702
|
||||
vt 0.596832 0.657325
|
||||
vt 0.656879 0.682198
|
||||
vt 0.702838 0.728156
|
||||
vt 0.727710 0.788204
|
||||
vt 0.727710 0.853199
|
||||
vt 0.702838 0.913247
|
||||
vt 0.656879 0.959205
|
||||
vt 0.596831 0.984078
|
||||
vt 0.531836 0.984078
|
||||
vt 0.471788 0.959205
|
||||
vt 0.425830 0.913247
|
||||
vt 0.400957 0.853199
|
||||
vt 0.400957 0.788204
|
||||
vt 0.425830 0.728156
|
||||
vt 0.471789 0.682198
|
||||
vt 0.093321 0.682198
|
||||
vt 0.047362 0.728156
|
||||
vt 0.022489 0.788204
|
||||
vt 0.022489 0.853199
|
||||
vt 0.047362 0.913247
|
||||
vt 0.093320 0.959205
|
||||
vt 0.153368 0.984078
|
||||
vt 0.218363 0.984078
|
||||
vt 0.278411 0.959205
|
||||
vt 0.324369 0.913247
|
||||
vt 0.349242 0.853199
|
||||
vt 0.349242 0.788204
|
||||
vt 0.324369 0.728156
|
||||
vt 0.278411 0.682198
|
||||
vt 0.187500 0.515625
|
||||
vt 0.250000 0.515625
|
||||
vt 0.875000 0.515625
|
||||
vt 0.937500 0.515625
|
||||
vt 0.750000 0.515625
|
||||
vt 0.812500 0.515625
|
||||
vt 0.562500 0.515625
|
||||
vt 0.625000 0.515625
|
||||
vt 0.687500 0.515625
|
||||
vt 0.500000 0.515625
|
||||
vt 0.437500 0.515625
|
||||
vt 0.375000 0.515625
|
||||
vt 0.312500 0.515625
|
||||
vt 0.125000 0.515625
|
||||
vt 0.062500 0.515625
|
||||
vt 0.000000 0.515625
|
||||
vt 1.000000 0.515625
|
||||
usemtl None
|
||||
s off
|
||||
f 54/1 41/2 42/3 55/4
|
||||
f 31/5 33/6 50/7
|
||||
f 29/8 31/5 50/7
|
||||
f 27/9 29/8 50/7
|
||||
f 25/10 27/9 50/7
|
||||
f 23/11 25/10 50/7
|
||||
f 21/12 23/11 50/7
|
||||
f 19/13 21/12 50/7
|
||||
f 17/14 19/13 50/7
|
||||
f 15/15 17/14 50/7
|
||||
f 13/16 15/15 50/7
|
||||
f 11/17 13/16 50/7
|
||||
f 9/18 11/17 50/7
|
||||
f 7/19 9/18 50/7
|
||||
f 5/20 7/19 50/7
|
||||
f 35/21 5/20 50/7
|
||||
f 6/22 36/23 49/24
|
||||
f 8/25 6/22 49/24
|
||||
f 10/26 8/25 49/24
|
||||
f 12/27 10/26 49/24
|
||||
f 14/28 12/27 49/24
|
||||
f 16/29 14/28 49/24
|
||||
f 18/30 16/29 49/24
|
||||
f 20/31 18/30 49/24
|
||||
f 22/32 20/31 49/24
|
||||
f 24/33 22/32 49/24
|
||||
f 26/34 24/33 49/24
|
||||
f 28/35 26/34 49/24
|
||||
f 30/36 28/35 49/24
|
||||
f 32/37 30/36 49/24
|
||||
f 34/38 32/37 49/24
|
||||
f 36/23 34/38 49/24
|
||||
f 33/6 35/21 50/7
|
||||
f 8/39 7/40 5/41 6/42
|
||||
f 6/42 5/41 35/43 36/44
|
||||
f 10/45 9/46 7/40 8/39
|
||||
f 12/47 11/48 9/46 10/45
|
||||
f 14/49 13/50 11/51 12/52
|
||||
f 16/53 15/54 13/50 14/49
|
||||
f 18/55 17/56 15/54 16/53
|
||||
f 20/57 19/58 17/56 18/55
|
||||
f 22/59 21/60 19/58 20/57
|
||||
f 24/61 23/62 21/60 22/59
|
||||
f 26/63 25/64 23/62 24/61
|
||||
f 28/65 27/66 25/64 26/63
|
||||
f 30/67 29/68 27/66 28/65
|
||||
f 32/69 31/70 29/68 30/67
|
||||
f 34/71 33/72 31/70 32/69
|
||||
f 36/44 35/43 33/72 34/71
|
||||
f 65/73 1/74 37/75 66/76
|
||||
f 63/77 3/78 2/79 62/80
|
||||
f 61/81 47/82 48/83 60/84
|
||||
f 64/85 4/86 3/78 63/77
|
||||
f 62/80 2/79 1/74 65/73
|
||||
f 60/84 48/83 4/86 64/85
|
||||
f 59/87 46/88 47/82 61/81
|
||||
f 58/89 45/90 46/88 59/87
|
||||
f 57/91 44/92 45/90 58/89
|
||||
f 56/93 43/94 44/92 57/91
|
||||
f 55/4 42/3 43/94 56/93
|
||||
f 53/95 40/96 41/2 54/1
|
||||
f 52/97 39/98 40/96 53/95
|
||||
f 51/99 38/100 39/98 52/97
|
||||
f 66/76 37/75 38/101 51/102
|
||||
f 67/58 69/60 70/59 68/57
|
||||
f 69/60 71/62 72/61 70/59
|
||||
f 71/62 73/64 74/63 72/61
|
||||
f 73/64 75/66 76/65 74/63
|
||||
f 75/66 77/68 78/67 76/65
|
||||
f 77/68 79/70 80/69 78/67
|
||||
f 79/70 81/72 82/71 80/69
|
||||
f 81/72 83/43 84/44 82/71
|
||||
f 83/43 85/41 86/42 84/44
|
||||
f 85/41 87/40 88/39 86/42
|
||||
f 87/40 89/46 90/45 88/39
|
||||
f 89/46 91/48 92/47 90/45
|
||||
f 91/51 93/50 94/49 92/52
|
||||
f 93/50 95/54 96/53 94/49
|
||||
f 97/56 67/58 68/57 98/55
|
||||
f 95/54 97/56 98/55 96/53
|
||||
f 70/103 116/104 68/105
|
||||
f 67/106 115/107 69/108
|
||||
f 69/108 115/107 71/109
|
||||
f 71/109 115/107 73/110
|
||||
f 73/110 115/107 75/111
|
||||
f 75/111 115/107 77/112
|
||||
f 77/112 115/107 79/113
|
||||
f 79/113 115/107 81/114
|
||||
f 81/114 115/107 83/115
|
||||
f 83/115 115/107 85/116
|
||||
f 85/116 115/107 87/117
|
||||
f 87/117 115/107 89/118
|
||||
f 89/118 115/107 91/119
|
||||
f 91/119 115/107 93/120
|
||||
f 93/120 115/107 95/121
|
||||
f 95/121 115/107 97/122
|
||||
f 97/122 115/107 67/106
|
||||
f 68/105 116/104 98/123
|
||||
f 98/123 116/104 96/124
|
||||
f 96/124 116/104 94/125
|
||||
f 94/125 116/104 92/126
|
||||
f 92/126 116/104 90/127
|
||||
f 90/127 116/104 88/128
|
||||
f 88/128 116/104 86/129
|
||||
f 86/129 116/104 84/130
|
||||
f 84/130 116/104 82/131
|
||||
f 82/131 116/104 80/132
|
||||
f 80/132 116/104 78/133
|
||||
f 78/133 116/104 76/134
|
||||
f 76/134 116/104 74/135
|
||||
f 74/135 116/104 72/136
|
||||
f 72/136 116/104 70/103
|
||||
f 107/137 120/1 121/4 108/138
|
||||
f 102/139 131/73 132/76 103/140
|
||||
f 100/141 129/77 128/80 101/142
|
||||
f 113/143 127/81 126/84 114/144
|
||||
f 99/145 130/85 129/77 100/141
|
||||
f 101/142 128/80 131/73 102/139
|
||||
f 114/144 126/84 130/85 99/145
|
||||
f 112/146 125/87 127/81 113/143
|
||||
f 111/147 124/89 125/87 112/146
|
||||
f 110/148 123/91 124/89 111/147
|
||||
f 109/149 122/93 123/91 110/148
|
||||
f 108/138 121/4 122/93 109/149
|
||||
f 106/150 119/95 120/1 107/137
|
||||
f 105/151 118/97 119/95 106/150
|
||||
f 104/152 117/99 118/97 105/151
|
||||
f 103/140 132/76 117/102 104/153
|
||||
f 133/58 135/60 136/59 134/57
|
||||
f 135/60 137/62 138/61 136/59
|
||||
f 137/62 139/64 140/63 138/61
|
||||
f 139/64 141/66 142/65 140/63
|
||||
f 141/66 143/68 144/67 142/65
|
||||
f 143/68 145/70 146/69 144/67
|
||||
f 145/70 147/72 148/71 146/69
|
||||
f 147/72 149/43 150/44 148/71
|
||||
f 149/43 151/41 152/42 150/44
|
||||
f 151/41 153/40 154/39 152/42
|
||||
f 153/40 155/46 156/45 154/39
|
||||
f 155/46 157/48 158/47 156/45
|
||||
f 157/51 159/50 160/49 158/52
|
||||
f 159/50 161/54 162/53 160/49
|
||||
f 163/56 133/58 134/57 164/55
|
||||
f 161/54 163/56 164/55 162/53
|
||||
f 136/103 182/104 134/105
|
||||
f 133/106 181/107 135/108
|
||||
f 135/108 181/107 137/109
|
||||
f 137/109 181/107 139/110
|
||||
f 139/110 181/107 141/111
|
||||
f 141/111 181/107 143/112
|
||||
f 143/112 181/107 145/113
|
||||
f 145/113 181/107 147/114
|
||||
f 147/114 181/107 149/115
|
||||
f 149/115 181/107 151/116
|
||||
f 151/116 181/107 153/117
|
||||
f 153/117 181/107 155/118
|
||||
f 155/118 181/107 157/119
|
||||
f 157/119 181/107 159/120
|
||||
f 159/120 181/107 161/121
|
||||
f 161/121 181/107 163/122
|
||||
f 163/122 181/107 133/106
|
||||
f 134/105 182/104 164/123
|
||||
f 164/123 182/104 162/124
|
||||
f 162/124 182/104 160/125
|
||||
f 160/125 182/104 158/126
|
||||
f 158/126 182/104 156/127
|
||||
f 156/127 182/104 154/128
|
||||
f 154/128 182/104 152/129
|
||||
f 152/129 182/104 150/130
|
||||
f 150/130 182/104 148/131
|
||||
f 148/131 182/104 146/132
|
||||
f 146/132 182/104 144/133
|
||||
f 144/133 182/104 142/134
|
||||
f 142/134 182/104 140/135
|
||||
f 140/135 182/104 138/136
|
||||
f 138/136 182/104 136/103
|
||||
f 173/137 223/2 224/3 174/138
|
||||
f 213/5 215/6 232/7
|
||||
f 211/8 213/5 232/7
|
||||
f 209/9 211/8 232/7
|
||||
f 207/10 209/9 232/7
|
||||
f 205/11 207/10 232/7
|
||||
f 203/12 205/11 232/7
|
||||
f 201/13 203/12 232/7
|
||||
f 199/14 201/13 232/7
|
||||
f 197/15 199/14 232/7
|
||||
f 195/16 197/15 232/7
|
||||
f 193/17 195/16 232/7
|
||||
f 191/18 193/17 232/7
|
||||
f 189/19 191/18 232/7
|
||||
f 187/20 189/19 232/7
|
||||
f 217/21 187/20 232/7
|
||||
f 188/22 218/23 231/24
|
||||
f 190/25 188/22 231/24
|
||||
f 192/26 190/25 231/24
|
||||
f 194/27 192/26 231/24
|
||||
f 196/28 194/27 231/24
|
||||
f 198/29 196/28 231/24
|
||||
f 200/30 198/29 231/24
|
||||
f 202/31 200/30 231/24
|
||||
f 204/32 202/31 231/24
|
||||
f 206/33 204/32 231/24
|
||||
f 208/34 206/33 231/24
|
||||
f 210/35 208/34 231/24
|
||||
f 212/36 210/35 231/24
|
||||
f 214/37 212/36 231/24
|
||||
f 216/38 214/37 231/24
|
||||
f 218/23 216/38 231/24
|
||||
f 215/6 217/21 232/7
|
||||
f 190/39 189/40 187/41 188/42
|
||||
f 188/42 187/41 217/43 218/44
|
||||
f 192/45 191/46 189/40 190/39
|
||||
f 194/47 193/48 191/46 192/45
|
||||
f 196/49 195/50 193/51 194/52
|
||||
f 198/53 197/54 195/50 196/49
|
||||
f 200/55 199/56 197/54 198/53
|
||||
f 202/57 201/58 199/56 200/55
|
||||
f 204/59 203/60 201/58 202/57
|
||||
f 206/61 205/62 203/60 204/59
|
||||
f 208/63 207/64 205/62 206/61
|
||||
f 210/65 209/66 207/64 208/63
|
||||
f 212/67 211/68 209/66 210/65
|
||||
f 214/69 213/70 211/68 212/67
|
||||
f 216/71 215/72 213/70 214/69
|
||||
f 218/44 217/43 215/72 216/71
|
||||
f 168/139 183/74 219/75 169/140
|
||||
f 166/141 185/78 184/79 167/142
|
||||
f 179/143 229/82 230/83 180/144
|
||||
f 165/145 186/86 185/78 166/141
|
||||
f 167/142 184/79 183/74 168/139
|
||||
f 180/144 230/83 186/86 165/145
|
||||
f 178/146 228/88 229/82 179/143
|
||||
f 177/147 227/90 228/88 178/146
|
||||
f 176/148 226/92 227/90 177/147
|
||||
f 175/149 225/94 226/92 176/148
|
||||
f 174/138 224/3 225/94 175/149
|
||||
f 172/150 222/96 223/2 173/137
|
||||
f 171/151 221/98 222/96 172/150
|
||||
f 170/152 220/100 221/98 171/151
|
||||
f 169/140 219/75 220/101 170/153
|
||||
f 286/1 273/2 274/3 287/4
|
||||
f 263/5 265/6 282/7
|
||||
f 261/8 263/5 282/7
|
||||
f 259/9 261/8 282/7
|
||||
f 257/10 259/9 282/7
|
||||
f 255/11 257/10 282/7
|
||||
f 253/12 255/11 282/7
|
||||
f 251/13 253/12 282/7
|
||||
f 249/14 251/13 282/7
|
||||
f 247/15 249/14 282/7
|
||||
f 245/16 247/15 282/7
|
||||
f 243/17 245/16 282/7
|
||||
f 241/18 243/17 282/7
|
||||
f 239/19 241/18 282/7
|
||||
f 237/20 239/19 282/7
|
||||
f 267/21 237/20 282/7
|
||||
f 238/22 268/23 281/24
|
||||
f 240/25 238/22 281/24
|
||||
f 242/26 240/25 281/24
|
||||
f 244/27 242/26 281/24
|
||||
f 246/28 244/27 281/24
|
||||
f 248/29 246/28 281/24
|
||||
f 250/30 248/29 281/24
|
||||
f 252/31 250/30 281/24
|
||||
f 254/32 252/31 281/24
|
||||
f 256/33 254/32 281/24
|
||||
f 258/34 256/33 281/24
|
||||
f 260/35 258/34 281/24
|
||||
f 262/36 260/35 281/24
|
||||
f 264/37 262/36 281/24
|
||||
f 266/38 264/37 281/24
|
||||
f 268/23 266/38 281/24
|
||||
f 265/6 267/21 282/7
|
||||
f 240/39 239/40 237/41 238/42
|
||||
f 238/42 237/41 267/43 268/44
|
||||
f 242/45 241/46 239/40 240/39
|
||||
f 244/47 243/48 241/46 242/45
|
||||
f 246/49 245/50 243/51 244/52
|
||||
f 248/53 247/54 245/50 246/49
|
||||
f 250/55 249/56 247/54 248/53
|
||||
f 252/57 251/58 249/56 250/55
|
||||
f 254/59 253/60 251/58 252/57
|
||||
f 256/61 255/62 253/60 254/59
|
||||
f 258/63 257/64 255/62 256/61
|
||||
f 260/65 259/66 257/64 258/63
|
||||
f 262/67 261/68 259/66 260/65
|
||||
f 264/69 263/70 261/68 262/67
|
||||
f 266/71 265/72 263/70 264/69
|
||||
f 268/44 267/43 265/72 266/71
|
||||
f 297/73 233/74 269/75 298/76
|
||||
f 295/77 235/78 234/79 294/80
|
||||
f 293/81 279/82 280/83 292/84
|
||||
f 296/85 236/86 235/78 295/77
|
||||
f 294/80 234/79 233/74 297/73
|
||||
f 292/84 280/83 236/86 296/85
|
||||
f 291/87 278/88 279/82 293/81
|
||||
f 290/89 277/90 278/88 291/87
|
||||
f 289/91 276/92 277/90 290/89
|
||||
f 288/93 275/94 276/92 289/91
|
||||
f 287/4 274/3 275/94 288/93
|
||||
f 285/95 272/96 273/2 286/1
|
||||
f 284/97 271/98 272/96 285/95
|
||||
f 283/99 270/100 271/98 284/97
|
||||
f 298/76 269/75 270/101 283/102
|
||||
f 299/58 301/60 302/59 300/57
|
||||
f 301/60 303/62 304/61 302/59
|
||||
f 303/62 305/64 306/63 304/61
|
||||
f 305/64 307/66 308/65 306/63
|
||||
f 307/66 309/68 310/67 308/65
|
||||
f 309/68 311/70 312/69 310/67
|
||||
f 311/70 313/72 314/71 312/69
|
||||
f 313/72 315/43 316/44 314/71
|
||||
f 315/43 317/41 318/42 316/44
|
||||
f 317/41 319/40 320/39 318/42
|
||||
f 319/40 321/46 322/45 320/39
|
||||
f 321/46 323/48 324/47 322/45
|
||||
f 323/51 325/50 326/49 324/52
|
||||
f 325/50 327/54 328/53 326/49
|
||||
f 329/56 299/58 300/57 330/55
|
||||
f 327/54 329/56 330/55 328/53
|
||||
f 302/103 348/104 300/105
|
||||
f 299/106 347/107 301/108
|
||||
f 301/108 347/107 303/109
|
||||
f 303/109 347/107 305/110
|
||||
f 305/110 347/107 307/111
|
||||
f 307/111 347/107 309/112
|
||||
f 309/112 347/107 311/113
|
||||
f 311/113 347/107 313/114
|
||||
f 313/114 347/107 315/115
|
||||
f 315/115 347/107 317/116
|
||||
f 317/116 347/107 319/117
|
||||
f 319/117 347/107 321/118
|
||||
f 321/118 347/107 323/119
|
||||
f 323/119 347/107 325/120
|
||||
f 325/120 347/107 327/121
|
||||
f 327/121 347/107 329/122
|
||||
f 329/122 347/107 299/106
|
||||
f 300/105 348/104 330/123
|
||||
f 330/123 348/104 328/124
|
||||
f 328/124 348/104 326/125
|
||||
f 326/125 348/104 324/126
|
||||
f 324/126 348/104 322/127
|
||||
f 322/127 348/104 320/128
|
||||
f 320/128 348/104 318/129
|
||||
f 318/129 348/104 316/130
|
||||
f 316/130 348/104 314/131
|
||||
f 314/131 348/104 312/132
|
||||
f 312/132 348/104 310/133
|
||||
f 310/133 348/104 308/134
|
||||
f 308/134 348/104 306/135
|
||||
f 306/135 348/104 304/136
|
||||
f 304/136 348/104 302/103
|
||||
f 339/137 352/1 353/4 340/138
|
||||
f 334/139 363/73 364/76 335/140
|
||||
f 332/141 361/77 360/80 333/142
|
||||
f 345/143 359/81 358/84 346/144
|
||||
f 331/145 362/85 361/77 332/141
|
||||
f 333/142 360/80 363/73 334/139
|
||||
f 346/144 358/84 362/85 331/145
|
||||
f 344/146 357/87 359/81 345/143
|
||||
f 343/147 356/89 357/87 344/146
|
||||
f 342/148 355/91 356/89 343/147
|
||||
f 341/149 354/93 355/91 342/148
|
||||
f 340/138 353/4 354/93 341/149
|
||||
f 338/150 351/95 352/1 339/137
|
||||
f 337/151 350/97 351/95 338/150
|
||||
f 336/152 349/99 350/97 337/151
|
||||
f 335/140 364/76 349/102 336/153
|
|
@ -0,0 +1,392 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-stub-end.blend'
|
||||
# www.blender.org
|
||||
o pipe.001_Cylinder.000
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.468750 -0.024387 0.122599
|
||||
v 0.468750 0.024386 0.122599
|
||||
v 0.024391 0.024386 0.122598
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.500000 -0.030483 -0.153247
|
||||
v 0.500000 -0.000000 0.000001
|
||||
v 0.500000 -0.129917 -0.086807
|
||||
v 0.500000 -0.153248 -0.030482
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.500000 -0.086808 0.129918
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.500000 0.086808 0.129918
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.500000 0.153247 0.030483
|
||||
v 0.500000 0.153247 -0.030482
|
||||
v 0.500000 0.129917 -0.086807
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.500000 0.030483 -0.153247
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.468750 0.030483 -0.153247
|
||||
v 0.468750 -0.000000 -0.000000
|
||||
v 0.468750 0.129917 -0.086807
|
||||
v 0.468750 0.153247 -0.030482
|
||||
v 0.468750 0.153247 0.030483
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.468750 0.086808 0.129918
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.468750 -0.086808 0.129918
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 -0.030482
|
||||
v 0.468750 -0.129917 -0.086807
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.468750 -0.030483 -0.153247
|
||||
v 0.024391 -0.103934 -0.069446
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.024391 -0.122598 -0.024386
|
||||
v 0.468750 -0.024387 -0.122598
|
||||
v 0.468750 -0.069447 -0.103933
|
||||
v 0.024391 -0.069446 -0.103934
|
||||
v 0.468750 0.103933 -0.069446
|
||||
v 0.468750 0.069446 -0.103933
|
||||
v 0.024391 0.069446 -0.103934
|
||||
v 0.024391 0.024386 -0.122598
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.024391 0.122598 -0.024386
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.024391 0.122598 0.024386
|
||||
v 0.468750 0.122598 0.024387
|
||||
v 0.024391 0.103934 0.069446
|
||||
v 0.468750 0.103933 0.069447
|
||||
v 0.024391 0.069446 0.103934
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.024391 -0.069446 0.103934
|
||||
v 0.468750 -0.069447 0.103934
|
||||
v 0.024391 -0.103934 0.069446
|
||||
v 0.468750 -0.103934 0.069447
|
||||
v 0.024391 -0.122598 0.024386
|
||||
v 0.468750 -0.122598 0.024387
|
||||
v 0.024390 0.103934 -0.069446
|
||||
v -0.042016 -0.000000 0.000000
|
||||
v -0.034206 -0.012195 0.061299
|
||||
v -0.034203 -0.034723 0.051967
|
||||
v -0.034203 -0.061299 0.012193
|
||||
v -0.034203 -0.061299 -0.012193
|
||||
v -0.034203 -0.051967 -0.034723
|
||||
v -0.034203 -0.051967 0.034723
|
||||
v -0.034203 -0.034723 -0.051967
|
||||
v -0.034206 -0.012196 -0.061299
|
||||
v -0.034203 0.012193 -0.061299
|
||||
v -0.034203 0.034723 -0.051967
|
||||
v -0.034203 0.051967 -0.034723
|
||||
v -0.034203 0.061299 -0.012193
|
||||
v -0.034203 0.061299 0.012193
|
||||
v -0.034203 0.051967 0.034723
|
||||
v -0.034203 0.034723 0.051967
|
||||
v -0.034203 0.012193 0.061299
|
||||
v -0.042017 -0.006098 0.030650
|
||||
v -0.042016 -0.017362 0.025984
|
||||
v -0.042016 -0.030650 0.006097
|
||||
v -0.042016 -0.030650 -0.006096
|
||||
v -0.042016 -0.025984 -0.017361
|
||||
v -0.014672 -0.077950 0.052085
|
||||
v -0.042016 -0.017362 -0.025983
|
||||
v -0.042017 -0.006098 -0.030649
|
||||
v -0.042016 0.006096 -0.030649
|
||||
v -0.042016 0.017361 -0.025983
|
||||
v -0.042016 0.025983 -0.017362
|
||||
v -0.042016 0.030649 -0.006096
|
||||
v -0.042016 0.030649 0.006097
|
||||
v -0.042016 0.025983 0.017362
|
||||
v -0.042016 0.017361 0.025984
|
||||
v -0.042016 0.006096 0.030650
|
||||
v -0.014675 -0.018293 0.091949
|
||||
v -0.014672 -0.052084 0.077951
|
||||
v -0.014672 -0.091948 0.018290
|
||||
v -0.014672 -0.091949 -0.018289
|
||||
v -0.014672 -0.077951 -0.052084
|
||||
v -0.042016 -0.025984 0.017362
|
||||
v -0.014672 -0.052085 -0.077950
|
||||
v -0.014675 -0.018293 -0.091948
|
||||
v -0.014672 0.018289 -0.091948
|
||||
v -0.014672 0.052084 -0.077950
|
||||
v -0.014672 0.077950 -0.052085
|
||||
v -0.014672 0.091948 -0.018289
|
||||
v -0.014672 0.091949 0.018290
|
||||
v -0.014672 0.077951 0.052085
|
||||
v -0.014672 0.052085 0.077951
|
||||
v -0.014672 0.018290 0.091949
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.648437 0.265625
|
||||
vt 0.414062 0.265625
|
||||
vt 0.531250 0.265625
|
||||
vt 0.632812 0.265625
|
||||
vt 0.617187 0.265625
|
||||
vt 0.601562 0.265625
|
||||
vt 0.585937 0.265625
|
||||
vt 0.570312 0.265625
|
||||
vt 0.554687 0.265625
|
||||
vt 0.539062 0.265625
|
||||
vt 0.523437 0.265625
|
||||
vt 0.507812 0.265625
|
||||
vt 0.492187 0.265625
|
||||
vt 0.476562 0.265625
|
||||
vt 0.460937 0.265625
|
||||
vt 0.445312 0.265625
|
||||
vt 0.429687 0.265625
|
||||
vt 0.882812 0.265625
|
||||
vt 0.179687 0.265625
|
||||
vt 0.296875 0.265625
|
||||
vt 0.765625 0.265625
|
||||
vt 0.835937 0.265625
|
||||
vt 0.734375 0.265625
|
||||
vt 0.789062 0.265625
|
||||
vt 0.703125 0.265625
|
||||
vt 0.742187 0.265625
|
||||
vt 0.671875 0.265625
|
||||
vt 0.695312 0.265625
|
||||
vt 0.640625 0.265625
|
||||
vt 0.609375 0.265625
|
||||
vt 0.578125 0.265625
|
||||
vt 0.546875 0.265625
|
||||
vt 0.515625 0.265625
|
||||
vt 0.484375 0.265625
|
||||
vt 0.453125 0.265625
|
||||
vt 0.367187 0.265625
|
||||
vt 0.421875 0.265625
|
||||
vt 0.320312 0.265625
|
||||
vt 0.390625 0.265625
|
||||
vt 0.273437 0.265625
|
||||
vt 0.359375 0.265625
|
||||
vt 0.226562 0.265625
|
||||
vt 0.328125 0.265625
|
||||
s off
|
||||
f 6/1 7/2 8/3
|
||||
f 9/4 6/1 8/3
|
||||
f 10/5 9/4 8/3
|
||||
f 11/6 10/5 8/3
|
||||
f 12/7 11/6 8/3
|
||||
f 13/8 12/7 8/3
|
||||
f 14/9 13/8 8/3
|
||||
f 15/10 14/9 8/3
|
||||
f 16/11 15/10 8/3
|
||||
f 17/12 16/11 8/3
|
||||
f 18/13 17/12 8/3
|
||||
f 19/14 18/13 8/3
|
||||
f 20/15 19/14 8/3
|
||||
f 21/16 20/15 8/3
|
||||
f 22/17 21/16 8/3
|
||||
f 23/18 24/19 25/20
|
||||
f 26/21 23/18 25/20
|
||||
f 27/22 26/21 25/20
|
||||
f 28/23 27/22 25/20
|
||||
f 29/24 28/23 25/20
|
||||
f 30/25 29/24 25/20
|
||||
f 31/26 30/25 25/20
|
||||
f 32/27 31/26 25/20
|
||||
f 33/28 32/27 25/20
|
||||
f 34/29 33/28 25/20
|
||||
f 35/30 34/29 25/20
|
||||
f 36/31 35/30 25/20
|
||||
f 37/32 36/31 25/20
|
||||
f 38/33 37/32 25/20
|
||||
f 39/34 38/33 25/20
|
||||
f 24/19 39/34 25/20
|
||||
f 7/2 22/17 8/3
|
||||
f 26/35 20/36 21/37 23/38
|
||||
f 23/38 21/37 22/39 24/40
|
||||
f 27/41 19/42 20/36 26/35
|
||||
f 28/43 18/44 19/42 27/41
|
||||
f 29/45 17/46 18/47 28/48
|
||||
f 30/49 16/50 17/46 29/45
|
||||
f 31/51 15/52 16/50 30/49
|
||||
f 32/53 14/54 15/52 31/51
|
||||
f 33/55 13/56 14/54 32/53
|
||||
f 34/57 12/58 13/56 33/55
|
||||
f 35/59 11/60 12/58 34/57
|
||||
f 36/61 10/62 11/60 35/59
|
||||
f 37/63 9/64 10/62 36/61
|
||||
f 38/65 6/66 9/64 37/63
|
||||
f 39/67 7/68 6/66 38/65
|
||||
f 24/40 22/39 7/68 39/67
|
||||
f 40/69 41/70 42/71 43/72
|
||||
f 46/73 45/74 41/70 40/69
|
||||
f 49/75 48/76 51/77 50/78
|
||||
f 54/79 55/80 53/81 52/82
|
||||
f 56/83 57/84 55/80 54/79
|
||||
f 58/85 59/86 57/84 56/83
|
||||
f 5/87 4/88 59/86 58/85
|
||||
f 62/89 63/90 61/91 60/92
|
||||
f 64/93 65/94 63/90 62/89
|
||||
f 43/72 42/71 65/95 64/96
|
||||
f 1/97 3/98 4/88 5/87
|
||||
f 2/99 44/100 45/74 46/73
|
||||
f 66/101 47/102 48/76 49/75
|
||||
f 50/78 51/77 44/100 2/99
|
||||
f 52/82 53/81 47/102 66/101
|
||||
f 60/92 61/91 3/98 1/97
|
||||
f 86/103 105/104 67/105
|
||||
f 87/106 86/103 67/105
|
||||
f 88/107 87/106 67/105
|
||||
f 90/108 88/107 67/105
|
||||
f 91/109 90/108 67/105
|
||||
f 92/110 91/109 67/105
|
||||
f 93/111 92/110 67/105
|
||||
f 94/112 93/111 67/105
|
||||
f 95/113 94/112 67/105
|
||||
f 96/114 95/113 67/105
|
||||
f 97/115 96/114 67/105
|
||||
f 98/116 97/115 67/105
|
||||
f 99/117 98/116 67/105
|
||||
f 84/118 99/117 67/105
|
||||
f 85/119 84/118 67/105
|
||||
f 105/104 85/119 67/105
|
||||
f 102/120 89/121 73/122 70/123
|
||||
f 103/124 102/120 70/123 71/125
|
||||
f 104/126 103/124 71/125 72/127
|
||||
f 106/128 104/126 72/127 74/129
|
||||
f 107/130 106/128 74/129 75/131
|
||||
f 108/103 107/130 75/131 76/132
|
||||
f 109/108 108/103 76/132 77/133
|
||||
f 110/111 109/108 77/133 78/134
|
||||
f 111/114 110/111 78/134 79/135
|
||||
f 112/117 111/114 79/135 80/136
|
||||
f 113/104 112/117 80/136 81/137
|
||||
f 114/138 113/104 81/137 82/139
|
||||
f 115/140 114/138 82/139 83/141
|
||||
f 100/142 115/140 83/141 68/143
|
||||
f 101/144 100/142 68/143 69/145
|
||||
f 89/121 101/144 69/145 73/122
|
||||
f 70/123 73/122 105/104 86/103
|
||||
f 71/125 70/123 86/103 87/106
|
||||
f 72/127 71/125 87/106 88/107
|
||||
f 74/129 72/127 88/107 90/108
|
||||
f 75/131 74/129 90/108 91/109
|
||||
f 76/132 75/131 91/109 92/110
|
||||
f 77/133 76/132 92/110 93/111
|
||||
f 78/134 77/133 93/111 94/112
|
||||
f 79/135 78/134 94/112 95/113
|
||||
f 80/136 79/135 95/113 96/114
|
||||
f 81/137 80/136 96/114 97/115
|
||||
f 82/139 81/137 97/115 98/116
|
||||
f 83/141 82/139 98/116 99/117
|
||||
f 68/143 83/141 99/117 84/118
|
||||
f 69/145 68/143 84/118 85/119
|
||||
f 73/122 69/145 85/119 105/104
|
||||
f 64/96 62/89 89/121 102/120
|
||||
f 43/72 64/96 102/120 103/124
|
||||
f 40/69 43/72 103/124 104/126
|
||||
f 46/73 40/69 104/126 106/128
|
||||
f 2/99 46/73 106/128 107/130
|
||||
f 50/78 2/99 107/130 108/103
|
||||
f 49/75 50/78 108/103 109/108
|
||||
f 66/101 49/75 109/108 110/111
|
||||
f 52/82 66/101 110/111 111/114
|
||||
f 54/79 52/82 111/114 112/117
|
||||
f 56/83 54/79 112/117 113/104
|
||||
f 58/85 56/83 113/104 114/138
|
||||
f 5/87 58/85 114/138 115/140
|
||||
f 1/97 5/87 115/140 100/142
|
||||
f 60/92 1/97 100/142 101/144
|
||||
f 62/89 60/92 101/144 89/121
|
|
@ -0,0 +1,354 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-2way-straight.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_pipe_3.mtl
|
||||
o Cube.001
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.500000 -0.153248 -0.030483
|
||||
v 0.468750 -0.129917 -0.086808
|
||||
v 0.500000 -0.129917 -0.086808
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.468750 -0.030483 -0.153248
|
||||
v 0.500000 -0.030483 -0.153248
|
||||
v 0.468750 0.030483 -0.153248
|
||||
v 0.500000 0.030483 -0.153248
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.500000 0.153247 -0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.468750 -0.122598 0.024386
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 -0.069446 -0.103934
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.468750 0.069446 -0.103934
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.468750 0.122598 0.024386
|
||||
v 0.468750 0.103934 0.069446
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.468750 -0.024387 0.122598
|
||||
v 0.468750 -0.069447 0.103934
|
||||
v 0.468750 -0.103934 0.069446
|
||||
v 0.468750 -0.000000 -0.000000
|
||||
v 0.500000 -0.000000 0.000000
|
||||
v -0.468750 -0.069446 -0.103934
|
||||
v -0.468750 -0.103933 -0.069446
|
||||
v -0.468750 -0.122598 -0.024387
|
||||
v -0.468750 -0.122598 0.024386
|
||||
v -0.500000 -0.129917 0.086808
|
||||
v -0.468750 -0.129917 0.086808
|
||||
v -0.500000 -0.086808 0.129917
|
||||
v -0.468750 -0.086808 0.129917
|
||||
v -0.500000 -0.030483 0.153247
|
||||
v -0.468750 -0.030483 0.153248
|
||||
v -0.500000 0.030483 0.153247
|
||||
v -0.468750 0.030483 0.153248
|
||||
v -0.500000 0.086808 0.129917
|
||||
v -0.468750 0.086808 0.129917
|
||||
v -0.500000 0.129917 0.086808
|
||||
v -0.468750 0.129917 0.086808
|
||||
v -0.500000 0.153248 0.030483
|
||||
v -0.468750 0.153248 0.030483
|
||||
v -0.500000 0.153248 -0.030483
|
||||
v -0.468750 0.153248 -0.030483
|
||||
v -0.500000 0.129917 -0.086808
|
||||
v -0.468750 0.129917 -0.086808
|
||||
v -0.500000 0.086808 -0.129917
|
||||
v -0.468750 0.086808 -0.129917
|
||||
v -0.500000 0.030483 -0.153248
|
||||
v -0.468750 0.030483 -0.153248
|
||||
v -0.500000 -0.030483 -0.153248
|
||||
v -0.468750 -0.030483 -0.153248
|
||||
v -0.500000 -0.086808 -0.129917
|
||||
v -0.468750 -0.086808 -0.129917
|
||||
v -0.500000 -0.129917 -0.086808
|
||||
v -0.468750 -0.129917 -0.086808
|
||||
v -0.500000 -0.153247 -0.030483
|
||||
v -0.468750 -0.153247 -0.030483
|
||||
v -0.500000 -0.153247 0.030483
|
||||
v -0.468750 -0.153247 0.030483
|
||||
v -0.468750 -0.024386 -0.122598
|
||||
v -0.468750 0.024387 -0.122598
|
||||
v -0.468750 0.069447 -0.103934
|
||||
v -0.468750 0.103934 -0.069446
|
||||
v -0.468750 0.122598 -0.024386
|
||||
v -0.468750 0.122598 0.024386
|
||||
v -0.468750 0.103934 0.069446
|
||||
v -0.468750 0.069447 0.103934
|
||||
v -0.468750 0.024387 0.122598
|
||||
v -0.468750 -0.024386 0.122598
|
||||
v -0.468750 -0.069446 0.103933
|
||||
v -0.468750 -0.103933 0.069446
|
||||
v -0.468750 0.000000 -0.000000
|
||||
v -0.500000 0.000000 -0.000000
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.750000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.125000 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.062500 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 1.000000 0.546875
|
||||
vt 0.937500 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.875000 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.218363 0.657325
|
||||
vt 0.185866 0.820702
|
||||
vt 0.153368 0.657325
|
||||
vt 0.531836 0.657325
|
||||
vt 0.564334 0.820702
|
||||
vt 0.596832 0.657325
|
||||
vt 0.656879 0.682198
|
||||
vt 0.702838 0.728156
|
||||
vt 0.727710 0.788204
|
||||
vt 0.727710 0.853199
|
||||
vt 0.702838 0.913247
|
||||
vt 0.656879 0.959205
|
||||
vt 0.596831 0.984078
|
||||
vt 0.531836 0.984078
|
||||
vt 0.471788 0.959205
|
||||
vt 0.425830 0.913247
|
||||
vt 0.400957 0.853199
|
||||
vt 0.400957 0.788204
|
||||
vt 0.425830 0.728156
|
||||
vt 0.471789 0.682198
|
||||
vt 0.093321 0.682198
|
||||
vt 0.047362 0.728156
|
||||
vt 0.022489 0.788204
|
||||
vt 0.022489 0.853199
|
||||
vt 0.047362 0.913247
|
||||
vt 0.093320 0.959205
|
||||
vt 0.153368 0.984078
|
||||
vt 0.218363 0.984078
|
||||
vt 0.278411 0.959205
|
||||
vt 0.324369 0.913247
|
||||
vt 0.349242 0.853199
|
||||
vt 0.349242 0.788204
|
||||
vt 0.324369 0.728156
|
||||
vt 0.278411 0.682198
|
||||
vt 0.187500 0.515625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.515625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.875000 0.515625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.515625
|
||||
vt 0.750000 0.515625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.515625
|
||||
vt 0.562500 0.515625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.515625
|
||||
vt 0.687500 0.515625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.515625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.515625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.515625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.515625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.515625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.515625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.515625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.515625
|
||||
usemtl None
|
||||
s off
|
||||
f 1/1 3/2 4/3 2/4
|
||||
f 3/2 5/5 6/6 4/3
|
||||
f 5/5 7/7 8/8 6/6
|
||||
f 7/7 9/9 10/10 8/8
|
||||
f 9/9 11/11 12/12 10/10
|
||||
f 11/11 13/13 14/14 12/12
|
||||
f 13/13 15/15 16/16 14/14
|
||||
f 15/15 17/17 18/18 16/16
|
||||
f 17/17 19/19 20/20 18/18
|
||||
f 19/19 21/21 22/22 20/20
|
||||
f 21/21 23/23 24/24 22/22
|
||||
f 23/23 25/25 26/26 24/24
|
||||
f 25/27 27/28 28/29 26/30
|
||||
f 27/28 29/31 30/32 28/29
|
||||
f 31/33 1/1 2/4 32/34
|
||||
f 29/31 31/33 32/34 30/32
|
||||
f 4/35 50/36 2/37
|
||||
f 1/38 49/39 3/40
|
||||
f 3/40 49/39 5/41
|
||||
f 5/41 49/39 7/42
|
||||
f 7/42 49/39 9/43
|
||||
f 9/43 49/39 11/44
|
||||
f 11/44 49/39 13/45
|
||||
f 13/45 49/39 15/46
|
||||
f 15/46 49/39 17/47
|
||||
f 17/47 49/39 19/48
|
||||
f 19/48 49/39 21/49
|
||||
f 21/49 49/39 23/50
|
||||
f 23/50 49/39 25/51
|
||||
f 25/51 49/39 27/52
|
||||
f 27/52 49/39 29/53
|
||||
f 29/53 49/39 31/54
|
||||
f 31/54 49/39 1/38
|
||||
f 2/37 50/36 32/55
|
||||
f 32/55 50/36 30/56
|
||||
f 30/56 50/36 28/57
|
||||
f 28/57 50/36 26/58
|
||||
f 26/58 50/36 24/59
|
||||
f 24/59 50/36 22/60
|
||||
f 22/60 50/36 20/61
|
||||
f 20/61 50/36 18/62
|
||||
f 18/62 50/36 16/63
|
||||
f 16/63 50/36 14/64
|
||||
f 14/64 50/36 12/65
|
||||
f 12/65 50/36 10/66
|
||||
f 10/66 50/36 8/67
|
||||
f 8/67 50/36 6/68
|
||||
f 6/68 50/36 4/35
|
||||
f 41/69 91/70 92/71 42/72
|
||||
f 81/73 83/74 100/75
|
||||
f 79/76 81/73 100/75
|
||||
f 77/77 79/76 100/75
|
||||
f 75/78 77/77 100/75
|
||||
f 73/79 75/78 100/75
|
||||
f 71/80 73/79 100/75
|
||||
f 69/81 71/80 100/75
|
||||
f 67/82 69/81 100/75
|
||||
f 65/83 67/82 100/75
|
||||
f 63/84 65/83 100/75
|
||||
f 61/85 63/84 100/75
|
||||
f 59/86 61/85 100/75
|
||||
f 57/87 59/86 100/75
|
||||
f 55/88 57/87 100/75
|
||||
f 85/89 55/88 100/75
|
||||
f 56/90 86/91 99/92
|
||||
f 58/93 56/90 99/92
|
||||
f 60/94 58/93 99/92
|
||||
f 62/95 60/94 99/92
|
||||
f 64/96 62/95 99/92
|
||||
f 66/97 64/96 99/92
|
||||
f 68/98 66/97 99/92
|
||||
f 70/99 68/98 99/92
|
||||
f 72/100 70/99 99/92
|
||||
f 74/101 72/100 99/92
|
||||
f 76/102 74/101 99/92
|
||||
f 78/103 76/102 99/92
|
||||
f 80/104 78/103 99/92
|
||||
f 82/105 80/104 99/92
|
||||
f 84/106 82/105 99/92
|
||||
f 86/91 84/106 99/92
|
||||
f 83/74 85/89 100/75
|
||||
f 58/22 57/21 55/19 56/20
|
||||
f 56/20 55/19 85/17 86/18
|
||||
f 60/24 59/23 57/21 58/22
|
||||
f 62/26 61/25 59/23 60/24
|
||||
f 64/29 63/28 61/27 62/30
|
||||
f 66/32 65/31 63/28 64/29
|
||||
f 68/34 67/33 65/31 66/32
|
||||
f 70/4 69/1 67/33 68/34
|
||||
f 72/3 71/2 69/1 70/4
|
||||
f 74/6 73/5 71/2 72/3
|
||||
f 76/8 75/7 73/5 74/6
|
||||
f 78/10 77/9 75/7 76/8
|
||||
f 80/12 79/11 77/9 78/10
|
||||
f 82/14 81/13 79/11 80/12
|
||||
f 84/16 83/15 81/13 82/14
|
||||
f 86/18 85/17 83/15 84/16
|
||||
f 36/107 51/108 87/109 37/110
|
||||
f 34/111 53/112 52/113 35/114
|
||||
f 47/115 97/116 98/117 48/118
|
||||
f 33/119 54/120 53/112 34/111
|
||||
f 35/114 52/113 51/108 36/107
|
||||
f 48/118 98/117 54/120 33/119
|
||||
f 46/121 96/122 97/116 47/115
|
||||
f 45/123 95/124 96/122 46/121
|
||||
f 44/125 94/126 95/124 45/123
|
||||
f 43/127 93/128 94/126 44/125
|
||||
f 42/72 92/71 93/128 43/127
|
||||
f 40/129 90/130 91/70 41/69
|
||||
f 39/131 89/132 90/130 40/129
|
||||
f 38/133 88/134 89/132 39/131
|
||||
f 37/110 87/109 88/135 38/136
|
|
@ -0,0 +1,478 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-2way-corner.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_pipe_4.mtl
|
||||
o pipe.001_Cylinder.000
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.024387 -0.468750 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.030483 -0.500000 -0.153247
|
||||
v -0.000000 -0.500000 0.000000
|
||||
v -0.129917 -0.500000 -0.086808
|
||||
v -0.153248 -0.500000 -0.030483
|
||||
v -0.153248 -0.500000 0.030483
|
||||
v -0.129917 -0.500000 0.086808
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.030483 -0.500000 0.153248
|
||||
v 0.030483 -0.500000 0.153248
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.153247 -0.500000 0.030483
|
||||
v 0.153248 -0.500000 -0.030483
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.086808 -0.500000 -0.129917
|
||||
v 0.030483 -0.500000 -0.153247
|
||||
v 0.086808 -0.468750 -0.129917
|
||||
v 0.030483 -0.468750 -0.153248
|
||||
v -0.000000 -0.468750 0.000000
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153248 -0.468750 -0.030483
|
||||
v 0.153247 -0.468750 0.030483
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v -0.122598 -0.468750 -0.024386
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.024386 -0.468750 -0.122598
|
||||
v -0.069446 -0.468750 -0.103933
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.103933 -0.468750 -0.069446
|
||||
v 0.069446 -0.468750 -0.103934
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.122598 -0.468750 0.024386
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.103933 -0.468750 0.069447
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.069446 -0.468750 0.103934
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.069447 -0.468750 0.103934
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.103934 -0.468750 0.069446
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.122598 -0.468750 0.024386
|
||||
v -0.041924 0.041589 0.103934
|
||||
v -0.041925 0.041589 -0.103934
|
||||
v -0.010062 0.009727 -0.122598
|
||||
v -0.079509 0.079173 -0.024386
|
||||
v -0.066311 0.065976 -0.069446
|
||||
v -0.024663 0.094826 -0.069446
|
||||
v -0.011464 0.062964 0.103934
|
||||
v -0.024662 0.094827 0.069446
|
||||
v -0.031805 0.112070 0.024386
|
||||
v -0.031805 0.112070 -0.024386
|
||||
v 0.005779 0.021334 -0.122598
|
||||
v -0.011464 0.062964 -0.103934
|
||||
v 0.005780 0.021334 0.122598
|
||||
v -0.079509 0.079173 0.024386
|
||||
v -0.066311 0.065976 0.069446
|
||||
v 0.468750 -0.024387 0.122599
|
||||
v 0.468750 0.024386 0.122599
|
||||
v 0.024391 0.024386 0.122598
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.500000 -0.030483 -0.153247
|
||||
v 0.500000 -0.000000 0.000001
|
||||
v 0.500000 -0.129917 -0.086807
|
||||
v 0.500000 -0.153248 -0.030482
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.500000 -0.086808 0.129918
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.500000 0.086808 0.129918
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.500000 0.153247 0.030483
|
||||
v 0.500000 0.153247 -0.030482
|
||||
v 0.500000 0.129917 -0.086807
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.500000 0.030483 -0.153247
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.468750 0.030483 -0.153247
|
||||
v 0.468750 -0.000000 -0.000000
|
||||
v 0.468750 0.129917 -0.086807
|
||||
v 0.468750 0.153247 -0.030482
|
||||
v 0.468750 0.153247 0.030483
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.468750 0.086808 0.129918
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.468750 -0.086808 0.129918
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 -0.030482
|
||||
v 0.468750 -0.129917 -0.086807
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.468750 -0.030483 -0.153247
|
||||
v 0.024391 -0.103934 -0.069446
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.024391 -0.122598 -0.024386
|
||||
v 0.468750 -0.024387 -0.122598
|
||||
v 0.468750 -0.069447 -0.103933
|
||||
v 0.024391 -0.069446 -0.103934
|
||||
v 0.468750 0.103933 -0.069446
|
||||
v 0.468750 0.069446 -0.103933
|
||||
v 0.024391 0.069446 -0.103934
|
||||
v 0.024391 0.024386 -0.122598
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.024391 0.122598 -0.024386
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.024391 0.122598 0.024386
|
||||
v 0.468750 0.122598 0.024387
|
||||
v 0.024391 0.103934 0.069446
|
||||
v 0.468750 0.103933 0.069447
|
||||
v 0.024391 0.069446 0.103934
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.024391 -0.069446 0.103934
|
||||
v 0.468750 -0.069447 0.103934
|
||||
v 0.024391 -0.103934 0.069446
|
||||
v 0.468750 -0.103934 0.069447
|
||||
v 0.024391 -0.122598 0.024386
|
||||
v 0.468750 -0.122598 0.024387
|
||||
v 0.024390 0.103934 -0.069446
|
||||
v -0.020763 -0.005780 0.122598
|
||||
v -0.111499 0.031804 0.024386
|
||||
v -0.094256 0.024662 0.069446
|
||||
v -0.062393 0.011464 0.103934
|
||||
v -0.062393 0.011464 -0.103934
|
||||
v -0.020763 -0.005780 -0.122598
|
||||
v -0.111499 0.031804 -0.024386
|
||||
v -0.094256 0.024662 -0.069446
|
||||
v -0.010062 0.009727 0.122598
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.201671 0.341280
|
||||
vt 0.315528 0.341280
|
||||
vt 0.307071 0.384726
|
||||
vt 0.531250 0.296875
|
||||
vt 0.531250 0.343750
|
||||
vt 0.484375 0.343750
|
||||
vt 0.484375 0.296875
|
||||
vt 0.437500 0.343750
|
||||
vt 0.437500 0.296875
|
||||
vt 0.390625 0.296875
|
||||
vt 0.390625 0.343750
|
||||
vt 0.343750 0.343750
|
||||
vt 0.343750 0.296875
|
||||
vt 0.578125 0.296875
|
||||
vt 0.578125 0.343750
|
||||
vt 0.625000 0.296875
|
||||
vt 0.625000 0.343750
|
||||
vt 0.671875 0.296875
|
||||
vt 0.671875 0.343750
|
||||
vt 0.801371 0.340121
|
||||
vt 0.695971 0.383568
|
||||
vt 0.687514 0.340121
|
||||
vt 0.720953 0.419768
|
||||
vt 0.757935 0.446864
|
||||
vt 0.801382 0.453989
|
||||
vt 0.625000 0.484375
|
||||
vt 0.625000 0.437500
|
||||
vt 0.671875 0.437500
|
||||
vt 0.671875 0.484375
|
||||
vt 0.625000 0.390625
|
||||
vt 0.671875 0.390625
|
||||
vt 0.578125 0.390625
|
||||
vt 0.531250 0.390625
|
||||
vt 0.484375 0.390625
|
||||
vt 0.437500 0.390625
|
||||
vt 0.282090 0.420927
|
||||
vt 0.245108 0.448023
|
||||
vt 0.201660 0.455148
|
||||
vt 0.390625 0.390625
|
||||
vt 0.343750 0.390625
|
||||
vt 0.390625 0.437500
|
||||
vt 0.343750 0.437500
|
||||
vt 0.343750 0.484375
|
||||
vt 0.390625 0.484375
|
||||
vt 0.437500 0.437500
|
||||
vt 0.437500 0.484375
|
||||
vt 0.484375 0.437500
|
||||
vt 0.484375 0.484375
|
||||
vt 0.531250 0.437500
|
||||
vt 0.531250 0.484375
|
||||
vt 0.578125 0.484375
|
||||
vt 0.578125 0.437500
|
||||
usemtl None
|
||||
s off
|
||||
f 1/1 2/2 3/3 4/4
|
||||
f 5/5 6/6 7/7
|
||||
f 8/8 5/5 7/7
|
||||
f 9/9 8/8 7/7
|
||||
f 10/10 9/9 7/7
|
||||
f 11/11 10/10 7/7
|
||||
f 12/12 11/11 7/7
|
||||
f 13/13 12/12 7/7
|
||||
f 14/14 13/13 7/7
|
||||
f 15/15 14/14 7/7
|
||||
f 16/16 15/15 7/7
|
||||
f 17/17 16/16 7/7
|
||||
f 18/18 17/17 7/7
|
||||
f 19/19 18/18 7/7
|
||||
f 20/20 19/19 7/7
|
||||
f 21/21 20/20 7/7
|
||||
f 22/22 23/23 24/24
|
||||
f 25/25 22/22 24/24
|
||||
f 26/26 25/25 24/24
|
||||
f 27/27 26/26 24/24
|
||||
f 28/28 27/27 24/24
|
||||
f 29/29 28/28 24/24
|
||||
f 30/30 29/29 24/24
|
||||
f 31/31 30/30 24/24
|
||||
f 32/32 31/31 24/24
|
||||
f 33/33 32/32 24/24
|
||||
f 34/34 33/33 24/24
|
||||
f 35/35 34/34 24/24
|
||||
f 36/36 35/35 24/24
|
||||
f 37/37 36/36 24/24
|
||||
f 38/38 37/37 24/24
|
||||
f 23/23 38/38 24/24
|
||||
f 6/6 21/21 7/7
|
||||
f 25/39 19/40 20/41 22/42
|
||||
f 22/42 20/41 21/43 23/44
|
||||
f 26/45 18/46 19/40 25/39
|
||||
f 27/47 17/48 18/46 26/45
|
||||
f 28/49 16/50 17/51 27/52
|
||||
f 29/53 15/54 16/50 28/49
|
||||
f 30/55 14/56 15/54 29/53
|
||||
f 31/57 13/58 14/56 30/55
|
||||
f 32/59 12/60 13/58 31/57
|
||||
f 33/61 11/62 12/60 32/59
|
||||
f 34/63 10/64 11/62 33/61
|
||||
f 35/65 9/66 10/64 34/63
|
||||
f 36/67 8/68 9/66 35/65
|
||||
f 37/69 5/70 8/68 36/67
|
||||
f 38/71 6/72 5/70 37/69
|
||||
f 23/44 21/43 6/72 38/71
|
||||
f 39/73 40/74 41/75 42/76
|
||||
f 43/77 44/78 45/79 46/80
|
||||
f 47/81 48/82 49/83 50/84
|
||||
f 51/85 52/86 44/78 43/77
|
||||
f 46/80 45/79 40/74 39/73
|
||||
f 50/84 49/83 52/86 51/85
|
||||
f 53/87 54/88 48/82 47/81
|
||||
f 55/89 56/90 54/88 53/87
|
||||
f 57/91 58/92 56/90 55/89
|
||||
f 59/93 60/94 58/92 57/91
|
||||
f 4/4 3/3 60/94 59/93
|
||||
f 2/2 1/1 61/95 62/96
|
||||
f 63/97 64/98 62/96 61/95
|
||||
f 65/99 66/100 64/98 63/97
|
||||
f 42/76 41/75 66/101 65/102
|
||||
f 85/5 86/6 87/7
|
||||
f 88/8 85/5 87/7
|
||||
f 89/9 88/8 87/7
|
||||
f 90/10 89/9 87/7
|
||||
f 91/11 90/10 87/7
|
||||
f 92/12 91/11 87/7
|
||||
f 93/13 92/12 87/7
|
||||
f 94/14 93/13 87/7
|
||||
f 95/15 94/14 87/7
|
||||
f 96/16 95/15 87/7
|
||||
f 97/17 96/16 87/7
|
||||
f 98/18 97/17 87/7
|
||||
f 99/19 98/18 87/7
|
||||
f 100/20 99/19 87/7
|
||||
f 101/21 100/20 87/7
|
||||
f 102/22 103/23 104/24
|
||||
f 105/25 102/22 104/24
|
||||
f 106/26 105/25 104/24
|
||||
f 107/27 106/26 104/24
|
||||
f 108/28 107/27 104/24
|
||||
f 109/29 108/28 104/24
|
||||
f 110/30 109/29 104/24
|
||||
f 111/31 110/30 104/24
|
||||
f 112/32 111/31 104/24
|
||||
f 113/33 112/32 104/24
|
||||
f 114/34 113/33 104/24
|
||||
f 115/35 114/34 104/24
|
||||
f 116/36 115/35 104/24
|
||||
f 117/37 116/36 104/24
|
||||
f 118/38 117/37 104/24
|
||||
f 103/23 118/38 104/24
|
||||
f 86/6 101/21 87/7
|
||||
f 105/39 99/40 100/41 102/42
|
||||
f 102/42 100/41 101/43 103/44
|
||||
f 106/45 98/46 99/40 105/39
|
||||
f 107/47 97/48 98/46 106/45
|
||||
f 108/49 96/50 97/51 107/52
|
||||
f 109/53 95/54 96/50 108/49
|
||||
f 110/55 94/56 95/54 109/53
|
||||
f 111/57 93/58 94/56 110/55
|
||||
f 112/59 92/60 93/58 111/57
|
||||
f 113/61 91/62 92/60 112/59
|
||||
f 114/63 90/64 91/62 113/61
|
||||
f 115/65 89/66 90/64 114/63
|
||||
f 116/67 88/68 89/66 115/65
|
||||
f 117/69 85/70 88/68 116/67
|
||||
f 118/71 86/72 85/70 117/69
|
||||
f 103/44 101/43 86/72 118/71
|
||||
f 119/73 120/74 121/75 122/76
|
||||
f 125/80 124/79 120/74 119/73
|
||||
f 128/84 127/83 130/86 129/85
|
||||
f 133/89 134/90 132/88 131/87
|
||||
f 135/91 136/92 134/90 133/89
|
||||
f 137/93 138/94 136/92 135/91
|
||||
f 84/4 83/3 138/94 137/93
|
||||
f 141/97 142/98 140/96 139/95
|
||||
f 143/99 144/100 142/98 141/97
|
||||
f 122/76 121/75 144/101 143/102
|
||||
f 4/1 82/2 83/3 84/4
|
||||
f 51/77 123/78 124/79 125/80
|
||||
f 145/81 126/82 127/83 128/84
|
||||
f 129/85 130/86 123/78 51/77
|
||||
f 131/87 132/88 126/82 145/81
|
||||
f 139/95 140/96 82/2 4/1
|
||||
f 51/103 43/104 151/105
|
||||
f 65/106 147/107 152/108 42/109
|
||||
f 42/109 152/108 153/110 39/111
|
||||
f 46/112 39/111 153/110 150/113
|
||||
f 46/112 150/113 151/114 43/115
|
||||
f 65/106 63/116 148/117 147/107
|
||||
f 63/116 61/118 149/119 148/117
|
||||
f 61/118 1/120 146/121 149/119
|
||||
f 4/122 146/123 1/124
|
||||
f 4/122 154/125 146/123
|
||||
f 4/122 79/126 154/125
|
||||
f 79/126 4/122 84/127
|
||||
f 137/128 73/129 79/130 84/131
|
||||
f 73/129 67/132 154/133 79/130
|
||||
f 149/119 146/121 154/133 67/132
|
||||
f 81/134 148/117 149/119 67/132
|
||||
f 80/135 147/107 148/117 81/134
|
||||
f 80/135 70/136 152/108 147/107
|
||||
f 70/136 71/137 153/110 152/108
|
||||
f 51/103 151/105 69/138
|
||||
f 51/103 69/138 77/139
|
||||
f 77/139 129/140 51/103
|
||||
f 150/113 68/141 69/142 151/114
|
||||
f 78/143 77/144 69/142 68/141
|
||||
f 68/141 150/113 153/110 71/137
|
||||
f 129/145 77/144 78/143 128/146
|
||||
f 78/143 68/141 71/137 72/147
|
||||
f 78/143 72/147 145/148 128/146
|
||||
f 76/149 72/147 71/137 70/136
|
||||
f 76/149 131/150 145/148 72/147
|
||||
f 80/135 75/151 76/149 70/136
|
||||
f 133/152 131/150 76/149 75/151
|
||||
f 135/153 133/152 75/151 74/154
|
||||
f 75/151 80/135 81/134 74/154
|
||||
f 74/154 81/134 67/132 73/129
|
||||
f 137/128 135/153 74/154 73/129
|
|
@ -0,0 +1,542 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-3way-corner.blend'
|
||||
# www.blender.org
|
||||
o pipe.001_Cylinder.000
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.122598 -0.468750 0.024387
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v -0.129917 -0.500000 0.086808
|
||||
v -0.153247 -0.500000 0.030483
|
||||
v 0.000000 -0.500000 -0.000000
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.030483 -0.500000 0.153248
|
||||
v 0.030483 -0.500000 0.153248
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.153248 -0.500000 0.030483
|
||||
v 0.153248 -0.500000 -0.030483
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.086808 -0.500000 -0.129917
|
||||
v 0.030483 -0.500000 -0.153247
|
||||
v -0.030483 -0.500000 -0.153248
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.129917 -0.500000 -0.086808
|
||||
v -0.153247 -0.500000 -0.030483
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v 0.000000 -0.468750 -0.000000
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v 0.030483 -0.468750 -0.153247
|
||||
v 0.086808 -0.468750 -0.129917
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153248 -0.468750 -0.030483
|
||||
v 0.153248 -0.468750 0.030483
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.069446 -0.468750 0.103934
|
||||
v -0.024386 -0.468750 0.122598
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.122598 -0.468750 0.024386
|
||||
v -0.103933 -0.468750 0.069446
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.069446 -0.468750 -0.103933
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.122598 -0.468750 -0.024386
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.024386 -0.468750 -0.122598
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.069447 -0.468750 -0.103933
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.103934 -0.468750 -0.069446
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.103934 -0.468750 0.069447
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.069446 -0.468750 0.103934
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.468750 0.122598 0.024387
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.500000 0.000000 0.000000
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.500000 0.153248 -0.030483
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.500000 0.030483 -0.153247
|
||||
v 0.500000 -0.030483 -0.153247
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.500000 -0.129917 -0.086807
|
||||
v 0.500000 -0.153248 -0.030482
|
||||
v 0.468750 -0.129917 -0.086807
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.468750 -0.000000 0.000000
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.468750 -0.030483 -0.153247
|
||||
v 0.468750 0.030483 -0.153247
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.024386 -0.069446 0.103934
|
||||
v 0.468750 -0.069446 0.103934
|
||||
v 0.468750 -0.024386 0.122598
|
||||
v 0.024386 -0.122598 0.024386
|
||||
v 0.468750 -0.122598 0.024387
|
||||
v 0.468750 -0.103934 0.069447
|
||||
v 0.024386 -0.103934 0.069446
|
||||
v 0.024386 -0.069446 -0.103934
|
||||
v 0.468750 -0.069446 -0.103933
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.024386 -0.103934 -0.069446
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.024386 0.024386 -0.122598
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.024386 0.069446 -0.103934
|
||||
v 0.468750 0.069446 -0.103933
|
||||
v 0.024386 0.103934 -0.069446
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.103934 0.069447
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.122599 -0.024387 -0.468750
|
||||
v 0.122599 0.024386 -0.468750
|
||||
v 0.122598 0.024386 -0.024391
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.153247 -0.030483 -0.500000
|
||||
v 0.000001 0.000000 -0.500000
|
||||
v -0.086807 -0.129917 -0.500000
|
||||
v -0.030482 -0.153248 -0.500000
|
||||
v 0.030483 -0.153248 -0.500000
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.129918 -0.086808 -0.500000
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.129918 0.086808 -0.500000
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.030483 0.153247 -0.500000
|
||||
v -0.030482 0.153247 -0.500000
|
||||
v -0.086807 0.129917 -0.500000
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.153247 0.030483 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.153247 0.030483 -0.468750
|
||||
v 0.000000 0.000000 -0.468750
|
||||
v -0.086807 0.129917 -0.468750
|
||||
v -0.030482 0.153247 -0.468750
|
||||
v 0.030483 0.153247 -0.468750
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.129918 0.086808 -0.468750
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.129918 -0.086808 -0.468750
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.030483 -0.153248 -0.468750
|
||||
v -0.030482 -0.153248 -0.468750
|
||||
v -0.086807 -0.129917 -0.468750
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.153247 -0.030483 -0.468750
|
||||
v -0.069446 -0.103934 -0.024391
|
||||
v -0.069446 -0.103934 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v -0.024386 -0.122598 -0.024391
|
||||
v -0.122598 -0.024387 -0.468750
|
||||
v -0.103933 -0.069447 -0.468750
|
||||
v -0.103934 -0.069446 -0.024391
|
||||
v -0.069446 0.103933 -0.468750
|
||||
v -0.103933 0.069446 -0.468750
|
||||
v -0.103934 0.069446 -0.024391
|
||||
v -0.122598 0.024386 -0.024391
|
||||
v -0.122598 0.024386 -0.468750
|
||||
v -0.024386 0.122598 -0.024391
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v 0.024386 0.122598 -0.024391
|
||||
v 0.024387 0.122598 -0.468750
|
||||
v 0.069446 0.103934 -0.024391
|
||||
v 0.069447 0.103933 -0.468750
|
||||
v 0.103934 0.069446 -0.024391
|
||||
v 0.103934 0.069446 -0.468750
|
||||
v 0.103934 -0.069446 -0.024391
|
||||
v 0.103934 -0.069447 -0.468750
|
||||
v 0.069446 -0.103934 -0.024391
|
||||
v 0.069447 -0.103934 -0.468750
|
||||
v 0.024386 -0.122598 -0.024391
|
||||
v 0.024387 -0.122598 -0.468750
|
||||
v -0.069446 0.103934 -0.024390
|
||||
v 0.024386 0.024386 0.122594
|
||||
v 0.024386 0.069446 0.103930
|
||||
v 0.024386 0.103933 0.069442
|
||||
v 0.024386 0.122598 0.024382
|
||||
v -0.028389 0.109793 0.028385
|
||||
v -0.109793 0.028389 0.028387
|
||||
v -0.028389 0.028389 0.109791
|
||||
v -0.073974 0.029365 0.073972
|
||||
v -0.073974 0.070067 0.028386
|
||||
v -0.028389 0.070067 0.073971
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.934657 0.863213
|
||||
vt 0.901601 0.899049
|
||||
vt 0.865820 0.861492
|
||||
vt 0.925541 0.762929
|
||||
vt 0.899262 0.810455
|
||||
vt 0.865821 0.758725
|
||||
vt 0.832379 0.810455
|
||||
vt 0.806102 0.762929
|
||||
vt 0.959958 0.821457
|
||||
vt 0.796982 0.863213
|
||||
vt 0.973651 0.780138
|
||||
vt 0.830039 0.899049
|
||||
vt 0.865820 0.923510
|
||||
vt 0.757989 0.745545
|
||||
vt 0.793772 0.721082
|
||||
vt 0.757989 0.780138
|
||||
vt 0.937873 0.721082
|
||||
vt 0.973654 0.745543
|
||||
vt 0.771681 0.821457
|
||||
vt 0.840522 0.707845
|
||||
vt 0.891124 0.707845
|
||||
s off
|
||||
f 1/1 2/2 3/3 4/4
|
||||
f 5/5 6/6 7/7
|
||||
f 8/8 5/5 7/7
|
||||
f 9/9 8/8 7/7
|
||||
f 10/10 9/9 7/7
|
||||
f 11/11 10/10 7/7
|
||||
f 12/12 11/11 7/7
|
||||
f 13/13 12/12 7/7
|
||||
f 14/14 13/13 7/7
|
||||
f 15/15 14/14 7/7
|
||||
f 16/16 15/15 7/7
|
||||
f 17/17 16/16 7/7
|
||||
f 18/18 17/17 7/7
|
||||
f 19/19 18/18 7/7
|
||||
f 20/20 19/19 7/7
|
||||
f 21/21 20/20 7/7
|
||||
f 22/22 23/23 24/24
|
||||
f 25/25 22/22 24/24
|
||||
f 26/26 25/25 24/24
|
||||
f 27/27 26/26 24/24
|
||||
f 28/28 27/27 24/24
|
||||
f 29/29 28/28 24/24
|
||||
f 30/30 29/29 24/24
|
||||
f 31/31 30/30 24/24
|
||||
f 32/32 31/31 24/24
|
||||
f 33/33 32/32 24/24
|
||||
f 34/34 33/33 24/24
|
||||
f 35/35 34/34 24/24
|
||||
f 36/36 35/35 24/24
|
||||
f 37/37 36/36 24/24
|
||||
f 38/38 37/37 24/24
|
||||
f 23/23 38/38 24/24
|
||||
f 6/6 21/21 7/7
|
||||
f 25/39 19/40 20/41 22/42
|
||||
f 22/42 20/41 21/43 23/44
|
||||
f 26/45 18/46 19/40 25/39
|
||||
f 27/47 17/48 18/46 26/45
|
||||
f 28/49 16/50 17/51 27/52
|
||||
f 29/53 15/54 16/50 28/49
|
||||
f 30/55 14/56 15/54 29/53
|
||||
f 31/57 13/58 14/56 30/55
|
||||
f 32/59 12/60 13/58 31/57
|
||||
f 33/61 11/62 12/60 32/59
|
||||
f 34/63 10/64 11/62 33/61
|
||||
f 35/65 9/66 10/64 34/63
|
||||
f 36/67 8/68 9/66 35/65
|
||||
f 37/69 5/70 8/68 36/67
|
||||
f 38/71 6/72 5/70 37/69
|
||||
f 23/44 21/43 6/72 38/71
|
||||
f 39/73 40/74 41/75 42/76
|
||||
f 43/77 44/78 45/79 46/80
|
||||
f 47/81 48/82 49/83 50/84
|
||||
f 51/85 52/86 44/78 43/77
|
||||
f 46/80 45/79 40/74 39/73
|
||||
f 50/84 49/83 52/86 51/85
|
||||
f 53/87 54/88 48/82 47/81
|
||||
f 55/89 56/90 54/88 53/87
|
||||
f 57/91 58/92 56/90 55/89
|
||||
f 59/93 60/94 58/92 57/91
|
||||
f 4/4 3/3 60/94 59/93
|
||||
f 2/2 1/1 61/95 62/96
|
||||
f 63/97 64/98 62/96 61/95
|
||||
f 65/99 66/100 64/98 63/97
|
||||
f 42/76 41/75 66/101 65/102
|
||||
f 69/5 70/6 71/7
|
||||
f 72/8 69/5 71/7
|
||||
f 73/9 72/8 71/7
|
||||
f 74/10 73/9 71/7
|
||||
f 75/11 74/10 71/7
|
||||
f 76/12 75/11 71/7
|
||||
f 77/13 76/12 71/7
|
||||
f 78/14 77/13 71/7
|
||||
f 79/15 78/14 71/7
|
||||
f 80/16 79/15 71/7
|
||||
f 81/17 80/16 71/7
|
||||
f 82/18 81/17 71/7
|
||||
f 83/19 82/18 71/7
|
||||
f 84/20 83/19 71/7
|
||||
f 85/21 84/20 71/7
|
||||
f 86/22 87/23 88/24
|
||||
f 89/25 86/22 88/24
|
||||
f 90/26 89/25 88/24
|
||||
f 91/27 90/26 88/24
|
||||
f 92/28 91/27 88/24
|
||||
f 93/29 92/28 88/24
|
||||
f 94/30 93/29 88/24
|
||||
f 95/31 94/30 88/24
|
||||
f 96/32 95/31 88/24
|
||||
f 97/33 96/32 88/24
|
||||
f 98/34 97/33 88/24
|
||||
f 99/35 98/34 88/24
|
||||
f 100/36 99/35 88/24
|
||||
f 101/37 100/36 88/24
|
||||
f 102/38 101/37 88/24
|
||||
f 87/23 102/38 88/24
|
||||
f 70/6 85/21 71/7
|
||||
f 89/39 83/40 84/41 86/42
|
||||
f 86/42 84/41 85/43 87/44
|
||||
f 90/45 82/46 83/40 89/39
|
||||
f 91/47 81/48 82/46 90/45
|
||||
f 92/49 80/50 81/51 91/52
|
||||
f 93/53 79/54 80/50 92/49
|
||||
f 94/55 78/56 79/54 93/53
|
||||
f 95/57 77/58 78/56 94/55
|
||||
f 96/59 76/60 77/58 95/57
|
||||
f 97/61 75/62 76/60 96/59
|
||||
f 98/63 74/64 75/62 97/61
|
||||
f 99/65 73/66 74/64 98/63
|
||||
f 100/67 72/68 73/66 99/65
|
||||
f 101/69 69/70 72/68 100/67
|
||||
f 102/71 70/72 69/70 101/69
|
||||
f 87/44 85/43 70/72 102/71
|
||||
f 106/77 107/78 108/79 109/80
|
||||
f 110/81 111/82 112/83 113/84
|
||||
f 109/80 108/79 104/74 103/73
|
||||
f 118/91 119/92 117/90 116/89
|
||||
f 120/93 121/94 119/92 118/91
|
||||
f 128/5 129/6 130/7
|
||||
f 131/8 128/5 130/7
|
||||
f 132/9 131/8 130/7
|
||||
f 133/10 132/9 130/7
|
||||
f 134/11 133/10 130/7
|
||||
f 135/12 134/11 130/7
|
||||
f 136/13 135/12 130/7
|
||||
f 137/14 136/13 130/7
|
||||
f 138/15 137/14 130/7
|
||||
f 139/16 138/15 130/7
|
||||
f 140/17 139/16 130/7
|
||||
f 141/18 140/17 130/7
|
||||
f 142/19 141/18 130/7
|
||||
f 143/20 142/19 130/7
|
||||
f 144/21 143/20 130/7
|
||||
f 145/22 146/23 147/24
|
||||
f 148/25 145/22 147/24
|
||||
f 149/26 148/25 147/24
|
||||
f 150/27 149/26 147/24
|
||||
f 151/28 150/27 147/24
|
||||
f 152/29 151/28 147/24
|
||||
f 153/30 152/29 147/24
|
||||
f 154/31 153/30 147/24
|
||||
f 155/32 154/31 147/24
|
||||
f 156/33 155/32 147/24
|
||||
f 157/34 156/33 147/24
|
||||
f 158/35 157/34 147/24
|
||||
f 159/36 158/35 147/24
|
||||
f 160/37 159/36 147/24
|
||||
f 161/38 160/37 147/24
|
||||
f 146/23 161/38 147/24
|
||||
f 129/6 144/21 130/7
|
||||
f 148/39 142/40 143/41 145/42
|
||||
f 145/42 143/41 144/43 146/44
|
||||
f 149/45 141/46 142/40 148/39
|
||||
f 150/47 140/48 141/46 149/45
|
||||
f 151/49 139/50 140/51 150/52
|
||||
f 152/53 138/54 139/50 151/49
|
||||
f 153/55 137/56 138/54 152/53
|
||||
f 154/57 136/58 137/56 153/55
|
||||
f 155/59 135/60 136/58 154/57
|
||||
f 156/61 134/62 135/60 155/59
|
||||
f 157/63 133/64 134/62 156/61
|
||||
f 158/65 132/66 133/64 157/63
|
||||
f 159/67 131/68 132/66 158/65
|
||||
f 160/69 128/70 131/68 159/67
|
||||
f 161/71 129/72 128/70 160/69
|
||||
f 146/44 144/43 129/72 161/71
|
||||
f 162/73 163/74 164/75 165/76
|
||||
f 168/80 167/79 163/74 162/73
|
||||
f 171/84 170/83 173/86 172/85
|
||||
f 176/89 177/90 175/88 174/87
|
||||
f 178/91 179/92 177/90 176/89
|
||||
f 180/93 181/94 179/92 178/91
|
||||
f 127/4 126/3 181/94 180/93
|
||||
f 184/97 185/98 183/96 182/95
|
||||
f 186/99 187/100 185/98 184/97
|
||||
f 165/76 164/75 187/101 186/102
|
||||
f 191/103 192/104 193/105
|
||||
f 195/106 198/107 196/108
|
||||
f 198/107 193/105 197/109
|
||||
f 198/107 197/109 196/108
|
||||
f 196/108 197/109 194/110
|
||||
f 190/111 191/103 198/107
|
||||
f 193/105 188/112 197/109
|
||||
f 193/105 198/107 191/103
|
||||
f 195/106 190/111 198/107
|
||||
f 190/111 195/106 189/113
|
||||
f 192/1 67/2 68/3 176/4
|
||||
f 103/73 104/74 105/75 65/76
|
||||
f 186/85 114/86 107/78 106/77
|
||||
f 113/84 112/83 114/86 186/85
|
||||
f 55/87 115/88 111/82 110/81
|
||||
f 116/89 117/90 115/88 55/87
|
||||
f 176/4 68/3 121/94 120/93
|
||||
f 191/95 122/96 67/2 192/1
|
||||
f 190/97 123/98 122/96 191/95
|
||||
f 189/99 124/100 123/98 190/97
|
||||
f 65/76 105/75 124/101 189/102
|
||||
f 4/1 125/2 126/3 127/4
|
||||
f 51/77 166/78 167/79 168/80
|
||||
f 188/81 169/82 170/83 171/84
|
||||
f 172/85 173/86 166/78 51/77
|
||||
f 174/87 175/88 169/82 188/81
|
||||
f 182/95 183/96 125/2 4/1
|
||||
f 174/114 192/104 176/115
|
||||
f 51/116 43/117 172/118
|
||||
f 42/119 65/120 189/113
|
||||
f 192/104 174/114 193/105
|
||||
f 188/112 193/105 174/114
|
||||
f 188/112 171/121 197/109
|
||||
f 46/122 39/123 196/108
|
||||
f 195/106 196/108 39/123
|
||||
f 194/110 46/122 196/108
|
||||
f 194/110 197/109 171/121
|
||||
f 171/121 172/118 194/110
|
||||
f 43/117 194/110 172/118
|
||||
f 46/122 194/110 43/117
|
||||
f 39/123 42/119 195/106
|
||||
f 189/113 195/106 42/119
|
|
@ -0,0 +1,499 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-3way.blend'
|
||||
# www.blender.org
|
||||
o Cube.000
|
||||
v -0.069446 -0.468750 0.103934
|
||||
v -0.103933 -0.468750 0.069446
|
||||
v -0.122598 -0.468750 0.024386
|
||||
v -0.122598 -0.468750 -0.024386
|
||||
v -0.129917 -0.500000 -0.086808
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.500000 -0.153248
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v 0.030483 -0.500000 -0.153247
|
||||
v 0.030483 -0.468750 -0.153247
|
||||
v 0.086808 -0.500000 -0.129917
|
||||
v 0.086808 -0.468750 -0.129917
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153248 -0.500000 -0.030483
|
||||
v 0.153248 -0.468750 -0.030483
|
||||
v 0.153248 -0.500000 0.030483
|
||||
v 0.153248 -0.468750 0.030483
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.500000 0.153248
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.500000 0.153248
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129917 -0.500000 0.086808
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153247 -0.500000 0.030483
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.153247 -0.500000 -0.030483
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v -0.024386 -0.468750 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.069446 -0.468750 0.103934
|
||||
v 0.103934 -0.468750 0.069447
|
||||
v 0.122598 -0.468750 0.024387
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.103934 -0.468750 -0.069446
|
||||
v 0.069447 -0.468750 -0.103933
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v -0.024386 -0.468750 -0.122598
|
||||
v -0.069446 -0.468750 -0.103933
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v 0.000000 -0.468750 0.000000
|
||||
v 0.000000 -0.500000 0.000000
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.468750 -0.153248 -0.030483
|
||||
v -0.500000 -0.153248 -0.030483
|
||||
v -0.468750 -0.153248 0.030483
|
||||
v -0.500000 -0.153248 0.030483
|
||||
v -0.468750 -0.129917 0.086808
|
||||
v -0.500000 -0.129917 0.086808
|
||||
v -0.468750 -0.086808 0.129917
|
||||
v -0.500000 -0.086808 0.129917
|
||||
v -0.468750 -0.030483 0.153248
|
||||
v -0.500000 -0.030483 0.153248
|
||||
v -0.468750 0.030483 0.153248
|
||||
v -0.500000 0.030483 0.153248
|
||||
v -0.468750 0.086808 0.129917
|
||||
v -0.500000 0.086808 0.129917
|
||||
v -0.468750 0.129917 0.086808
|
||||
v -0.500000 0.129917 0.086808
|
||||
v -0.468750 0.153248 0.030483
|
||||
v -0.500000 0.153248 0.030483
|
||||
v -0.468750 0.153248 -0.030483
|
||||
v -0.500000 0.153248 -0.030483
|
||||
v -0.468750 0.129917 -0.086808
|
||||
v -0.500000 0.129917 -0.086808
|
||||
v -0.468750 0.086808 -0.129917
|
||||
v -0.500000 0.086808 -0.129917
|
||||
v -0.468750 0.030483 -0.153248
|
||||
v -0.500000 0.030483 -0.153248
|
||||
v -0.468750 -0.030483 -0.153248
|
||||
v -0.500000 -0.030483 -0.153248
|
||||
v -0.468750 -0.086808 -0.129917
|
||||
v -0.500000 -0.086808 -0.129917
|
||||
v -0.468750 -0.129917 -0.086808
|
||||
v -0.500000 -0.129917 -0.086808
|
||||
v -0.468750 -0.122598 -0.024386
|
||||
v -0.468750 -0.122598 0.024386
|
||||
v -0.468750 -0.103934 0.069446
|
||||
v -0.468750 -0.069446 0.103934
|
||||
v -0.468750 -0.024386 0.122598
|
||||
v -0.468750 0.024386 0.122598
|
||||
v -0.468750 0.069446 0.103934
|
||||
v -0.468750 0.103934 0.069446
|
||||
v -0.468750 0.122598 0.024386
|
||||
v -0.468750 0.122598 -0.024386
|
||||
v -0.468750 0.103934 -0.069446
|
||||
v -0.468750 0.069446 -0.103934
|
||||
v -0.468750 0.024386 -0.122598
|
||||
v -0.468750 -0.024386 -0.122598
|
||||
v -0.468750 -0.069446 -0.103934
|
||||
v -0.468750 -0.103934 -0.069446
|
||||
v -0.468750 0.000000 -0.000000
|
||||
v -0.500000 -0.000000 -0.000000
|
||||
v 0.468750 -0.069446 0.103934
|
||||
v 0.468750 -0.103934 0.069447
|
||||
v 0.468750 -0.122598 0.024387
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.500000 -0.129917 -0.086807
|
||||
v 0.468750 -0.129917 -0.086807
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.500000 -0.030483 -0.153247
|
||||
v 0.468750 -0.030483 -0.153247
|
||||
v 0.500000 0.030483 -0.153247
|
||||
v 0.468750 0.030483 -0.153247
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.500000 0.153248 -0.030483
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.500000 -0.153248 -0.030482
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.468750 -0.024386 0.122598
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.103934 0.069447
|
||||
v 0.468750 0.122598 0.024387
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.069446 -0.103933
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.468750 -0.069446 -0.103933
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 0.000000 0.000000
|
||||
v 0.500000 0.000000 0.000000
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.218363 0.657325
|
||||
vt 0.185866 0.820702
|
||||
vt 0.153368 0.657325
|
||||
vt 0.531836 0.657325
|
||||
vt 0.564334 0.820702
|
||||
vt 0.596832 0.657325
|
||||
vt 0.656879 0.682198
|
||||
vt 0.702838 0.728156
|
||||
vt 0.727710 0.788204
|
||||
vt 0.727710 0.853199
|
||||
vt 0.702838 0.913247
|
||||
vt 0.656879 0.959205
|
||||
vt 0.596831 0.984078
|
||||
vt 0.531836 0.984078
|
||||
vt 0.471788 0.959205
|
||||
vt 0.425830 0.913247
|
||||
vt 0.400957 0.853199
|
||||
vt 0.400957 0.788204
|
||||
vt 0.425830 0.728156
|
||||
vt 0.471789 0.682198
|
||||
vt 0.093321 0.682198
|
||||
vt 0.047362 0.728156
|
||||
vt 0.022489 0.788204
|
||||
vt 0.022489 0.853199
|
||||
vt 0.047362 0.913247
|
||||
vt 0.093320 0.959205
|
||||
vt 0.153368 0.984078
|
||||
vt 0.218363 0.984078
|
||||
vt 0.278411 0.959205
|
||||
vt 0.324369 0.913247
|
||||
vt 0.349242 0.853199
|
||||
vt 0.349242 0.788204
|
||||
vt 0.324369 0.728156
|
||||
vt 0.278411 0.682198
|
||||
vt 0.187500 0.515625
|
||||
vt 0.250000 0.515625
|
||||
vt 0.875000 0.515625
|
||||
vt 0.937500 0.515625
|
||||
vt 0.750000 0.515625
|
||||
vt 0.812500 0.515625
|
||||
vt 0.562500 0.515625
|
||||
vt 0.625000 0.515625
|
||||
vt 0.687500 0.515625
|
||||
vt 0.500000 0.515625
|
||||
vt 0.437500 0.515625
|
||||
vt 0.375000 0.515625
|
||||
vt 0.312500 0.515625
|
||||
vt 0.125000 0.515625
|
||||
vt 0.062500 0.515625
|
||||
vt 0.000000 0.515625
|
||||
vt 1.000000 0.515625
|
||||
s off
|
||||
f 54/1 41/2 42/3 55/4
|
||||
f 31/5 33/6 50/7
|
||||
f 29/8 31/5 50/7
|
||||
f 27/9 29/8 50/7
|
||||
f 25/10 27/9 50/7
|
||||
f 23/11 25/10 50/7
|
||||
f 21/12 23/11 50/7
|
||||
f 19/13 21/12 50/7
|
||||
f 17/14 19/13 50/7
|
||||
f 15/15 17/14 50/7
|
||||
f 13/16 15/15 50/7
|
||||
f 11/17 13/16 50/7
|
||||
f 9/18 11/17 50/7
|
||||
f 7/19 9/18 50/7
|
||||
f 5/20 7/19 50/7
|
||||
f 35/21 5/20 50/7
|
||||
f 6/22 36/23 49/24
|
||||
f 8/25 6/22 49/24
|
||||
f 10/26 8/25 49/24
|
||||
f 12/27 10/26 49/24
|
||||
f 14/28 12/27 49/24
|
||||
f 16/29 14/28 49/24
|
||||
f 18/30 16/29 49/24
|
||||
f 20/31 18/30 49/24
|
||||
f 22/32 20/31 49/24
|
||||
f 24/33 22/32 49/24
|
||||
f 26/34 24/33 49/24
|
||||
f 28/35 26/34 49/24
|
||||
f 30/36 28/35 49/24
|
||||
f 32/37 30/36 49/24
|
||||
f 34/38 32/37 49/24
|
||||
f 36/23 34/38 49/24
|
||||
f 33/6 35/21 50/7
|
||||
f 8/39 7/40 5/41 6/42
|
||||
f 6/42 5/41 35/43 36/44
|
||||
f 10/45 9/46 7/40 8/39
|
||||
f 12/47 11/48 9/46 10/45
|
||||
f 14/49 13/50 11/51 12/52
|
||||
f 16/53 15/54 13/50 14/49
|
||||
f 18/55 17/56 15/54 16/53
|
||||
f 20/57 19/58 17/56 18/55
|
||||
f 22/59 21/60 19/58 20/57
|
||||
f 24/61 23/62 21/60 22/59
|
||||
f 26/63 25/64 23/62 24/61
|
||||
f 28/65 27/66 25/64 26/63
|
||||
f 30/67 29/68 27/66 28/65
|
||||
f 32/69 31/70 29/68 30/67
|
||||
f 34/71 33/72 31/70 32/69
|
||||
f 36/44 35/43 33/72 34/71
|
||||
f 65/73 1/74 37/75 66/76
|
||||
f 63/77 3/78 2/79 62/80
|
||||
f 61/81 47/82 48/83 60/84
|
||||
f 64/85 4/86 3/78 63/77
|
||||
f 62/80 2/79 1/74 65/73
|
||||
f 60/84 48/83 4/86 64/85
|
||||
f 59/87 46/88 47/82 61/81
|
||||
f 58/89 45/90 46/88 59/87
|
||||
f 57/91 44/92 45/90 58/89
|
||||
f 56/93 43/94 44/92 57/91
|
||||
f 55/4 42/3 43/94 56/93
|
||||
f 53/95 40/96 41/2 54/1
|
||||
f 52/97 39/98 40/96 53/95
|
||||
f 51/99 38/100 39/98 52/97
|
||||
f 66/76 37/75 38/101 51/102
|
||||
f 67/58 69/60 70/59 68/57
|
||||
f 69/60 71/62 72/61 70/59
|
||||
f 71/62 73/64 74/63 72/61
|
||||
f 73/64 75/66 76/65 74/63
|
||||
f 75/66 77/68 78/67 76/65
|
||||
f 77/68 79/70 80/69 78/67
|
||||
f 79/70 81/72 82/71 80/69
|
||||
f 81/72 83/43 84/44 82/71
|
||||
f 83/43 85/41 86/42 84/44
|
||||
f 85/41 87/40 88/39 86/42
|
||||
f 87/40 89/46 90/45 88/39
|
||||
f 89/46 91/48 92/47 90/45
|
||||
f 91/51 93/50 94/49 92/52
|
||||
f 93/50 95/54 96/53 94/49
|
||||
f 97/56 67/58 68/57 98/55
|
||||
f 95/54 97/56 98/55 96/53
|
||||
f 70/103 116/104 68/105
|
||||
f 67/106 115/107 69/108
|
||||
f 69/108 115/107 71/109
|
||||
f 71/109 115/107 73/110
|
||||
f 73/110 115/107 75/111
|
||||
f 75/111 115/107 77/112
|
||||
f 77/112 115/107 79/113
|
||||
f 79/113 115/107 81/114
|
||||
f 81/114 115/107 83/115
|
||||
f 83/115 115/107 85/116
|
||||
f 85/116 115/107 87/117
|
||||
f 87/117 115/107 89/118
|
||||
f 89/118 115/107 91/119
|
||||
f 91/119 115/107 93/120
|
||||
f 93/120 115/107 95/121
|
||||
f 95/121 115/107 97/122
|
||||
f 97/122 115/107 67/106
|
||||
f 68/105 116/104 98/123
|
||||
f 98/123 116/104 96/124
|
||||
f 96/124 116/104 94/125
|
||||
f 94/125 116/104 92/126
|
||||
f 92/126 116/104 90/127
|
||||
f 90/127 116/104 88/128
|
||||
f 88/128 116/104 86/129
|
||||
f 86/129 116/104 84/130
|
||||
f 84/130 116/104 82/131
|
||||
f 82/131 116/104 80/132
|
||||
f 80/132 116/104 78/133
|
||||
f 78/133 116/104 76/134
|
||||
f 76/134 116/104 74/135
|
||||
f 74/135 116/104 72/136
|
||||
f 72/136 116/104 70/103
|
||||
f 107/137 157/2 158/3 108/138
|
||||
f 147/5 149/6 166/7
|
||||
f 145/8 147/5 166/7
|
||||
f 143/9 145/8 166/7
|
||||
f 141/10 143/9 166/7
|
||||
f 139/11 141/10 166/7
|
||||
f 137/12 139/11 166/7
|
||||
f 135/13 137/12 166/7
|
||||
f 133/14 135/13 166/7
|
||||
f 131/15 133/14 166/7
|
||||
f 129/16 131/15 166/7
|
||||
f 127/17 129/16 166/7
|
||||
f 125/18 127/17 166/7
|
||||
f 123/19 125/18 166/7
|
||||
f 121/20 123/19 166/7
|
||||
f 151/21 121/20 166/7
|
||||
f 122/22 152/23 165/24
|
||||
f 124/25 122/22 165/24
|
||||
f 126/26 124/25 165/24
|
||||
f 128/27 126/26 165/24
|
||||
f 130/28 128/27 165/24
|
||||
f 132/29 130/28 165/24
|
||||
f 134/30 132/29 165/24
|
||||
f 136/31 134/30 165/24
|
||||
f 138/32 136/31 165/24
|
||||
f 140/33 138/32 165/24
|
||||
f 142/34 140/33 165/24
|
||||
f 144/35 142/34 165/24
|
||||
f 146/36 144/35 165/24
|
||||
f 148/37 146/36 165/24
|
||||
f 150/38 148/37 165/24
|
||||
f 152/23 150/38 165/24
|
||||
f 149/6 151/21 166/7
|
||||
f 124/39 123/40 121/41 122/42
|
||||
f 122/42 121/41 151/43 152/44
|
||||
f 126/45 125/46 123/40 124/39
|
||||
f 128/47 127/48 125/46 126/45
|
||||
f 130/49 129/50 127/51 128/52
|
||||
f 132/53 131/54 129/50 130/49
|
||||
f 134/55 133/56 131/54 132/53
|
||||
f 136/57 135/58 133/56 134/55
|
||||
f 138/59 137/60 135/58 136/57
|
||||
f 140/61 139/62 137/60 138/59
|
||||
f 142/63 141/64 139/62 140/61
|
||||
f 144/65 143/66 141/64 142/63
|
||||
f 146/67 145/68 143/66 144/65
|
||||
f 148/69 147/70 145/68 146/67
|
||||
f 150/71 149/72 147/70 148/69
|
||||
f 152/44 151/43 149/72 150/71
|
||||
f 102/139 117/74 153/75 103/140
|
||||
f 100/141 119/78 118/79 101/142
|
||||
f 113/143 163/82 164/83 114/144
|
||||
f 99/145 120/86 119/78 100/141
|
||||
f 101/142 118/79 117/74 102/139
|
||||
f 114/144 164/83 120/86 99/145
|
||||
f 112/146 162/88 163/82 113/143
|
||||
f 111/147 161/90 162/88 112/146
|
||||
f 110/148 160/92 161/90 111/147
|
||||
f 109/149 159/94 160/92 110/148
|
||||
f 108/138 158/3 159/94 109/149
|
||||
f 106/150 156/96 157/2 107/137
|
||||
f 105/151 155/98 156/96 106/150
|
||||
f 104/152 154/100 155/98 105/151
|
||||
f 103/140 153/75 154/101 104/153
|
|
@ -0,0 +1,629 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-4way-corner.blend'
|
||||
# www.blender.org
|
||||
o Cube.000
|
||||
v -0.069446 -0.468750 0.103934
|
||||
v -0.103933 -0.468750 0.069446
|
||||
v -0.122598 -0.468750 0.024386
|
||||
v -0.122598 -0.468750 -0.024386
|
||||
v -0.129917 -0.500000 -0.086808
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.500000 -0.153248
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v 0.030483 -0.500000 -0.153247
|
||||
v 0.030483 -0.468750 -0.153247
|
||||
v 0.086808 -0.500000 -0.129917
|
||||
v 0.086808 -0.468750 -0.129917
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153248 -0.500000 -0.030483
|
||||
v 0.153248 -0.468750 -0.030483
|
||||
v 0.153248 -0.500000 0.030483
|
||||
v 0.153248 -0.468750 0.030483
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.500000 0.153248
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.500000 0.153248
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129917 -0.500000 0.086808
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153247 -0.500000 0.030483
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.153247 -0.500000 -0.030483
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v -0.024386 -0.468750 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.069446 -0.468750 0.103934
|
||||
v 0.103934 -0.468750 0.069447
|
||||
v 0.122598 -0.468750 0.024387
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.103934 -0.468750 -0.069446
|
||||
v 0.069447 -0.468750 -0.103933
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v -0.024386 -0.468750 -0.122598
|
||||
v -0.069446 -0.468750 -0.103933
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v 0.000000 -0.468750 0.000000
|
||||
v 0.000000 -0.500000 0.000000
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.468750 -0.153248 -0.030483
|
||||
v -0.500000 -0.153248 -0.030483
|
||||
v -0.468750 -0.153248 0.030483
|
||||
v -0.500000 -0.153248 0.030483
|
||||
v -0.468750 -0.129917 0.086808
|
||||
v -0.500000 -0.129917 0.086808
|
||||
v -0.468750 -0.086808 0.129917
|
||||
v -0.500000 -0.086808 0.129917
|
||||
v -0.468750 -0.030483 0.153248
|
||||
v -0.500000 -0.030483 0.153248
|
||||
v -0.468750 0.030483 0.153248
|
||||
v -0.500000 0.030483 0.153248
|
||||
v -0.468750 0.086808 0.129917
|
||||
v -0.500000 0.086808 0.129917
|
||||
v -0.468750 0.129917 0.086808
|
||||
v -0.500000 0.129917 0.086808
|
||||
v -0.468750 0.153248 0.030483
|
||||
v -0.500000 0.153248 0.030483
|
||||
v -0.468750 0.153248 -0.030483
|
||||
v -0.500000 0.153248 -0.030483
|
||||
v -0.468750 0.129917 -0.086808
|
||||
v -0.500000 0.129917 -0.086808
|
||||
v -0.468750 0.086808 -0.129917
|
||||
v -0.500000 0.086808 -0.129917
|
||||
v -0.468750 0.030483 -0.153248
|
||||
v -0.500000 0.030483 -0.153248
|
||||
v -0.468750 -0.030483 -0.153248
|
||||
v -0.500000 -0.030483 -0.153248
|
||||
v -0.468750 -0.086808 -0.129917
|
||||
v -0.500000 -0.086808 -0.129917
|
||||
v -0.468750 -0.129917 -0.086808
|
||||
v -0.500000 -0.129917 -0.086808
|
||||
v -0.468750 -0.122598 -0.024386
|
||||
v -0.468750 -0.122598 0.024386
|
||||
v -0.468750 -0.103934 0.069446
|
||||
v -0.468750 -0.069446 0.103934
|
||||
v -0.468750 -0.024386 0.122598
|
||||
v -0.468750 0.024386 0.122598
|
||||
v -0.468750 0.069446 0.103934
|
||||
v -0.468750 0.103934 0.069446
|
||||
v -0.468750 0.122598 0.024386
|
||||
v -0.468750 0.122598 -0.024386
|
||||
v -0.468750 0.103934 -0.069446
|
||||
v -0.468750 0.069446 -0.103934
|
||||
v -0.468750 0.024386 -0.122598
|
||||
v -0.468750 -0.024386 -0.122598
|
||||
v -0.468750 -0.069446 -0.103934
|
||||
v -0.468750 -0.103934 -0.069446
|
||||
v -0.468750 0.000000 -0.000000
|
||||
v -0.500000 -0.000000 -0.000000
|
||||
v 0.468750 -0.069446 0.103934
|
||||
v 0.468750 -0.103934 0.069447
|
||||
v 0.468750 -0.122598 0.024387
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.500000 -0.129917 -0.086807
|
||||
v 0.468750 -0.129917 -0.086807
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.500000 -0.030483 -0.153247
|
||||
v 0.468750 -0.030483 -0.153247
|
||||
v 0.500000 0.030483 -0.153247
|
||||
v 0.468750 0.030483 -0.153247
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.500000 0.153248 -0.030483
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.500000 -0.153248 -0.030482
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.468750 -0.024386 0.122598
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.103934 0.069447
|
||||
v 0.468750 0.122598 0.024387
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.069446 -0.103933
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.468750 -0.069446 -0.103933
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 0.000000 0.000000
|
||||
v 0.500000 0.000000 0.000000
|
||||
v -0.069446 -0.103934 -0.468750
|
||||
v -0.103933 -0.069447 -0.468750
|
||||
v -0.122598 -0.024387 -0.468750
|
||||
v -0.122598 0.024386 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.086807 0.129917 -0.500000
|
||||
v -0.086807 0.129917 -0.468750
|
||||
v -0.030482 0.153247 -0.500000
|
||||
v -0.030482 0.153247 -0.468750
|
||||
v 0.030483 0.153247 -0.500000
|
||||
v 0.030483 0.153247 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.129918 0.086808 -0.500000
|
||||
v 0.129918 0.086808 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.129918 -0.086808 -0.500000
|
||||
v 0.129918 -0.086808 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.030483 -0.153248 -0.500000
|
||||
v 0.030483 -0.153248 -0.468750
|
||||
v -0.030482 -0.153248 -0.500000
|
||||
v -0.030482 -0.153248 -0.468750
|
||||
v -0.086807 -0.129917 -0.500000
|
||||
v -0.086807 -0.129917 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.153247 -0.030483 -0.500000
|
||||
v -0.153247 -0.030483 -0.468750
|
||||
v -0.153247 0.030483 -0.500000
|
||||
v -0.153247 0.030483 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v 0.024387 -0.122598 -0.468750
|
||||
v 0.069447 -0.103934 -0.468750
|
||||
v 0.103934 -0.069447 -0.468750
|
||||
v 0.122599 -0.024387 -0.468750
|
||||
v 0.122599 0.024386 -0.468750
|
||||
v 0.103934 0.069446 -0.468750
|
||||
v 0.069447 0.103933 -0.468750
|
||||
v 0.024387 0.122598 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v -0.069446 0.103933 -0.468750
|
||||
v -0.103933 0.069446 -0.468750
|
||||
v 0.000000 -0.000000 -0.468750
|
||||
v 0.000001 -0.000000 -0.500000
|
||||
v 0.024386 -0.122598 -0.024391
|
||||
v 0.069446 -0.103934 -0.024391
|
||||
v 0.103934 -0.069446 -0.024391
|
||||
v 0.122598 -0.024386 -0.024391
|
||||
v 0.122598 0.024386 -0.024391
|
||||
v 0.103934 0.069446 -0.024391
|
||||
v 0.069446 0.103934 -0.024391
|
||||
v 0.024386 0.122598 -0.024391
|
||||
v -0.024386 0.122598 -0.024391
|
||||
v -0.103934 0.069446 -0.024391
|
||||
v -0.069446 0.103934 -0.024391
|
||||
v -0.103934 -0.069446 -0.024391
|
||||
v -0.122598 -0.024386 -0.024391
|
||||
v -0.122598 0.024386 -0.024391
|
||||
v -0.069446 -0.103934 -0.024391
|
||||
v -0.024386 -0.122598 -0.024391
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.218363 0.657325
|
||||
vt 0.185866 0.820702
|
||||
vt 0.153368 0.657325
|
||||
vt 0.531836 0.657325
|
||||
vt 0.564334 0.820702
|
||||
vt 0.596832 0.657325
|
||||
vt 0.656879 0.682198
|
||||
vt 0.702838 0.728156
|
||||
vt 0.727710 0.788204
|
||||
vt 0.727710 0.853199
|
||||
vt 0.702838 0.913247
|
||||
vt 0.656879 0.959205
|
||||
vt 0.596831 0.984078
|
||||
vt 0.531836 0.984078
|
||||
vt 0.471788 0.959205
|
||||
vt 0.425830 0.913247
|
||||
vt 0.400957 0.853199
|
||||
vt 0.400957 0.788204
|
||||
vt 0.425830 0.728156
|
||||
vt 0.471789 0.682198
|
||||
vt 0.093321 0.682198
|
||||
vt 0.047362 0.728156
|
||||
vt 0.022489 0.788204
|
||||
vt 0.022489 0.853199
|
||||
vt 0.047362 0.913247
|
||||
vt 0.093320 0.959205
|
||||
vt 0.153368 0.984078
|
||||
vt 0.218363 0.984078
|
||||
vt 0.278411 0.959205
|
||||
vt 0.324369 0.913247
|
||||
vt 0.349242 0.853199
|
||||
vt 0.349242 0.788204
|
||||
vt 0.324369 0.728156
|
||||
vt 0.278411 0.682198
|
||||
vt 0.187500 0.515625
|
||||
vt 0.250000 0.515625
|
||||
vt 0.875000 0.515625
|
||||
vt 0.937500 0.515625
|
||||
vt 0.750000 0.515625
|
||||
vt 0.812500 0.515625
|
||||
vt 0.562500 0.515625
|
||||
vt 0.625000 0.515625
|
||||
vt 0.687500 0.515625
|
||||
vt 0.500000 0.515625
|
||||
vt 0.437500 0.515625
|
||||
vt 0.375000 0.515625
|
||||
vt 0.312500 0.515625
|
||||
vt 0.125000 0.515625
|
||||
vt 0.062500 0.515625
|
||||
vt 0.000000 0.515625
|
||||
vt 1.000000 0.515625
|
||||
s off
|
||||
f 54/1 41/2 42/3 55/4
|
||||
f 31/5 33/6 50/7
|
||||
f 29/8 31/5 50/7
|
||||
f 27/9 29/8 50/7
|
||||
f 25/10 27/9 50/7
|
||||
f 23/11 25/10 50/7
|
||||
f 21/12 23/11 50/7
|
||||
f 19/13 21/12 50/7
|
||||
f 17/14 19/13 50/7
|
||||
f 15/15 17/14 50/7
|
||||
f 13/16 15/15 50/7
|
||||
f 11/17 13/16 50/7
|
||||
f 9/18 11/17 50/7
|
||||
f 7/19 9/18 50/7
|
||||
f 5/20 7/19 50/7
|
||||
f 35/21 5/20 50/7
|
||||
f 6/22 36/23 49/24
|
||||
f 8/25 6/22 49/24
|
||||
f 10/26 8/25 49/24
|
||||
f 12/27 10/26 49/24
|
||||
f 14/28 12/27 49/24
|
||||
f 16/29 14/28 49/24
|
||||
f 18/30 16/29 49/24
|
||||
f 20/31 18/30 49/24
|
||||
f 22/32 20/31 49/24
|
||||
f 24/33 22/32 49/24
|
||||
f 26/34 24/33 49/24
|
||||
f 28/35 26/34 49/24
|
||||
f 30/36 28/35 49/24
|
||||
f 32/37 30/36 49/24
|
||||
f 34/38 32/37 49/24
|
||||
f 36/23 34/38 49/24
|
||||
f 33/6 35/21 50/7
|
||||
f 8/39 7/40 5/41 6/42
|
||||
f 6/42 5/41 35/43 36/44
|
||||
f 10/45 9/46 7/40 8/39
|
||||
f 12/47 11/48 9/46 10/45
|
||||
f 14/49 13/50 11/51 12/52
|
||||
f 16/53 15/54 13/50 14/49
|
||||
f 18/55 17/56 15/54 16/53
|
||||
f 20/57 19/58 17/56 18/55
|
||||
f 22/59 21/60 19/58 20/57
|
||||
f 24/61 23/62 21/60 22/59
|
||||
f 26/63 25/64 23/62 24/61
|
||||
f 28/65 27/66 25/64 26/63
|
||||
f 30/67 29/68 27/66 28/65
|
||||
f 32/69 31/70 29/68 30/67
|
||||
f 34/71 33/72 31/70 32/69
|
||||
f 36/44 35/43 33/72 34/71
|
||||
f 65/73 1/74 37/75 66/76
|
||||
f 63/77 3/78 2/79 62/80
|
||||
f 61/81 47/82 48/83 60/84
|
||||
f 64/85 4/86 3/78 63/77
|
||||
f 62/80 2/79 1/74 65/73
|
||||
f 60/84 48/83 4/86 64/85
|
||||
f 59/87 46/88 47/82 61/81
|
||||
f 58/89 45/90 46/88 59/87
|
||||
f 57/91 44/92 45/90 58/89
|
||||
f 56/93 43/94 44/92 57/91
|
||||
f 55/4 42/3 43/94 56/93
|
||||
f 53/95 40/96 41/2 54/1
|
||||
f 52/97 39/98 40/96 53/95
|
||||
f 51/99 38/100 39/98 52/97
|
||||
f 66/76 37/75 38/101 51/102
|
||||
f 67/58 69/60 70/59 68/57
|
||||
f 69/60 71/62 72/61 70/59
|
||||
f 71/62 73/64 74/63 72/61
|
||||
f 73/64 75/66 76/65 74/63
|
||||
f 75/66 77/68 78/67 76/65
|
||||
f 77/68 79/70 80/69 78/67
|
||||
f 79/70 81/72 82/71 80/69
|
||||
f 81/72 83/43 84/44 82/71
|
||||
f 83/43 85/41 86/42 84/44
|
||||
f 85/41 87/40 88/39 86/42
|
||||
f 87/40 89/46 90/45 88/39
|
||||
f 89/46 91/48 92/47 90/45
|
||||
f 91/51 93/50 94/49 92/52
|
||||
f 93/50 95/54 96/53 94/49
|
||||
f 97/56 67/58 68/57 98/55
|
||||
f 95/54 97/56 98/55 96/53
|
||||
f 70/103 116/104 68/105
|
||||
f 67/106 115/107 69/108
|
||||
f 69/108 115/107 71/109
|
||||
f 71/109 115/107 73/110
|
||||
f 73/110 115/107 75/111
|
||||
f 75/111 115/107 77/112
|
||||
f 77/112 115/107 79/113
|
||||
f 79/113 115/107 81/114
|
||||
f 81/114 115/107 83/115
|
||||
f 83/115 115/107 85/116
|
||||
f 85/116 115/107 87/117
|
||||
f 87/117 115/107 89/118
|
||||
f 89/118 115/107 91/119
|
||||
f 91/119 115/107 93/120
|
||||
f 93/120 115/107 95/121
|
||||
f 95/121 115/107 97/122
|
||||
f 97/122 115/107 67/106
|
||||
f 68/105 116/104 98/123
|
||||
f 98/123 116/104 96/124
|
||||
f 96/124 116/104 94/125
|
||||
f 94/125 116/104 92/126
|
||||
f 92/126 116/104 90/127
|
||||
f 90/127 116/104 88/128
|
||||
f 88/128 116/104 86/129
|
||||
f 86/129 116/104 84/130
|
||||
f 84/130 116/104 82/131
|
||||
f 82/131 116/104 80/132
|
||||
f 80/132 116/104 78/133
|
||||
f 78/133 116/104 76/134
|
||||
f 76/134 116/104 74/135
|
||||
f 74/135 116/104 72/136
|
||||
f 72/136 116/104 70/103
|
||||
f 107/137 157/2 158/3 108/138
|
||||
f 147/5 149/6 166/7
|
||||
f 145/8 147/5 166/7
|
||||
f 143/9 145/8 166/7
|
||||
f 141/10 143/9 166/7
|
||||
f 139/11 141/10 166/7
|
||||
f 137/12 139/11 166/7
|
||||
f 135/13 137/12 166/7
|
||||
f 133/14 135/13 166/7
|
||||
f 131/15 133/14 166/7
|
||||
f 129/16 131/15 166/7
|
||||
f 127/17 129/16 166/7
|
||||
f 125/18 127/17 166/7
|
||||
f 123/19 125/18 166/7
|
||||
f 121/20 123/19 166/7
|
||||
f 151/21 121/20 166/7
|
||||
f 122/22 152/23 165/24
|
||||
f 124/25 122/22 165/24
|
||||
f 126/26 124/25 165/24
|
||||
f 128/27 126/26 165/24
|
||||
f 130/28 128/27 165/24
|
||||
f 132/29 130/28 165/24
|
||||
f 134/30 132/29 165/24
|
||||
f 136/31 134/30 165/24
|
||||
f 138/32 136/31 165/24
|
||||
f 140/33 138/32 165/24
|
||||
f 142/34 140/33 165/24
|
||||
f 144/35 142/34 165/24
|
||||
f 146/36 144/35 165/24
|
||||
f 148/37 146/36 165/24
|
||||
f 150/38 148/37 165/24
|
||||
f 152/23 150/38 165/24
|
||||
f 149/6 151/21 166/7
|
||||
f 124/39 123/40 121/41 122/42
|
||||
f 122/42 121/41 151/43 152/44
|
||||
f 126/45 125/46 123/40 124/39
|
||||
f 128/47 127/48 125/46 126/45
|
||||
f 130/49 129/50 127/51 128/52
|
||||
f 132/53 131/54 129/50 130/49
|
||||
f 134/55 133/56 131/54 132/53
|
||||
f 136/57 135/58 133/56 134/55
|
||||
f 138/59 137/60 135/58 136/57
|
||||
f 140/61 139/62 137/60 138/59
|
||||
f 142/63 141/64 139/62 140/61
|
||||
f 144/65 143/66 141/64 142/63
|
||||
f 146/67 145/68 143/66 144/65
|
||||
f 148/69 147/70 145/68 146/67
|
||||
f 150/71 149/72 147/70 148/69
|
||||
f 152/44 151/43 149/72 150/71
|
||||
f 102/139 117/74 153/75 103/140
|
||||
f 100/141 119/78 118/79 101/142
|
||||
f 113/143 163/82 164/83 114/144
|
||||
f 99/145 120/86 119/78 100/141
|
||||
f 101/142 118/79 117/74 102/139
|
||||
f 114/144 164/83 120/86 99/145
|
||||
f 112/146 162/88 163/82 113/143
|
||||
f 111/147 161/90 162/88 112/146
|
||||
f 110/148 160/92 161/90 111/147
|
||||
f 109/149 159/94 160/92 110/148
|
||||
f 108/138 158/3 159/94 109/149
|
||||
f 106/150 156/96 157/2 107/137
|
||||
f 105/151 155/98 156/96 106/150
|
||||
f 104/152 154/100 155/98 105/151
|
||||
f 103/140 153/75 154/101 104/153
|
||||
f 220/1 207/2 208/3 221/4
|
||||
f 197/5 199/6 216/7
|
||||
f 195/8 197/5 216/7
|
||||
f 193/9 195/8 216/7
|
||||
f 191/10 193/9 216/7
|
||||
f 189/11 191/10 216/7
|
||||
f 187/12 189/11 216/7
|
||||
f 185/13 187/12 216/7
|
||||
f 183/14 185/13 216/7
|
||||
f 181/15 183/14 216/7
|
||||
f 179/16 181/15 216/7
|
||||
f 177/17 179/16 216/7
|
||||
f 175/18 177/17 216/7
|
||||
f 173/19 175/18 216/7
|
||||
f 171/20 173/19 216/7
|
||||
f 201/21 171/20 216/7
|
||||
f 172/22 202/23 215/24
|
||||
f 174/25 172/22 215/24
|
||||
f 176/26 174/25 215/24
|
||||
f 178/27 176/26 215/24
|
||||
f 180/28 178/27 215/24
|
||||
f 182/29 180/28 215/24
|
||||
f 184/30 182/29 215/24
|
||||
f 186/31 184/30 215/24
|
||||
f 188/32 186/31 215/24
|
||||
f 190/33 188/32 215/24
|
||||
f 192/34 190/33 215/24
|
||||
f 194/35 192/34 215/24
|
||||
f 196/36 194/35 215/24
|
||||
f 198/37 196/36 215/24
|
||||
f 200/38 198/37 215/24
|
||||
f 202/23 200/38 215/24
|
||||
f 199/6 201/21 216/7
|
||||
f 174/39 173/40 171/41 172/42
|
||||
f 172/42 171/41 201/43 202/44
|
||||
f 176/45 175/46 173/40 174/39
|
||||
f 178/47 177/48 175/46 176/45
|
||||
f 180/49 179/50 177/51 178/52
|
||||
f 182/53 181/54 179/50 180/49
|
||||
f 184/55 183/56 181/54 182/53
|
||||
f 186/57 185/58 183/56 184/55
|
||||
f 188/59 187/60 185/58 186/57
|
||||
f 190/61 189/62 187/60 188/59
|
||||
f 192/63 191/64 189/62 190/61
|
||||
f 194/65 193/66 191/64 192/63
|
||||
f 196/67 195/68 193/66 194/65
|
||||
f 198/69 197/70 195/68 196/67
|
||||
f 200/71 199/72 197/70 198/69
|
||||
f 202/44 201/43 199/72 200/71
|
||||
f 231/73 167/74 203/75 232/76
|
||||
f 229/77 169/78 168/79 228/80
|
||||
f 227/81 213/82 214/83 226/84
|
||||
f 230/85 170/86 169/78 229/77
|
||||
f 228/80 168/79 167/74 231/73
|
||||
f 226/84 214/83 170/86 230/85
|
||||
f 225/87 212/88 213/82 227/81
|
||||
f 224/89 211/90 212/88 225/87
|
||||
f 223/91 210/92 211/90 224/89
|
||||
f 222/93 209/94 210/92 223/91
|
||||
f 221/4 208/3 209/94 222/93
|
||||
f 219/95 206/96 207/2 220/1
|
||||
f 218/97 205/98 206/96 219/95
|
||||
f 217/99 204/100 205/98 218/97
|
||||
f 232/76 203/75 204/101 217/102
|
|
@ -0,0 +1,631 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-4way.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_pipe_8.mtl
|
||||
o Cube.000
|
||||
v 0.069446 -0.468750 -0.103934
|
||||
v 0.103933 -0.468750 -0.069446
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.122598 -0.468750 0.024386
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.500000 0.153247
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.500000 0.153247
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129918 -0.500000 0.086808
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153248 -0.500000 0.030483
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.153248 -0.500000 -0.030483
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v -0.129918 -0.500000 -0.086808
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.500000 -0.153248
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v 0.030482 -0.500000 -0.153248
|
||||
v 0.030482 -0.468750 -0.153248
|
||||
v 0.086807 -0.500000 -0.129917
|
||||
v 0.086807 -0.468750 -0.129917
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153247 -0.500000 -0.030483
|
||||
v 0.153247 -0.468750 -0.030483
|
||||
v 0.153247 -0.500000 0.030483
|
||||
v 0.153247 -0.468750 0.030483
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v -0.024387 -0.468750 -0.122598
|
||||
v -0.069447 -0.468750 -0.103934
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v -0.122599 -0.468750 -0.024386
|
||||
v -0.122599 -0.468750 0.024386
|
||||
v -0.103934 -0.468750 0.069446
|
||||
v -0.069447 -0.468750 0.103934
|
||||
v -0.024387 -0.468750 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.069446 -0.468750 0.103933
|
||||
v 0.103933 -0.468750 0.069446
|
||||
v -0.000000 -0.468750 -0.000000
|
||||
v -0.000000 -0.500000 -0.000000
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.153248 0.468750 0.030483
|
||||
v 0.153248 0.500000 0.030483
|
||||
v 0.153248 0.468750 -0.030483
|
||||
v 0.153248 0.500000 -0.030483
|
||||
v 0.129917 0.468750 -0.086808
|
||||
v 0.129917 0.500000 -0.086808
|
||||
v 0.086808 0.468750 -0.129917
|
||||
v 0.086808 0.500000 -0.129917
|
||||
v 0.030483 0.468750 -0.153248
|
||||
v 0.030483 0.500000 -0.153248
|
||||
v -0.030483 0.468750 -0.153248
|
||||
v -0.030483 0.500000 -0.153248
|
||||
v -0.086808 0.468750 -0.129917
|
||||
v -0.086808 0.500000 -0.129917
|
||||
v -0.129917 0.468750 -0.086808
|
||||
v -0.129917 0.500000 -0.086808
|
||||
v -0.153247 0.468750 -0.030483
|
||||
v -0.153247 0.500000 -0.030483
|
||||
v -0.153247 0.468750 0.030483
|
||||
v -0.153247 0.500000 0.030483
|
||||
v -0.129917 0.468750 0.086808
|
||||
v -0.129917 0.500000 0.086808
|
||||
v -0.086808 0.468750 0.129917
|
||||
v -0.086808 0.500000 0.129917
|
||||
v -0.030483 0.468750 0.153248
|
||||
v -0.030483 0.500000 0.153248
|
||||
v 0.030483 0.468750 0.153248
|
||||
v 0.030483 0.500000 0.153248
|
||||
v 0.086808 0.468750 0.129917
|
||||
v 0.086808 0.500000 0.129917
|
||||
v 0.129917 0.468750 0.086808
|
||||
v 0.129918 0.500000 0.086808
|
||||
v 0.122598 0.468750 0.024386
|
||||
v 0.122598 0.468750 -0.024386
|
||||
v 0.103934 0.468750 -0.069446
|
||||
v 0.069447 0.468750 -0.103934
|
||||
v 0.024387 0.468750 -0.122598
|
||||
v -0.024386 0.468750 -0.122598
|
||||
v -0.069446 0.468750 -0.103934
|
||||
v -0.103933 0.468750 -0.069446
|
||||
v -0.122598 0.468750 -0.024386
|
||||
v -0.122598 0.468750 0.024386
|
||||
v -0.103933 0.468750 0.069446
|
||||
v -0.069446 0.468750 0.103934
|
||||
v -0.024386 0.468750 0.122598
|
||||
v 0.024387 0.468750 0.122598
|
||||
v 0.069447 0.468750 0.103934
|
||||
v 0.103934 0.468750 0.069446
|
||||
v 0.000000 0.468750 -0.000000
|
||||
v 0.000000 0.500000 0.000000
|
||||
v -0.024386 0.024390 -0.122598
|
||||
v -0.069446 0.024390 -0.103934
|
||||
v -0.103934 0.024390 -0.069446
|
||||
v -0.122598 0.024390 -0.024386
|
||||
v -0.122598 0.024390 0.024386
|
||||
v -0.103934 0.024390 0.069446
|
||||
v -0.069446 0.024390 0.103934
|
||||
v -0.024386 0.024389 0.122598
|
||||
v 0.024386 0.024389 0.122598
|
||||
v 0.103934 0.024390 0.069446
|
||||
v 0.069446 0.024390 0.103934
|
||||
v 0.103934 0.024390 -0.069446
|
||||
v 0.122598 0.024390 -0.024386
|
||||
v 0.122598 0.024390 0.024386
|
||||
v 0.069446 0.024390 -0.103934
|
||||
v 0.024386 0.024390 -0.122598
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.500000 -0.153248 -0.030483
|
||||
v 0.468750 -0.129917 -0.086808
|
||||
v 0.500000 -0.129917 -0.086808
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.468750 -0.030483 -0.153248
|
||||
v 0.500000 -0.030483 -0.153248
|
||||
v 0.468750 0.030483 -0.153248
|
||||
v 0.500000 0.030483 -0.153248
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.500000 0.153247 -0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.468750 -0.122598 0.024386
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 -0.069446 -0.103934
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.468750 0.069446 -0.103934
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.468750 0.122598 0.024386
|
||||
v 0.468750 0.103934 0.069446
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.468750 -0.024387 0.122598
|
||||
v 0.468750 -0.069447 0.103934
|
||||
v 0.468750 -0.103934 0.069446
|
||||
v 0.468750 -0.000000 -0.000000
|
||||
v 0.500000 -0.000000 0.000000
|
||||
v -0.468750 -0.069446 -0.103934
|
||||
v -0.468750 -0.103933 -0.069446
|
||||
v -0.468750 -0.122598 -0.024387
|
||||
v -0.468750 -0.122598 0.024386
|
||||
v -0.500000 -0.129917 0.086808
|
||||
v -0.468750 -0.129917 0.086808
|
||||
v -0.500000 -0.086808 0.129917
|
||||
v -0.468750 -0.086808 0.129917
|
||||
v -0.500000 -0.030483 0.153247
|
||||
v -0.468750 -0.030483 0.153248
|
||||
v -0.500000 0.030483 0.153247
|
||||
v -0.468750 0.030483 0.153248
|
||||
v -0.500000 0.086808 0.129917
|
||||
v -0.468750 0.086808 0.129917
|
||||
v -0.500000 0.129917 0.086808
|
||||
v -0.468750 0.129917 0.086808
|
||||
v -0.500000 0.153248 0.030483
|
||||
v -0.468750 0.153248 0.030483
|
||||
v -0.500000 0.153248 -0.030483
|
||||
v -0.468750 0.153248 -0.030483
|
||||
v -0.500000 0.129917 -0.086808
|
||||
v -0.468750 0.129917 -0.086808
|
||||
v -0.500000 0.086808 -0.129917
|
||||
v -0.468750 0.086808 -0.129917
|
||||
v -0.500000 0.030483 -0.153248
|
||||
v -0.468750 0.030483 -0.153248
|
||||
v -0.500000 -0.030483 -0.153248
|
||||
v -0.468750 -0.030483 -0.153248
|
||||
v -0.500000 -0.086808 -0.129917
|
||||
v -0.468750 -0.086808 -0.129917
|
||||
v -0.500000 -0.129917 -0.086808
|
||||
v -0.468750 -0.129917 -0.086808
|
||||
v -0.500000 -0.153247 -0.030483
|
||||
v -0.468750 -0.153247 -0.030483
|
||||
v -0.500000 -0.153247 0.030483
|
||||
v -0.468750 -0.153247 0.030483
|
||||
v -0.468750 -0.024386 -0.122598
|
||||
v -0.468750 0.024387 -0.122598
|
||||
v -0.468750 0.069447 -0.103934
|
||||
v -0.468750 0.103934 -0.069446
|
||||
v -0.468750 0.122598 -0.024386
|
||||
v -0.468750 0.122598 0.024386
|
||||
v -0.468750 0.103934 0.069446
|
||||
v -0.468750 0.069447 0.103934
|
||||
v -0.468750 0.024387 0.122598
|
||||
v -0.468750 -0.024386 0.122598
|
||||
v -0.468750 -0.069446 0.103933
|
||||
v -0.468750 -0.103933 0.069446
|
||||
v -0.468750 0.000000 -0.000000
|
||||
v -0.500000 0.000000 -0.000000
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.218363 0.657325
|
||||
vt 0.185866 0.820702
|
||||
vt 0.153368 0.657325
|
||||
vt 0.531836 0.657325
|
||||
vt 0.564334 0.820702
|
||||
vt 0.596832 0.657325
|
||||
vt 0.656879 0.682198
|
||||
vt 0.702838 0.728156
|
||||
vt 0.727710 0.788204
|
||||
vt 0.727710 0.853199
|
||||
vt 0.702838 0.913247
|
||||
vt 0.656879 0.959205
|
||||
vt 0.596831 0.984078
|
||||
vt 0.531836 0.984078
|
||||
vt 0.471788 0.959205
|
||||
vt 0.425830 0.913247
|
||||
vt 0.400957 0.853199
|
||||
vt 0.400957 0.788204
|
||||
vt 0.425830 0.728156
|
||||
vt 0.471789 0.682198
|
||||
vt 0.093321 0.682198
|
||||
vt 0.047362 0.728156
|
||||
vt 0.022489 0.788204
|
||||
vt 0.022489 0.853199
|
||||
vt 0.047362 0.913247
|
||||
vt 0.093320 0.959205
|
||||
vt 0.153368 0.984078
|
||||
vt 0.218363 0.984078
|
||||
vt 0.278411 0.959205
|
||||
vt 0.324369 0.913247
|
||||
vt 0.349242 0.853199
|
||||
vt 0.349242 0.788204
|
||||
vt 0.324369 0.728156
|
||||
vt 0.278411 0.682198
|
||||
vt 0.187500 0.515625
|
||||
vt 0.250000 0.515625
|
||||
vt 0.875000 0.515625
|
||||
vt 0.937500 0.515625
|
||||
vt 0.750000 0.515625
|
||||
vt 0.812500 0.515625
|
||||
vt 0.562500 0.515625
|
||||
vt 0.625000 0.515625
|
||||
vt 0.687500 0.515625
|
||||
vt 0.500000 0.515625
|
||||
vt 0.437500 0.515625
|
||||
vt 0.375000 0.515625
|
||||
vt 0.312500 0.515625
|
||||
vt 0.125000 0.515625
|
||||
vt 0.062500 0.515625
|
||||
vt 0.000000 0.515625
|
||||
vt 1.000000 0.515625
|
||||
usemtl None
|
||||
s off
|
||||
f 54/1 41/2 42/3 55/4
|
||||
f 31/5 33/6 50/7
|
||||
f 29/8 31/5 50/7
|
||||
f 27/9 29/8 50/7
|
||||
f 25/10 27/9 50/7
|
||||
f 23/11 25/10 50/7
|
||||
f 21/12 23/11 50/7
|
||||
f 19/13 21/12 50/7
|
||||
f 17/14 19/13 50/7
|
||||
f 15/15 17/14 50/7
|
||||
f 13/16 15/15 50/7
|
||||
f 11/17 13/16 50/7
|
||||
f 9/18 11/17 50/7
|
||||
f 7/19 9/18 50/7
|
||||
f 5/20 7/19 50/7
|
||||
f 35/21 5/20 50/7
|
||||
f 6/22 36/23 49/24
|
||||
f 8/25 6/22 49/24
|
||||
f 10/26 8/25 49/24
|
||||
f 12/27 10/26 49/24
|
||||
f 14/28 12/27 49/24
|
||||
f 16/29 14/28 49/24
|
||||
f 18/30 16/29 49/24
|
||||
f 20/31 18/30 49/24
|
||||
f 22/32 20/31 49/24
|
||||
f 24/33 22/32 49/24
|
||||
f 26/34 24/33 49/24
|
||||
f 28/35 26/34 49/24
|
||||
f 30/36 28/35 49/24
|
||||
f 32/37 30/36 49/24
|
||||
f 34/38 32/37 49/24
|
||||
f 36/23 34/38 49/24
|
||||
f 33/6 35/21 50/7
|
||||
f 8/39 7/40 5/41 6/42
|
||||
f 6/42 5/41 35/43 36/44
|
||||
f 10/45 9/46 7/40 8/39
|
||||
f 12/47 11/48 9/46 10/45
|
||||
f 14/49 13/50 11/51 12/52
|
||||
f 16/53 15/54 13/50 14/49
|
||||
f 18/55 17/56 15/54 16/53
|
||||
f 20/57 19/58 17/56 18/55
|
||||
f 22/59 21/60 19/58 20/57
|
||||
f 24/61 23/62 21/60 22/59
|
||||
f 26/63 25/64 23/62 24/61
|
||||
f 28/65 27/66 25/64 26/63
|
||||
f 30/67 29/68 27/66 28/65
|
||||
f 32/69 31/70 29/68 30/67
|
||||
f 34/71 33/72 31/70 32/69
|
||||
f 36/44 35/43 33/72 34/71
|
||||
f 65/73 1/74 37/75 66/76
|
||||
f 63/77 3/78 2/79 62/80
|
||||
f 61/81 47/82 48/83 60/84
|
||||
f 64/85 4/86 3/78 63/77
|
||||
f 62/80 2/79 1/74 65/73
|
||||
f 60/84 48/83 4/86 64/85
|
||||
f 59/87 46/88 47/82 61/81
|
||||
f 58/89 45/90 46/88 59/87
|
||||
f 57/91 44/92 45/90 58/89
|
||||
f 56/93 43/94 44/92 57/91
|
||||
f 55/4 42/3 43/94 56/93
|
||||
f 53/95 40/96 41/2 54/1
|
||||
f 52/97 39/98 40/96 53/95
|
||||
f 51/99 38/100 39/98 52/97
|
||||
f 66/76 37/75 38/101 51/102
|
||||
f 67/58 69/60 70/59 68/57
|
||||
f 69/60 71/62 72/61 70/59
|
||||
f 71/62 73/64 74/63 72/61
|
||||
f 73/64 75/66 76/65 74/63
|
||||
f 75/66 77/68 78/67 76/65
|
||||
f 77/68 79/70 80/69 78/67
|
||||
f 79/70 81/72 82/71 80/69
|
||||
f 81/72 83/43 84/44 82/71
|
||||
f 83/43 85/41 86/42 84/44
|
||||
f 85/41 87/40 88/39 86/42
|
||||
f 87/40 89/46 90/45 88/39
|
||||
f 89/46 91/48 92/47 90/45
|
||||
f 91/51 93/50 94/49 92/52
|
||||
f 93/50 95/54 96/53 94/49
|
||||
f 97/56 67/58 68/57 98/55
|
||||
f 95/54 97/56 98/55 96/53
|
||||
f 70/103 116/104 68/105
|
||||
f 67/106 115/107 69/108
|
||||
f 69/108 115/107 71/109
|
||||
f 71/109 115/107 73/110
|
||||
f 73/110 115/107 75/111
|
||||
f 75/111 115/107 77/112
|
||||
f 77/112 115/107 79/113
|
||||
f 79/113 115/107 81/114
|
||||
f 81/114 115/107 83/115
|
||||
f 83/115 115/107 85/116
|
||||
f 85/116 115/107 87/117
|
||||
f 87/117 115/107 89/118
|
||||
f 89/118 115/107 91/119
|
||||
f 91/119 115/107 93/120
|
||||
f 93/120 115/107 95/121
|
||||
f 95/121 115/107 97/122
|
||||
f 97/122 115/107 67/106
|
||||
f 68/105 116/104 98/123
|
||||
f 98/123 116/104 96/124
|
||||
f 96/124 116/104 94/125
|
||||
f 94/125 116/104 92/126
|
||||
f 92/126 116/104 90/127
|
||||
f 90/127 116/104 88/128
|
||||
f 88/128 116/104 86/129
|
||||
f 86/129 116/104 84/130
|
||||
f 84/130 116/104 82/131
|
||||
f 82/131 116/104 80/132
|
||||
f 80/132 116/104 78/133
|
||||
f 78/133 116/104 76/134
|
||||
f 76/134 116/104 74/135
|
||||
f 74/135 116/104 72/136
|
||||
f 72/136 116/104 70/103
|
||||
f 107/137 120/1 121/4 108/138
|
||||
f 102/139 131/73 132/76 103/140
|
||||
f 100/141 129/77 128/80 101/142
|
||||
f 113/143 127/81 126/84 114/144
|
||||
f 99/145 130/85 129/77 100/141
|
||||
f 101/142 128/80 131/73 102/139
|
||||
f 114/144 126/84 130/85 99/145
|
||||
f 112/146 125/87 127/81 113/143
|
||||
f 111/147 124/89 125/87 112/146
|
||||
f 110/148 123/91 124/89 111/147
|
||||
f 109/149 122/93 123/91 110/148
|
||||
f 108/138 121/4 122/93 109/149
|
||||
f 106/150 119/95 120/1 107/137
|
||||
f 105/151 118/97 119/95 106/150
|
||||
f 104/152 117/99 118/97 105/151
|
||||
f 103/140 132/76 117/102 104/153
|
||||
f 133/58 135/60 136/59 134/57
|
||||
f 135/60 137/62 138/61 136/59
|
||||
f 137/62 139/64 140/63 138/61
|
||||
f 139/64 141/66 142/65 140/63
|
||||
f 141/66 143/68 144/67 142/65
|
||||
f 143/68 145/70 146/69 144/67
|
||||
f 145/70 147/72 148/71 146/69
|
||||
f 147/72 149/43 150/44 148/71
|
||||
f 149/43 151/41 152/42 150/44
|
||||
f 151/41 153/40 154/39 152/42
|
||||
f 153/40 155/46 156/45 154/39
|
||||
f 155/46 157/48 158/47 156/45
|
||||
f 157/51 159/50 160/49 158/52
|
||||
f 159/50 161/54 162/53 160/49
|
||||
f 163/56 133/58 134/57 164/55
|
||||
f 161/54 163/56 164/55 162/53
|
||||
f 136/103 182/104 134/105
|
||||
f 133/106 181/107 135/108
|
||||
f 135/108 181/107 137/109
|
||||
f 137/109 181/107 139/110
|
||||
f 139/110 181/107 141/111
|
||||
f 141/111 181/107 143/112
|
||||
f 143/112 181/107 145/113
|
||||
f 145/113 181/107 147/114
|
||||
f 147/114 181/107 149/115
|
||||
f 149/115 181/107 151/116
|
||||
f 151/116 181/107 153/117
|
||||
f 153/117 181/107 155/118
|
||||
f 155/118 181/107 157/119
|
||||
f 157/119 181/107 159/120
|
||||
f 159/120 181/107 161/121
|
||||
f 161/121 181/107 163/122
|
||||
f 163/122 181/107 133/106
|
||||
f 134/105 182/104 164/123
|
||||
f 164/123 182/104 162/124
|
||||
f 162/124 182/104 160/125
|
||||
f 160/125 182/104 158/126
|
||||
f 158/126 182/104 156/127
|
||||
f 156/127 182/104 154/128
|
||||
f 154/128 182/104 152/129
|
||||
f 152/129 182/104 150/130
|
||||
f 150/130 182/104 148/131
|
||||
f 148/131 182/104 146/132
|
||||
f 146/132 182/104 144/133
|
||||
f 144/133 182/104 142/134
|
||||
f 142/134 182/104 140/135
|
||||
f 140/135 182/104 138/136
|
||||
f 138/136 182/104 136/103
|
||||
f 173/137 223/2 224/3 174/138
|
||||
f 213/5 215/6 232/7
|
||||
f 211/8 213/5 232/7
|
||||
f 209/9 211/8 232/7
|
||||
f 207/10 209/9 232/7
|
||||
f 205/11 207/10 232/7
|
||||
f 203/12 205/11 232/7
|
||||
f 201/13 203/12 232/7
|
||||
f 199/14 201/13 232/7
|
||||
f 197/15 199/14 232/7
|
||||
f 195/16 197/15 232/7
|
||||
f 193/17 195/16 232/7
|
||||
f 191/18 193/17 232/7
|
||||
f 189/19 191/18 232/7
|
||||
f 187/20 189/19 232/7
|
||||
f 217/21 187/20 232/7
|
||||
f 188/22 218/23 231/24
|
||||
f 190/25 188/22 231/24
|
||||
f 192/26 190/25 231/24
|
||||
f 194/27 192/26 231/24
|
||||
f 196/28 194/27 231/24
|
||||
f 198/29 196/28 231/24
|
||||
f 200/30 198/29 231/24
|
||||
f 202/31 200/30 231/24
|
||||
f 204/32 202/31 231/24
|
||||
f 206/33 204/32 231/24
|
||||
f 208/34 206/33 231/24
|
||||
f 210/35 208/34 231/24
|
||||
f 212/36 210/35 231/24
|
||||
f 214/37 212/36 231/24
|
||||
f 216/38 214/37 231/24
|
||||
f 218/23 216/38 231/24
|
||||
f 215/6 217/21 232/7
|
||||
f 190/39 189/40 187/41 188/42
|
||||
f 188/42 187/41 217/43 218/44
|
||||
f 192/45 191/46 189/40 190/39
|
||||
f 194/47 193/48 191/46 192/45
|
||||
f 196/49 195/50 193/51 194/52
|
||||
f 198/53 197/54 195/50 196/49
|
||||
f 200/55 199/56 197/54 198/53
|
||||
f 202/57 201/58 199/56 200/55
|
||||
f 204/59 203/60 201/58 202/57
|
||||
f 206/61 205/62 203/60 204/59
|
||||
f 208/63 207/64 205/62 206/61
|
||||
f 210/65 209/66 207/64 208/63
|
||||
f 212/67 211/68 209/66 210/65
|
||||
f 214/69 213/70 211/68 212/67
|
||||
f 216/71 215/72 213/70 214/69
|
||||
f 218/44 217/43 215/72 216/71
|
||||
f 168/139 183/74 219/75 169/140
|
||||
f 166/141 185/78 184/79 167/142
|
||||
f 179/143 229/82 230/83 180/144
|
||||
f 165/145 186/86 185/78 166/141
|
||||
f 167/142 184/79 183/74 168/139
|
||||
f 180/144 230/83 186/86 165/145
|
||||
f 178/146 228/88 229/82 179/143
|
||||
f 177/147 227/90 228/88 178/146
|
||||
f 176/148 226/92 227/90 177/147
|
||||
f 175/149 225/94 226/92 176/148
|
||||
f 174/138 224/3 225/94 175/149
|
||||
f 172/150 222/96 223/2 173/137
|
||||
f 171/151 221/98 222/96 172/150
|
||||
f 170/152 220/100 221/98 171/151
|
||||
f 169/140 219/75 220/101 170/153
|
|
@ -0,0 +1,759 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-5way.blend'
|
||||
# www.blender.org
|
||||
o Cube.000
|
||||
v -0.069446 -0.468750 0.103934
|
||||
v -0.103933 -0.468750 0.069446
|
||||
v -0.122598 -0.468750 0.024386
|
||||
v -0.122598 -0.468750 -0.024386
|
||||
v -0.129917 -0.500000 -0.086808
|
||||
v -0.129917 -0.468750 -0.086808
|
||||
v -0.086808 -0.500000 -0.129917
|
||||
v -0.086808 -0.468750 -0.129917
|
||||
v -0.030483 -0.500000 -0.153248
|
||||
v -0.030483 -0.468750 -0.153248
|
||||
v 0.030483 -0.500000 -0.153247
|
||||
v 0.030483 -0.468750 -0.153247
|
||||
v 0.086808 -0.500000 -0.129917
|
||||
v 0.086808 -0.468750 -0.129917
|
||||
v 0.129917 -0.500000 -0.086808
|
||||
v 0.129917 -0.468750 -0.086808
|
||||
v 0.153248 -0.500000 -0.030483
|
||||
v 0.153248 -0.468750 -0.030483
|
||||
v 0.153248 -0.500000 0.030483
|
||||
v 0.153248 -0.468750 0.030483
|
||||
v 0.129917 -0.500000 0.086808
|
||||
v 0.129917 -0.468750 0.086808
|
||||
v 0.086808 -0.500000 0.129917
|
||||
v 0.086808 -0.468750 0.129917
|
||||
v 0.030483 -0.500000 0.153248
|
||||
v 0.030483 -0.468750 0.153248
|
||||
v -0.030483 -0.500000 0.153248
|
||||
v -0.030483 -0.468750 0.153248
|
||||
v -0.086808 -0.500000 0.129917
|
||||
v -0.086808 -0.468750 0.129917
|
||||
v -0.129917 -0.500000 0.086808
|
||||
v -0.129917 -0.468750 0.086808
|
||||
v -0.153247 -0.500000 0.030483
|
||||
v -0.153248 -0.468750 0.030483
|
||||
v -0.153247 -0.500000 -0.030483
|
||||
v -0.153248 -0.468750 -0.030483
|
||||
v -0.024386 -0.468750 0.122598
|
||||
v 0.024386 -0.468750 0.122598
|
||||
v 0.069446 -0.468750 0.103934
|
||||
v 0.103934 -0.468750 0.069447
|
||||
v 0.122598 -0.468750 0.024387
|
||||
v 0.122598 -0.468750 -0.024386
|
||||
v 0.103934 -0.468750 -0.069446
|
||||
v 0.069447 -0.468750 -0.103933
|
||||
v 0.024386 -0.468750 -0.122598
|
||||
v -0.024386 -0.468750 -0.122598
|
||||
v -0.069446 -0.468750 -0.103933
|
||||
v -0.103934 -0.468750 -0.069446
|
||||
v 0.000000 -0.468750 0.000000
|
||||
v 0.000000 -0.500000 0.000000
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.153248 0.468750 -0.030483
|
||||
v -0.153248 0.500000 -0.030483
|
||||
v -0.153248 0.468750 0.030483
|
||||
v -0.153248 0.500000 0.030483
|
||||
v -0.129917 0.468750 0.086808
|
||||
v -0.129917 0.500000 0.086808
|
||||
v -0.086808 0.468750 0.129917
|
||||
v -0.086808 0.500000 0.129917
|
||||
v -0.030483 0.468750 0.153248
|
||||
v -0.030483 0.500000 0.153248
|
||||
v 0.030483 0.468750 0.153248
|
||||
v 0.030483 0.500000 0.153248
|
||||
v 0.086808 0.468750 0.129917
|
||||
v 0.086808 0.500000 0.129917
|
||||
v 0.129917 0.468750 0.086808
|
||||
v 0.129917 0.500000 0.086808
|
||||
v 0.153248 0.468750 0.030483
|
||||
v 0.153248 0.500000 0.030483
|
||||
v 0.153248 0.468750 -0.030483
|
||||
v 0.153248 0.500000 -0.030483
|
||||
v 0.129917 0.468750 -0.086808
|
||||
v 0.129917 0.500000 -0.086808
|
||||
v 0.086808 0.468750 -0.129917
|
||||
v 0.086808 0.500000 -0.129917
|
||||
v 0.030483 0.468750 -0.153248
|
||||
v 0.030483 0.500000 -0.153248
|
||||
v -0.030483 0.468750 -0.153248
|
||||
v -0.030483 0.500000 -0.153248
|
||||
v -0.086808 0.468750 -0.129917
|
||||
v -0.086808 0.500000 -0.129917
|
||||
v -0.129917 0.468750 -0.086808
|
||||
v -0.129917 0.500000 -0.086808
|
||||
v -0.122598 0.468750 -0.024386
|
||||
v -0.122598 0.468750 0.024386
|
||||
v -0.103934 0.468750 0.069446
|
||||
v -0.069446 0.468750 0.103934
|
||||
v -0.024386 0.468750 0.122598
|
||||
v 0.024386 0.468750 0.122598
|
||||
v 0.069446 0.468750 0.103934
|
||||
v 0.103934 0.468750 0.069446
|
||||
v 0.122598 0.468750 0.024386
|
||||
v 0.122598 0.468750 -0.024386
|
||||
v 0.103934 0.468750 -0.069446
|
||||
v 0.069446 0.468750 -0.103934
|
||||
v 0.024386 0.468750 -0.122598
|
||||
v -0.024386 0.468750 -0.122598
|
||||
v -0.069446 0.468750 -0.103934
|
||||
v -0.103934 0.468750 -0.069446
|
||||
v -0.000000 0.468750 0.000000
|
||||
v -0.000000 0.500000 -0.000000
|
||||
v 0.024386 0.024390 0.122598
|
||||
v 0.069446 0.024390 0.103934
|
||||
v 0.103934 0.024390 0.069446
|
||||
v 0.122598 0.024390 0.024386
|
||||
v 0.122598 0.024390 -0.024386
|
||||
v 0.103934 0.024390 -0.069446
|
||||
v 0.069446 0.024390 -0.103934
|
||||
v 0.024386 0.024389 -0.122598
|
||||
v -0.024386 0.024389 -0.122598
|
||||
v -0.103934 0.024390 -0.069446
|
||||
v -0.069446 0.024390 -0.103934
|
||||
v -0.103934 0.024390 0.069446
|
||||
v -0.122598 0.024390 0.024386
|
||||
v -0.122598 0.024390 -0.024386
|
||||
v -0.069446 0.024390 0.103934
|
||||
v -0.024386 0.024390 0.122598
|
||||
v -0.468750 -0.153248 -0.030483
|
||||
v -0.500000 -0.153248 -0.030483
|
||||
v -0.468750 -0.153248 0.030483
|
||||
v -0.500000 -0.153248 0.030483
|
||||
v -0.468750 -0.129917 0.086808
|
||||
v -0.500000 -0.129917 0.086808
|
||||
v -0.468750 -0.086808 0.129917
|
||||
v -0.500000 -0.086808 0.129917
|
||||
v -0.468750 -0.030483 0.153248
|
||||
v -0.500000 -0.030483 0.153248
|
||||
v -0.468750 0.030483 0.153248
|
||||
v -0.500000 0.030483 0.153248
|
||||
v -0.468750 0.086808 0.129917
|
||||
v -0.500000 0.086808 0.129917
|
||||
v -0.468750 0.129917 0.086808
|
||||
v -0.500000 0.129917 0.086808
|
||||
v -0.468750 0.153248 0.030483
|
||||
v -0.500000 0.153248 0.030483
|
||||
v -0.468750 0.153248 -0.030483
|
||||
v -0.500000 0.153248 -0.030483
|
||||
v -0.468750 0.129917 -0.086808
|
||||
v -0.500000 0.129917 -0.086808
|
||||
v -0.468750 0.086808 -0.129917
|
||||
v -0.500000 0.086808 -0.129917
|
||||
v -0.468750 0.030483 -0.153248
|
||||
v -0.500000 0.030483 -0.153248
|
||||
v -0.468750 -0.030483 -0.153248
|
||||
v -0.500000 -0.030483 -0.153248
|
||||
v -0.468750 -0.086808 -0.129917
|
||||
v -0.500000 -0.086808 -0.129917
|
||||
v -0.468750 -0.129917 -0.086808
|
||||
v -0.500000 -0.129917 -0.086808
|
||||
v -0.468750 -0.122598 -0.024386
|
||||
v -0.468750 -0.122598 0.024386
|
||||
v -0.468750 -0.103934 0.069446
|
||||
v -0.468750 -0.069446 0.103934
|
||||
v -0.468750 -0.024386 0.122598
|
||||
v -0.468750 0.024386 0.122598
|
||||
v -0.468750 0.069446 0.103934
|
||||
v -0.468750 0.103934 0.069446
|
||||
v -0.468750 0.122598 0.024386
|
||||
v -0.468750 0.122598 -0.024386
|
||||
v -0.468750 0.103934 -0.069446
|
||||
v -0.468750 0.069446 -0.103934
|
||||
v -0.468750 0.024386 -0.122598
|
||||
v -0.468750 -0.024386 -0.122598
|
||||
v -0.468750 -0.069446 -0.103934
|
||||
v -0.468750 -0.103934 -0.069446
|
||||
v -0.468750 0.000000 -0.000000
|
||||
v -0.500000 -0.000000 -0.000000
|
||||
v 0.468750 -0.069446 0.103934
|
||||
v 0.468750 -0.103934 0.069447
|
||||
v 0.468750 -0.122598 0.024387
|
||||
v 0.468750 -0.122598 -0.024386
|
||||
v 0.500000 -0.129917 -0.086807
|
||||
v 0.468750 -0.129917 -0.086807
|
||||
v 0.500000 -0.086808 -0.129917
|
||||
v 0.468750 -0.086808 -0.129917
|
||||
v 0.500000 -0.030483 -0.153247
|
||||
v 0.468750 -0.030483 -0.153247
|
||||
v 0.500000 0.030483 -0.153247
|
||||
v 0.468750 0.030483 -0.153247
|
||||
v 0.500000 0.086808 -0.129917
|
||||
v 0.468750 0.086808 -0.129917
|
||||
v 0.500000 0.129917 -0.086808
|
||||
v 0.468750 0.129917 -0.086808
|
||||
v 0.500000 0.153248 -0.030483
|
||||
v 0.468750 0.153248 -0.030483
|
||||
v 0.500000 0.153248 0.030483
|
||||
v 0.468750 0.153248 0.030483
|
||||
v 0.500000 0.129917 0.086808
|
||||
v 0.468750 0.129917 0.086808
|
||||
v 0.500000 0.086808 0.129917
|
||||
v 0.468750 0.086808 0.129917
|
||||
v 0.500000 0.030483 0.153248
|
||||
v 0.468750 0.030483 0.153248
|
||||
v 0.500000 -0.030483 0.153248
|
||||
v 0.468750 -0.030483 0.153248
|
||||
v 0.500000 -0.086808 0.129917
|
||||
v 0.468750 -0.086808 0.129917
|
||||
v 0.500000 -0.129917 0.086808
|
||||
v 0.468750 -0.129917 0.086808
|
||||
v 0.500000 -0.153248 0.030483
|
||||
v 0.468750 -0.153248 0.030483
|
||||
v 0.500000 -0.153248 -0.030482
|
||||
v 0.468750 -0.153248 -0.030483
|
||||
v 0.468750 -0.024386 0.122598
|
||||
v 0.468750 0.024386 0.122598
|
||||
v 0.468750 0.069446 0.103934
|
||||
v 0.468750 0.103934 0.069447
|
||||
v 0.468750 0.122598 0.024387
|
||||
v 0.468750 0.122598 -0.024386
|
||||
v 0.468750 0.103934 -0.069446
|
||||
v 0.468750 0.069446 -0.103933
|
||||
v 0.468750 0.024386 -0.122598
|
||||
v 0.468750 -0.024386 -0.122598
|
||||
v 0.468750 -0.069446 -0.103933
|
||||
v 0.468750 -0.103934 -0.069446
|
||||
v 0.468750 0.000000 0.000000
|
||||
v 0.500000 0.000000 0.000000
|
||||
v -0.069446 -0.103934 -0.468750
|
||||
v -0.103933 -0.069447 -0.468750
|
||||
v -0.122598 -0.024387 -0.468750
|
||||
v -0.122598 0.024386 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.086807 0.129917 -0.500000
|
||||
v -0.086807 0.129917 -0.468750
|
||||
v -0.030482 0.153247 -0.500000
|
||||
v -0.030482 0.153247 -0.468750
|
||||
v 0.030483 0.153247 -0.500000
|
||||
v 0.030483 0.153247 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.129918 0.086808 -0.500000
|
||||
v 0.129918 0.086808 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.129918 -0.086808 -0.500000
|
||||
v 0.129918 -0.086808 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.030483 -0.153248 -0.500000
|
||||
v 0.030483 -0.153248 -0.468750
|
||||
v -0.030482 -0.153248 -0.500000
|
||||
v -0.030482 -0.153248 -0.468750
|
||||
v -0.086807 -0.129917 -0.500000
|
||||
v -0.086807 -0.129917 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.153247 -0.030483 -0.500000
|
||||
v -0.153247 -0.030483 -0.468750
|
||||
v -0.153247 0.030483 -0.500000
|
||||
v -0.153247 0.030483 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v 0.024387 -0.122598 -0.468750
|
||||
v 0.069447 -0.103934 -0.468750
|
||||
v 0.103934 -0.069447 -0.468750
|
||||
v 0.122599 -0.024387 -0.468750
|
||||
v 0.122599 0.024386 -0.468750
|
||||
v 0.103934 0.069446 -0.468750
|
||||
v 0.069447 0.103933 -0.468750
|
||||
v 0.024387 0.122598 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v -0.069446 0.103933 -0.468750
|
||||
v -0.103933 0.069446 -0.468750
|
||||
v 0.000000 -0.000000 -0.468750
|
||||
v 0.000001 -0.000000 -0.500000
|
||||
v 0.024386 -0.122598 -0.024391
|
||||
v 0.069446 -0.103934 -0.024391
|
||||
v 0.103934 -0.069446 -0.024391
|
||||
v 0.122598 -0.024386 -0.024391
|
||||
v 0.122598 0.024386 -0.024391
|
||||
v 0.103934 0.069446 -0.024391
|
||||
v 0.069446 0.103934 -0.024391
|
||||
v 0.024386 0.122598 -0.024391
|
||||
v -0.024386 0.122598 -0.024391
|
||||
v -0.103934 0.069446 -0.024391
|
||||
v -0.069446 0.103934 -0.024391
|
||||
v -0.103934 -0.069446 -0.024391
|
||||
v -0.122598 -0.024386 -0.024391
|
||||
v -0.122598 0.024386 -0.024391
|
||||
v -0.069446 -0.103934 -0.024391
|
||||
v -0.024386 -0.122598 -0.024391
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.093322 0.682190
|
||||
vt 0.153370 0.657318
|
||||
vt 0.185867 0.820694
|
||||
vt 0.047364 0.728149
|
||||
vt 0.022491 0.788196
|
||||
vt 0.022491 0.853192
|
||||
vt 0.047364 0.913239
|
||||
vt 0.093322 0.959198
|
||||
vt 0.153370 0.984070
|
||||
vt 0.218365 0.984070
|
||||
vt 0.278413 0.959198
|
||||
vt 0.324371 0.913239
|
||||
vt 0.349244 0.853192
|
||||
vt 0.349244 0.788196
|
||||
vt 0.324371 0.728149
|
||||
vt 0.278413 0.682190
|
||||
vt 0.218365 0.657318
|
||||
vt 0.471785 0.682190
|
||||
vt 0.531832 0.657318
|
||||
vt 0.564330 0.820694
|
||||
vt 0.425826 0.728149
|
||||
vt 0.400953 0.788196
|
||||
vt 0.400953 0.853192
|
||||
vt 0.425826 0.913239
|
||||
vt 0.471785 0.959198
|
||||
vt 0.531832 0.984070
|
||||
vt 0.596827 0.984070
|
||||
vt 0.656875 0.959198
|
||||
vt 0.702834 0.913239
|
||||
vt 0.727706 0.853192
|
||||
vt 0.727706 0.788196
|
||||
vt 0.702834 0.728149
|
||||
vt 0.656875 0.682190
|
||||
vt 0.596827 0.657318
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.546875
|
||||
vt 0.187500 0.546875
|
||||
vt 0.187500 0.609375
|
||||
vt 0.250000 0.546875
|
||||
vt 0.250000 0.609375
|
||||
vt 0.062500 0.609375
|
||||
vt 0.062500 0.546875
|
||||
vt 0.000000 0.609375
|
||||
vt 0.000000 0.546875
|
||||
vt 0.937500 0.609375
|
||||
vt 0.937500 0.546875
|
||||
vt 1.000000 0.546875
|
||||
vt 1.000000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.875000 0.546875
|
||||
vt 0.812500 0.609375
|
||||
vt 0.812500 0.546875
|
||||
vt 0.750000 0.609375
|
||||
vt 0.750000 0.546875
|
||||
vt 0.687500 0.609375
|
||||
vt 0.687500 0.546875
|
||||
vt 0.625000 0.609375
|
||||
vt 0.625000 0.546875
|
||||
vt 0.562500 0.609375
|
||||
vt 0.562500 0.546875
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.546875
|
||||
vt 0.437500 0.609375
|
||||
vt 0.437500 0.546875
|
||||
vt 0.375000 0.609375
|
||||
vt 0.375000 0.546875
|
||||
vt 0.312500 0.609375
|
||||
vt 0.312500 0.546875
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.218363 0.657325
|
||||
vt 0.185866 0.820702
|
||||
vt 0.153368 0.657325
|
||||
vt 0.531836 0.657325
|
||||
vt 0.564334 0.820702
|
||||
vt 0.596832 0.657325
|
||||
vt 0.656879 0.682198
|
||||
vt 0.702838 0.728156
|
||||
vt 0.727710 0.788204
|
||||
vt 0.727710 0.853199
|
||||
vt 0.702838 0.913247
|
||||
vt 0.656879 0.959205
|
||||
vt 0.596831 0.984078
|
||||
vt 0.531836 0.984078
|
||||
vt 0.471788 0.959205
|
||||
vt 0.425830 0.913247
|
||||
vt 0.400957 0.853199
|
||||
vt 0.400957 0.788204
|
||||
vt 0.425830 0.728156
|
||||
vt 0.471789 0.682198
|
||||
vt 0.093321 0.682198
|
||||
vt 0.047362 0.728156
|
||||
vt 0.022489 0.788204
|
||||
vt 0.022489 0.853199
|
||||
vt 0.047362 0.913247
|
||||
vt 0.093320 0.959205
|
||||
vt 0.153368 0.984078
|
||||
vt 0.218363 0.984078
|
||||
vt 0.278411 0.959205
|
||||
vt 0.324369 0.913247
|
||||
vt 0.349242 0.853199
|
||||
vt 0.349242 0.788204
|
||||
vt 0.324369 0.728156
|
||||
vt 0.278411 0.682198
|
||||
vt 0.187500 0.515625
|
||||
vt 0.250000 0.515625
|
||||
vt 0.875000 0.515625
|
||||
vt 0.937500 0.515625
|
||||
vt 0.750000 0.515625
|
||||
vt 0.812500 0.515625
|
||||
vt 0.562500 0.515625
|
||||
vt 0.625000 0.515625
|
||||
vt 0.687500 0.515625
|
||||
vt 0.500000 0.515625
|
||||
vt 0.437500 0.515625
|
||||
vt 0.375000 0.515625
|
||||
vt 0.312500 0.515625
|
||||
vt 0.125000 0.515625
|
||||
vt 0.062500 0.515625
|
||||
vt 0.000000 0.515625
|
||||
vt 1.000000 0.515625
|
||||
s off
|
||||
f 54/1 41/2 42/3 55/4
|
||||
f 31/5 33/6 50/7
|
||||
f 29/8 31/5 50/7
|
||||
f 27/9 29/8 50/7
|
||||
f 25/10 27/9 50/7
|
||||
f 23/11 25/10 50/7
|
||||
f 21/12 23/11 50/7
|
||||
f 19/13 21/12 50/7
|
||||
f 17/14 19/13 50/7
|
||||
f 15/15 17/14 50/7
|
||||
f 13/16 15/15 50/7
|
||||
f 11/17 13/16 50/7
|
||||
f 9/18 11/17 50/7
|
||||
f 7/19 9/18 50/7
|
||||
f 5/20 7/19 50/7
|
||||
f 35/21 5/20 50/7
|
||||
f 6/22 36/23 49/24
|
||||
f 8/25 6/22 49/24
|
||||
f 10/26 8/25 49/24
|
||||
f 12/27 10/26 49/24
|
||||
f 14/28 12/27 49/24
|
||||
f 16/29 14/28 49/24
|
||||
f 18/30 16/29 49/24
|
||||
f 20/31 18/30 49/24
|
||||
f 22/32 20/31 49/24
|
||||
f 24/33 22/32 49/24
|
||||
f 26/34 24/33 49/24
|
||||
f 28/35 26/34 49/24
|
||||
f 30/36 28/35 49/24
|
||||
f 32/37 30/36 49/24
|
||||
f 34/38 32/37 49/24
|
||||
f 36/23 34/38 49/24
|
||||
f 33/6 35/21 50/7
|
||||
f 8/39 7/40 5/41 6/42
|
||||
f 6/42 5/41 35/43 36/44
|
||||
f 10/45 9/46 7/40 8/39
|
||||
f 12/47 11/48 9/46 10/45
|
||||
f 14/49 13/50 11/51 12/52
|
||||
f 16/53 15/54 13/50 14/49
|
||||
f 18/55 17/56 15/54 16/53
|
||||
f 20/57 19/58 17/56 18/55
|
||||
f 22/59 21/60 19/58 20/57
|
||||
f 24/61 23/62 21/60 22/59
|
||||
f 26/63 25/64 23/62 24/61
|
||||
f 28/65 27/66 25/64 26/63
|
||||
f 30/67 29/68 27/66 28/65
|
||||
f 32/69 31/70 29/68 30/67
|
||||
f 34/71 33/72 31/70 32/69
|
||||
f 36/44 35/43 33/72 34/71
|
||||
f 65/73 1/74 37/75 66/76
|
||||
f 63/77 3/78 2/79 62/80
|
||||
f 61/81 47/82 48/83 60/84
|
||||
f 64/85 4/86 3/78 63/77
|
||||
f 62/80 2/79 1/74 65/73
|
||||
f 60/84 48/83 4/86 64/85
|
||||
f 59/87 46/88 47/82 61/81
|
||||
f 58/89 45/90 46/88 59/87
|
||||
f 57/91 44/92 45/90 58/89
|
||||
f 56/93 43/94 44/92 57/91
|
||||
f 55/4 42/3 43/94 56/93
|
||||
f 53/95 40/96 41/2 54/1
|
||||
f 52/97 39/98 40/96 53/95
|
||||
f 51/99 38/100 39/98 52/97
|
||||
f 66/76 37/75 38/101 51/102
|
||||
f 67/58 69/60 70/59 68/57
|
||||
f 69/60 71/62 72/61 70/59
|
||||
f 71/62 73/64 74/63 72/61
|
||||
f 73/64 75/66 76/65 74/63
|
||||
f 75/66 77/68 78/67 76/65
|
||||
f 77/68 79/70 80/69 78/67
|
||||
f 79/70 81/72 82/71 80/69
|
||||
f 81/72 83/43 84/44 82/71
|
||||
f 83/43 85/41 86/42 84/44
|
||||
f 85/41 87/40 88/39 86/42
|
||||
f 87/40 89/46 90/45 88/39
|
||||
f 89/46 91/48 92/47 90/45
|
||||
f 91/51 93/50 94/49 92/52
|
||||
f 93/50 95/54 96/53 94/49
|
||||
f 97/56 67/58 68/57 98/55
|
||||
f 95/54 97/56 98/55 96/53
|
||||
f 70/103 116/104 68/105
|
||||
f 67/106 115/107 69/108
|
||||
f 69/108 115/107 71/109
|
||||
f 71/109 115/107 73/110
|
||||
f 73/110 115/107 75/111
|
||||
f 75/111 115/107 77/112
|
||||
f 77/112 115/107 79/113
|
||||
f 79/113 115/107 81/114
|
||||
f 81/114 115/107 83/115
|
||||
f 83/115 115/107 85/116
|
||||
f 85/116 115/107 87/117
|
||||
f 87/117 115/107 89/118
|
||||
f 89/118 115/107 91/119
|
||||
f 91/119 115/107 93/120
|
||||
f 93/120 115/107 95/121
|
||||
f 95/121 115/107 97/122
|
||||
f 97/122 115/107 67/106
|
||||
f 68/105 116/104 98/123
|
||||
f 98/123 116/104 96/124
|
||||
f 96/124 116/104 94/125
|
||||
f 94/125 116/104 92/126
|
||||
f 92/126 116/104 90/127
|
||||
f 90/127 116/104 88/128
|
||||
f 88/128 116/104 86/129
|
||||
f 86/129 116/104 84/130
|
||||
f 84/130 116/104 82/131
|
||||
f 82/131 116/104 80/132
|
||||
f 80/132 116/104 78/133
|
||||
f 78/133 116/104 76/134
|
||||
f 76/134 116/104 74/135
|
||||
f 74/135 116/104 72/136
|
||||
f 72/136 116/104 70/103
|
||||
f 107/137 120/1 121/4 108/138
|
||||
f 102/139 131/73 132/76 103/140
|
||||
f 100/141 129/77 128/80 101/142
|
||||
f 113/143 127/81 126/84 114/144
|
||||
f 99/145 130/85 129/77 100/141
|
||||
f 101/142 128/80 131/73 102/139
|
||||
f 114/144 126/84 130/85 99/145
|
||||
f 112/146 125/87 127/81 113/143
|
||||
f 111/147 124/89 125/87 112/146
|
||||
f 110/148 123/91 124/89 111/147
|
||||
f 109/149 122/93 123/91 110/148
|
||||
f 108/138 121/4 122/93 109/149
|
||||
f 106/150 119/95 120/1 107/137
|
||||
f 105/151 118/97 119/95 106/150
|
||||
f 104/152 117/99 118/97 105/151
|
||||
f 103/140 132/76 117/102 104/153
|
||||
f 133/58 135/60 136/59 134/57
|
||||
f 135/60 137/62 138/61 136/59
|
||||
f 137/62 139/64 140/63 138/61
|
||||
f 139/64 141/66 142/65 140/63
|
||||
f 141/66 143/68 144/67 142/65
|
||||
f 143/68 145/70 146/69 144/67
|
||||
f 145/70 147/72 148/71 146/69
|
||||
f 147/72 149/43 150/44 148/71
|
||||
f 149/43 151/41 152/42 150/44
|
||||
f 151/41 153/40 154/39 152/42
|
||||
f 153/40 155/46 156/45 154/39
|
||||
f 155/46 157/48 158/47 156/45
|
||||
f 157/51 159/50 160/49 158/52
|
||||
f 159/50 161/54 162/53 160/49
|
||||
f 163/56 133/58 134/57 164/55
|
||||
f 161/54 163/56 164/55 162/53
|
||||
f 136/103 182/104 134/105
|
||||
f 133/106 181/107 135/108
|
||||
f 135/108 181/107 137/109
|
||||
f 137/109 181/107 139/110
|
||||
f 139/110 181/107 141/111
|
||||
f 141/111 181/107 143/112
|
||||
f 143/112 181/107 145/113
|
||||
f 145/113 181/107 147/114
|
||||
f 147/114 181/107 149/115
|
||||
f 149/115 181/107 151/116
|
||||
f 151/116 181/107 153/117
|
||||
f 153/117 181/107 155/118
|
||||
f 155/118 181/107 157/119
|
||||
f 157/119 181/107 159/120
|
||||
f 159/120 181/107 161/121
|
||||
f 161/121 181/107 163/122
|
||||
f 163/122 181/107 133/106
|
||||
f 134/105 182/104 164/123
|
||||
f 164/123 182/104 162/124
|
||||
f 162/124 182/104 160/125
|
||||
f 160/125 182/104 158/126
|
||||
f 158/126 182/104 156/127
|
||||
f 156/127 182/104 154/128
|
||||
f 154/128 182/104 152/129
|
||||
f 152/129 182/104 150/130
|
||||
f 150/130 182/104 148/131
|
||||
f 148/131 182/104 146/132
|
||||
f 146/132 182/104 144/133
|
||||
f 144/133 182/104 142/134
|
||||
f 142/134 182/104 140/135
|
||||
f 140/135 182/104 138/136
|
||||
f 138/136 182/104 136/103
|
||||
f 173/137 223/2 224/3 174/138
|
||||
f 213/5 215/6 232/7
|
||||
f 211/8 213/5 232/7
|
||||
f 209/9 211/8 232/7
|
||||
f 207/10 209/9 232/7
|
||||
f 205/11 207/10 232/7
|
||||
f 203/12 205/11 232/7
|
||||
f 201/13 203/12 232/7
|
||||
f 199/14 201/13 232/7
|
||||
f 197/15 199/14 232/7
|
||||
f 195/16 197/15 232/7
|
||||
f 193/17 195/16 232/7
|
||||
f 191/18 193/17 232/7
|
||||
f 189/19 191/18 232/7
|
||||
f 187/20 189/19 232/7
|
||||
f 217/21 187/20 232/7
|
||||
f 188/22 218/23 231/24
|
||||
f 190/25 188/22 231/24
|
||||
f 192/26 190/25 231/24
|
||||
f 194/27 192/26 231/24
|
||||
f 196/28 194/27 231/24
|
||||
f 198/29 196/28 231/24
|
||||
f 200/30 198/29 231/24
|
||||
f 202/31 200/30 231/24
|
||||
f 204/32 202/31 231/24
|
||||
f 206/33 204/32 231/24
|
||||
f 208/34 206/33 231/24
|
||||
f 210/35 208/34 231/24
|
||||
f 212/36 210/35 231/24
|
||||
f 214/37 212/36 231/24
|
||||
f 216/38 214/37 231/24
|
||||
f 218/23 216/38 231/24
|
||||
f 215/6 217/21 232/7
|
||||
f 190/39 189/40 187/41 188/42
|
||||
f 188/42 187/41 217/43 218/44
|
||||
f 192/45 191/46 189/40 190/39
|
||||
f 194/47 193/48 191/46 192/45
|
||||
f 196/49 195/50 193/51 194/52
|
||||
f 198/53 197/54 195/50 196/49
|
||||
f 200/55 199/56 197/54 198/53
|
||||
f 202/57 201/58 199/56 200/55
|
||||
f 204/59 203/60 201/58 202/57
|
||||
f 206/61 205/62 203/60 204/59
|
||||
f 208/63 207/64 205/62 206/61
|
||||
f 210/65 209/66 207/64 208/63
|
||||
f 212/67 211/68 209/66 210/65
|
||||
f 214/69 213/70 211/68 212/67
|
||||
f 216/71 215/72 213/70 214/69
|
||||
f 218/44 217/43 215/72 216/71
|
||||
f 168/139 183/74 219/75 169/140
|
||||
f 166/141 185/78 184/79 167/142
|
||||
f 179/143 229/82 230/83 180/144
|
||||
f 165/145 186/86 185/78 166/141
|
||||
f 167/142 184/79 183/74 168/139
|
||||
f 180/144 230/83 186/86 165/145
|
||||
f 178/146 228/88 229/82 179/143
|
||||
f 177/147 227/90 228/88 178/146
|
||||
f 176/148 226/92 227/90 177/147
|
||||
f 175/149 225/94 226/92 176/148
|
||||
f 174/138 224/3 225/94 175/149
|
||||
f 172/150 222/96 223/2 173/137
|
||||
f 171/151 221/98 222/96 172/150
|
||||
f 170/152 220/100 221/98 171/151
|
||||
f 169/140 219/75 220/101 170/153
|
||||
f 286/1 273/2 274/3 287/4
|
||||
f 263/5 265/6 282/7
|
||||
f 261/8 263/5 282/7
|
||||
f 259/9 261/8 282/7
|
||||
f 257/10 259/9 282/7
|
||||
f 255/11 257/10 282/7
|
||||
f 253/12 255/11 282/7
|
||||
f 251/13 253/12 282/7
|
||||
f 249/14 251/13 282/7
|
||||
f 247/15 249/14 282/7
|
||||
f 245/16 247/15 282/7
|
||||
f 243/17 245/16 282/7
|
||||
f 241/18 243/17 282/7
|
||||
f 239/19 241/18 282/7
|
||||
f 237/20 239/19 282/7
|
||||
f 267/21 237/20 282/7
|
||||
f 238/22 268/23 281/24
|
||||
f 240/25 238/22 281/24
|
||||
f 242/26 240/25 281/24
|
||||
f 244/27 242/26 281/24
|
||||
f 246/28 244/27 281/24
|
||||
f 248/29 246/28 281/24
|
||||
f 250/30 248/29 281/24
|
||||
f 252/31 250/30 281/24
|
||||
f 254/32 252/31 281/24
|
||||
f 256/33 254/32 281/24
|
||||
f 258/34 256/33 281/24
|
||||
f 260/35 258/34 281/24
|
||||
f 262/36 260/35 281/24
|
||||
f 264/37 262/36 281/24
|
||||
f 266/38 264/37 281/24
|
||||
f 268/23 266/38 281/24
|
||||
f 265/6 267/21 282/7
|
||||
f 240/39 239/40 237/41 238/42
|
||||
f 238/42 237/41 267/43 268/44
|
||||
f 242/45 241/46 239/40 240/39
|
||||
f 244/47 243/48 241/46 242/45
|
||||
f 246/49 245/50 243/51 244/52
|
||||
f 248/53 247/54 245/50 246/49
|
||||
f 250/55 249/56 247/54 248/53
|
||||
f 252/57 251/58 249/56 250/55
|
||||
f 254/59 253/60 251/58 252/57
|
||||
f 256/61 255/62 253/60 254/59
|
||||
f 258/63 257/64 255/62 256/61
|
||||
f 260/65 259/66 257/64 258/63
|
||||
f 262/67 261/68 259/66 260/65
|
||||
f 264/69 263/70 261/68 262/67
|
||||
f 266/71 265/72 263/70 264/69
|
||||
f 268/44 267/43 265/72 266/71
|
||||
f 297/73 233/74 269/75 298/76
|
||||
f 295/77 235/78 234/79 294/80
|
||||
f 293/81 279/82 280/83 292/84
|
||||
f 296/85 236/86 235/78 295/77
|
||||
f 294/80 234/79 233/74 297/73
|
||||
f 292/84 280/83 236/86 296/85
|
||||
f 291/87 278/88 279/82 293/81
|
||||
f 290/89 277/90 278/88 291/87
|
||||
f 289/91 276/92 277/90 290/89
|
||||
f 288/93 275/94 276/92 289/91
|
||||
f 287/4 274/3 275/94 288/93
|
||||
f 285/95 272/96 273/2 286/1
|
||||
f 284/97 271/98 272/96 285/95
|
||||
f 283/99 270/100 271/98 284/97
|
||||
f 298/76 269/75 270/101 283/102
|
|
@ -0,0 +1,282 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-pump.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_pump.mtl
|
||||
o Cube
|
||||
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.375000 0.500000
|
||||
v -0.500000 -0.375000 -0.500000
|
||||
v 0.500000 -0.375000 -0.500000
|
||||
v 0.500000 -0.375000 0.500000
|
||||
v -0.437500 -0.375000 0.437500
|
||||
v -0.437500 -0.375000 -0.437500
|
||||
v 0.437500 -0.375000 -0.437500
|
||||
v 0.437500 -0.375000 0.437500
|
||||
v -0.437500 0.375000 0.437500
|
||||
v -0.437500 0.375000 -0.437500
|
||||
v 0.437500 0.375000 -0.437500
|
||||
v 0.437500 0.375000 0.437500
|
||||
v 0.153248 0.468750 0.030483
|
||||
v 0.153248 0.500000 0.030483
|
||||
v 0.153248 0.468750 -0.030483
|
||||
v 0.153248 0.500000 -0.030483
|
||||
v 0.129917 0.468750 -0.086808
|
||||
v 0.129917 0.500000 -0.086808
|
||||
v 0.086808 0.468750 -0.129917
|
||||
v 0.086808 0.500000 -0.129917
|
||||
v 0.030483 0.468750 -0.153248
|
||||
v 0.030483 0.500000 -0.153248
|
||||
v -0.030483 0.468750 -0.153248
|
||||
v -0.030483 0.500000 -0.153248
|
||||
v -0.086808 0.468750 -0.129917
|
||||
v -0.086808 0.500000 -0.129917
|
||||
v -0.129917 0.468750 -0.086808
|
||||
v -0.129917 0.500000 -0.086808
|
||||
v -0.153247 0.468750 -0.030483
|
||||
v -0.153247 0.500000 -0.030483
|
||||
v -0.153247 0.468750 0.030483
|
||||
v -0.153247 0.500000 0.030483
|
||||
v -0.129917 0.468750 0.086808
|
||||
v -0.129917 0.500000 0.086808
|
||||
v -0.086808 0.468750 0.129917
|
||||
v -0.086808 0.500000 0.129917
|
||||
v -0.030483 0.468750 0.153248
|
||||
v -0.030483 0.500000 0.153248
|
||||
v 0.030483 0.468750 0.153248
|
||||
v 0.030483 0.500000 0.153248
|
||||
v 0.086808 0.468750 0.129917
|
||||
v 0.086808 0.500000 0.129917
|
||||
v 0.129917 0.468750 0.086808
|
||||
v 0.129918 0.500000 0.086808
|
||||
v 0.122598 0.468750 0.024386
|
||||
v 0.122598 0.468750 -0.024386
|
||||
v 0.103934 0.468750 -0.069446
|
||||
v 0.069447 0.468750 -0.103934
|
||||
v 0.024387 0.468750 -0.122598
|
||||
v -0.024386 0.468750 -0.122598
|
||||
v -0.069446 0.468750 -0.103934
|
||||
v -0.103933 0.468750 -0.069446
|
||||
v -0.122598 0.468750 -0.024386
|
||||
v -0.122598 0.468750 0.024386
|
||||
v -0.103933 0.468750 0.069446
|
||||
v -0.069446 0.468750 0.103934
|
||||
v -0.024386 0.468750 0.122598
|
||||
v 0.024387 0.468750 0.122598
|
||||
v 0.069447 0.468750 0.103934
|
||||
v 0.103934 0.468750 0.069446
|
||||
v 0.000000 0.468750 -0.000000
|
||||
v 0.000000 0.500000 0.000000
|
||||
v 0.122598 0.375003 0.024386
|
||||
v 0.122598 0.375003 -0.024386
|
||||
v 0.103934 0.375003 -0.069446
|
||||
v 0.069446 0.375003 0.103934
|
||||
v 0.103934 0.375003 0.069446
|
||||
v 0.024386 0.375003 0.122598
|
||||
v -0.024386 0.375003 0.122598
|
||||
v -0.069446 0.375003 0.103934
|
||||
v -0.103934 0.375003 0.069446
|
||||
v -0.122598 0.375003 0.024386
|
||||
v -0.122598 0.375003 -0.024386
|
||||
v -0.103934 0.375003 -0.069446
|
||||
v -0.069446 0.375003 -0.103934
|
||||
v -0.024386 0.375003 -0.122598
|
||||
v 0.069446 0.375003 -0.103934
|
||||
v 0.024386 0.375003 -0.122598
|
||||
vt 0.714844 0.761719
|
||||
vt 0.714844 0.511719
|
||||
vt 0.746094 0.511719
|
||||
vt 0.746094 0.761719
|
||||
vt 0.621094 0.761719
|
||||
vt 0.621094 0.511719
|
||||
vt 0.652344 0.511719
|
||||
vt 0.652344 0.761719
|
||||
vt 0.683594 0.761719
|
||||
vt 0.683594 0.511719
|
||||
vt 0.996094 0.511719
|
||||
vt 0.996094 0.761719
|
||||
vt 0.996094 0.261719
|
||||
vt 0.746094 0.261719
|
||||
vt 0.230469 0.261719
|
||||
vt 0.449219 0.261719
|
||||
vt 0.449219 0.433594
|
||||
vt 0.230469 0.433594
|
||||
vt 0.222656 0.613281
|
||||
vt 0.003906 0.613281
|
||||
vt 0.003906 0.441406
|
||||
vt 0.222656 0.441406
|
||||
vt 0.222656 0.433594
|
||||
vt 0.003906 0.433594
|
||||
vt 0.003906 0.261719
|
||||
vt 0.222656 0.261719
|
||||
vt 0.675781 0.433594
|
||||
vt 0.457031 0.433594
|
||||
vt 0.457031 0.261719
|
||||
vt 0.675781 0.261719
|
||||
vt 0.230469 0.660156
|
||||
vt 0.230469 0.441406
|
||||
vt 0.449219 0.441406
|
||||
vt 0.449219 0.660156
|
||||
vt 0.750000 0.996094
|
||||
vt 0.812500 0.996094
|
||||
vt 0.812500 0.945313
|
||||
vt 0.750000 0.945313
|
||||
vt 0.875000 0.996094
|
||||
vt 0.875000 0.945313
|
||||
vt 0.937500 0.996094
|
||||
vt 0.937500 0.945313
|
||||
vt 1.000000 0.996094
|
||||
vt 1.000000 0.945313
|
||||
vt 0.000000 0.996094
|
||||
vt 0.062500 0.996094
|
||||
vt 0.062500 0.945313
|
||||
vt 0.000000 0.945313
|
||||
vt 0.125000 0.996094
|
||||
vt 0.125000 0.945313
|
||||
vt 0.187500 0.996094
|
||||
vt 0.187500 0.945313
|
||||
vt 0.250000 0.996094
|
||||
vt 0.250000 0.945313
|
||||
vt 0.312500 0.996094
|
||||
vt 0.312500 0.945313
|
||||
vt 0.375000 0.996094
|
||||
vt 0.375000 0.945313
|
||||
vt 0.437500 0.996094
|
||||
vt 0.437500 0.945313
|
||||
vt 0.500000 0.996094
|
||||
vt 0.500000 0.945313
|
||||
vt 0.562500 0.996094
|
||||
vt 0.562500 0.945313
|
||||
vt 0.625000 0.996094
|
||||
vt 0.625000 0.945313
|
||||
vt 0.687500 0.996094
|
||||
vt 0.687500 0.945313
|
||||
vt 0.007550 0.738767
|
||||
vt 0.046892 0.730976
|
||||
vt 0.007550 0.723186
|
||||
vt 0.101275 0.738767
|
||||
vt 0.140617 0.730976
|
||||
vt 0.101275 0.723186
|
||||
vt 0.107265 0.708790
|
||||
vt 0.118332 0.697773
|
||||
vt 0.132792 0.691810
|
||||
vt 0.148443 0.691810
|
||||
vt 0.162903 0.697773
|
||||
vt 0.173970 0.708790
|
||||
vt 0.179959 0.723186
|
||||
vt 0.179959 0.738767
|
||||
vt 0.173970 0.753163
|
||||
vt 0.162903 0.764180
|
||||
vt 0.148443 0.770143
|
||||
vt 0.132792 0.770143
|
||||
vt 0.118332 0.764180
|
||||
vt 0.107265 0.753163
|
||||
vt 0.013540 0.708790
|
||||
vt 0.024607 0.697773
|
||||
vt 0.039067 0.691810
|
||||
vt 0.054718 0.691810
|
||||
vt 0.069178 0.697773
|
||||
vt 0.080245 0.708790
|
||||
vt 0.086234 0.723186
|
||||
vt 0.086234 0.738767
|
||||
vt 0.080245 0.753162
|
||||
vt 0.069178 0.764180
|
||||
vt 0.054718 0.770143
|
||||
vt 0.039067 0.770143
|
||||
vt 0.024607 0.764180
|
||||
vt 0.013540 0.753162
|
||||
vt 0.250000 0.777344
|
||||
vt 0.312500 0.777344
|
||||
vt 0.937500 0.777344
|
||||
vt 1.000000 0.777344
|
||||
vt 0.812500 0.777344
|
||||
vt 0.875000 0.777344
|
||||
vt 0.625000 0.777344
|
||||
vt 0.687500 0.777344
|
||||
vt 0.750000 0.777344
|
||||
vt 0.562500 0.777344
|
||||
vt 0.500000 0.777344
|
||||
vt 0.437500 0.777344
|
||||
vt 0.375000 0.777344
|
||||
vt 0.187500 0.777344
|
||||
vt 0.125000 0.777344
|
||||
vt 0.062500 0.777344
|
||||
vt 0.000000 0.777344
|
||||
usemtl None
|
||||
s off
|
||||
f 5/1 6/2 2/3 1/4
|
||||
f 6/5 7/6 3/7 2/8
|
||||
f 7/9 8/10 4/2 3/1
|
||||
f 8/10 5/9 1/8 4/7
|
||||
f 1/4 2/3 3/11 4/12
|
||||
f 8/13 7/11 6/3 5/14
|
||||
f 13/15 14/16 10/17 9/18
|
||||
f 14/19 15/20 11/21 10/22
|
||||
f 15/23 16/24 12/25 11/26
|
||||
f 16/27 13/28 9/29 12/30
|
||||
f 16/31 15/32 14/33 13/34
|
||||
f 17/35 19/36 20/37 18/38
|
||||
f 19/36 21/39 22/40 20/37
|
||||
f 21/39 23/41 24/42 22/40
|
||||
f 23/41 25/43 26/44 24/42
|
||||
f 25/45 27/46 28/47 26/48
|
||||
f 27/46 29/49 30/50 28/47
|
||||
f 29/49 31/51 32/52 30/50
|
||||
f 31/51 33/53 34/54 32/52
|
||||
f 33/53 35/55 36/56 34/54
|
||||
f 35/55 37/57 38/58 36/56
|
||||
f 37/57 39/59 40/60 38/58
|
||||
f 39/59 41/61 42/62 40/60
|
||||
f 41/61 43/63 44/64 42/62
|
||||
f 43/63 45/65 46/66 44/64
|
||||
f 47/67 17/35 18/38 48/68
|
||||
f 45/65 47/67 48/68 46/66
|
||||
f 20/69 66/70 18/71
|
||||
f 17/72 65/73 19/74
|
||||
f 19/74 65/73 21/75
|
||||
f 21/75 65/73 23/76
|
||||
f 23/76 65/73 25/77
|
||||
f 25/77 65/73 27/78
|
||||
f 27/78 65/73 29/79
|
||||
f 29/79 65/73 31/80
|
||||
f 31/80 65/73 33/81
|
||||
f 33/81 65/73 35/82
|
||||
f 35/82 65/73 37/83
|
||||
f 37/83 65/73 39/84
|
||||
f 39/84 65/73 41/85
|
||||
f 41/85 65/73 43/86
|
||||
f 43/86 65/73 45/87
|
||||
f 45/87 65/73 47/88
|
||||
f 47/88 65/73 17/72
|
||||
f 18/71 66/70 48/89
|
||||
f 48/89 66/70 46/90
|
||||
f 46/90 66/70 44/91
|
||||
f 44/91 66/70 42/92
|
||||
f 42/92 66/70 40/93
|
||||
f 40/93 66/70 38/94
|
||||
f 38/94 66/70 36/95
|
||||
f 36/95 66/70 34/96
|
||||
f 34/96 66/70 32/97
|
||||
f 32/97 66/70 30/98
|
||||
f 30/98 66/70 28/99
|
||||
f 28/99 66/70 26/100
|
||||
f 26/100 66/70 24/101
|
||||
f 24/101 66/70 22/102
|
||||
f 22/102 66/70 20/69
|
||||
f 57/54 77/103 76/104 58/56
|
||||
f 52/42 81/105 82/106 53/44
|
||||
f 50/37 68/107 69/108 51/40
|
||||
f 63/66 70/109 71/110 64/68
|
||||
f 49/38 67/111 68/107 50/37
|
||||
f 51/40 69/108 81/105 52/42
|
||||
f 64/68 71/110 67/111 49/38
|
||||
f 62/64 72/112 70/109 63/66
|
||||
f 61/62 73/113 72/112 62/64
|
||||
f 60/60 74/114 73/113 61/62
|
||||
f 59/58 75/115 74/114 60/60
|
||||
f 58/56 76/104 75/115 59/58
|
||||
f 56/52 78/116 77/103 57/54
|
||||
f 55/50 79/117 78/116 56/52
|
||||
f 54/47 80/118 79/117 55/50
|
||||
f 53/48 82/119 80/118 54/47
|
|
@ -0,0 +1,512 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-spigot.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_spigot.mtl
|
||||
o pipe.000_Cylinder.001
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v 0.129917 -0.250000 -0.086808
|
||||
v 0.153247 -0.250000 -0.030483
|
||||
v -0.000000 -0.250000 -0.000000
|
||||
v 0.086808 -0.250000 -0.129917
|
||||
v 0.030483 -0.250000 -0.153248
|
||||
v -0.030483 -0.250000 -0.153248
|
||||
v -0.086808 -0.250000 -0.129917
|
||||
v -0.129917 -0.250000 -0.086808
|
||||
v -0.153248 -0.250000 -0.030483
|
||||
v -0.153248 -0.250000 0.030483
|
||||
v -0.129917 -0.250000 0.086808
|
||||
v -0.086808 -0.250000 0.129917
|
||||
v -0.030483 -0.250000 0.153247
|
||||
v 0.030483 -0.250000 0.153248
|
||||
v 0.086808 -0.250000 0.129917
|
||||
v 0.129917 -0.250000 0.086808
|
||||
v 0.153247 -0.250000 0.030483
|
||||
v 0.129917 -0.187500 0.086808
|
||||
v 0.153248 -0.187500 0.030483
|
||||
v -0.000000 -0.187500 -0.000000
|
||||
v 0.086808 -0.187500 0.129917
|
||||
v 0.030483 -0.187500 0.153248
|
||||
v -0.030483 -0.187500 0.153247
|
||||
v -0.086808 -0.187500 0.129917
|
||||
v -0.129917 -0.187500 0.086808
|
||||
v -0.153248 -0.187500 0.030483
|
||||
v -0.153248 -0.187500 -0.030483
|
||||
v -0.129917 -0.187500 -0.086808
|
||||
v -0.086808 -0.187500 -0.129917
|
||||
v -0.030483 -0.187500 -0.153248
|
||||
v 0.030483 -0.187500 -0.153248
|
||||
v 0.086808 -0.187500 -0.129917
|
||||
v 0.129917 -0.187500 -0.086808
|
||||
v 0.153248 -0.187500 -0.030483
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.103934 0.041589 -0.041924
|
||||
v 0.103934 0.041589 -0.041925
|
||||
v 0.122598 0.009727 -0.010062
|
||||
v 0.024386 0.079173 -0.079509
|
||||
v 0.069446 0.065976 -0.066311
|
||||
v 0.069446 0.094826 -0.024663
|
||||
v -0.103934 0.062964 -0.011464
|
||||
v -0.069446 0.094827 -0.024662
|
||||
v -0.024386 0.112070 -0.031805
|
||||
v 0.024386 0.112070 -0.031805
|
||||
v 0.122598 0.021334 0.005779
|
||||
v 0.103934 0.062964 -0.011464
|
||||
v -0.122598 0.021334 0.005780
|
||||
v -0.024386 0.079173 -0.079509
|
||||
v -0.069446 0.065976 -0.066311
|
||||
v -0.122599 -0.024387 0.468750
|
||||
v -0.122599 0.024386 0.468750
|
||||
v -0.122598 0.024386 0.024391
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.153247 -0.030483 0.500000
|
||||
v -0.000001 0.000000 0.500000
|
||||
v 0.086807 -0.129917 0.500000
|
||||
v 0.030482 -0.153248 0.500000
|
||||
v -0.030483 -0.153248 0.500000
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.129918 -0.086808 0.500000
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.129918 0.086808 0.500000
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.030483 0.153247 0.500000
|
||||
v 0.030482 0.153247 0.500000
|
||||
v 0.086807 0.129917 0.500000
|
||||
v 0.129917 0.086808 0.500000
|
||||
v 0.153247 0.030483 0.500000
|
||||
v 0.129917 0.086808 0.468750
|
||||
v 0.153247 0.030483 0.468750
|
||||
v 0.000000 0.000000 0.468750
|
||||
v 0.086807 0.129917 0.468750
|
||||
v 0.030482 0.153247 0.468750
|
||||
v -0.030483 0.153247 0.468750
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.129918 0.086808 0.468750
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.129918 -0.086808 0.468750
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.030483 -0.153248 0.468750
|
||||
v 0.030482 -0.153248 0.468750
|
||||
v 0.086807 -0.129917 0.468750
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.153247 -0.030483 0.468750
|
||||
v 0.069446 -0.103934 0.024391
|
||||
v 0.069446 -0.103934 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v 0.024386 -0.122598 0.024391
|
||||
v 0.122598 -0.024387 0.468750
|
||||
v 0.103933 -0.069447 0.468750
|
||||
v 0.103934 -0.069446 0.024391
|
||||
v 0.069446 0.103933 0.468750
|
||||
v 0.103933 0.069446 0.468750
|
||||
v 0.103934 0.069446 0.024391
|
||||
v 0.122598 0.024386 0.024391
|
||||
v 0.122598 0.024386 0.468750
|
||||
v 0.024386 0.122598 0.024391
|
||||
v 0.024386 0.122598 0.468750
|
||||
v -0.024386 0.122598 0.024391
|
||||
v -0.024387 0.122598 0.468750
|
||||
v -0.069446 0.103934 0.024391
|
||||
v -0.069447 0.103933 0.468750
|
||||
v -0.103934 0.069446 0.024391
|
||||
v -0.103934 0.069446 0.468750
|
||||
v -0.103934 -0.069446 0.024391
|
||||
v -0.103934 -0.069447 0.468750
|
||||
v -0.069446 -0.103934 0.024391
|
||||
v -0.069447 -0.103934 0.468750
|
||||
v -0.024386 -0.122598 0.024391
|
||||
v -0.024387 -0.122598 0.468750
|
||||
v 0.069446 0.103934 0.024390
|
||||
v -0.122598 -0.005780 -0.020763
|
||||
v -0.024386 0.031804 -0.111499
|
||||
v -0.069446 0.024662 -0.094256
|
||||
v -0.103934 0.011464 -0.062393
|
||||
v 0.103934 0.011464 -0.062393
|
||||
v 0.122598 -0.005780 -0.020763
|
||||
v 0.024386 0.031804 -0.111499
|
||||
v 0.069446 0.024662 -0.094256
|
||||
v -0.122598 0.009727 -0.010062
|
||||
v -0.122598 -0.246570 0.024386
|
||||
v -0.103934 -0.246570 0.069446
|
||||
v -0.069447 -0.246570 0.103934
|
||||
v -0.122598 -0.246570 -0.024386
|
||||
v 0.069446 -0.246571 0.103933
|
||||
v 0.122598 -0.246571 0.024386
|
||||
v 0.103934 -0.246571 0.069446
|
||||
v 0.103933 -0.246571 -0.069446
|
||||
v -0.024386 -0.246570 0.122598
|
||||
v 0.122598 -0.246571 -0.024386
|
||||
v -0.024386 -0.246571 -0.122598
|
||||
v 0.024386 -0.246571 -0.122598
|
||||
v 0.069446 -0.246571 -0.103934
|
||||
v -0.103934 -0.246570 -0.069446
|
||||
v -0.069446 -0.246570 -0.103934
|
||||
v 0.024386 -0.246570 0.122598
|
||||
vt 0.139725 0.682190
|
||||
vt 0.199773 0.657318
|
||||
vt 0.232270 0.820694
|
||||
vt 0.093767 0.728149
|
||||
vt 0.068894 0.788196
|
||||
vt 0.068894 0.853192
|
||||
vt 0.093767 0.913239
|
||||
vt 0.139725 0.959198
|
||||
vt 0.199773 0.984070
|
||||
vt 0.264768 0.984070
|
||||
vt 0.324816 0.959198
|
||||
vt 0.370774 0.913239
|
||||
vt 0.395647 0.853192
|
||||
vt 0.395647 0.788196
|
||||
vt 0.370774 0.728149
|
||||
vt 0.324816 0.682190
|
||||
vt 0.264768 0.657318
|
||||
vt 0.487410 0.682190
|
||||
vt 0.547457 0.657318
|
||||
vt 0.579955 0.820694
|
||||
vt 0.441451 0.728149
|
||||
vt 0.416578 0.788196
|
||||
vt 0.416578 0.853192
|
||||
vt 0.441451 0.913239
|
||||
vt 0.487410 0.959198
|
||||
vt 0.547457 0.984070
|
||||
vt 0.612452 0.984070
|
||||
vt 0.672500 0.959198
|
||||
vt 0.718459 0.913239
|
||||
vt 0.743331 0.853192
|
||||
vt 0.743331 0.788196
|
||||
vt 0.718459 0.728149
|
||||
vt 0.672500 0.682190
|
||||
vt 0.612452 0.657318
|
||||
vt 0.125000 0.640625
|
||||
vt 0.125000 0.578125
|
||||
vt 0.187500 0.578125
|
||||
vt 0.187500 0.640625
|
||||
vt 0.250000 0.578125
|
||||
vt 0.250000 0.640625
|
||||
vt 0.062500 0.640625
|
||||
vt 0.062500 0.578125
|
||||
vt 0.000000 0.640625
|
||||
vt 0.000000 0.578125
|
||||
vt 0.937500 0.640625
|
||||
vt 0.937500 0.578125
|
||||
vt 1.000000 0.578125
|
||||
vt 1.000000 0.640625
|
||||
vt 0.875000 0.640625
|
||||
vt 0.875000 0.578125
|
||||
vt 0.812500 0.640625
|
||||
vt 0.812500 0.578125
|
||||
vt 0.750000 0.640625
|
||||
vt 0.750000 0.578125
|
||||
vt 0.687500 0.640625
|
||||
vt 0.687500 0.578125
|
||||
vt 0.625000 0.640625
|
||||
vt 0.625000 0.578125
|
||||
vt 0.562500 0.640625
|
||||
vt 0.562500 0.578125
|
||||
vt 0.500000 0.640625
|
||||
vt 0.500000 0.578125
|
||||
vt 0.437500 0.640625
|
||||
vt 0.437500 0.578125
|
||||
vt 0.375000 0.640625
|
||||
vt 0.375000 0.578125
|
||||
vt 0.312500 0.640625
|
||||
vt 0.312500 0.578125
|
||||
vt 0.187500 0.453125
|
||||
vt 0.125000 0.453125
|
||||
vt 0.139892 0.682190
|
||||
vt 0.199940 0.657318
|
||||
vt 0.232437 0.820694
|
||||
vt 0.093934 0.728149
|
||||
vt 0.069061 0.788196
|
||||
vt 0.069061 0.853192
|
||||
vt 0.093934 0.913239
|
||||
vt 0.139892 0.959198
|
||||
vt 0.199940 0.984070
|
||||
vt 0.264935 0.984070
|
||||
vt 0.324983 0.959198
|
||||
vt 0.370941 0.913239
|
||||
vt 0.395814 0.853192
|
||||
vt 0.395814 0.788196
|
||||
vt 0.370941 0.728149
|
||||
vt 0.324983 0.682190
|
||||
vt 0.264935 0.657318
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.000000 0.999989
|
||||
vt 0.000000 0.890943
|
||||
vt 0.041611 0.899043
|
||||
vt 0.941956 0.794823
|
||||
vt 0.941956 0.841698
|
||||
vt 0.895081 0.841698
|
||||
vt 0.895081 0.794823
|
||||
vt 0.848206 0.841698
|
||||
vt 0.848206 0.794823
|
||||
vt 0.801331 0.794823
|
||||
vt 0.801331 0.841698
|
||||
vt 0.754456 0.841698
|
||||
vt 0.754456 0.794823
|
||||
vt 0.988831 0.794823
|
||||
vt 0.988831 0.841698
|
||||
vt 0.941956 0.701073
|
||||
vt 0.941956 0.747948
|
||||
vt 0.895081 0.747948
|
||||
vt 0.895081 0.701073
|
||||
vt 0.041611 0.741571
|
||||
vt 0.000000 0.749671
|
||||
vt 0.076282 0.717645
|
||||
vt 0.102233 0.682226
|
||||
vt 0.109057 0.640614
|
||||
vt 0.754456 0.747948
|
||||
vt 0.801331 0.747948
|
||||
vt 0.848206 0.747948
|
||||
vt 0.848206 0.701073
|
||||
vt 0.941956 0.888573
|
||||
vt 0.988831 0.888573
|
||||
vt 0.895081 0.888573
|
||||
vt 0.848206 0.888573
|
||||
vt 0.076282 0.922969
|
||||
vt 0.102233 0.958388
|
||||
vt 0.109057 1.000000
|
||||
vt 0.801331 0.888573
|
||||
vt 0.754456 0.888573
|
||||
vt 0.801331 0.935448
|
||||
vt 0.754456 0.935448
|
||||
vt 0.754456 0.982323
|
||||
vt 0.801331 0.982323
|
||||
vt 0.848206 0.935448
|
||||
vt 0.848206 0.982323
|
||||
vt 0.895081 0.935448
|
||||
vt 0.895081 0.982323
|
||||
vt 0.941956 0.935448
|
||||
vt 0.941956 0.982323
|
||||
vt 0.988831 0.982323
|
||||
vt 0.988831 0.935448
|
||||
vt 0.801331 0.701073
|
||||
vt 0.754456 0.701073
|
||||
vt 0.250000 0.453125
|
||||
vt 0.875000 0.453125
|
||||
vt 0.937500 0.453125
|
||||
vt 0.750000 0.453125
|
||||
vt 0.812500 0.453125
|
||||
vt 0.562500 0.453125
|
||||
vt 0.625000 0.453125
|
||||
vt 0.687500 0.453125
|
||||
vt 0.500000 0.453125
|
||||
vt 0.437500 0.453125
|
||||
vt 0.375000 0.453125
|
||||
vt 0.312500 0.453125
|
||||
vt 0.062500 0.453125
|
||||
vt 0.000000 0.453125
|
||||
vt 1.000000 0.453125
|
||||
g pipe.000_Cylinder.001_metal
|
||||
usemtl metal
|
||||
s off
|
||||
f 3/1 4/2 5/3
|
||||
f 6/4 3/1 5/3
|
||||
f 7/5 6/4 5/3
|
||||
f 8/6 7/5 5/3
|
||||
f 9/7 8/6 5/3
|
||||
f 10/8 9/7 5/3
|
||||
f 11/9 10/8 5/3
|
||||
f 12/10 11/9 5/3
|
||||
f 13/11 12/10 5/3
|
||||
f 14/12 13/11 5/3
|
||||
f 15/13 14/12 5/3
|
||||
f 16/14 15/13 5/3
|
||||
f 17/15 16/14 5/3
|
||||
f 18/16 17/15 5/3
|
||||
f 19/17 18/16 5/3
|
||||
f 20/18 21/19 22/20
|
||||
f 23/21 20/18 22/20
|
||||
f 24/22 23/21 22/20
|
||||
f 25/23 24/22 22/20
|
||||
f 26/24 25/23 22/20
|
||||
f 27/25 26/24 22/20
|
||||
f 28/26 27/25 22/20
|
||||
f 29/27 28/26 22/20
|
||||
f 30/28 29/27 22/20
|
||||
f 31/29 30/28 22/20
|
||||
f 32/30 31/29 22/20
|
||||
f 33/31 32/30 22/20
|
||||
f 34/32 33/31 22/20
|
||||
f 35/33 34/32 22/20
|
||||
f 36/34 35/33 22/20
|
||||
f 21/19 36/34 22/20
|
||||
f 4/2 19/17 5/3
|
||||
f 23/35 17/36 18/37 20/38
|
||||
f 20/38 18/37 19/39 21/40
|
||||
f 24/41 16/42 17/36 23/35
|
||||
f 25/43 15/44 16/42 24/41
|
||||
f 26/45 14/46 15/47 25/48
|
||||
f 27/49 13/50 14/46 26/45
|
||||
f 28/51 12/52 13/50 27/49
|
||||
f 29/53 11/54 12/52 28/51
|
||||
f 30/55 10/56 11/54 29/53
|
||||
f 31/57 9/58 10/56 30/55
|
||||
f 32/59 8/60 9/58 31/57
|
||||
f 33/61 7/62 8/60 32/59
|
||||
f 34/63 6/64 7/62 33/61
|
||||
f 35/65 3/66 6/64 34/63
|
||||
f 36/67 4/68 3/66 35/65
|
||||
f 21/40 19/39 4/68 36/67
|
||||
f 142/69 1/37 48/36 152/70
|
||||
f 69/71 70/72 71/73
|
||||
f 72/74 69/71 71/73
|
||||
f 73/75 72/74 71/73
|
||||
f 74/76 73/75 71/73
|
||||
f 75/77 74/76 71/73
|
||||
f 76/78 75/77 71/73
|
||||
f 77/79 76/78 71/73
|
||||
f 78/80 77/79 71/73
|
||||
f 79/81 78/80 71/73
|
||||
f 80/82 79/81 71/73
|
||||
f 81/83 80/82 71/73
|
||||
f 82/84 81/83 71/73
|
||||
f 83/85 82/84 71/73
|
||||
f 84/86 83/85 71/73
|
||||
f 85/87 84/86 71/73
|
||||
f 86/18 87/19 88/20
|
||||
f 89/21 86/18 88/20
|
||||
f 90/22 89/21 88/20
|
||||
f 91/23 90/22 88/20
|
||||
f 92/24 91/23 88/20
|
||||
f 93/25 92/24 88/20
|
||||
f 94/26 93/25 88/20
|
||||
f 95/27 94/26 88/20
|
||||
f 96/28 95/27 88/20
|
||||
f 97/29 96/28 88/20
|
||||
f 98/30 97/29 88/20
|
||||
f 99/31 98/30 88/20
|
||||
f 100/32 99/31 88/20
|
||||
f 101/33 100/32 88/20
|
||||
f 102/34 101/33 88/20
|
||||
f 87/19 102/34 88/20
|
||||
f 70/72 85/87 71/73
|
||||
f 89/35 83/36 84/37 86/38
|
||||
f 86/38 84/37 85/39 87/40
|
||||
f 90/41 82/42 83/36 89/35
|
||||
f 91/43 81/44 82/42 90/41
|
||||
f 92/45 80/46 81/47 91/48
|
||||
f 93/49 79/50 80/46 92/45
|
||||
f 94/51 78/52 79/50 93/49
|
||||
f 95/53 77/54 78/52 94/51
|
||||
f 96/55 76/56 77/54 95/53
|
||||
f 97/57 75/58 76/56 96/55
|
||||
f 98/59 74/60 75/58 97/57
|
||||
f 99/61 73/62 74/60 98/59
|
||||
f 100/63 72/64 73/62 99/61
|
||||
f 101/65 69/66 72/64 100/63
|
||||
f 102/67 70/68 69/66 101/65
|
||||
f 87/40 85/39 70/68 102/67
|
||||
f 103/88 104/89 105/90 106/91
|
||||
f 109/92 108/93 104/89 103/88
|
||||
f 112/94 111/95 114/96 113/97
|
||||
f 117/98 118/99 116/100 115/101
|
||||
f 119/102 120/103 118/99 117/98
|
||||
f 121/104 122/105 120/103 119/102
|
||||
f 68/106 67/107 122/105 121/104
|
||||
f 125/108 126/109 124/110 123/111
|
||||
f 127/112 128/113 126/109 125/108
|
||||
f 106/91 105/90 128/114 127/115
|
||||
f 2/116 66/117 67/107 68/106
|
||||
f 43/118 107/119 108/93 109/92
|
||||
f 129/120 110/121 111/95 112/94
|
||||
f 113/97 114/96 107/119 43/118
|
||||
f 115/101 116/100 110/121 129/120
|
||||
f 123/111 124/110 66/117 2/116
|
||||
f 43/122 39/123 135/124
|
||||
f 50/125 131/126 136/127 38/128
|
||||
f 38/128 136/127 137/129 37/130
|
||||
f 40/131 37/130 137/129 134/132
|
||||
f 40/131 134/132 135/133 39/134
|
||||
f 50/125 49/135 132/136 131/126
|
||||
f 49/137 48/138 133/139 132/140
|
||||
f 48/138 1/125 130/128 133/139
|
||||
f 2/43 130/141 1/142
|
||||
f 2/43 138/143 130/141
|
||||
f 2/43 63/144 138/143
|
||||
f 63/144 2/43 68/145
|
||||
f 121/146 57/147 63/131 68/134
|
||||
f 57/147 51/148 138/130 63/131
|
||||
f 133/139 130/128 138/130 51/148
|
||||
f 65/149 132/140 133/139 51/148
|
||||
f 64/150 131/126 132/136 65/151
|
||||
f 64/150 54/152 136/127 131/126
|
||||
f 54/152 55/153 137/129 136/127
|
||||
f 43/122 135/124 53/154
|
||||
f 43/122 53/154 61/155
|
||||
f 61/155 113/156 43/122
|
||||
f 134/132 52/157 53/158 135/133
|
||||
f 62/159 61/160 53/158 52/157
|
||||
f 52/157 134/132 137/129 55/153
|
||||
f 113/161 61/160 62/159 112/162
|
||||
f 62/159 52/157 55/153 56/163
|
||||
f 62/159 56/163 129/164 112/162
|
||||
f 60/165 56/163 55/153 54/152
|
||||
f 60/165 115/166 129/164 56/163
|
||||
f 64/150 59/167 60/165 54/152
|
||||
f 117/168 115/166 60/165 59/167
|
||||
f 119/169 117/168 59/167 58/170
|
||||
f 59/167 64/150 65/151 58/170
|
||||
f 58/171 65/149 51/148 57/147
|
||||
f 121/146 119/172 58/171 57/147
|
||||
f 1/37 142/69 139/173 2/39
|
||||
f 37/50 151/174 150/175 38/46
|
||||
f 39/54 148/176 146/177 40/52
|
||||
f 41/60 143/178 145/179 42/58
|
||||
f 43/56 144/180 148/176 39/54
|
||||
f 40/52 146/177 151/174 37/50
|
||||
f 42/58 145/179 144/180 43/56
|
||||
f 44/62 154/181 143/178 41/60
|
||||
f 45/64 147/182 154/181 44/62
|
||||
f 46/66 141/183 147/182 45/64
|
||||
f 47/68 140/184 141/183 46/66
|
||||
f 2/39 139/173 140/184 47/68
|
||||
f 49/42 153/185 152/70 48/36
|
||||
f 50/44 149/186 153/185 49/42
|
||||
f 38/46 150/175 149/187 50/47
|
|
@ -0,0 +1,634 @@
|
|||
# Blender v2.69 (sub 0) OBJ File: 'pipe-spigot-pouring.blend'
|
||||
# www.blender.org
|
||||
mtllib pipeworks_spigot_pouring.mtl
|
||||
o pipe.001_Cylinder.000
|
||||
v -0.094401 -0.559070 0.018777
|
||||
v -0.080029 -0.559070 0.053473
|
||||
v -0.053474 -0.559070 0.080029
|
||||
v -0.094401 -0.559070 -0.018778
|
||||
v 0.053473 -0.559070 0.080029
|
||||
v 0.094400 -0.559070 0.018777
|
||||
v 0.080029 -0.559070 0.053473
|
||||
v 0.080029 -0.559071 -0.053474
|
||||
v -0.018777 -0.559070 0.094400
|
||||
v 0.094400 -0.559071 -0.018777
|
||||
v -0.018777 -0.559071 -0.094401
|
||||
v 0.018777 -0.559071 -0.094401
|
||||
v 0.053473 -0.559071 -0.080029
|
||||
v -0.080029 -0.559070 -0.053474
|
||||
v -0.053474 -0.559070 -0.080029
|
||||
v 0.018777 -0.559070 0.094400
|
||||
v -0.000000 -0.559070 -0.000000
|
||||
v -0.094401 -0.243141 0.018777
|
||||
v -0.080029 -0.243141 0.053473
|
||||
v -0.053474 -0.243141 0.080029
|
||||
v -0.094401 -0.243141 -0.018778
|
||||
v 0.053473 -0.243141 0.080029
|
||||
v 0.094400 -0.243141 0.018777
|
||||
v 0.080029 -0.243141 0.053473
|
||||
v 0.080029 -0.243141 -0.053474
|
||||
v -0.018777 -0.243141 0.094400
|
||||
v 0.094400 -0.243141 -0.018777
|
||||
v -0.018777 -0.243141 -0.094401
|
||||
v 0.018777 -0.243141 -0.094401
|
||||
v 0.053473 -0.243141 -0.080029
|
||||
v -0.080029 -0.243141 -0.053474
|
||||
v -0.053474 -0.243141 -0.080029
|
||||
v 0.018777 -0.243141 0.094400
|
||||
vt 0.499995 0.000000
|
||||
vt 0.374998 0.000000
|
||||
vt 0.375003 1.000000
|
||||
vt 0.500001 1.000000
|
||||
vt 0.249999 0.000000
|
||||
vt 0.250003 1.000000
|
||||
vt 0.124999 0.000000
|
||||
vt 0.125002 1.000000
|
||||
vt 0.874999 0.000000
|
||||
vt 0.750001 0.000000
|
||||
vt 0.750000 1.000000
|
||||
vt 0.874999 1.000000
|
||||
vt 0.625002 0.000000
|
||||
vt 0.624999 1.000000
|
||||
vt 0.500003 0.000000
|
||||
vt 0.499998 1.000000
|
||||
vt 0.375006 0.000000
|
||||
vt 0.375000 1.000000
|
||||
vt 0.250008 0.000000
|
||||
vt 0.250001 1.000000
|
||||
vt 0.125008 0.000000
|
||||
vt 0.000010 0.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.125000 1.000000
|
||||
vt 0.749993 0.000000
|
||||
vt 0.624993 0.000000
|
||||
vt 0.625001 1.000000
|
||||
vt 0.750002 1.000000
|
||||
vt 0.999987 0.000000
|
||||
vt 0.874991 0.000000
|
||||
vt 0.875002 1.000000
|
||||
vt 1.000000 1.000000
|
||||
vt 0.999997 0.000000
|
||||
vt 0.999998 1.000000
|
||||
vt 0.000003 1.000000
|
||||
vt 0.000002 0.000000
|
||||
vt 0.000000 0.400543
|
||||
vt 0.076119 0.216772
|
||||
vt 0.500000 0.500000
|
||||
vt 0.216773 0.076119
|
||||
vt 0.400545 0.000000
|
||||
vt 0.599455 0.000000
|
||||
vt 0.783226 0.076119
|
||||
vt 0.923879 0.216773
|
||||
vt 1.000000 0.400544
|
||||
vt 1.000000 0.599455
|
||||
vt 0.923881 0.783226
|
||||
vt 0.783227 0.923879
|
||||
vt 0.599455 1.000000
|
||||
vt 0.400545 1.000000
|
||||
vt 0.216772 0.923879
|
||||
vt 0.076119 0.783227
|
||||
vt 0.000000 0.599455
|
||||
g pipe.001_Cylinder.000_water
|
||||
usemtl water
|
||||
s off
|
||||
f 12/1 11/2 28/3 29/4
|
||||
f 11/2 15/5 32/6 28/3
|
||||
f 15/5 14/7 31/8 32/6
|
||||
f 1/9 2/10 19/11 18/12
|
||||
f 2/10 3/13 20/14 19/11
|
||||
f 3/13 9/15 26/16 20/14
|
||||
f 9/15 16/17 33/18 26/16
|
||||
f 16/17 5/19 22/20 33/18
|
||||
f 7/21 6/22 23/23 24/24
|
||||
f 8/25 13/26 30/27 25/28
|
||||
f 6/29 10/30 27/31 23/32
|
||||
f 5/19 7/21 24/24 22/20
|
||||
f 10/30 8/25 25/28 27/31
|
||||
f 13/26 12/1 29/4 30/27
|
||||
f 4/33 1/9 18/12 21/34
|
||||
f 21/35 31/8 14/7 4/36
|
||||
f 4/37 14/38 17/39
|
||||
f 14/38 15/40 17/39
|
||||
f 15/40 11/41 17/39
|
||||
f 11/41 12/42 17/39
|
||||
f 12/42 13/43 17/39
|
||||
f 13/43 8/44 17/39
|
||||
f 8/44 10/45 17/39
|
||||
f 10/45 6/46 17/39
|
||||
f 6/46 7/47 17/39
|
||||
f 7/47 5/48 17/39
|
||||
f 5/48 16/49 17/39
|
||||
f 16/49 9/50 17/39
|
||||
f 9/50 3/51 17/39
|
||||
f 3/51 2/52 17/39
|
||||
f 2/52 1/53 17/39
|
||||
f 1/53 4/37 17/39
|
||||
o pipe.000_Cylinder.001
|
||||
v -0.122598 -0.024391 -0.024386
|
||||
v -0.122598 -0.024391 0.024386
|
||||
v 0.129917 -0.250000 -0.086808
|
||||
v 0.153247 -0.250000 -0.030483
|
||||
v -0.000000 -0.250000 -0.000000
|
||||
v 0.086808 -0.250000 -0.129917
|
||||
v 0.030483 -0.250000 -0.153248
|
||||
v -0.030483 -0.250000 -0.153248
|
||||
v -0.086808 -0.250000 -0.129917
|
||||
v -0.129917 -0.250000 -0.086808
|
||||
v -0.153248 -0.250000 -0.030483
|
||||
v -0.153248 -0.250000 0.030483
|
||||
v -0.129917 -0.250000 0.086808
|
||||
v -0.086808 -0.250000 0.129917
|
||||
v -0.030483 -0.250000 0.153247
|
||||
v 0.030483 -0.250000 0.153248
|
||||
v 0.086808 -0.250000 0.129917
|
||||
v 0.129917 -0.250000 0.086808
|
||||
v 0.153247 -0.250000 0.030483
|
||||
v 0.129917 -0.187500 0.086808
|
||||
v 0.153248 -0.187500 0.030483
|
||||
v -0.000000 -0.187500 -0.000000
|
||||
v 0.086808 -0.187500 0.129917
|
||||
v 0.030483 -0.187500 0.153248
|
||||
v -0.030483 -0.187500 0.153247
|
||||
v -0.086808 -0.187500 0.129917
|
||||
v -0.129917 -0.187500 0.086808
|
||||
v -0.153248 -0.187500 0.030483
|
||||
v -0.153248 -0.187500 -0.030483
|
||||
v -0.129917 -0.187500 -0.086808
|
||||
v -0.086808 -0.187500 -0.129917
|
||||
v -0.030483 -0.187500 -0.153248
|
||||
v 0.030483 -0.187500 -0.153248
|
||||
v 0.086808 -0.187500 -0.129917
|
||||
v 0.129917 -0.187500 -0.086808
|
||||
v 0.153248 -0.187500 -0.030483
|
||||
v 0.069446 -0.024391 -0.103934
|
||||
v 0.024386 -0.024391 -0.122598
|
||||
v 0.122598 -0.024391 -0.024386
|
||||
v 0.103934 -0.024391 -0.069446
|
||||
v 0.069446 -0.024391 0.103934
|
||||
v 0.103934 -0.024391 0.069446
|
||||
v 0.122598 -0.024391 0.024386
|
||||
v 0.024386 -0.024391 0.122598
|
||||
v -0.024386 -0.024391 0.122598
|
||||
v -0.069446 -0.024391 0.103934
|
||||
v -0.103934 -0.024391 0.069446
|
||||
v -0.103934 -0.024391 -0.069446
|
||||
v -0.069446 -0.024391 -0.103934
|
||||
v -0.024386 -0.024391 -0.122598
|
||||
v -0.103934 0.041589 -0.041924
|
||||
v 0.103934 0.041589 -0.041925
|
||||
v 0.122598 0.009727 -0.010062
|
||||
v 0.024386 0.079173 -0.079509
|
||||
v 0.069446 0.065976 -0.066311
|
||||
v 0.069446 0.094826 -0.024663
|
||||
v -0.103934 0.062964 -0.011464
|
||||
v -0.069446 0.094827 -0.024662
|
||||
v -0.024386 0.112070 -0.031805
|
||||
v 0.024386 0.112070 -0.031805
|
||||
v 0.122598 0.021334 0.005779
|
||||
v 0.103934 0.062964 -0.011464
|
||||
v -0.122598 0.021334 0.005780
|
||||
v -0.024386 0.079173 -0.079509
|
||||
v -0.069446 0.065976 -0.066311
|
||||
v -0.122599 -0.024387 0.468750
|
||||
v -0.122599 0.024386 0.468750
|
||||
v -0.122598 0.024386 0.024391
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.153247 -0.030483 0.500000
|
||||
v -0.000001 0.000000 0.500000
|
||||
v 0.086807 -0.129917 0.500000
|
||||
v 0.030482 -0.153248 0.500000
|
||||
v -0.030483 -0.153248 0.500000
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.129918 -0.086808 0.500000
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.129918 0.086808 0.500000
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.030483 0.153247 0.500000
|
||||
v 0.030482 0.153247 0.500000
|
||||
v 0.086807 0.129917 0.500000
|
||||
v 0.129917 0.086808 0.500000
|
||||
v 0.153247 0.030483 0.500000
|
||||
v 0.129917 0.086808 0.468750
|
||||
v 0.153247 0.030483 0.468750
|
||||
v 0.000000 0.000000 0.468750
|
||||
v 0.086807 0.129917 0.468750
|
||||
v 0.030482 0.153247 0.468750
|
||||
v -0.030483 0.153247 0.468750
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.129918 0.086808 0.468750
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.129918 -0.086808 0.468750
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.030483 -0.153248 0.468750
|
||||
v 0.030482 -0.153248 0.468750
|
||||
v 0.086807 -0.129917 0.468750
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.153247 -0.030483 0.468750
|
||||
v 0.069446 -0.103934 0.024391
|
||||
v 0.069446 -0.103934 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v 0.024386 -0.122598 0.024391
|
||||
v 0.122598 -0.024387 0.468750
|
||||
v 0.103933 -0.069447 0.468750
|
||||
v 0.103934 -0.069446 0.024391
|
||||
v 0.069446 0.103933 0.468750
|
||||
v 0.103933 0.069446 0.468750
|
||||
v 0.103934 0.069446 0.024391
|
||||
v 0.122598 0.024386 0.024391
|
||||
v 0.122598 0.024386 0.468750
|
||||
v 0.024386 0.122598 0.024391
|
||||
v 0.024386 0.122598 0.468750
|
||||
v -0.024386 0.122598 0.024391
|
||||
v -0.024387 0.122598 0.468750
|
||||
v -0.069446 0.103934 0.024391
|
||||
v -0.069447 0.103933 0.468750
|
||||
v -0.103934 0.069446 0.024391
|
||||
v -0.103934 0.069446 0.468750
|
||||
v -0.103934 -0.069446 0.024391
|
||||
v -0.103934 -0.069447 0.468750
|
||||
v -0.069446 -0.103934 0.024391
|
||||
v -0.069447 -0.103934 0.468750
|
||||
v -0.024386 -0.122598 0.024391
|
||||
v -0.024387 -0.122598 0.468750
|
||||
v 0.069446 0.103934 0.024390
|
||||
v -0.122598 -0.005780 -0.020763
|
||||
v -0.024386 0.031804 -0.111499
|
||||
v -0.069446 0.024662 -0.094256
|
||||
v -0.103934 0.011464 -0.062393
|
||||
v 0.103934 0.011464 -0.062393
|
||||
v 0.122598 -0.005780 -0.020763
|
||||
v 0.024386 0.031804 -0.111499
|
||||
v 0.069446 0.024662 -0.094256
|
||||
v -0.122598 0.009727 -0.010062
|
||||
v -0.122598 -0.246570 0.024386
|
||||
v -0.103934 -0.246570 0.069446
|
||||
v -0.069447 -0.246570 0.103934
|
||||
v -0.122598 -0.246570 -0.024386
|
||||
v 0.069446 -0.246571 0.103933
|
||||
v 0.122598 -0.246571 0.024386
|
||||
v 0.103934 -0.246571 0.069446
|
||||
v 0.103933 -0.246571 -0.069446
|
||||
v -0.024386 -0.246570 0.122598
|
||||
v 0.122598 -0.246571 -0.024386
|
||||
v -0.024386 -0.246571 -0.122598
|
||||
v 0.024386 -0.246571 -0.122598
|
||||
v 0.069446 -0.246571 -0.103934
|
||||
v -0.103934 -0.246570 -0.069446
|
||||
v -0.069446 -0.246570 -0.103934
|
||||
v 0.024386 -0.246570 0.122598
|
||||
vt 0.139725 0.682190
|
||||
vt 0.199773 0.657318
|
||||
vt 0.232270 0.820694
|
||||
vt 0.093767 0.728149
|
||||
vt 0.068894 0.788196
|
||||
vt 0.068894 0.853192
|
||||
vt 0.093767 0.913239
|
||||
vt 0.139725 0.959198
|
||||
vt 0.199773 0.984070
|
||||
vt 0.264768 0.984070
|
||||
vt 0.324816 0.959198
|
||||
vt 0.370774 0.913239
|
||||
vt 0.395647 0.853192
|
||||
vt 0.395647 0.788196
|
||||
vt 0.370774 0.728149
|
||||
vt 0.324816 0.682190
|
||||
vt 0.264768 0.657318
|
||||
vt 0.487410 0.682190
|
||||
vt 0.547457 0.657318
|
||||
vt 0.579955 0.820694
|
||||
vt 0.441451 0.728149
|
||||
vt 0.416578 0.788196
|
||||
vt 0.416578 0.853192
|
||||
vt 0.441451 0.913239
|
||||
vt 0.487410 0.959198
|
||||
vt 0.547457 0.984070
|
||||
vt 0.612452 0.984070
|
||||
vt 0.672500 0.959198
|
||||
vt 0.718459 0.913239
|
||||
vt 0.743331 0.853192
|
||||
vt 0.743331 0.788196
|
||||
vt 0.718459 0.728149
|
||||
vt 0.672500 0.682190
|
||||
vt 0.612452 0.657318
|
||||
vt 0.125000 0.640625
|
||||
vt 0.125000 0.578125
|
||||
vt 0.187500 0.578125
|
||||
vt 0.187500 0.640625
|
||||
vt 0.250000 0.578125
|
||||
vt 0.250000 0.640625
|
||||
vt 0.062500 0.640625
|
||||
vt 0.062500 0.578125
|
||||
vt 0.000000 0.640625
|
||||
vt 0.000000 0.578125
|
||||
vt 0.937500 0.640625
|
||||
vt 0.937500 0.578125
|
||||
vt 1.000000 0.578125
|
||||
vt 1.000000 0.640625
|
||||
vt 0.875000 0.640625
|
||||
vt 0.875000 0.578125
|
||||
vt 0.812500 0.640625
|
||||
vt 0.812500 0.578125
|
||||
vt 0.750000 0.640625
|
||||
vt 0.750000 0.578125
|
||||
vt 0.687500 0.640625
|
||||
vt 0.687500 0.578125
|
||||
vt 0.625000 0.640625
|
||||
vt 0.625000 0.578125
|
||||
vt 0.562500 0.640625
|
||||
vt 0.562500 0.578125
|
||||
vt 0.500000 0.640625
|
||||
vt 0.500000 0.578125
|
||||
vt 0.437500 0.640625
|
||||
vt 0.437500 0.578125
|
||||
vt 0.375000 0.640625
|
||||
vt 0.375000 0.578125
|
||||
vt 0.312500 0.640625
|
||||
vt 0.312500 0.578125
|
||||
vt 0.187500 0.453125
|
||||
vt 0.125000 0.453125
|
||||
vt 0.139892 0.682190
|
||||
vt 0.199940 0.657318
|
||||
vt 0.232437 0.820694
|
||||
vt 0.093934 0.728149
|
||||
vt 0.069061 0.788196
|
||||
vt 0.069061 0.853192
|
||||
vt 0.093934 0.913239
|
||||
vt 0.139892 0.959198
|
||||
vt 0.199940 0.984070
|
||||
vt 0.264935 0.984070
|
||||
vt 0.324983 0.959198
|
||||
vt 0.370941 0.913239
|
||||
vt 0.395814 0.853192
|
||||
vt 0.395814 0.788196
|
||||
vt 0.370941 0.728149
|
||||
vt 0.324983 0.682190
|
||||
vt 0.264935 0.657318
|
||||
vt 0.875000 0.265625
|
||||
vt 0.875000 0.015625
|
||||
vt 0.937500 0.015625
|
||||
vt 0.937500 0.265625
|
||||
vt 0.812500 0.265625
|
||||
vt 0.812500 0.015625
|
||||
vt 0.625000 0.265625
|
||||
vt 0.625000 0.015625
|
||||
vt 0.687500 0.015625
|
||||
vt 0.687500 0.265625
|
||||
vt 0.437500 0.265625
|
||||
vt 0.437500 0.015625
|
||||
vt 0.500000 0.015625
|
||||
vt 0.500000 0.265625
|
||||
vt 0.375000 0.265625
|
||||
vt 0.375000 0.015625
|
||||
vt 0.312500 0.265625
|
||||
vt 0.312500 0.015625
|
||||
vt 0.250000 0.265625
|
||||
vt 0.250000 0.015625
|
||||
vt 0.062500 0.265625
|
||||
vt 0.062500 0.015625
|
||||
vt 0.125000 0.015625
|
||||
vt 0.125000 0.265625
|
||||
vt 0.000000 0.265625
|
||||
vt 0.000000 0.015625
|
||||
vt 1.000000 0.015625
|
||||
vt 1.000000 0.265625
|
||||
vt 0.187500 0.265625
|
||||
vt 0.187500 0.015625
|
||||
vt 0.750000 0.265625
|
||||
vt 0.750000 0.015625
|
||||
vt 0.562500 0.265625
|
||||
vt 0.562500 0.015625
|
||||
vt 0.000000 0.999989
|
||||
vt 0.000000 0.890943
|
||||
vt 0.041611 0.899043
|
||||
vt 0.941956 0.794823
|
||||
vt 0.941956 0.841698
|
||||
vt 0.895081 0.841698
|
||||
vt 0.895081 0.794823
|
||||
vt 0.848206 0.841698
|
||||
vt 0.848206 0.794823
|
||||
vt 0.801331 0.794823
|
||||
vt 0.801331 0.841698
|
||||
vt 0.754456 0.841698
|
||||
vt 0.754456 0.794823
|
||||
vt 0.988831 0.794823
|
||||
vt 0.988831 0.841698
|
||||
vt 0.941956 0.701073
|
||||
vt 0.941956 0.747948
|
||||
vt 0.895081 0.747948
|
||||
vt 0.895081 0.701073
|
||||
vt 0.041611 0.741571
|
||||
vt 0.000000 0.749671
|
||||
vt 0.076282 0.717645
|
||||
vt 0.102233 0.682226
|
||||
vt 0.109057 0.640614
|
||||
vt 0.754456 0.747948
|
||||
vt 0.801331 0.747948
|
||||
vt 0.848206 0.747948
|
||||
vt 0.848206 0.701073
|
||||
vt 0.941956 0.888573
|
||||
vt 0.988831 0.888573
|
||||
vt 0.895081 0.888573
|
||||
vt 0.848206 0.888573
|
||||
vt 0.076282 0.922969
|
||||
vt 0.102233 0.958388
|
||||
vt 0.109057 1.000000
|
||||
vt 0.801331 0.888573
|
||||
vt 0.754456 0.888573
|
||||
vt 0.801331 0.935448
|
||||
vt 0.754456 0.935448
|
||||
vt 0.754456 0.982323
|
||||
vt 0.801331 0.982323
|
||||
vt 0.848206 0.935448
|
||||
vt 0.848206 0.982323
|
||||
vt 0.895081 0.935448
|
||||
vt 0.895081 0.982323
|
||||
vt 0.941956 0.935448
|
||||
vt 0.941956 0.982323
|
||||
vt 0.988831 0.982323
|
||||
vt 0.988831 0.935448
|
||||
vt 0.801331 0.701073
|
||||
vt 0.754456 0.701073
|
||||
vt 0.250000 0.453125
|
||||
vt 0.875000 0.453125
|
||||
vt 0.937500 0.453125
|
||||
vt 0.750000 0.453125
|
||||
vt 0.812500 0.453125
|
||||
vt 0.562500 0.453125
|
||||
vt 0.625000 0.453125
|
||||
vt 0.687500 0.453125
|
||||
vt 0.500000 0.453125
|
||||
vt 0.437500 0.453125
|
||||
vt 0.375000 0.453125
|
||||
vt 0.312500 0.453125
|
||||
vt 0.062500 0.453125
|
||||
vt 0.000000 0.453125
|
||||
vt 1.000000 0.453125
|
||||
g pipe.000_Cylinder.001_metal
|
||||
usemtl metal
|
||||
s off
|
||||
f 36/54 37/55 38/56
|
||||
f 39/57 36/54 38/56
|
||||
f 40/58 39/57 38/56
|
||||
f 41/59 40/58 38/56
|
||||
f 42/60 41/59 38/56
|
||||
f 43/61 42/60 38/56
|
||||
f 44/62 43/61 38/56
|
||||
f 45/63 44/62 38/56
|
||||
f 46/64 45/63 38/56
|
||||
f 47/65 46/64 38/56
|
||||
f 48/66 47/65 38/56
|
||||
f 49/67 48/66 38/56
|
||||
f 50/68 49/67 38/56
|
||||
f 51/69 50/68 38/56
|
||||
f 52/70 51/69 38/56
|
||||
f 53/71 54/72 55/73
|
||||
f 56/74 53/71 55/73
|
||||
f 57/75 56/74 55/73
|
||||
f 58/76 57/75 55/73
|
||||
f 59/77 58/76 55/73
|
||||
f 60/78 59/77 55/73
|
||||
f 61/79 60/78 55/73
|
||||
f 62/80 61/79 55/73
|
||||
f 63/81 62/80 55/73
|
||||
f 64/82 63/81 55/73
|
||||
f 65/83 64/82 55/73
|
||||
f 66/84 65/83 55/73
|
||||
f 67/85 66/84 55/73
|
||||
f 68/86 67/85 55/73
|
||||
f 69/87 68/86 55/73
|
||||
f 54/72 69/87 55/73
|
||||
f 37/55 52/70 38/56
|
||||
f 56/88 50/89 51/90 53/91
|
||||
f 53/91 51/90 52/92 54/93
|
||||
f 57/94 49/95 50/89 56/88
|
||||
f 58/96 48/97 49/95 57/94
|
||||
f 59/98 47/99 48/100 58/101
|
||||
f 60/102 46/103 47/99 59/98
|
||||
f 61/104 45/105 46/103 60/102
|
||||
f 62/106 44/107 45/105 61/104
|
||||
f 63/108 43/109 44/107 62/106
|
||||
f 64/110 42/111 43/109 63/108
|
||||
f 65/112 41/113 42/111 64/110
|
||||
f 66/114 40/115 41/113 65/112
|
||||
f 67/116 39/117 40/115 66/114
|
||||
f 68/118 36/119 39/117 67/116
|
||||
f 69/120 37/121 36/119 68/118
|
||||
f 54/93 52/92 37/121 69/120
|
||||
f 175/122 34/90 81/89 185/123
|
||||
f 102/124 103/125 104/126
|
||||
f 105/127 102/124 104/126
|
||||
f 106/128 105/127 104/126
|
||||
f 107/129 106/128 104/126
|
||||
f 108/130 107/129 104/126
|
||||
f 109/131 108/130 104/126
|
||||
f 110/132 109/131 104/126
|
||||
f 111/133 110/132 104/126
|
||||
f 112/134 111/133 104/126
|
||||
f 113/135 112/134 104/126
|
||||
f 114/136 113/135 104/126
|
||||
f 115/137 114/136 104/126
|
||||
f 116/138 115/137 104/126
|
||||
f 117/139 116/138 104/126
|
||||
f 118/140 117/139 104/126
|
||||
f 119/71 120/72 121/73
|
||||
f 122/74 119/71 121/73
|
||||
f 123/75 122/74 121/73
|
||||
f 124/76 123/75 121/73
|
||||
f 125/77 124/76 121/73
|
||||
f 126/78 125/77 121/73
|
||||
f 127/79 126/78 121/73
|
||||
f 128/80 127/79 121/73
|
||||
f 129/81 128/80 121/73
|
||||
f 130/82 129/81 121/73
|
||||
f 131/83 130/82 121/73
|
||||
f 132/84 131/83 121/73
|
||||
f 133/85 132/84 121/73
|
||||
f 134/86 133/85 121/73
|
||||
f 135/87 134/86 121/73
|
||||
f 120/72 135/87 121/73
|
||||
f 103/125 118/140 104/126
|
||||
f 122/88 116/89 117/90 119/91
|
||||
f 119/91 117/90 118/92 120/93
|
||||
f 123/94 115/95 116/89 122/88
|
||||
f 124/96 114/97 115/95 123/94
|
||||
f 125/98 113/99 114/100 124/101
|
||||
f 126/102 112/103 113/99 125/98
|
||||
f 127/104 111/105 112/103 126/102
|
||||
f 128/106 110/107 111/105 127/104
|
||||
f 129/108 109/109 110/107 128/106
|
||||
f 130/110 108/111 109/109 129/108
|
||||
f 131/112 107/113 108/111 130/110
|
||||
f 132/114 106/115 107/113 131/112
|
||||
f 133/116 105/117 106/115 132/114
|
||||
f 134/118 102/119 105/117 133/116
|
||||
f 135/120 103/121 102/119 134/118
|
||||
f 120/93 118/92 103/121 135/120
|
||||
f 136/141 137/142 138/143 139/144
|
||||
f 142/145 141/146 137/142 136/141
|
||||
f 145/147 144/148 147/149 146/150
|
||||
f 150/151 151/152 149/153 148/154
|
||||
f 152/155 153/156 151/152 150/151
|
||||
f 154/157 155/158 153/156 152/155
|
||||
f 101/159 100/160 155/158 154/157
|
||||
f 158/161 159/162 157/163 156/164
|
||||
f 160/165 161/166 159/162 158/161
|
||||
f 139/144 138/143 161/167 160/168
|
||||
f 35/169 99/170 100/160 101/159
|
||||
f 76/171 140/172 141/146 142/145
|
||||
f 162/173 143/174 144/148 145/147
|
||||
f 146/150 147/149 140/172 76/171
|
||||
f 148/154 149/153 143/174 162/173
|
||||
f 156/164 157/163 99/170 35/169
|
||||
f 76/175 72/176 168/177
|
||||
f 83/178 164/179 169/180 71/181
|
||||
f 71/181 169/180 170/182 70/183
|
||||
f 73/184 70/183 170/182 167/185
|
||||
f 73/184 167/185 168/186 72/187
|
||||
f 83/178 82/188 165/189 164/179
|
||||
f 82/190 81/191 166/192 165/193
|
||||
f 81/191 34/178 163/181 166/192
|
||||
f 35/96 163/194 34/195
|
||||
f 35/96 171/196 163/194
|
||||
f 35/96 96/197 171/196
|
||||
f 96/197 35/96 101/198
|
||||
f 154/199 90/200 96/184 101/187
|
||||
f 90/200 84/201 171/183 96/184
|
||||
f 166/192 163/181 171/183 84/201
|
||||
f 98/202 165/193 166/192 84/201
|
||||
f 97/203 164/179 165/189 98/204
|
||||
f 97/203 87/205 169/180 164/179
|
||||
f 87/205 88/206 170/182 169/180
|
||||
f 76/175 168/177 86/207
|
||||
f 76/175 86/207 94/208
|
||||
f 94/208 146/209 76/175
|
||||
f 167/185 85/210 86/211 168/186
|
||||
f 95/212 94/213 86/211 85/210
|
||||
f 85/210 167/185 170/182 88/206
|
||||
f 146/214 94/213 95/212 145/215
|
||||
f 95/212 85/210 88/206 89/216
|
||||
f 95/212 89/216 162/217 145/215
|
||||
f 93/218 89/216 88/206 87/205
|
||||
f 93/218 148/219 162/217 89/216
|
||||
f 97/203 92/220 93/218 87/205
|
||||
f 150/221 148/219 93/218 92/220
|
||||
f 152/222 150/221 92/220 91/223
|
||||
f 92/220 97/203 98/204 91/223
|
||||
f 91/224 98/202 84/201 90/200
|
||||
f 154/199 152/225 91/224 90/200
|
||||
f 34/90 175/122 172/226 35/92
|
||||
f 70/103 184/227 183/228 71/99
|
||||
f 72/107 181/229 179/230 73/105
|
||||
f 74/113 176/231 178/232 75/111
|
||||
f 76/109 177/233 181/229 72/107
|
||||
f 73/105 179/230 184/227 70/103
|
||||
f 75/111 178/232 177/233 76/109
|
||||
f 77/115 187/234 176/231 74/113
|
||||
f 78/117 180/235 187/234 77/115
|
||||
f 79/119 174/236 180/235 78/117
|
||||
f 80/121 173/237 174/236 79/119
|
||||
f 35/92 172/226 173/237 80/121
|
||||
f 82/95 186/238 185/123 81/89
|
||||
f 83/97 182/239 186/238 82/95
|
||||
f 71/99 183/228 182/240 83/100
|
|
@ -0,0 +1,441 @@
|
|||
# Blender v2.72 (sub 0) OBJ File: 'pipe-valve-off.blend'
|
||||
# www.blender.org
|
||||
o Cube.003
|
||||
v -0.312500 0.281250 -0.062500
|
||||
v 0.093750 0.281250 -0.062500
|
||||
v 0.093750 0.281250 0.062500
|
||||
v -0.312500 0.281250 0.062500
|
||||
v -0.312500 0.343750 -0.062500
|
||||
v 0.093750 0.343750 -0.062500
|
||||
v 0.093750 0.343750 0.062500
|
||||
v -0.312500 0.343750 0.062500
|
||||
v -0.031250 0.250000 -0.031250
|
||||
v 0.031250 0.250000 -0.031250
|
||||
v 0.031250 0.250000 0.031250
|
||||
v -0.031250 0.250000 0.031250
|
||||
v -0.031250 0.281250 -0.031250
|
||||
v 0.031250 0.281250 -0.031250
|
||||
v 0.031250 0.281250 0.031250
|
||||
v -0.031250 0.281250 0.031250
|
||||
v -0.250000 -0.250000 -0.250000
|
||||
v 0.250000 -0.250000 -0.250000
|
||||
v 0.250000 -0.250000 0.250000
|
||||
v -0.250000 -0.250000 0.250000
|
||||
v -0.250000 0.250000 -0.250000
|
||||
v 0.250000 0.250000 -0.250000
|
||||
v 0.250000 0.250000 0.250000
|
||||
v -0.250000 0.250000 0.250000
|
||||
v -0.030483 -0.153248 0.468750
|
||||
v -0.030483 -0.153248 0.500000
|
||||
v 0.030483 -0.153248 0.468750
|
||||
v 0.030483 -0.153248 0.500000
|
||||
v 0.086808 -0.129917 0.468750
|
||||
v 0.086808 -0.129917 0.500000
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.153248 -0.030483 0.468750
|
||||
v 0.153248 -0.030483 0.500000
|
||||
v 0.153248 0.030483 0.468750
|
||||
v 0.153248 0.030483 0.500000
|
||||
v 0.129917 0.086808 0.468750
|
||||
v 0.129917 0.086808 0.500000
|
||||
v 0.086808 0.129917 0.468750
|
||||
v 0.086808 0.129917 0.500000
|
||||
v 0.030483 0.153248 0.468750
|
||||
v 0.030483 0.153247 0.500000
|
||||
v -0.030483 0.153248 0.468750
|
||||
v -0.030483 0.153248 0.500000
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.129917 0.086808 0.468750
|
||||
v -0.129917 0.086808 0.500000
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.129917 -0.086808 0.468750
|
||||
v -0.129917 -0.086808 0.500000
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.024386 -0.122598 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v 0.069446 -0.103934 0.468750
|
||||
v 0.103934 -0.069446 0.468750
|
||||
v 0.122598 -0.024386 0.468750
|
||||
v 0.122598 0.024386 0.468750
|
||||
v 0.103934 0.069446 0.468750
|
||||
v 0.069446 0.103934 0.468750
|
||||
v 0.024386 0.122598 0.468750
|
||||
v -0.024386 0.122598 0.468750
|
||||
v -0.069446 0.103934 0.468750
|
||||
v -0.103934 0.069446 0.468750
|
||||
v -0.122598 0.024386 0.468750
|
||||
v -0.122598 -0.024387 0.468750
|
||||
v -0.103934 -0.069447 0.468750
|
||||
v -0.069446 -0.103934 0.468750
|
||||
v -0.000000 -0.000000 0.468750
|
||||
v -0.000000 -0.000000 0.500000
|
||||
v 0.103934 -0.069446 -0.468750
|
||||
v 0.069447 -0.103933 -0.468750
|
||||
v 0.024387 -0.122598 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v -0.086808 -0.129917 -0.500000
|
||||
v -0.086808 -0.129917 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.153247 -0.030483 -0.500000
|
||||
v -0.153247 -0.030483 -0.468750
|
||||
v -0.153247 0.030483 -0.500000
|
||||
v -0.153247 0.030483 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.086808 0.129917 -0.500000
|
||||
v -0.086808 0.129917 -0.468750
|
||||
v -0.030483 0.153248 -0.500000
|
||||
v -0.030483 0.153248 -0.468750
|
||||
v 0.030483 0.153248 -0.500000
|
||||
v 0.030483 0.153248 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.129917 0.086808 -0.500000
|
||||
v 0.129917 0.086808 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.129917 -0.086807 -0.500000
|
||||
v 0.129917 -0.086808 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.030483 -0.153247 -0.500000
|
||||
v 0.030483 -0.153247 -0.468750
|
||||
v -0.030483 -0.153247 -0.500000
|
||||
v -0.030483 -0.153247 -0.468750
|
||||
v 0.122598 -0.024386 -0.468750
|
||||
v 0.122598 0.024387 -0.468750
|
||||
v 0.103934 0.069447 -0.468750
|
||||
v 0.069447 0.103934 -0.468750
|
||||
v 0.024387 0.122598 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v -0.069446 0.103934 -0.468750
|
||||
v -0.103933 0.069447 -0.468750
|
||||
v -0.122598 0.024387 -0.468750
|
||||
v -0.122598 -0.024386 -0.468750
|
||||
v -0.103933 -0.069446 -0.468750
|
||||
v -0.069446 -0.103933 -0.468750
|
||||
v 0.000000 0.000000 -0.468750
|
||||
v 0.000000 0.000000 -0.500000
|
||||
vt 0.265625 0.234375
|
||||
vt 0.468750 0.234375
|
||||
vt 0.468750 0.265625
|
||||
vt 0.265625 0.265625
|
||||
vt 0.265625 0.187500
|
||||
vt 0.328125 0.187500
|
||||
vt 0.328125 0.218750
|
||||
vt 0.265625 0.218750
|
||||
vt 0.468750 0.312500
|
||||
vt 0.265625 0.312500
|
||||
vt 0.265625 0.281250
|
||||
vt 0.468750 0.281250
|
||||
vt 0.406250 0.218750
|
||||
vt 0.343750 0.218750
|
||||
vt 0.343750 0.187500
|
||||
vt 0.406250 0.187500
|
||||
vt 0.468750 0.468750
|
||||
vt 0.265625 0.468750
|
||||
vt 0.265625 0.406250
|
||||
vt 0.468750 0.406250
|
||||
vt 0.468750 0.390625
|
||||
vt 0.265625 0.390625
|
||||
vt 0.265625 0.328125
|
||||
vt 0.468750 0.328125
|
||||
vt 0.039062 0.203125
|
||||
vt 0.007812 0.203125
|
||||
vt 0.007812 0.187500
|
||||
vt 0.039062 0.187500
|
||||
vt 0.085938 0.203125
|
||||
vt 0.054688 0.203125
|
||||
vt 0.054688 0.187500
|
||||
vt 0.085938 0.187500
|
||||
vt 0.148438 0.187500
|
||||
vt 0.179688 0.187500
|
||||
vt 0.179688 0.203125
|
||||
vt 0.148438 0.203125
|
||||
vt 0.132812 0.203125
|
||||
vt 0.101562 0.203125
|
||||
vt 0.101562 0.187500
|
||||
vt 0.132812 0.187500
|
||||
vt 0.515625 0.484375
|
||||
vt 0.515625 0.734375
|
||||
vt 0.265625 0.734375
|
||||
vt 0.265625 0.484375
|
||||
vt 0.000000 0.468750
|
||||
vt 0.000000 0.218750
|
||||
vt 0.250000 0.218750
|
||||
vt 0.250000 0.468750
|
||||
vt 0.515625 1.000000
|
||||
vt 0.265625 1.000000
|
||||
vt 0.265625 0.750000
|
||||
vt 0.515625 0.750000
|
||||
vt 0.250000 0.734375
|
||||
vt 0.000000 0.734375
|
||||
vt 0.000000 0.484375
|
||||
vt 0.250000 0.484375
|
||||
vt 0.781250 1.000000
|
||||
vt 0.531250 1.000000
|
||||
vt 0.531250 0.750000
|
||||
vt 0.781250 0.750000
|
||||
vt 0.000847 0.750015
|
||||
vt 0.250216 0.750015
|
||||
vt 0.250216 0.999385
|
||||
vt 0.000847 0.999385
|
||||
vt 0.867188 0.273438
|
||||
vt 0.835938 0.273438
|
||||
vt 0.835938 0.304688
|
||||
vt 0.867188 0.304688
|
||||
vt 0.804688 0.273438
|
||||
vt 0.804688 0.304688
|
||||
vt 0.773438 0.273438
|
||||
vt 0.773438 0.304688
|
||||
vt 0.742188 0.273438
|
||||
vt 0.742188 0.304688
|
||||
vt 0.710938 0.273438
|
||||
vt 0.710938 0.304688
|
||||
vt 0.679688 0.273438
|
||||
vt 0.679688 0.304688
|
||||
vt 0.648438 0.273438
|
||||
vt 0.648438 0.304688
|
||||
vt 0.617188 0.273438
|
||||
vt 0.617188 0.304688
|
||||
vt 0.585938 0.273438
|
||||
vt 0.585938 0.304688
|
||||
vt 0.554688 0.273438
|
||||
vt 0.554688 0.304688
|
||||
vt 0.523438 0.273438
|
||||
vt 0.523438 0.304688
|
||||
vt 0.492188 0.273438
|
||||
vt 0.492188 0.304688
|
||||
vt 0.992188 0.273438
|
||||
vt 0.960938 0.273438
|
||||
vt 0.960938 0.304688
|
||||
vt 0.992188 0.304688
|
||||
vt 0.929688 0.273438
|
||||
vt 0.929688 0.304688
|
||||
vt 0.898438 0.273438
|
||||
vt 0.898438 0.304688
|
||||
vt 0.600936 0.328499
|
||||
vt 0.584692 0.410164
|
||||
vt 0.568448 0.328499
|
||||
vt 0.757628 0.328499
|
||||
vt 0.773872 0.410164
|
||||
vt 0.790117 0.328499
|
||||
vt 0.820132 0.340932
|
||||
vt 0.843105 0.363905
|
||||
vt 0.855537 0.393920
|
||||
vt 0.855537 0.426408
|
||||
vt 0.843105 0.456424
|
||||
vt 0.820132 0.479396
|
||||
vt 0.790117 0.491829
|
||||
vt 0.757628 0.491829
|
||||
vt 0.727613 0.479396
|
||||
vt 0.704640 0.456424
|
||||
vt 0.692207 0.426408
|
||||
vt 0.692207 0.393920
|
||||
vt 0.704640 0.363905
|
||||
vt 0.727613 0.340932
|
||||
vt 0.538432 0.340932
|
||||
vt 0.515460 0.363905
|
||||
vt 0.503027 0.393920
|
||||
vt 0.503027 0.426408
|
||||
vt 0.515460 0.456424
|
||||
vt 0.538432 0.479396
|
||||
vt 0.568448 0.491829
|
||||
vt 0.600936 0.491829
|
||||
vt 0.630951 0.479396
|
||||
vt 0.653924 0.456424
|
||||
vt 0.666357 0.426408
|
||||
vt 0.666357 0.393920
|
||||
vt 0.653924 0.363905
|
||||
vt 0.630951 0.340932
|
||||
vt 0.585938 0.257812
|
||||
vt 0.585938 0.007812
|
||||
vt 0.617188 0.007812
|
||||
vt 0.617188 0.257812
|
||||
vt 0.929688 0.257812
|
||||
vt 0.929688 0.007812
|
||||
vt 0.960938 0.007812
|
||||
vt 0.960938 0.257812
|
||||
vt 0.867188 0.257812
|
||||
vt 0.867188 0.007812
|
||||
vt 0.898438 0.007812
|
||||
vt 0.898438 0.257812
|
||||
vt 0.773438 0.257812
|
||||
vt 0.773438 0.007812
|
||||
vt 0.804688 0.007812
|
||||
vt 0.804688 0.257812
|
||||
vt 0.835938 0.257812
|
||||
vt 0.835938 0.007812
|
||||
vt 0.742188 0.257812
|
||||
vt 0.742188 0.007812
|
||||
vt 0.710938 0.257812
|
||||
vt 0.710938 0.007812
|
||||
vt 0.679688 0.257812
|
||||
vt 0.679688 0.007812
|
||||
vt 0.648438 0.257812
|
||||
vt 0.648438 0.007812
|
||||
vt 0.554688 0.257812
|
||||
vt 0.554688 0.007812
|
||||
vt 0.523438 0.257812
|
||||
vt 0.523438 0.007812
|
||||
vt 0.492188 0.257812
|
||||
vt 0.492188 0.007812
|
||||
vt 0.992188 0.007812
|
||||
vt 0.992188 0.257812
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn -0.000000 0.000000 1.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn 0.382700 -0.923900 -0.000000
|
||||
vn 0.707100 -0.707100 -0.000000
|
||||
vn 0.923900 -0.382700 0.000000
|
||||
vn 0.923900 0.382700 0.000000
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn 0.382700 0.923900 0.000000
|
||||
vn -0.382700 0.923900 0.000000
|
||||
vn -0.707100 0.707100 0.000000
|
||||
vn -0.923900 0.382700 -0.000000
|
||||
vn -0.923900 -0.382700 -0.000000
|
||||
vn -0.382700 -0.923900 -0.000000
|
||||
vn -0.707100 -0.707100 -0.000000
|
||||
g Cube.003_Cube.003_None
|
||||
s off
|
||||
f 5/1/1 6/2/1 2/3/1 1/4/1
|
||||
f 6/5/2 7/6/2 3/7/2 2/8/2
|
||||
f 7/9/3 8/10/3 4/11/3 3/12/3
|
||||
f 8/13/4 5/14/4 1/15/4 4/16/4
|
||||
f 1/17/5 2/18/5 3/19/5 4/20/5
|
||||
f 8/21/6 7/22/6 6/23/6 5/24/6
|
||||
f 13/25/1 14/26/1 10/27/1 9/28/1
|
||||
f 14/29/2 15/30/2 11/31/2 10/32/2
|
||||
f 15/33/3 16/34/3 12/35/3 11/36/3
|
||||
f 16/37/4 13/38/4 9/39/4 12/40/4
|
||||
f 21/41/1 22/42/1 18/43/1 17/44/1
|
||||
f 22/45/2 23/46/2 19/47/2 18/48/2
|
||||
f 23/49/3 24/50/3 20/51/3 19/52/3
|
||||
f 24/53/4 21/54/4 17/55/4 20/56/4
|
||||
f 17/57/5 18/58/5 19/59/5 20/60/5
|
||||
f 24/61/6 23/62/6 22/63/6 21/64/6
|
||||
f 25/65/5 27/66/5 28/67/5 26/68/5
|
||||
f 27/66/7 29/69/7 30/70/7 28/67/7
|
||||
f 29/69/8 31/71/8 32/72/8 30/70/8
|
||||
f 31/71/9 33/73/9 34/74/9 32/72/9
|
||||
f 33/73/2 35/75/2 36/76/2 34/74/2
|
||||
f 35/75/10 37/77/10 38/78/10 36/76/10
|
||||
f 37/77/11 39/79/11 40/80/11 38/78/11
|
||||
f 39/79/12 41/81/12 42/82/12 40/80/12
|
||||
f 41/81/6 43/83/6 44/84/6 42/82/6
|
||||
f 43/83/13 45/85/13 46/86/13 44/84/13
|
||||
f 45/85/14 47/87/14 48/88/14 46/86/14
|
||||
f 47/87/15 49/89/15 50/90/15 48/88/15
|
||||
f 49/91/4 51/92/4 52/93/4 50/94/4
|
||||
f 51/92/16 53/95/16 54/96/16 52/93/16
|
||||
f 55/97/17 25/65/17 26/68/17 56/98/17
|
||||
f 53/95/18 55/97/18 56/98/18 54/96/18
|
||||
f 28/99/3 74/100/3 26/101/3
|
||||
f 25/102/1 73/103/1 27/104/1
|
||||
f 27/104/1 73/103/1 29/105/1
|
||||
f 29/105/1 73/103/1 31/106/1
|
||||
f 31/106/1 73/103/1 33/107/1
|
||||
f 33/107/1 73/103/1 35/108/1
|
||||
f 35/108/1 73/103/1 37/109/1
|
||||
f 37/109/1 73/103/1 39/110/1
|
||||
f 39/110/1 73/103/1 41/111/1
|
||||
f 41/111/1 73/103/1 43/112/1
|
||||
f 43/112/1 73/103/1 45/113/1
|
||||
f 45/113/1 73/103/1 47/114/1
|
||||
f 47/114/1 73/103/1 49/115/1
|
||||
f 49/115/1 73/103/1 51/116/1
|
||||
f 51/116/1 73/103/1 53/117/1
|
||||
f 53/117/1 73/103/1 55/118/1
|
||||
f 55/118/1 73/103/1 25/102/1
|
||||
f 26/101/3 74/100/3 56/119/3
|
||||
f 56/119/3 74/100/3 54/120/3
|
||||
f 54/120/3 74/100/3 52/121/3
|
||||
f 52/121/3 74/100/3 50/122/3
|
||||
f 50/122/3 74/100/3 48/123/3
|
||||
f 48/123/3 74/100/3 46/124/3
|
||||
f 46/124/3 74/100/3 44/125/3
|
||||
f 44/125/3 74/100/3 42/126/3
|
||||
f 42/126/3 74/100/3 40/127/3
|
||||
f 40/127/3 74/100/3 38/128/3
|
||||
f 38/128/3 74/100/3 36/129/3
|
||||
f 36/129/3 74/100/3 34/130/3
|
||||
f 34/130/3 74/100/3 32/131/3
|
||||
f 32/131/3 74/100/3 30/132/3
|
||||
f 30/132/3 74/100/3 28/99/3
|
||||
f 65/133/6 115/134/6 116/135/6 66/136/6
|
||||
f 105/119/1 107/101/1 124/100/1
|
||||
f 103/120/1 105/119/1 124/100/1
|
||||
f 101/121/1 103/120/1 124/100/1
|
||||
f 99/122/1 101/121/1 124/100/1
|
||||
f 97/123/1 99/122/1 124/100/1
|
||||
f 95/124/1 97/123/1 124/100/1
|
||||
f 93/125/1 95/124/1 124/100/1
|
||||
f 91/126/1 93/125/1 124/100/1
|
||||
f 89/127/1 91/126/1 124/100/1
|
||||
f 87/128/1 89/127/1 124/100/1
|
||||
f 85/129/1 87/128/1 124/100/1
|
||||
f 83/130/1 85/129/1 124/100/1
|
||||
f 81/131/1 83/130/1 124/100/1
|
||||
f 79/132/1 81/131/1 124/100/1
|
||||
f 109/99/1 79/132/1 124/100/1
|
||||
f 80/118/3 110/102/3 123/103/3
|
||||
f 82/117/3 80/118/3 123/103/3
|
||||
f 84/116/3 82/117/3 123/103/3
|
||||
f 86/115/3 84/116/3 123/103/3
|
||||
f 88/114/3 86/115/3 123/103/3
|
||||
f 90/113/3 88/114/3 123/103/3
|
||||
f 92/112/3 90/113/3 123/103/3
|
||||
f 94/111/3 92/112/3 123/103/3
|
||||
f 96/110/3 94/111/3 123/103/3
|
||||
f 98/109/3 96/110/3 123/103/3
|
||||
f 100/108/3 98/109/3 123/103/3
|
||||
f 102/107/3 100/108/3 123/103/3
|
||||
f 104/106/3 102/107/3 123/103/3
|
||||
f 106/105/3 104/106/3 123/103/3
|
||||
f 108/104/3 106/105/3 123/103/3
|
||||
f 110/102/3 108/104/3 123/103/3
|
||||
f 107/101/1 109/99/1 124/100/1
|
||||
f 82/86/18 81/85/18 79/83/18 80/84/18
|
||||
f 80/84/17 79/83/17 109/81/17 110/82/17
|
||||
f 84/88/16 83/87/16 81/85/16 82/86/16
|
||||
f 86/90/4 85/89/4 83/87/4 84/88/4
|
||||
f 88/93/15 87/92/15 85/91/15 86/94/15
|
||||
f 90/96/14 89/95/14 87/92/14 88/93/14
|
||||
f 92/98/13 91/97/13 89/95/13 90/96/13
|
||||
f 94/68/6 93/65/6 91/97/6 92/98/6
|
||||
f 96/67/12 95/66/12 93/65/12 94/68/12
|
||||
f 98/70/11 97/69/11 95/66/11 96/67/11
|
||||
f 100/72/10 99/71/10 97/69/10 98/70/10
|
||||
f 102/74/2 101/73/2 99/71/2 100/72/2
|
||||
f 104/76/9 103/75/9 101/73/9 102/74/9
|
||||
f 106/78/8 105/77/8 103/75/8 104/76/8
|
||||
f 108/80/7 107/79/7 105/77/7 106/78/7
|
||||
f 110/82/5 109/81/5 107/79/5 108/80/5
|
||||
f 60/137/9 75/138/9 111/139/9 61/140/9
|
||||
f 58/141/7 77/142/7 76/143/7 59/144/7
|
||||
f 71/145/18 121/146/18 122/147/18 72/148/18
|
||||
f 57/149/5 78/150/5 77/142/5 58/141/5
|
||||
f 59/144/8 76/143/8 75/138/8 60/137/8
|
||||
f 72/148/17 122/147/17 78/150/17 57/149/17
|
||||
f 70/151/16 120/152/16 121/146/16 71/145/16
|
||||
f 69/153/4 119/154/4 120/152/4 70/151/4
|
||||
f 68/155/15 118/156/15 119/154/15 69/153/15
|
||||
f 67/157/14 117/158/14 118/156/14 68/155/14
|
||||
f 66/136/13 116/135/13 117/158/13 67/157/13
|
||||
f 64/159/12 114/160/12 115/134/12 65/133/12
|
||||
f 63/161/11 113/162/11 114/160/11 64/159/11
|
||||
f 62/163/10 112/164/10 113/162/10 63/161/10
|
||||
f 61/140/2 111/139/2 112/165/2 62/166/2
|
|
@ -0,0 +1,441 @@
|
|||
# Blender v2.72 (sub 0) OBJ File: 'pipe-valve-on.blend'
|
||||
# www.blender.org
|
||||
o Cube.003
|
||||
v 0.062500 0.281250 -0.312500
|
||||
v 0.062500 0.281250 0.093750
|
||||
v -0.062500 0.281250 0.093750
|
||||
v -0.062500 0.281250 -0.312500
|
||||
v 0.062500 0.343750 -0.312500
|
||||
v 0.062500 0.343750 0.093750
|
||||
v -0.062500 0.343750 0.093750
|
||||
v -0.062500 0.343750 -0.312500
|
||||
v -0.031250 0.250000 -0.031250
|
||||
v 0.031250 0.250000 -0.031250
|
||||
v 0.031250 0.250000 0.031250
|
||||
v -0.031250 0.250000 0.031250
|
||||
v -0.031250 0.281250 -0.031250
|
||||
v 0.031250 0.281250 -0.031250
|
||||
v 0.031250 0.281250 0.031250
|
||||
v -0.031250 0.281250 0.031250
|
||||
v -0.250000 -0.250000 -0.250000
|
||||
v 0.250000 -0.250000 -0.250000
|
||||
v 0.250000 -0.250000 0.250000
|
||||
v -0.250000 -0.250000 0.250000
|
||||
v -0.250000 0.250000 -0.250000
|
||||
v 0.250000 0.250000 -0.250000
|
||||
v 0.250000 0.250000 0.250000
|
||||
v -0.250000 0.250000 0.250000
|
||||
v -0.030483 -0.153248 0.468750
|
||||
v -0.030483 -0.153248 0.500000
|
||||
v 0.030483 -0.153248 0.468750
|
||||
v 0.030483 -0.153248 0.500000
|
||||
v 0.086808 -0.129917 0.468750
|
||||
v 0.086808 -0.129917 0.500000
|
||||
v 0.129917 -0.086808 0.468750
|
||||
v 0.129917 -0.086808 0.500000
|
||||
v 0.153248 -0.030483 0.468750
|
||||
v 0.153248 -0.030483 0.500000
|
||||
v 0.153248 0.030483 0.468750
|
||||
v 0.153248 0.030483 0.500000
|
||||
v 0.129917 0.086808 0.468750
|
||||
v 0.129917 0.086808 0.500000
|
||||
v 0.086808 0.129917 0.468750
|
||||
v 0.086808 0.129917 0.500000
|
||||
v 0.030483 0.153248 0.468750
|
||||
v 0.030483 0.153247 0.500000
|
||||
v -0.030483 0.153248 0.468750
|
||||
v -0.030483 0.153248 0.500000
|
||||
v -0.086808 0.129917 0.468750
|
||||
v -0.086808 0.129917 0.500000
|
||||
v -0.129917 0.086808 0.468750
|
||||
v -0.129917 0.086808 0.500000
|
||||
v -0.153248 0.030483 0.468750
|
||||
v -0.153248 0.030483 0.500000
|
||||
v -0.153248 -0.030483 0.468750
|
||||
v -0.153248 -0.030483 0.500000
|
||||
v -0.129917 -0.086808 0.468750
|
||||
v -0.129917 -0.086808 0.500000
|
||||
v -0.086808 -0.129917 0.468750
|
||||
v -0.086808 -0.129917 0.500000
|
||||
v -0.024386 -0.122598 0.468750
|
||||
v 0.024386 -0.122598 0.468750
|
||||
v 0.069446 -0.103934 0.468750
|
||||
v 0.103934 -0.069446 0.468750
|
||||
v 0.122598 -0.024386 0.468750
|
||||
v 0.122598 0.024386 0.468750
|
||||
v 0.103934 0.069446 0.468750
|
||||
v 0.069446 0.103934 0.468750
|
||||
v 0.024386 0.122598 0.468750
|
||||
v -0.024386 0.122598 0.468750
|
||||
v -0.069446 0.103934 0.468750
|
||||
v -0.103934 0.069446 0.468750
|
||||
v -0.122598 0.024386 0.468750
|
||||
v -0.122598 -0.024387 0.468750
|
||||
v -0.103934 -0.069447 0.468750
|
||||
v -0.069446 -0.103934 0.468750
|
||||
v -0.000000 -0.000000 0.468750
|
||||
v -0.000000 -0.000000 0.500000
|
||||
v 0.103934 -0.069446 -0.468750
|
||||
v 0.069447 -0.103933 -0.468750
|
||||
v 0.024387 -0.122598 -0.468750
|
||||
v -0.024386 -0.122598 -0.468750
|
||||
v -0.086808 -0.129917 -0.500000
|
||||
v -0.086808 -0.129917 -0.468750
|
||||
v -0.129917 -0.086808 -0.500000
|
||||
v -0.129917 -0.086808 -0.468750
|
||||
v -0.153247 -0.030483 -0.500000
|
||||
v -0.153247 -0.030483 -0.468750
|
||||
v -0.153247 0.030483 -0.500000
|
||||
v -0.153247 0.030483 -0.468750
|
||||
v -0.129917 0.086808 -0.500000
|
||||
v -0.129917 0.086808 -0.468750
|
||||
v -0.086808 0.129917 -0.500000
|
||||
v -0.086808 0.129917 -0.468750
|
||||
v -0.030483 0.153248 -0.500000
|
||||
v -0.030483 0.153248 -0.468750
|
||||
v 0.030483 0.153248 -0.500000
|
||||
v 0.030483 0.153248 -0.468750
|
||||
v 0.086808 0.129917 -0.500000
|
||||
v 0.086808 0.129917 -0.468750
|
||||
v 0.129917 0.086808 -0.500000
|
||||
v 0.129917 0.086808 -0.468750
|
||||
v 0.153248 0.030483 -0.500000
|
||||
v 0.153248 0.030483 -0.468750
|
||||
v 0.153248 -0.030483 -0.500000
|
||||
v 0.153248 -0.030483 -0.468750
|
||||
v 0.129917 -0.086807 -0.500000
|
||||
v 0.129917 -0.086808 -0.468750
|
||||
v 0.086808 -0.129917 -0.500000
|
||||
v 0.086808 -0.129917 -0.468750
|
||||
v 0.030483 -0.153247 -0.500000
|
||||
v 0.030483 -0.153247 -0.468750
|
||||
v -0.030483 -0.153247 -0.500000
|
||||
v -0.030483 -0.153247 -0.468750
|
||||
v 0.122598 -0.024386 -0.468750
|
||||
v 0.122598 0.024387 -0.468750
|
||||
v 0.103934 0.069447 -0.468750
|
||||
v 0.069447 0.103934 -0.468750
|
||||
v 0.024387 0.122598 -0.468750
|
||||
v -0.024386 0.122598 -0.468750
|
||||
v -0.069446 0.103934 -0.468750
|
||||
v -0.103933 0.069447 -0.468750
|
||||
v -0.122598 0.024387 -0.468750
|
||||
v -0.122598 -0.024386 -0.468750
|
||||
v -0.103933 -0.069446 -0.468750
|
||||
v -0.069446 -0.103933 -0.468750
|
||||
v 0.000000 0.000000 -0.468750
|
||||
v 0.000000 0.000000 -0.500000
|
||||
vt 0.265625 0.234375
|
||||
vt 0.468750 0.234375
|
||||
vt 0.468750 0.265625
|
||||
vt 0.265625 0.265625
|
||||
vt 0.265625 0.187500
|
||||
vt 0.328125 0.187500
|
||||
vt 0.328125 0.218750
|
||||
vt 0.265625 0.218750
|
||||
vt 0.468750 0.312500
|
||||
vt 0.265625 0.312500
|
||||
vt 0.265625 0.281250
|
||||
vt 0.468750 0.281250
|
||||
vt 0.406250 0.218750
|
||||
vt 0.343750 0.218750
|
||||
vt 0.343750 0.187500
|
||||
vt 0.406250 0.187500
|
||||
vt 0.468750 0.468750
|
||||
vt 0.265625 0.468750
|
||||
vt 0.265625 0.406250
|
||||
vt 0.468750 0.406250
|
||||
vt 0.468750 0.390625
|
||||
vt 0.265625 0.390625
|
||||
vt 0.265625 0.328125
|
||||
vt 0.468750 0.328125
|
||||
vt 0.039062 0.203125
|
||||
vt 0.007812 0.203125
|
||||
vt 0.007812 0.187500
|
||||
vt 0.039062 0.187500
|
||||
vt 0.085938 0.203125
|
||||
vt 0.054688 0.203125
|
||||
vt 0.054688 0.187500
|
||||
vt 0.085938 0.187500
|
||||
vt 0.148438 0.187500
|
||||
vt 0.179688 0.187500
|
||||
vt 0.179688 0.203125
|
||||
vt 0.148438 0.203125
|
||||
vt 0.132812 0.203125
|
||||
vt 0.101562 0.203125
|
||||
vt 0.101562 0.187500
|
||||
vt 0.132812 0.187500
|
||||
vt 0.515625 0.484375
|
||||
vt 0.515625 0.734375
|
||||
vt 0.265625 0.734375
|
||||
vt 0.265625 0.484375
|
||||
vt 0.000000 0.468750
|
||||
vt 0.000000 0.218750
|
||||
vt 0.250000 0.218750
|
||||
vt 0.250000 0.468750
|
||||
vt 0.515625 1.000000
|
||||
vt 0.265625 1.000000
|
||||
vt 0.265625 0.750000
|
||||
vt 0.515625 0.750000
|
||||
vt 0.250000 0.734375
|
||||
vt 0.000000 0.734375
|
||||
vt 0.000000 0.484375
|
||||
vt 0.250000 0.484375
|
||||
vt 0.781250 1.000000
|
||||
vt 0.531250 1.000000
|
||||
vt 0.531250 0.750000
|
||||
vt 0.781250 0.750000
|
||||
vt 0.000847 0.750015
|
||||
vt 0.250216 0.750015
|
||||
vt 0.250216 0.999385
|
||||
vt 0.000847 0.999385
|
||||
vt 0.867188 0.273438
|
||||
vt 0.835938 0.273438
|
||||
vt 0.835938 0.304688
|
||||
vt 0.867188 0.304688
|
||||
vt 0.804688 0.273438
|
||||
vt 0.804688 0.304688
|
||||
vt 0.773438 0.273438
|
||||
vt 0.773438 0.304688
|
||||
vt 0.742188 0.273438
|
||||
vt 0.742188 0.304688
|
||||
vt 0.710938 0.273438
|
||||
vt 0.710938 0.304688
|
||||
vt 0.679688 0.273438
|
||||
vt 0.679688 0.304688
|
||||
vt 0.648438 0.273438
|
||||
vt 0.648438 0.304688
|
||||
vt 0.617188 0.273438
|
||||
vt 0.617188 0.304688
|
||||
vt 0.585938 0.273438
|
||||
vt 0.585938 0.304688
|
||||
vt 0.554688 0.273438
|
||||
vt 0.554688 0.304688
|
||||
vt 0.523438 0.273438
|
||||
vt 0.523438 0.304688
|
||||
vt 0.492188 0.273438
|
||||
vt 0.492188 0.304688
|
||||
vt 0.992188 0.273438
|
||||
vt 0.960938 0.273438
|
||||
vt 0.960938 0.304688
|
||||
vt 0.992188 0.304688
|
||||
vt 0.929688 0.273438
|
||||
vt 0.929688 0.304688
|
||||
vt 0.898438 0.273438
|
||||
vt 0.898438 0.304688
|
||||
vt 0.600936 0.328499
|
||||
vt 0.584692 0.410164
|
||||
vt 0.568448 0.328499
|
||||
vt 0.757628 0.328499
|
||||
vt 0.773872 0.410164
|
||||
vt 0.790117 0.328499
|
||||
vt 0.820132 0.340932
|
||||
vt 0.843105 0.363905
|
||||
vt 0.855537 0.393920
|
||||
vt 0.855537 0.426408
|
||||
vt 0.843105 0.456424
|
||||
vt 0.820132 0.479396
|
||||
vt 0.790117 0.491829
|
||||
vt 0.757628 0.491829
|
||||
vt 0.727613 0.479396
|
||||
vt 0.704640 0.456424
|
||||
vt 0.692207 0.426408
|
||||
vt 0.692207 0.393920
|
||||
vt 0.704640 0.363905
|
||||
vt 0.727613 0.340932
|
||||
vt 0.538432 0.340932
|
||||
vt 0.515460 0.363905
|
||||
vt 0.503027 0.393920
|
||||
vt 0.503027 0.426408
|
||||
vt 0.515460 0.456424
|
||||
vt 0.538432 0.479396
|
||||
vt 0.568448 0.491829
|
||||
vt 0.600936 0.491829
|
||||
vt 0.630951 0.479396
|
||||
vt 0.653924 0.456424
|
||||
vt 0.666357 0.426408
|
||||
vt 0.666357 0.393920
|
||||
vt 0.653924 0.363905
|
||||
vt 0.630951 0.340932
|
||||
vt 0.585938 0.257812
|
||||
vt 0.585938 0.007812
|
||||
vt 0.617188 0.007812
|
||||
vt 0.617188 0.257812
|
||||
vt 0.929688 0.257812
|
||||
vt 0.929688 0.007812
|
||||
vt 0.960938 0.007812
|
||||
vt 0.960938 0.257812
|
||||
vt 0.867188 0.257812
|
||||
vt 0.867188 0.007812
|
||||
vt 0.898438 0.007812
|
||||
vt 0.898438 0.257812
|
||||
vt 0.773438 0.257812
|
||||
vt 0.773438 0.007812
|
||||
vt 0.804688 0.007812
|
||||
vt 0.804688 0.257812
|
||||
vt 0.835938 0.257812
|
||||
vt 0.835938 0.007812
|
||||
vt 0.742188 0.257812
|
||||
vt 0.742188 0.007812
|
||||
vt 0.710938 0.257812
|
||||
vt 0.710938 0.007812
|
||||
vt 0.679688 0.257812
|
||||
vt 0.679688 0.007812
|
||||
vt 0.648438 0.257812
|
||||
vt 0.648438 0.007812
|
||||
vt 0.554688 0.257812
|
||||
vt 0.554688 0.007812
|
||||
vt 0.523438 0.257812
|
||||
vt 0.523438 0.007812
|
||||
vt 0.492188 0.257812
|
||||
vt 0.492188 0.007812
|
||||
vt 0.992188 0.007812
|
||||
vt 0.992188 0.257812
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn -0.000000 0.000000 1.000000
|
||||
vn -1.000000 0.000000 -0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 -1.000000 -0.000000
|
||||
vn 0.000000 1.000000 -0.000000
|
||||
vn 0.382700 -0.923900 -0.000000
|
||||
vn 0.707100 -0.707100 -0.000000
|
||||
vn 0.923900 -0.382700 0.000000
|
||||
vn 0.923900 0.382700 0.000000
|
||||
vn 0.707100 0.707100 0.000000
|
||||
vn 0.382700 0.923900 0.000000
|
||||
vn -0.382700 0.923900 0.000000
|
||||
vn -0.707100 0.707100 0.000000
|
||||
vn -0.923900 0.382700 -0.000000
|
||||
vn -0.923900 -0.382700 -0.000000
|
||||
vn -0.382700 -0.923900 -0.000000
|
||||
vn -0.707100 -0.707100 -0.000000
|
||||
g Cube.003_Cube.003_None
|
||||
s off
|
||||
f 5/1/1 6/2/1 2/3/1 1/4/1
|
||||
f 6/5/2 7/6/2 3/7/2 2/8/2
|
||||
f 7/9/3 8/10/3 4/11/3 3/12/3
|
||||
f 8/13/4 5/14/4 1/15/4 4/16/4
|
||||
f 1/17/5 2/18/5 3/19/5 4/20/5
|
||||
f 8/21/6 7/22/6 6/23/6 5/24/6
|
||||
f 13/25/4 14/26/4 10/27/4 9/28/4
|
||||
f 14/29/1 15/30/1 11/31/1 10/32/1
|
||||
f 15/33/2 16/34/2 12/35/2 11/36/2
|
||||
f 16/37/3 13/38/3 9/39/3 12/40/3
|
||||
f 21/41/4 22/42/4 18/43/4 17/44/4
|
||||
f 22/45/1 23/46/1 19/47/1 18/48/1
|
||||
f 23/49/2 24/50/2 20/51/2 19/52/2
|
||||
f 24/53/3 21/54/3 17/55/3 20/56/3
|
||||
f 17/57/5 18/58/5 19/59/5 20/60/5
|
||||
f 24/61/6 23/62/6 22/63/6 21/64/6
|
||||
f 25/65/5 27/66/5 28/67/5 26/68/5
|
||||
f 27/66/7 29/69/7 30/70/7 28/67/7
|
||||
f 29/69/8 31/71/8 32/72/8 30/70/8
|
||||
f 31/71/9 33/73/9 34/74/9 32/72/9
|
||||
f 33/73/1 35/75/1 36/76/1 34/74/1
|
||||
f 35/75/10 37/77/10 38/78/10 36/76/10
|
||||
f 37/77/11 39/79/11 40/80/11 38/78/11
|
||||
f 39/79/12 41/81/12 42/82/12 40/80/12
|
||||
f 41/81/6 43/83/6 44/84/6 42/82/6
|
||||
f 43/83/13 45/85/13 46/86/13 44/84/13
|
||||
f 45/85/14 47/87/14 48/88/14 46/86/14
|
||||
f 47/87/15 49/89/15 50/90/15 48/88/15
|
||||
f 49/91/3 51/92/3 52/93/3 50/94/3
|
||||
f 51/92/16 53/95/16 54/96/16 52/93/16
|
||||
f 55/97/17 25/65/17 26/68/17 56/98/17
|
||||
f 53/95/18 55/97/18 56/98/18 54/96/18
|
||||
f 28/99/2 74/100/2 26/101/2
|
||||
f 25/102/4 73/103/4 27/104/4
|
||||
f 27/104/4 73/103/4 29/105/4
|
||||
f 29/105/4 73/103/4 31/106/4
|
||||
f 31/106/4 73/103/4 33/107/4
|
||||
f 33/107/4 73/103/4 35/108/4
|
||||
f 35/108/4 73/103/4 37/109/4
|
||||
f 37/109/4 73/103/4 39/110/4
|
||||
f 39/110/4 73/103/4 41/111/4
|
||||
f 41/111/4 73/103/4 43/112/4
|
||||
f 43/112/4 73/103/4 45/113/4
|
||||
f 45/113/4 73/103/4 47/114/4
|
||||
f 47/114/4 73/103/4 49/115/4
|
||||
f 49/115/4 73/103/4 51/116/4
|
||||
f 51/116/4 73/103/4 53/117/4
|
||||
f 53/117/4 73/103/4 55/118/4
|
||||
f 55/118/4 73/103/4 25/102/4
|
||||
f 26/101/2 74/100/2 56/119/2
|
||||
f 56/119/2 74/100/2 54/120/2
|
||||
f 54/120/2 74/100/2 52/121/2
|
||||
f 52/121/2 74/100/2 50/122/2
|
||||
f 50/122/2 74/100/2 48/123/2
|
||||
f 48/123/2 74/100/2 46/124/2
|
||||
f 46/124/2 74/100/2 44/125/2
|
||||
f 44/125/2 74/100/2 42/126/2
|
||||
f 42/126/2 74/100/2 40/127/2
|
||||
f 40/127/2 74/100/2 38/128/2
|
||||
f 38/128/2 74/100/2 36/129/2
|
||||
f 36/129/2 74/100/2 34/130/2
|
||||
f 34/130/2 74/100/2 32/131/2
|
||||
f 32/131/2 74/100/2 30/132/2
|
||||
f 30/132/2 74/100/2 28/99/2
|
||||
f 65/133/6 115/134/6 116/135/6 66/136/6
|
||||
f 105/119/4 107/101/4 124/100/4
|
||||
f 103/120/4 105/119/4 124/100/4
|
||||
f 101/121/4 103/120/4 124/100/4
|
||||
f 99/122/4 101/121/4 124/100/4
|
||||
f 97/123/4 99/122/4 124/100/4
|
||||
f 95/124/4 97/123/4 124/100/4
|
||||
f 93/125/4 95/124/4 124/100/4
|
||||
f 91/126/4 93/125/4 124/100/4
|
||||
f 89/127/4 91/126/4 124/100/4
|
||||
f 87/128/4 89/127/4 124/100/4
|
||||
f 85/129/4 87/128/4 124/100/4
|
||||
f 83/130/4 85/129/4 124/100/4
|
||||
f 81/131/4 83/130/4 124/100/4
|
||||
f 79/132/4 81/131/4 124/100/4
|
||||
f 109/99/4 79/132/4 124/100/4
|
||||
f 80/118/2 110/102/2 123/103/2
|
||||
f 82/117/2 80/118/2 123/103/2
|
||||
f 84/116/2 82/117/2 123/103/2
|
||||
f 86/115/2 84/116/2 123/103/2
|
||||
f 88/114/2 86/115/2 123/103/2
|
||||
f 90/113/2 88/114/2 123/103/2
|
||||
f 92/112/2 90/113/2 123/103/2
|
||||
f 94/111/2 92/112/2 123/103/2
|
||||
f 96/110/2 94/111/2 123/103/2
|
||||
f 98/109/2 96/110/2 123/103/2
|
||||
f 100/108/2 98/109/2 123/103/2
|
||||
f 102/107/2 100/108/2 123/103/2
|
||||
f 104/106/2 102/107/2 123/103/2
|
||||
f 106/105/2 104/106/2 123/103/2
|
||||
f 108/104/2 106/105/2 123/103/2
|
||||
f 110/102/2 108/104/2 123/103/2
|
||||
f 107/101/4 109/99/4 124/100/4
|
||||
f 82/86/18 81/85/18 79/83/18 80/84/18
|
||||
f 80/84/17 79/83/17 109/81/17 110/82/17
|
||||
f 84/88/16 83/87/16 81/85/16 82/86/16
|
||||
f 86/90/3 85/89/3 83/87/3 84/88/3
|
||||
f 88/93/15 87/92/15 85/91/15 86/94/15
|
||||
f 90/96/14 89/95/14 87/92/14 88/93/14
|
||||
f 92/98/13 91/97/13 89/95/13 90/96/13
|
||||
f 94/68/6 93/65/6 91/97/6 92/98/6
|
||||
f 96/67/12 95/66/12 93/65/12 94/68/12
|
||||
f 98/70/11 97/69/11 95/66/11 96/67/11
|
||||
f 100/72/10 99/71/10 97/69/10 98/70/10
|
||||
f 102/74/1 101/73/1 99/71/1 100/72/1
|
||||
f 104/76/9 103/75/9 101/73/9 102/74/9
|
||||
f 106/78/8 105/77/8 103/75/8 104/76/8
|
||||
f 108/80/7 107/79/7 105/77/7 106/78/7
|
||||
f 110/82/5 109/81/5 107/79/5 108/80/5
|
||||
f 60/137/9 75/138/9 111/139/9 61/140/9
|
||||
f 58/141/7 77/142/7 76/143/7 59/144/7
|
||||
f 71/145/18 121/146/18 122/147/18 72/148/18
|
||||
f 57/149/5 78/150/5 77/142/5 58/141/5
|
||||
f 59/144/8 76/143/8 75/138/8 60/137/8
|
||||
f 72/148/17 122/147/17 78/150/17 57/149/17
|
||||
f 70/151/16 120/152/16 121/146/16 71/145/16
|
||||
f 69/153/3 119/154/3 120/152/3 70/151/3
|
||||
f 68/155/15 118/156/15 119/154/15 69/153/15
|
||||
f 67/157/14 117/158/14 118/156/14 68/155/14
|
||||
f 66/136/13 116/135/13 117/158/13 67/157/13
|
||||
f 64/159/12 114/160/12 115/134/12 65/133/12
|
||||
f 63/161/11 113/162/11 114/160/11 64/159/11
|
||||
f 62/163/10 112/164/10 113/162/10 63/161/10
|
||||
f 61/140/1 111/139/1 112/165/1 62/166/1
|
|
@ -0,0 +1,229 @@
|
|||
-- This file supplies the steel pipes
|
||||
|
||||
local REGISTER_COMPATIBILITY = true
|
||||
|
||||
local pipes_empty_nodenames = {}
|
||||
local pipes_full_nodenames = {}
|
||||
|
||||
local vti = {4, 3, 2, 1, 6, 5}
|
||||
local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}}
|
||||
for index, connects in ipairs(cconnects) do
|
||||
local outsel = {}
|
||||
|
||||
local jx = 0
|
||||
local jy = 0
|
||||
local jz = 0
|
||||
for _, v in ipairs(connects) do
|
||||
if v == 1 or v == 2 then
|
||||
jx = jx + 1
|
||||
elseif v == 3 or v == 4 then
|
||||
jy = jy + 1
|
||||
else
|
||||
jz = jz + 1
|
||||
end
|
||||
table.insert(outsel, pipeworks.pipe_selectboxes[v])
|
||||
end
|
||||
|
||||
if #connects == 1 then
|
||||
local v = connects[1]
|
||||
v = v-1 + 2*(v%2) -- Opposite side
|
||||
end
|
||||
|
||||
local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1}
|
||||
local pipedesc = "Pipe segement".." "..dump(connects).."... You hacker, you."
|
||||
local image = nil
|
||||
|
||||
if #connects == 0 then
|
||||
pgroups = {snappy = 3, tube = 1}
|
||||
pipedesc = "Pipe segment"
|
||||
image = "pipeworks_pipe_inv.png"
|
||||
end
|
||||
|
||||
local outimg_e = { "pipeworks_pipe_plain.png" }
|
||||
local outimg_l = { "pipeworks_pipe_plain.png" }
|
||||
|
||||
if index == 3 then
|
||||
outimg_e = { "pipeworks_pipe_3_empty.png" }
|
||||
outimg_l = { "pipeworks_pipe_3_loaded.png" }
|
||||
end
|
||||
|
||||
local mesh = "pipeworks_pipe_"..index..".obj"
|
||||
|
||||
if index == 1 then
|
||||
mesh = "pipeworks_pipe_3.obj"
|
||||
end
|
||||
|
||||
minetest.register_node("pipeworks:pipe_"..index.."_empty", {
|
||||
description = pipedesc,
|
||||
drawtype = "mesh",
|
||||
mesh = mesh,
|
||||
tiles = outimg_e,
|
||||
sunlight_propagates = true,
|
||||
inventory_image = image,
|
||||
wield_image = image,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = outsel
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = outsel
|
||||
},
|
||||
groups = pgroups,
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
drop = "pipeworks:pipe_1_empty",
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
})
|
||||
|
||||
local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1}
|
||||
|
||||
minetest.register_node("pipeworks:pipe_"..index.."_loaded", {
|
||||
description = pipedesc,
|
||||
drawtype = "mesh",
|
||||
mesh = mesh,
|
||||
tiles = outimg_l,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = outsel
|
||||
},
|
||||
collision_box = {
|
||||
type = "fixed",
|
||||
fixed = outsel
|
||||
},
|
||||
groups = pgroups,
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
walkable = true,
|
||||
drop = "pipeworks:pipe_1_empty",
|
||||
after_place_node = function(pos)
|
||||
minetest.set_node(pos, { name = "pipeworks:pipe_"..index.."_empty" })
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
after_dig_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
})
|
||||
|
||||
table.insert(pipes_empty_nodenames, "pipeworks:pipe_"..index.."_empty")
|
||||
table.insert(pipes_full_nodenames, "pipeworks:pipe_"..index.."_loaded")
|
||||
end
|
||||
|
||||
|
||||
|
||||
if REGISTER_COMPATIBILITY then
|
||||
local cempty = "pipeworks:pipe_compatibility_empty"
|
||||
local cloaded = "pipeworks:pipe_compatibility_loaded"
|
||||
minetest.register_node(cempty, {
|
||||
drawtype = "airlike",
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "pipeworks_pipe_inv.png",
|
||||
wield_image = "pipeworks_pipe_inv.png",
|
||||
description = "Pipe Segment (legacy)",
|
||||
groups = {not_in_creative_inventory = 1, pipe_to_update = 1},
|
||||
drop = "pipeworks:pipe_1_empty",
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
|
||||
})
|
||||
minetest.register_node(cloaded, {
|
||||
drawtype = "airlike",
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "pipeworks_pipe_inv.png",
|
||||
groups = {not_in_creative_inventory = 1, pipe_to_update = 1},
|
||||
drop = "pipeworks:pipe_1_empty",
|
||||
after_place_node = function(pos)
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end,
|
||||
on_rotate = false
|
||||
|
||||
})
|
||||
for xm = 0, 1 do
|
||||
for xp = 0, 1 do
|
||||
for ym = 0, 1 do
|
||||
for yp = 0, 1 do
|
||||
for zm = 0, 1 do
|
||||
for zp = 0, 1 do
|
||||
local pname = xm..xp..ym..yp..zm..zp
|
||||
minetest.register_alias("pipeworks:pipe_"..pname.."_empty", cempty)
|
||||
minetest.register_alias("pipeworks:pipe_"..pname.."_loaded", cloaded)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
minetest.register_abm({
|
||||
nodenames = {"group:pipe_to_update"},
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local minp = {x = pos.x-1, y = pos.y-1, z = pos.z-1}
|
||||
local maxp = {x = pos.x+1, y = pos.y+1, z = pos.z+1}
|
||||
if table.getn(minetest.find_nodes_in_area(minp, maxp, "ignore")) == 0 then
|
||||
pipeworks.scan_for_pipe_objects(pos)
|
||||
end
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
table.insert(pipes_empty_nodenames,"pipeworks:valve_on_empty")
|
||||
table.insert(pipes_empty_nodenames,"pipeworks:valve_off_empty")
|
||||
table.insert(pipes_empty_nodenames,"pipeworks:entry_panel_empty")
|
||||
table.insert(pipes_empty_nodenames,"pipeworks:flow_sensor_empty")
|
||||
|
||||
table.insert(pipes_full_nodenames,"pipeworks:valve_on_loaded")
|
||||
table.insert(pipes_full_nodenames,"pipeworks:entry_panel_loaded")
|
||||
table.insert(pipes_full_nodenames,"pipeworks:flow_sensor_loaded")
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = pipes_empty_nodenames,
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
pipeworks.check_for_inflows(pos,node)
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = pipes_full_nodenames,
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
pipeworks.check_sources(pos,node)
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"pipeworks:spigot","pipeworks:spigot_pouring"},
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
pipeworks.spigot_check(pos,node)
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"pipeworks:fountainhead","pipeworks:fountainhead_pouring"},
|
||||
interval = 1,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
pipeworks.fountainhead_check(pos,node)
|
||||
end
|
||||
})
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
|
||||
-- the default tube and default textures
|
||||
pipeworks.register_tube("pipeworks:tube", "Pneumatic tube segment")
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:tube_1 6",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "", "", "" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
|
||||
local nodecolor = 0xffff3030
|
||||
|
||||
pipeworks.register_tube("pipeworks:broken_tube", {
|
||||
description = "Broken Tube (you hacker you)",
|
||||
plain = { { name = "pipeworks_broken_tube_plain.png", backface_culling = false, color = nodecolor } },
|
||||
noctr = { { name = "pipeworks_broken_tube_plain.png", backface_culling = false, color = nodecolor } },
|
||||
ends = { { name = "pipeworks_broken_tube_end.png", color = nodecolor } },
|
||||
short = { name = "pipeworks_broken_tube_short.png", color = nodecolor },
|
||||
node_def = {
|
||||
drop = "pipeworks:tube_1",
|
||||
groups = {not_in_creative_inventory = 1, tubedevice_receiver = 1},
|
||||
tube = {
|
||||
insert_object = function(pos, node, stack, direction)
|
||||
minetest.item_drop(stack, nil, pos)
|
||||
return ItemStack("")
|
||||
end,
|
||||
can_insert = function(pos,node,stack,direction)
|
||||
return true
|
||||
end,
|
||||
priority = 50,
|
||||
},
|
||||
on_punch = function(pos, node, puncher, pointed_thing)
|
||||
local itemstack = puncher:get_wielded_item()
|
||||
local wieldname = itemstack:get_name()
|
||||
local playername = puncher:get_player_name()
|
||||
print("[Pipeworks] "..playername.." struck a broken tube at "..minetest.pos_to_string(pos))
|
||||
if wieldname == "anvil:hammer"
|
||||
or wieldname == "cottages:hammer"
|
||||
or wieldname == "glooptest:hammer_steel"
|
||||
or wieldname == "glooptest:hammer_bronze"
|
||||
or wieldname == "glooptest:hammer_diamond"
|
||||
or wieldname == "glooptest:hammer_mese"
|
||||
or wieldname == "glooptest:hammer_alatro"
|
||||
or wieldname == "glooptest:hammer_arol" then
|
||||
local meta = minetest.get_meta(pos)
|
||||
local was_node = minetest.deserialize(meta:get_string("the_tube_was"))
|
||||
if was_node and was_node ~= "" then
|
||||
print(" with "..wieldname.." to repair it.")
|
||||
minetest.swap_node(pos, { name = was_node.name, param2 = was_node.param2 })
|
||||
pipeworks.scan_for_tube_objects(pos)
|
||||
itemstack:add_wear(1000)
|
||||
puncher:set_wielded_item(itemstack)
|
||||
return itemstack
|
||||
else
|
||||
print(" but it can't be repaired.")
|
||||
end
|
||||
else
|
||||
print(" with "..wieldname.." but that tool is too weak.")
|
||||
end
|
||||
end
|
||||
}
|
||||
})
|
||||
|
||||
-- the high priority tube is a low-cpu replacement for sorting tubes in situations
|
||||
-- where players would use them for simple routing (turning off paths)
|
||||
-- without doing actual sorting, like at outputs of tubedevices that might both accept and eject items
|
||||
if pipeworks.enable_priority_tube then
|
||||
local color = "#ff3030:128"
|
||||
pipeworks.register_tube("pipeworks:priority_tube", {
|
||||
description = "High Priority Tube Segment",
|
||||
inventory_image = "pipeworks_tube_inv.png^[colorize:" .. color,
|
||||
plain = { { name = "pipeworks_tube_plain.png", color = nodecolor } },
|
||||
noctr = { { name = "pipeworks_tube_noctr.png", color = nodecolor } },
|
||||
ends = { { name = "pipeworks_tube_end.png", color = nodecolor } },
|
||||
short = { name = "pipeworks_tube_short.png", color = nodecolor },
|
||||
node_def = {
|
||||
tube = { priority = 150 } -- higher than tubedevices (100)
|
||||
},
|
||||
})
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:priority_tube_1 6",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "base:gold_ingot", "", "base:gold_ingot" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if pipeworks.enable_accelerator_tube then
|
||||
pipeworks.register_tube("pipeworks:accelerator_tube", {
|
||||
description = "Accelerating Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_accelerator_tube_inv.png",
|
||||
plain = { "pipeworks_accelerator_tube_plain.png" },
|
||||
noctr = { "pipeworks_accelerator_tube_noctr.png" },
|
||||
ends = { "pipeworks_accelerator_tube_end.png" },
|
||||
short = "pipeworks_accelerator_tube_short.png",
|
||||
node_def = {
|
||||
tube = {can_go = function(pos, node, velocity, stack)
|
||||
velocity.speed = velocity.speed+1
|
||||
return pipeworks.notvel(pipeworks.meseadjlist, velocity)
|
||||
end}
|
||||
},
|
||||
})
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:accelerator_tube_1 2",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "base:mese_crystal_fragment", "base:steel_ingot", "base:mese_crystal_fragment" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if pipeworks.enable_crossing_tube then
|
||||
pipeworks.register_tube("pipeworks:crossing_tube", {
|
||||
description = "Crossing Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_crossing_tube_inv.png",
|
||||
plain = { "pipeworks_crossing_tube_plain.png" },
|
||||
noctr = { "pipeworks_crossing_tube_noctr.png" },
|
||||
ends = { "pipeworks_crossing_tube_end.png" },
|
||||
short = "pipeworks_crossing_tube_short.png",
|
||||
node_def = {
|
||||
tube = {can_go = function(pos, node, velocity, stack) return {velocity} end }
|
||||
},
|
||||
})
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:crossing_tube_1 5",
|
||||
recipe = {
|
||||
{ "", "pipeworks:tube_1", "" },
|
||||
{ "pipeworks:tube_1", "pipeworks:tube_1", "pipeworks:tube_1" },
|
||||
{ "", "pipeworks:tube_1", "" }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if pipeworks.enable_one_way_tube then
|
||||
minetest.register_node("pipeworks:one_way_tube", {
|
||||
description = "One way tube",
|
||||
tiles = {"pipeworks_one_way_tube_top.png", "pipeworks_one_way_tube_top.png", "pipeworks_one_way_tube_output.png",
|
||||
"pipeworks_one_way_tube_input.png", "pipeworks_one_way_tube_side.png", "pipeworks_one_way_tube_top.png"},
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
node_box = {type = "fixed",
|
||||
fixed = {{-1/2, -9/64, -9/64, 1/2, 9/64, 9/64}}},
|
||||
groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, tubedevice = 1},
|
||||
sounds = base.node_sound_wood_defaults(),
|
||||
tube = {
|
||||
connect_sides = {left = 1, right = 1},
|
||||
can_go = function(pos, node, velocity, stack)
|
||||
return {velocity}
|
||||
end,
|
||||
can_insert = function(pos, node, stack, direction)
|
||||
local dir = pipeworks.facedir_to_right_dir(node.param2)
|
||||
return vector.equals(dir, direction)
|
||||
end,
|
||||
priority = 75 -- Higher than normal tubes, but lower than receivers
|
||||
},
|
||||
after_place_node = pipeworks.after_place,
|
||||
after_dig_node = pipeworks.after_dig,
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "pipeworks:one_way_tube 2",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "group:stick", "base:mese_crystal", "homedecor:plastic_sheeting" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
After Width: | Height: | Size: 90 KiB |
|
@ -0,0 +1,70 @@
|
|||
#Enable pipes.
|
||||
pipeworks_enable_pipes (Enable Pipes) bool true
|
||||
|
||||
#Enable autocrafter.
|
||||
pipeworks_enable_autocrafter (Enable Autocrafter) bool true
|
||||
|
||||
#Enable deployer.
|
||||
pipeworks_enable_deployer (Enable Deployer) bool true
|
||||
|
||||
#Enable dispenser.
|
||||
pipeworks_enable_dispenser (Enable Dispenser) bool true
|
||||
|
||||
#Enable node breaker.
|
||||
pipeworks_enable_node_breaker (Enable Node Breaker) bool true
|
||||
|
||||
#Enable teleport tube.
|
||||
pipeworks_enable_teleport_tube (Enable Teleport Tube) bool true
|
||||
|
||||
#Enable pipe devices.
|
||||
pipeworks_enable_pipe_devices (Enable Pipe Devices) bool true
|
||||
|
||||
#Enable redefines.
|
||||
pipeworks_enable_redefines (Enable Node Redefines) bool true
|
||||
|
||||
#Enable sorting tube.
|
||||
pipeworks_enable_mese_tube (Enable Sorting Tube) bool true
|
||||
|
||||
#Enable detector tube.
|
||||
pipeworks_enable_detector_tube (Enable Detector Tube) bool true
|
||||
|
||||
#Enable digiline detector tube.
|
||||
pipeworks_enable_digiline_detector_tube (Enable Digiline Detector Tube) bool true
|
||||
|
||||
#Enable mesecon signal conducting tube.
|
||||
pipeworks_enable_conductor_tube (Enable Conductor Tube) bool true
|
||||
|
||||
#Enable accelerator tube.
|
||||
pipeworks_enable_accelerator_tube (Enable Accelerator Tube) bool true
|
||||
|
||||
#Enable crossing tube.
|
||||
#It sends all incoming items to the other side, or if there is no other tube, it sends them back.
|
||||
pipeworks_enable_crossing_tube (Enable Crossing Tube) bool true
|
||||
|
||||
#Enable vacuum tube.
|
||||
#It picks up all items that lay around next to it.
|
||||
pipeworks_enable_sand_tube (Enable Vacuum Tube) bool true
|
||||
|
||||
#Enable mese vacuum tube.
|
||||
#It's like the normal vacuum tube with the
|
||||
#differance that you can set the radius up to 8 nodes.
|
||||
pipeworks_enable_mese_sand_tube (Enable Mese Vacuum Tube) bool true
|
||||
|
||||
#Enable one way tube.
|
||||
#It sends items only in one direction.
|
||||
#Use it to drop items out of tubes.
|
||||
pipeworks_enable_one_way_tube (Enable One Way Tube) bool true
|
||||
|
||||
#Enable high priority tube.
|
||||
#It has a very high priority and so, on crossings, the items will
|
||||
#always go to it if there are multible ways.
|
||||
pipeworks_enable_priority_tube (Enable High Priority Tube) bool true
|
||||
|
||||
#Enable cyclic mode.
|
||||
pipeworks_enable_cyclic_mode (Enable Cyclic Mode) bool true
|
||||
|
||||
#Drop on routing fail.
|
||||
pipeworks_drop_on_routing_fail (Drop On Routing Fail) bool false
|
||||
|
||||
#Delete item on clearobject.
|
||||
pipeworks_delete_item_on_clearobject (Delete Item On Clearobject) bool true
|
|
@ -0,0 +1,160 @@
|
|||
if pipeworks.enable_detector_tube then
|
||||
local detector_tube_step = 5 * tonumber(minetest.settings:get("dedicated_server_step"))
|
||||
pipeworks.register_tube("pipeworks:detector_tube_on", {
|
||||
description = "Detecting Pneumatic Tube Segment on (you hacker you)",
|
||||
inventory_image = "pipeworks_detector_tube_inv.png",
|
||||
plain = { "pipeworks_detector_tube_plain.png" },
|
||||
node_def = {
|
||||
tube = {can_go = function(pos, node, velocity, stack)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local name = minetest.get_node(pos).name
|
||||
local nitems = meta:get_int("nitems")+1
|
||||
meta:set_int("nitems", nitems)
|
||||
local saved_pos = vector.new(pos)
|
||||
minetest.after(detector_tube_step, minetest.registered_nodes[name].item_exit, saved_pos)
|
||||
return pipeworks.notvel(pipeworks.meseadjlist,velocity)
|
||||
end},
|
||||
groups = {mesecon = 2, not_in_creative_inventory = 1},
|
||||
drop = "pipeworks:detector_tube_off_1",
|
||||
mesecons = {receptor = {state = "on", rules = pipeworks.mesecons_rules}},
|
||||
item_exit = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local nitems = meta:get_int("nitems")-1
|
||||
local node = minetest.get_node(pos)
|
||||
local name = node.name
|
||||
local fdir = node.param2
|
||||
if nitems == 0 then
|
||||
minetest.set_node(pos, {name = string.gsub(name, "on", "off"), param2 = fdir})
|
||||
mesecon.receptor_off(pos, pipeworks.mesecons_rules)
|
||||
else
|
||||
meta:set_int("nitems", nitems)
|
||||
end
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_int("nitems", 1)
|
||||
local name = minetest.get_node(pos).name
|
||||
local saved_pos = vector.new(pos)
|
||||
minetest.after(detector_tube_step, minetest.registered_nodes[name].item_exit, saved_pos)
|
||||
end,
|
||||
},
|
||||
})
|
||||
pipeworks.register_tube("pipeworks:detector_tube_off", {
|
||||
description = "Detecting Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_detector_tube_inv.png",
|
||||
plain = { "pipeworks_detector_tube_plain.png" },
|
||||
node_def = {
|
||||
tube = {can_go = function(pos, node, velocity, stack)
|
||||
local node = minetest.get_node(pos)
|
||||
local name = node.name
|
||||
local fdir = node.param2
|
||||
minetest.set_node(pos,{name = string.gsub(name, "off", "on"), param2 = fdir})
|
||||
mesecon.receptor_on(pos, pipeworks.mesecons_rules)
|
||||
return pipeworks.notvel(pipeworks.meseadjlist, velocity)
|
||||
end},
|
||||
groups = {mesecon = 2},
|
||||
mesecons = {receptor = {state = "off", rules = pipeworks.mesecons_rules }},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:detector_tube_off_1 2",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "mesecons:mesecon", "mesecons_materials:silicon", "mesecons:mesecon" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if minetest.get_modpath("digilines") and pipeworks.enable_digiline_detector_tube then
|
||||
pipeworks.register_tube("pipeworks:digiline_detector_tube", {
|
||||
description = "Digiline Detecting Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_digiline_detector_tube_inv.png",
|
||||
plain = { "pipeworks_digiline_detector_tube_plain.png" },
|
||||
node_def = {
|
||||
tube = {can_go = function(pos, node, velocity, stack)
|
||||
local meta = minetest.get_meta(pos)
|
||||
|
||||
local setchan = meta:get_string("channel")
|
||||
|
||||
digiline:receptor_send(pos, digiline.rules.default, setchan, stack:to_string())
|
||||
|
||||
return pipeworks.notvel(pipeworks.meseadjlist, velocity)
|
||||
end},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8.6,2.2]"..
|
||||
"field[0.6,0.6;8,1;channel;Channel:;${channel}]"..
|
||||
"image[0.3,1.3;1,1;pipeworks_digiline_detector_tube_inv.png]"..
|
||||
"label[1.6,1.2;Digiline Detecting Tube]"
|
||||
)
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if fields.channel then
|
||||
minetest.get_meta(pos):set_string("channel", fields.channel)
|
||||
end
|
||||
end,
|
||||
groups = {},
|
||||
digiline = {
|
||||
receptor = {},
|
||||
effector = {
|
||||
action = function(pos,node,channel,msg) end
|
||||
}
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:digiline_detector_tube_1 2",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "digilines:wire_std_00000000", "mesecons_materials:silicon", "digilines:wire_std_00000000" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
if pipeworks.enable_conductor_tube then
|
||||
pipeworks.register_tube("pipeworks:conductor_tube_off", {
|
||||
description = "Conducting Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_conductor_tube_inv.png",
|
||||
short = "pipeworks_conductor_tube_short.png",
|
||||
plain = { "pipeworks_conductor_tube_plain.png" },
|
||||
noctr = { "pipeworks_conductor_tube_noctr.png" },
|
||||
ends = { "pipeworks_conductor_tube_end.png" },
|
||||
node_def = {
|
||||
groups = {mesecon = 2},
|
||||
mesecons = {conductor = {state = "off",
|
||||
rules = pipeworks.mesecons_rules,
|
||||
onstate = "pipeworks:conductor_tube_on_#id"}}
|
||||
},
|
||||
})
|
||||
pipeworks.register_tube("pipeworks:conductor_tube_on", {
|
||||
description = "Conducting Pneumatic Tube Segment on (you hacker you)",
|
||||
inventory_image = "pipeworks_conductor_tube_inv.png",
|
||||
short = "pipeworks_conductor_tube_short.png",
|
||||
plain = { "pipeworks_conductor_tube_on_plain.png" },
|
||||
noctr = { "pipeworks_conductor_tube_on_noctr.png" },
|
||||
ends = { "pipeworks_conductor_tube_on_end.png" },
|
||||
node_def = {
|
||||
groups = {mesecon = 2, not_in_creative_inventory = 1},
|
||||
drop = "pipeworks:conductor_tube_off_1",
|
||||
mesecons = {conductor = {state = "on",
|
||||
rules = pipeworks.mesecons_rules,
|
||||
offstate = "pipeworks:conductor_tube_off_#id"}}
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:conductor_tube_off_1 6",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "mesecons:mesecon", "mesecons:mesecon", "mesecons:mesecon" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
local fs_helpers = pipeworks.fs_helpers
|
||||
|
||||
if pipeworks.enable_mese_tube then
|
||||
local function update_formspec(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local old_formspec = meta:get_string("formspec")
|
||||
if string.find(old_formspec, "button1") then -- Old version
|
||||
local inv = meta:get_inventory()
|
||||
for i = 1, 6 do
|
||||
for _, stack in ipairs(inv:get_list("line"..i)) do
|
||||
minetest.add_item(pos, stack)
|
||||
end
|
||||
end
|
||||
end
|
||||
local buttons_formspec = ""
|
||||
for i = 0, 5 do
|
||||
buttons_formspec = buttons_formspec .. fs_helpers.cycling_button(meta,
|
||||
"image_button[7,"..(i+0.2)..";1,0.6", "l"..(i+1).."s",
|
||||
{
|
||||
pipeworks.button_off,
|
||||
pipeworks.button_on
|
||||
}
|
||||
)
|
||||
end
|
||||
meta:set_string("formspec",
|
||||
"size[8,11]"..
|
||||
"list[context;line1;1,0;6,1;]"..
|
||||
"list[context;line2;1,1;6,1;]"..
|
||||
"list[context;line3;1,2;6,1;]"..
|
||||
"list[context;line4;1,3;6,1;]"..
|
||||
"list[context;line5;1,4;6,1;]"..
|
||||
"list[context;line6;1,5;6,1;]"..
|
||||
"image[0,0;1,1;pipeworks_white.png]"..
|
||||
"image[0,1;1,1;pipeworks_black.png]"..
|
||||
"image[0,2;1,1;pipeworks_green.png]"..
|
||||
"image[0,3;1,1;pipeworks_yellow.png]"..
|
||||
"image[0,4;1,1;pipeworks_blue.png]"..
|
||||
"image[0,5;1,1;pipeworks_red.png]"..
|
||||
buttons_formspec..
|
||||
"list[current_player;main;0,7;8,4;]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[context;line1]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[context;line2]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[context;line3]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[context;line4]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[context;line5]" ..
|
||||
"listring[current_player;main]" ..
|
||||
"listring[context;line6]"
|
||||
)
|
||||
end
|
||||
|
||||
pipeworks.register_tube("pipeworks:mese_tube", {
|
||||
description = "Sorting Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_mese_tube_inv.png",
|
||||
noctr = {"pipeworks_mese_tube_noctr_1.png", "pipeworks_mese_tube_noctr_2.png", "pipeworks_mese_tube_noctr_3.png",
|
||||
"pipeworks_mese_tube_noctr_4.png", "pipeworks_mese_tube_noctr_5.png", "pipeworks_mese_tube_noctr_6.png"},
|
||||
plain = {"pipeworks_mese_tube_plain_1.png", "pipeworks_mese_tube_plain_2.png", "pipeworks_mese_tube_plain_3.png",
|
||||
"pipeworks_mese_tube_plain_4.png", "pipeworks_mese_tube_plain_5.png", "pipeworks_mese_tube_plain_6.png"},
|
||||
ends = { "pipeworks_mese_tube_end.png" },
|
||||
short = "pipeworks_mese_tube_short.png",
|
||||
no_facedir = true, -- Must use old tubes, since the textures are rotated with 6d ones
|
||||
node_def = {
|
||||
tube = {can_go = function(pos, node, velocity, stack)
|
||||
local tbl, tbln = {}, 0
|
||||
local found, foundn = {}, 0
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local name = stack:get_name()
|
||||
for i, vect in ipairs(pipeworks.meseadjlist) do
|
||||
local npos = vector.add(pos, vect)
|
||||
local node = minetest.get_node(npos)
|
||||
local reg_node = minetest.registered_nodes[node.name]
|
||||
if meta:get_int("l"..i.."s") == 1 and reg_node then
|
||||
local tube_def = reg_node.tube
|
||||
if not tube_def or not tube_def.can_insert or
|
||||
tube_def.can_insert(npos, node, stack, vect) then
|
||||
local invname = "line"..i
|
||||
local is_empty = true
|
||||
for _, st in ipairs(inv:get_list(invname)) do
|
||||
if not st:is_empty() then
|
||||
is_empty = false
|
||||
if st:get_name() == name then
|
||||
foundn = foundn + 1
|
||||
found[foundn] = vect
|
||||
end
|
||||
end
|
||||
end
|
||||
if is_empty then
|
||||
tbln = tbln + 1
|
||||
tbl[tbln] = vect
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return (foundn > 0) and found or tbl
|
||||
end},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
for i = 1, 6 do
|
||||
meta:set_int("l"..tostring(i).."s", 1)
|
||||
inv:set_size("line"..tostring(i), 6*1)
|
||||
end
|
||||
update_formspec(pos)
|
||||
meta:set_string("infotext", "Sorting pneumatic tube")
|
||||
end,
|
||||
on_punch = update_formspec,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
if not pipeworks.may_configure(pos, sender) then return end
|
||||
fs_helpers.on_receive_fields(pos, fields)
|
||||
update_formspec(pos)
|
||||
end,
|
||||
can_dig = function(pos, player)
|
||||
update_formspec(pos) -- so non-virtual items would be dropped for old tubes
|
||||
return true
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
update_formspec(pos) -- For old tubes
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
local stack_copy = ItemStack(stack)
|
||||
stack_copy:set_count(1)
|
||||
inv:set_stack(listname, index, stack_copy)
|
||||
return 0
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
update_formspec(pos) -- For old tubes
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
inv:set_stack(listname, index, ItemStack(""))
|
||||
return 0
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
if not pipeworks.may_configure(pos, player) then return 0 end
|
||||
update_formspec(pos) -- For old tubes
|
||||
local inv = minetest.get_meta(pos):get_inventory()
|
||||
|
||||
if from_list:match("line%d") and to_list:match("line%d") then
|
||||
return count
|
||||
else
|
||||
inv:set_stack(from_list, from_index, ItemStack(""))
|
||||
return 0
|
||||
end
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:mese_tube_000000 2",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "", "base:mese_crystal", "" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "pipeworks:mese_tube_000000",
|
||||
recipe = {
|
||||
"pipeworks:tube_1",
|
||||
"base:mese_crystal_fragment",
|
||||
"base:mese_crystal_fragment",
|
||||
"base:mese_crystal_fragment",
|
||||
"base:mese_crystal_fragment"
|
||||
},
|
||||
})
|
||||
end
|
|
@ -0,0 +1,242 @@
|
|||
local filename=minetest.get_worldpath() .. "/teleport_tubes"
|
||||
|
||||
local tp_tube_db = nil -- nil forces a read
|
||||
local tp_tube_db_version = 2.0
|
||||
|
||||
local function hash(pos)
|
||||
return string.format("%d", minetest.hash_node_position(pos))
|
||||
end
|
||||
|
||||
local function save_tube_db()
|
||||
local file, err = io.open(filename, "w")
|
||||
if file then
|
||||
tp_tube_db.version = tp_tube_db_version
|
||||
file:write(minetest.serialize(tp_tube_db))
|
||||
tp_tube_db.version = nil
|
||||
io.close(file)
|
||||
else
|
||||
error(err)
|
||||
end
|
||||
end
|
||||
|
||||
local function migrate_tube_db()
|
||||
local tmp_db = {}
|
||||
tp_tube_db.version = nil
|
||||
for key, val in pairs(tp_tube_db) do
|
||||
if(val.channel ~= "") then -- skip unconfigured tubes
|
||||
tmp_db[hash(val)] = val
|
||||
end
|
||||
end
|
||||
tp_tube_db = tmp_db
|
||||
save_tube_db()
|
||||
end
|
||||
|
||||
local function read_tube_db()
|
||||
local file = io.open(filename, "r")
|
||||
if file ~= nil then
|
||||
local file_content = file:read("*all")
|
||||
io.close(file)
|
||||
|
||||
if file_content and file_content ~= "" then
|
||||
tp_tube_db = minetest.deserialize(file_content)
|
||||
if(not tp_tube_db.version or tonumber(tp_tube_db.version) < tp_tube_db_version) then
|
||||
migrate_tube_db()
|
||||
end
|
||||
tp_tube_db.version = nil -- we add it back when saving
|
||||
return tp_tube_db -- we read sucessfully
|
||||
end
|
||||
end
|
||||
tp_tube_db = {}
|
||||
return tp_tube_db
|
||||
end
|
||||
|
||||
-- updates or adds a tube
|
||||
local function set_tube(pos, channel, can_receive)
|
||||
local tubes = tp_tube_db or read_tube_db()
|
||||
local hash = hash(pos)
|
||||
local tube = tubes[hash]
|
||||
if tube then
|
||||
tube.channel = channel
|
||||
tube.cr = can_receive
|
||||
save_tube_db()
|
||||
return
|
||||
end
|
||||
|
||||
-- we haven't found any tp tube to update, so lets add it
|
||||
tp_tube_db[hash] = {x=pos.x,y=pos.y,z=pos.z,channel=channel,cr=can_receive}
|
||||
save_tube_db()
|
||||
end
|
||||
|
||||
local function remove_tube(pos)
|
||||
local tubes = tp_tube_db or read_tube_db()
|
||||
tubes[hash(pos)] = nil
|
||||
save_tube_db()
|
||||
end
|
||||
|
||||
local function read_node_with_vm(pos)
|
||||
local vm = VoxelManip()
|
||||
local MinEdge, MaxEdge = vm:read_from_map(pos, pos)
|
||||
local data = vm:get_data()
|
||||
local area = VoxelArea:new({MinEdge = MinEdge, MaxEdge = MaxEdge})
|
||||
return minetest.get_name_from_content_id(data[area:index(pos.x, pos.y, pos.z)])
|
||||
end
|
||||
|
||||
local function get_receivers(pos, channel)
|
||||
local tubes = tp_tube_db or read_tube_db()
|
||||
local receivers = {}
|
||||
local dirty = false
|
||||
for key, val in pairs(tubes) do
|
||||
-- skip all non-receivers and the tube that it came from as early as possible, as this is called often
|
||||
if (val.cr == 1 and val.channel == channel and (val.x ~= pos.x or val.y ~= pos.y or val.z ~= pos.z)) then
|
||||
local is_loaded = (minetest.get_node_or_nil(val) ~= nil)
|
||||
local node_name = is_loaded and minetest.get_node(pos).name or read_node_with_vm(val)
|
||||
|
||||
if minetest.registered_nodes[node_name] and minetest.registered_nodes[node_name].is_teleport_tube then
|
||||
table.insert(receivers, val)
|
||||
else
|
||||
tp_tube_db[key] = nil
|
||||
dirty = true
|
||||
end
|
||||
end
|
||||
end
|
||||
if dirty then
|
||||
save_tube_db()
|
||||
end
|
||||
return receivers
|
||||
end
|
||||
|
||||
local function update_meta(meta, can_receive)
|
||||
meta:set_int("can_receive", can_receive and 1 or 0)
|
||||
local cr_state = can_receive and "on" or "off"
|
||||
meta:set_string("formspec","size[8.6,2.2]"..
|
||||
"field[0.6,0.6;7,1;channel;Channel:;${channel}]"..
|
||||
"label[7.3,0;Receive]"..
|
||||
"image_button[7.3,0.3;1,0.6;pipeworks_button_" .. cr_state .. ".png;cr" .. (can_receive and 0 or 1) .. ";;;false;pipeworks_button_interm.png]"..
|
||||
"image[0.3,1.3;1,1;pipeworks_teleport_tube_inv.png]"..
|
||||
"label[1.6,1.2;channels are public by default]" ..
|
||||
"label[1.6,1.5;use <player>:<channel> for fully private channels]" ..
|
||||
"label[1.6,1.8;use <player>\\;<channel> for private receivers]" ..
|
||||
init.gui_bg..
|
||||
init.gui_bg_img)
|
||||
end
|
||||
|
||||
pipeworks.register_tube("pipeworks:teleport_tube", {
|
||||
description = "Teleporting Pneumatic Tube Segment",
|
||||
inventory_image = "pipeworks_teleport_tube_inv.png",
|
||||
noctr = { "pipeworks_teleport_tube_noctr.png" },
|
||||
plain = { "pipeworks_teleport_tube_plain.png" },
|
||||
ends = { "pipeworks_teleport_tube_end.png" },
|
||||
short = "pipeworks_teleport_tube_short.png",
|
||||
node_def = {
|
||||
is_teleport_tube = true,
|
||||
tube = {
|
||||
can_go = function(pos,node,velocity,stack)
|
||||
velocity.x = 0
|
||||
velocity.y = 0
|
||||
velocity.z = 0
|
||||
|
||||
local channel = minetest.get_meta(pos):get_string("channel")
|
||||
if channel == "" then return {} end
|
||||
|
||||
local target = get_receivers(pos, channel)
|
||||
if target[1] == nil then return {} end
|
||||
|
||||
local d = math.random(1,#target)
|
||||
pos.x = target[d].x
|
||||
pos.y = target[d].y
|
||||
pos.z = target[d].z
|
||||
return pipeworks.meseadjlist
|
||||
end
|
||||
},
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
update_meta(meta, true)
|
||||
meta:set_string("infotext", "unconfigured Teleportation Tube")
|
||||
end,
|
||||
on_receive_fields = function(pos,formname,fields,sender)
|
||||
if not fields.channel -- ignore escaping or clientside manipulation of the form
|
||||
or not pipeworks.may_configure(pos, sender) then
|
||||
return
|
||||
end
|
||||
local new_channel = tostring(fields.channel):trim()
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local can_receive = meta:get_int("can_receive")
|
||||
|
||||
-- check for private channels each time before actually changing anything
|
||||
-- to not even allow switching between can_receive states of private channels
|
||||
if new_channel ~= "" then
|
||||
local sender_name = sender:get_player_name()
|
||||
local name, mode = new_channel:match("^([^:;]+)([:;])")
|
||||
if name and mode and name ~= sender_name then
|
||||
--channels starting with '[name]:' can only be used by the named player
|
||||
if mode == ":" then
|
||||
minetest.chat_send_player(sender_name, "Sorry, channel '"..new_channel.."' is reserved for exclusive use by "..name)
|
||||
return
|
||||
|
||||
--channels starting with '[name];' can be used by other players, but cannot be received from
|
||||
elseif mode == ";" and (fields.cr1 or (can_receive ~= 0 and not fields.cr0)) then
|
||||
minetest.chat_send_player(sender_name, "Sorry, receiving from channel '"..new_channel.."' is reserved for "..name)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local dirty = false
|
||||
|
||||
-- was the channel changed?
|
||||
local channel = meta:get_string("channel")
|
||||
if new_channel ~= channel then
|
||||
channel = new_channel
|
||||
meta:set_string("channel", channel)
|
||||
dirty = true
|
||||
end
|
||||
|
||||
-- test if a can_receive button was pressed
|
||||
if fields.cr0 and can_receive ~= 0 then
|
||||
can_receive = 0
|
||||
update_meta(meta, false)
|
||||
dirty = true
|
||||
elseif fields.cr1 and can_receive ~= 1 then
|
||||
can_receive = 1
|
||||
update_meta(meta, true)
|
||||
dirty = true
|
||||
end
|
||||
|
||||
-- save if we changed something, handle the empty channel while we're at it
|
||||
if dirty then
|
||||
if channel ~= "" then
|
||||
set_tube(pos, channel, can_receive)
|
||||
local cr_description = (can_receive == 1) and "sending and receiving" or "sending"
|
||||
meta:set_string("infotext", string.format("Teleportation Tube %s on '%s'", cr_description, channel))
|
||||
else
|
||||
-- remove empty channel tubes, to not have to search through them
|
||||
remove_tube(pos)
|
||||
meta:set_string("infotext", "unconfigured Teleportation Tube")
|
||||
end
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
remove_tube(pos)
|
||||
end
|
||||
},
|
||||
})
|
||||
minetest.register_craft( {
|
||||
output = "pipeworks:teleport_tube_1 2",
|
||||
recipe = {
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" },
|
||||
{ "base:granite", "base:mese", "base:granite" },
|
||||
{ "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }
|
||||
},
|
||||
})
|
||||
|
||||
if minetest.get_modpath("mesecons_mvps") ~= nil then
|
||||
mesecon.register_on_mvps_move(function(moved_nodes)
|
||||
for _, n in ipairs(moved_nodes) do
|
||||
if string.find(n.node.name, "pipeworks:teleport_tube") ~= nil then
|
||||
local meta = minetest.get_meta(n.pos)
|
||||
set_tube(n.pos, meta:get_string("channel"), meta:get_int("can_receive"))
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
After Width: | Height: | Size: 285 B |
After Width: | Height: | Size: 345 B |
After Width: | Height: | Size: 290 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 665 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 661 B |
After Width: | Height: | Size: 140 B |
After Width: | Height: | Size: 83 B |
After Width: | Height: | Size: 83 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 923 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 830 B |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 839 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 535 B |
After Width: | Height: | Size: 1005 B |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 575 B |
After Width: | Height: | Size: 275 B |
After Width: | Height: | Size: 801 B |
After Width: | Height: | Size: 669 B |
After Width: | Height: | Size: 543 B |
After Width: | Height: | Size: 823 B |
After Width: | Height: | Size: 823 B |
After Width: | Height: | Size: 823 B |
After Width: | Height: | Size: 800 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 795 B |
After Width: | Height: | Size: 892 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 526 B |
After Width: | Height: | Size: 1.0 KiB |
After Width: | Height: | Size: 765 B |
After Width: | Height: | Size: 892 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 526 B |
After Width: | Height: | Size: 234 B |
After Width: | Height: | Size: 217 B |
After Width: | Height: | Size: 236 B |