built on 03/01/2022 12:04:16
13
basic_materials/.github/workflows/luacheck.yml
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
name: luacheck
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: luacheck install
|
||||
run: luarocks install --local luacheck
|
||||
- name: luacheck run
|
||||
run: $HOME/.luarocks/bin/luacheck ./
|
30
basic_materials/.luacheckrc
Normal file
@ -0,0 +1,30 @@
|
||||
std = "lua51+minetest"
|
||||
unused_args = false
|
||||
allow_defined_top = true
|
||||
max_line_length = 999
|
||||
|
||||
stds.minetest = {
|
||||
read_globals = {
|
||||
"DIR_DELIM",
|
||||
"minetest",
|
||||
"core",
|
||||
"dump",
|
||||
"vector",
|
||||
"nodeupdate",
|
||||
"VoxelManip",
|
||||
"VoxelArea",
|
||||
"PseudoRandom",
|
||||
"ItemStack",
|
||||
"default",
|
||||
table = {
|
||||
fields = {
|
||||
"copy",
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
"default",
|
||||
"moreores",
|
||||
}
|
600
basic_materials/LICENSE
Normal file
@ -0,0 +1,600 @@
|
||||
License for code: LGPL 3.0
|
||||
License for media and all other assets: CC-by-SA 4.0
|
||||
|
||||
###############################################################################
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
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 that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU 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 as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
|
||||
###############################################################################
|
||||
|
||||
Attribution-ShareAlike 4.0 International
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are
|
||||
intended for use by those authorized to give the public
|
||||
permission to use material in ways otherwise restricted by
|
||||
copyright and certain other rights. Our licenses are
|
||||
irrevocable. Licensors should read and understand the terms
|
||||
and conditions of the license they choose before applying it.
|
||||
Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the
|
||||
material as expected. Licensors should clearly mark any
|
||||
material not subject to the license. This includes other CC-
|
||||
licensed material, or material used under an exception or
|
||||
limitation to copyright. More considerations for licensors:
|
||||
wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public
|
||||
licenses, a licensor grants the public permission to use the
|
||||
licensed material under specified terms and conditions. If
|
||||
the licensor's permission is not necessary for any reason--for
|
||||
example, because of any applicable exception or limitation to
|
||||
copyright--then that use is not regulated by the license. Our
|
||||
licenses grant only permissions under copyright and certain
|
||||
other rights that a licensor has authority to grant. Use of
|
||||
the licensed material may still be restricted for other
|
||||
reasons, including because others have copyright or other
|
||||
rights in the material. A licensor may make special requests,
|
||||
such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to
|
||||
respect those requests where reasonable. More considerations
|
||||
for the public:
|
||||
wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Attribution-ShareAlike 4.0 International Public
|
||||
License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution-ShareAlike 4.0 International Public License ("Public
|
||||
License"). To the extent this Public License may be interpreted as a
|
||||
contract, You are granted the Licensed Rights in consideration of Your
|
||||
acceptance of these terms and conditions, and the Licensor grants You
|
||||
such rights in consideration of benefits the Licensor receives from
|
||||
making the Licensed Material available under these terms and
|
||||
conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. BY-SA Compatible License means a license listed at
|
||||
creativecommons.org/compatiblelicenses, approved by Creative
|
||||
Commons as essentially the equivalent of this Public License.
|
||||
|
||||
d. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
e. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
f. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
g. License Elements means the license attributes listed in the name
|
||||
of a Creative Commons Public License. The License Elements of this
|
||||
Public License are Attribution and ShareAlike.
|
||||
|
||||
h. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
i. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
j. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
k. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
l. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
m. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part; and
|
||||
|
||||
b. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. Additional offer from the Licensor -- Adapted Material.
|
||||
Every recipient of Adapted Material from You
|
||||
automatically receives an offer from the Licensor to
|
||||
exercise the Licensed Rights in the Adapted Material
|
||||
under the conditions of the Adapter's License You apply.
|
||||
|
||||
c. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified
|
||||
form), You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
b. ShareAlike.
|
||||
|
||||
In addition to the conditions in Section 3(a), if You Share
|
||||
Adapted Material You produce, the following conditions also apply.
|
||||
|
||||
1. The Adapter's License You apply must be a Creative Commons
|
||||
license with the same License Elements, this version or
|
||||
later, or a BY-SA Compatible License.
|
||||
|
||||
2. You must include the text of, or the URI or hyperlink to, the
|
||||
Adapter's License You apply. You may satisfy this condition
|
||||
in any reasonable manner based on the medium, means, and
|
||||
context in which You Share Adapted Material.
|
||||
|
||||
3. You may not offer or impose any additional or different terms
|
||||
or conditions on, or apply any Effective Technological
|
||||
Measures to, Adapted Material that restrict exercise of the
|
||||
rights granted under the Adapter's License You apply.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material,
|
||||
|
||||
including for purposes of Section 3(b); and
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
otherwise permitted by the Creative Commons policies published at
|
||||
creativecommons.org/policies, Creative Commons does not authorize the
|
||||
use of the trademark "Creative Commons" or any other trademark or logo
|
||||
of Creative Commons without its prior written consent including,
|
||||
without limitation, in connection with any unauthorized modifications
|
||||
to any of its public licenses or any other arrangements,
|
||||
understandings, or agreements concerning use of licensed material. For
|
||||
the avoidance of doubt, this paragraph does not form part of the
|
||||
public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
86
basic_materials/electrical-electronic.lua
Normal file
@ -0,0 +1,86 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:silicon", {
|
||||
description = S("Silicon lump"),
|
||||
inventory_image = "basic_materials_silicon.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:ic", {
|
||||
description = S("Simple Integrated Circuit"),
|
||||
inventory_image = "basic_materials_ic.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:motor", {
|
||||
description = S("Simple Motor"),
|
||||
inventory_image = "basic_materials_motor.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:heating_element", {
|
||||
description = S("Heating element"),
|
||||
inventory_image = "basic_materials_heating_element.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:energy_crystal_simple", {
|
||||
description = S("Simple energy crystal"),
|
||||
inventory_image = "basic_materials_energy_crystal.png",
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "mesecons_materials:silicon 4",
|
||||
recipe = {
|
||||
{ "default:sand", "default:sand" },
|
||||
{ "default:sand", "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:ic 4",
|
||||
recipe = {
|
||||
{ "mesecons_materials:silicon", "mesecons_materials:silicon" },
|
||||
{ "mesecons_materials:silicon", "default:copper_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:motor 2",
|
||||
recipe = {
|
||||
{ "default:mese_crystal_fragment", "basic_materials:copper_wire", "basic_materials:plastic_sheet" },
|
||||
{ "default:copper_ingot", "default:steel_ingot", "default:steel_ingot" },
|
||||
{ "default:mese_crystal_fragment", "basic_materials:copper_wire", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
replacements = {
|
||||
{ "basic_materials:copper_wire", "basic_materials:empty_spool" },
|
||||
{ "basic_materials:copper_wire", "basic_materials:empty_spool" },
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:heating_element 2",
|
||||
recipe = {
|
||||
{ "default:copper_ingot", "default:mese_crystal_fragment", "default:copper_ingot" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
--type = "shapeless",
|
||||
output = "basic_materials:energy_crystal_simple 2",
|
||||
recipe = {
|
||||
{ "default:mese_crystal_fragment", "default:torch", "default:mese_crystal_fragment" },
|
||||
{ "default:diamond", "default:gold_ingot", "default:diamond" }
|
||||
},
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:ic", "basic_materials:ic")
|
||||
minetest.register_alias("homedecor:motor", "basic_materials:motor")
|
||||
minetest.register_alias("technic:motor", "basic_materials:motor")
|
||||
minetest.register_alias("homedecor:heating_element", "basic_materials:heating_element")
|
||||
minetest.register_alias("homedecor:power_crystal", "basic_materials:energy_crystal_simple")
|
||||
|
||||
minetest.register_alias_force("mesecons_materials:silicon", "basic_materials:silicon")
|
15
basic_materials/init.lua
Normal file
@ -0,0 +1,15 @@
|
||||
-- Basic materials mod
|
||||
-- by Vanessa Dannenberg
|
||||
|
||||
-- This mod supplies all those little random craft items that everyone always
|
||||
-- seems to need, such as metal bars (ala rebar), plastic, wire, and so on.
|
||||
|
||||
local modpath = minetest.get_modpath("basic_materials")
|
||||
|
||||
basic_materials = {}
|
||||
basic_materials.mod = { author = "Vanessa Dannenberg" }
|
||||
|
||||
dofile(modpath.."/metals.lua")
|
||||
dofile(modpath.."/plastics.lua")
|
||||
dofile(modpath.."/electrical-electronic.lua")
|
||||
dofile(modpath.."/misc.lua")
|
33
basic_materials/locale/basic_materials.de.tr
Normal file
@ -0,0 +1,33 @@
|
||||
# textdomain: basic_materials
|
||||
Silicon lump=Siliziumklumpen
|
||||
Simple Integrated Circuit=Einfacher Integrierter Schaltkreis
|
||||
Simple Motor=Einfacher Motor
|
||||
Heating element=Heizelement
|
||||
Simple energy crystal=Einfacher Energiekristall
|
||||
|
||||
Spool of steel wire=Spule mit Stahldraht
|
||||
Spool of copper wire=Spule mit Kupferdraht
|
||||
Spool of silver wire=Spule mit Silberdraht
|
||||
Spool of gold wire=Spule mit Golddraht
|
||||
Steel Strip=Stahlstreifen
|
||||
Copper Strip=Kupferstreifen
|
||||
Steel Bar=Stahlstab
|
||||
Chainlinks (brass)=Messingkettenglieder
|
||||
Chainlinks (steel)=Stahlkettenglieder
|
||||
Brass Ingot=Messingbarren
|
||||
Steel gear=Stahlzahnrad
|
||||
Padlock=Vorhängeschloss
|
||||
Chain (steel, hanging)=Hängende Stahlkette
|
||||
Chain (brass, hanging)=Hängende Messingkette
|
||||
Brass Block=Messingblock
|
||||
|
||||
Oil extract=Ölextrakt
|
||||
Unprocessed paraffin=Unverarbeitetes Paraffin
|
||||
Uncooked Terracotta Base=Ungebranntes Terrakotta
|
||||
Wet Cement=Nasser Zement
|
||||
Cement=Zement
|
||||
Concrete Block=Betonblock
|
||||
|
||||
Plastic sheet=Kunststoffplatte
|
||||
Plastic strips=Kunststoffstreifen
|
||||
Empty wire spool=Leere Drahtspule
|
33
basic_materials/locale/basic_materials.fr.tr
Normal file
@ -0,0 +1,33 @@
|
||||
# textdomain: basic_materials
|
||||
Silicon lump=Morceau de silicium
|
||||
Simple Integrated Circuit=Circuit intégré simple
|
||||
Simple Motor=Moteur simple
|
||||
Heating element=Élément chauffant
|
||||
Simple energy crystal=Cristal d’énergie simple
|
||||
|
||||
Spool of steel wire=Bobine de fil d’acier
|
||||
Spool of copper wire=Bobine de fil de cuivre
|
||||
Spool of silver wire=Bobine de fil d’argent
|
||||
Spool of gold wire=Bobine de fil d’or
|
||||
Steel Strip=Bande de acier
|
||||
Copper Strip=Bande de cuivre
|
||||
Steel Bar=Barre d’acier
|
||||
Chainlinks (brass)=Maillon en laiton
|
||||
Chainlinks (steel)=Maillon en acier
|
||||
Brass Ingot=Lingot de laiton
|
||||
Steel gear=Rouage en acier
|
||||
Padlock=Cadenas
|
||||
Chain (steel, hanging)=Chaine en acier
|
||||
Chain (brass, hanging)=Chaine en laiton
|
||||
Brass Block=Bloc de laiton
|
||||
|
||||
Oil extract=Extrait d’huile
|
||||
Unprocessed paraffin=Paraffine non transformée
|
||||
Uncooked Terracotta Base=Argile crue
|
||||
Wet Cement=Ciment humide
|
||||
Cement=Ciment
|
||||
Concrete Block=Bloc de béton
|
||||
|
||||
Plastic sheet=Morceau de plastique
|
||||
Plastic strips=Bande de plastique
|
||||
Empty wire spool=Bobine de fil vide
|
34
basic_materials/locale/basic_materials.it.tr
Normal file
@ -0,0 +1,34 @@
|
||||
# textdomain: basic_materials
|
||||
# Author: Salvo 'LtWorf' Tomaselli <tiposchi@tiscali.it>
|
||||
Silicon lump=Grumo di silicio
|
||||
Simple Integrated Circuit=Circuito integrato semplice
|
||||
Simple Motor=Motore semplice
|
||||
Heating element=Elemento riscaldante
|
||||
Simple energy crystal=Cristallo di energia semplice
|
||||
|
||||
Spool of steel wire=Bobina di filo d'acciaio
|
||||
Spool of copper wire=Bobina di filo di rame
|
||||
Spool of silver wire=Bobina di filo d'argento
|
||||
Spool of gold wire=Bobina di filo d'oro
|
||||
Steel Strip=Striscia d'acciaio
|
||||
Copper Strip=Striscia di rame
|
||||
Steel Bar=Barra d'acciaio
|
||||
Chainlinks (brass)=Catena (ottone)
|
||||
Chainlinks (steel)=Catena (acciaio)
|
||||
Brass Ingot=Lingotto di ottone
|
||||
Steel gear=Ingranaggio d'acciaio
|
||||
Padlock=Catenaccio
|
||||
Chain (steel, hanging)=Catena (acciaio, pendente)
|
||||
Chain (brass, hanging)=Catena (ottone, pendente)
|
||||
Brass Block=Blocco di ottone
|
||||
|
||||
Oil extract=Estratto d'olio
|
||||
Unprocessed paraffin=Paraffina grezza
|
||||
Uncooked Terracotta Base=Argilla cruda
|
||||
Wet Cement=Cemento umido
|
||||
Cement=Cemento
|
||||
Concrete Block=Blocco di calcestruzzo
|
||||
|
||||
Plastic sheet=Foglio di plastica
|
||||
Plastic strips=Striscia di plastica
|
||||
Empty wire spool=Rocchetto vuoto
|
33
basic_materials/locale/basic_materials.ru.tr
Normal file
@ -0,0 +1,33 @@
|
||||
# textdomain: basic_materials
|
||||
Silicon lump=Кусок Кремния
|
||||
Simple Integrated Circuit=Микросхема
|
||||
Simple Motor=Мотор
|
||||
Heating element=Нить Накала
|
||||
Simple energy crystal=Энергетический Кристалл
|
||||
|
||||
Spool of steel wire=Катушка Стальной Проволоки
|
||||
Spool of copper wire=Катушка Медной Проволоки
|
||||
Spool of silver wire=Катушка Серебрянной Проволоки
|
||||
Spool of gold wire=Катушка Золотой Проволоки
|
||||
Steel Strip=Стальная Полоса
|
||||
Copper Strip=Медная Полоса
|
||||
Steel Bar=Стальной Прут
|
||||
Chainlinks (brass)=Латунные Звенья
|
||||
Chainlinks (steel)=Стальные Звенья
|
||||
Brass Ingot=Латунный Брусок
|
||||
Steel gear=Стальная Шестерня
|
||||
Padlock=Навесной Замок
|
||||
Chain (steel, hanging)=Стальная Цепь
|
||||
Chain (brass, hanging)=Латунная Цепь
|
||||
Brass Block=Латунный Блок
|
||||
|
||||
Oil extract=Масляный Экстракт
|
||||
Unprocessed paraffin=Необработанный Парафин
|
||||
Uncooked Terracotta Base=Ком Мокрого Терракота
|
||||
Wet Cement=Ком Мокрого Цемента
|
||||
Cement=Цемент
|
||||
Concrete Block=Железобетон
|
||||
|
||||
Plastic sheet=Пластиковый Лист
|
||||
Plastic strips=Пластиковая Полоса
|
||||
Empty wire spool=Пустая Катушка
|
300
basic_materials/metals.lua
Normal file
@ -0,0 +1,300 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_wire", {
|
||||
description = S("Spool of steel wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_steel_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:copper_wire", {
|
||||
description = S("Spool of copper wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_copper_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:silver_wire", {
|
||||
description = S("Spool of silver wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_silver_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gold_wire", {
|
||||
description = S("Spool of gold wire"),
|
||||
groups = { wire = 1 },
|
||||
inventory_image = "basic_materials_gold_wire.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_strip", {
|
||||
description = S("Steel Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_steel_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:copper_strip", {
|
||||
description = S("Copper Strip"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_copper_strip.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:steel_bar", {
|
||||
description = S("Steel Bar"),
|
||||
inventory_image = "basic_materials_steel_bar.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:chainlink_brass", {
|
||||
description = S("Chainlinks (brass)"),
|
||||
groups = { chainlinks = 1 },
|
||||
inventory_image = "basic_materials_chainlink_brass.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:chainlink_steel", {
|
||||
description = S("Chainlinks (steel)"),
|
||||
groups = { chainlinks = 1 },
|
||||
inventory_image = "basic_materials_chainlink_steel.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:brass_ingot", {
|
||||
description = S("Brass Ingot"),
|
||||
inventory_image = "basic_materials_brass_ingot.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:gear_steel", {
|
||||
description = S("Steel gear"),
|
||||
inventory_image = "basic_materials_gear_steel.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:padlock", {
|
||||
description = S("Padlock"),
|
||||
inventory_image = "basic_materials_padlock.png"
|
||||
})
|
||||
|
||||
-- nodes
|
||||
|
||||
local chains_sbox = {
|
||||
type = "fixed",
|
||||
fixed = { -0.1, -0.5, -0.1, 0.1, 0.5, 0.1 }
|
||||
}
|
||||
|
||||
minetest.register_node("basic_materials:chain_steel", {
|
||||
description = S("Chain (steel, hanging)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "basic_materials_chains.obj",
|
||||
tiles = {"basic_materials_chain_steel.png"},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "basic_materials_chain_steel_inv.png",
|
||||
groups = {cracky=3},
|
||||
selection_box = chains_sbox,
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:chain_brass", {
|
||||
description = S("Chain (brass, hanging)"),
|
||||
drawtype = "mesh",
|
||||
mesh = "basic_materials_chains.obj",
|
||||
tiles = {"basic_materials_chain_brass.png"},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
sunlight_propagates = true,
|
||||
paramtype = "light",
|
||||
inventory_image = "basic_materials_chain_brass_inv.png",
|
||||
groups = {cracky=3},
|
||||
selection_box = chains_sbox,
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:brass_block", {
|
||||
description = S("Brass Block"),
|
||||
tiles = { "basic_materials_brass_block.png" },
|
||||
is_ground_content = false,
|
||||
groups = {cracky=1, level=2},
|
||||
sounds = default.node_sound_metal_defaults()
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:copper_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"default:copper_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:silver_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"moreores:silver_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:gold_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"default:gold_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:steel_wire 2",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"default:steel_ingot",
|
||||
"basic_materials:empty_spool",
|
||||
"basic_materials:empty_spool",
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:steel_strip 12",
|
||||
recipe = {
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "default:steel_ingot", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:copper_strip 12",
|
||||
recipe = {
|
||||
{ "", "default:copper_ingot", "" },
|
||||
{ "default:copper_ingot", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:steel_bar 6",
|
||||
recipe = {
|
||||
{ "", "", "default:steel_ingot" },
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "default:steel_ingot", "", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:padlock 2",
|
||||
recipe = {
|
||||
{ "basic_materials:steel_bar" },
|
||||
{ "default:steel_ingot" },
|
||||
{ "default:steel_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "basic_materials:chainlink_steel 12",
|
||||
recipe = {
|
||||
{"", "default:steel_ingot", "default:steel_ingot"},
|
||||
{ "default:steel_ingot", "", "default:steel_ingot" },
|
||||
{ "default:steel_ingot", "default:steel_ingot", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "basic_materials:chainlink_brass 12",
|
||||
recipe = {
|
||||
{"", "basic_materials:brass_ingot", "basic_materials:brass_ingot"},
|
||||
{ "basic_materials:brass_ingot", "", "basic_materials:brass_ingot" },
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "" },
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'basic_materials:chain_steel 2',
|
||||
recipe = {
|
||||
{"basic_materials:chainlink_steel"},
|
||||
{"basic_materials:chainlink_steel"},
|
||||
{"basic_materials:chainlink_steel"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'basic_materials:chain_brass 2',
|
||||
recipe = {
|
||||
{"basic_materials:chainlink_brass"},
|
||||
{"basic_materials:chainlink_brass"},
|
||||
{"basic_materials:chainlink_brass"}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:gear_steel 6",
|
||||
recipe = {
|
||||
{ "", "default:steel_ingot", "" },
|
||||
{ "default:steel_ingot","basic_materials:chainlink_steel", "default:steel_ingot" },
|
||||
{ "", "default:steel_ingot", "" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:brass_ingot 3",
|
||||
recipe = {
|
||||
"default:copper_ingot",
|
||||
"default:copper_ingot",
|
||||
"moreores:silver_ingot",
|
||||
},
|
||||
})
|
||||
|
||||
if not minetest.get_modpath("moreores") then
|
||||
-- Without moreores, there still should be a way to create brass.
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:brass_ingot 9",
|
||||
recipe = {
|
||||
{"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"},
|
||||
{"default:gold_ingot", "default:copper_ingot", "default:gold_ingot"},
|
||||
{"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"},
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:brass_ingot 9",
|
||||
recipe = { "basic_materials:brass_block" },
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:brass_block",
|
||||
recipe = {
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
|
||||
{ "basic_materials:brass_ingot", "basic_materials:brass_ingot", "basic_materials:brass_ingot" },
|
||||
},
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:copper_wire", "basic_materials:copper_wire")
|
||||
minetest.register_alias("technic:fine_copper_wire", "basic_materials:copper_wire")
|
||||
minetest.register_alias("technic:fine_silver_wire", "basic_materials:silver_wire")
|
||||
minetest.register_alias("technic:fine_gold_wire", "basic_materials:gold_wire")
|
||||
|
||||
minetest.register_alias("homedecor:steel_wire", "basic_materials:steel_wire")
|
||||
|
||||
minetest.register_alias("homedecor:brass_ingot", "basic_materials:brass_ingot")
|
||||
minetest.register_alias("technic:brass_ingot", "basic_materials:brass_ingot")
|
||||
minetest.register_alias("technic:brass_block", "basic_materials:brass_block")
|
||||
|
||||
minetest.register_alias("homedecor:copper_strip", "basic_materials:copper_strip")
|
||||
minetest.register_alias("homedecor:steel_strip", "basic_materials:steel_strip")
|
||||
|
||||
minetest.register_alias_force("glooptest:chainlink", "basic_materials:chainlink_steel")
|
||||
minetest.register_alias_force("homedecor:chainlink_steel", "basic_materials:chainlink_steel")
|
||||
minetest.register_alias("homedecor:chainlink_brass", "basic_materials:chainlink_brass")
|
||||
minetest.register_alias("chains:chain", "basic_materials:chain_steel")
|
||||
minetest.register_alias("chains:chain_brass", "basic_materials:chain_brass")
|
||||
|
||||
minetest.register_alias("pipeworks:gear", "basic_materials:gear_steel")
|
||||
|
||||
minetest.register_alias("technic:rebar", "basic_materials:steel_bar")
|
||||
|
126
basic_materials/misc.lua
Normal file
@ -0,0 +1,126 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:oil_extract", {
|
||||
description = S("Oil extract"),
|
||||
inventory_image = "basic_materials_oil_extract.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:paraffin", {
|
||||
description = S("Unprocessed paraffin"),
|
||||
inventory_image = "basic_materials_paraffin.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:terracotta_base", {
|
||||
description = S("Uncooked Terracotta Base"),
|
||||
inventory_image = "basic_materials_terracotta_base.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:wet_cement", {
|
||||
description = S("Wet Cement"),
|
||||
inventory_image = "basic_materials_wet_cement.png",
|
||||
})
|
||||
|
||||
-- nodes
|
||||
|
||||
minetest.register_node("basic_materials:cement_block", {
|
||||
description = S("Cement"),
|
||||
tiles = {"basic_materials_cement_block.png"},
|
||||
is_ground_content = true,
|
||||
groups = {cracky=2},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("basic_materials:concrete_block", {
|
||||
description = S("Concrete Block"),
|
||||
tiles = {"basic_materials_concrete_block.png",},
|
||||
groups = {cracky=1, level=2, concrete=1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "basic_materials:oil_extract 2",
|
||||
recipe = {
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves",
|
||||
"group:leaves"
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:paraffin",
|
||||
recipe = "basic_materials:oil_extract",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:oil_extract",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:paraffin",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
type = "shapeless",
|
||||
output = "basic_materials:terracotta_base 8",
|
||||
recipe = {
|
||||
"bucket:bucket_water",
|
||||
"default:clay_lump",
|
||||
"default:gravel",
|
||||
},
|
||||
replacements = { {"bucket:bucket_water", "bucket:bucket_empty"}, },
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "basic_materials:wet_cement 3",
|
||||
recipe = {
|
||||
"default:dirt",
|
||||
"dye:dark_grey",
|
||||
"dye:dark_grey",
|
||||
"dye:dark_grey",
|
||||
"bucket:bucket_water"
|
||||
},
|
||||
replacements = {{'bucket:bucket_water', 'bucket:bucket_empty'},},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:cement_block",
|
||||
recipe = "basic_materials:wet_cement",
|
||||
cooktime = 8
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'basic_materials:concrete_block 6',
|
||||
recipe = {
|
||||
{'group:sand', 'basic_materials:wet_cement', 'default:gravel'},
|
||||
{'basic_materials:steel_bar', 'basic_materials:wet_cement', 'basic_materials:steel_bar'},
|
||||
{'default:gravel', 'basic_materials:wet_cement', 'group:sand'},
|
||||
}
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:oil_extract", "basic_materials:oil_extract")
|
||||
minetest.register_alias("homedecor:paraffin", "basic_materials:paraffin")
|
||||
minetest.register_alias("homedecor:plastic_base", "basic_materials:paraffin")
|
||||
minetest.register_alias("homedecor:terracotta_base", "basic_materials:terracotta_base")
|
||||
|
||||
minetest.register_alias("gloopblocks:wet_cement", "basic_materials:wet_cement")
|
||||
minetest.register_alias("gloopblocks:cement", "basic_materials:cement_block")
|
||||
|
||||
minetest.register_alias("technic:concrete", "basic_materials:concrete_block")
|
4
basic_materials/mod.conf
Normal file
@ -0,0 +1,4 @@
|
||||
name = basic_materials
|
||||
depends = default
|
||||
optional_depends = moreores
|
||||
min_minetest_version = 5.2.0
|
881
basic_materials/models/basic_materials_chains.obj
Normal file
@ -0,0 +1,881 @@
|
||||
# Blender v2.73 (sub 0) OBJ File: 'chains.blend'
|
||||
# www.blender.org
|
||||
o Torus.016_Torus
|
||||
v 0.000000 -0.429978 0.000002
|
||||
v 0.000000 -0.401109 0.055211
|
||||
v -0.014044 -0.391975 0.048870
|
||||
v -0.014044 -0.423304 0.000002
|
||||
v -0.009826 -0.379748 0.040970
|
||||
v -0.009826 -0.406012 0.000002
|
||||
v 0.009826 -0.379748 0.040970
|
||||
v 0.009826 -0.406012 0.000002
|
||||
v 0.014044 -0.391975 0.048870
|
||||
v 0.014044 -0.423304 0.000002
|
||||
v 0.000000 -0.316336 0.080195
|
||||
v -0.014044 -0.316336 0.069112
|
||||
v -0.009826 -0.316336 0.057941
|
||||
v 0.009826 -0.316336 0.057941
|
||||
v 0.014044 -0.316336 0.069112
|
||||
v 0.000000 -0.231564 0.055211
|
||||
v -0.014044 -0.240700 0.048870
|
||||
v -0.009826 -0.252925 0.040970
|
||||
v 0.009826 -0.252925 0.040970
|
||||
v 0.014044 -0.240700 0.048870
|
||||
v 0.000000 -0.202695 0.000002
|
||||
v -0.014044 -0.209368 0.000002
|
||||
v -0.009826 -0.226661 0.000002
|
||||
v 0.009826 -0.226661 0.000002
|
||||
v 0.014044 -0.209368 0.000002
|
||||
v 0.000000 -0.231564 -0.055206
|
||||
v -0.014044 -0.240700 -0.048868
|
||||
v -0.009826 -0.252925 -0.040967
|
||||
v 0.009826 -0.252925 -0.040967
|
||||
v 0.014044 -0.240700 -0.048865
|
||||
v 0.000000 -0.316336 -0.080190
|
||||
v -0.014044 -0.316336 -0.069108
|
||||
v -0.009826 -0.316336 -0.057936
|
||||
v 0.009826 -0.316336 -0.057936
|
||||
v 0.014044 -0.316336 -0.069108
|
||||
v 0.000000 -0.400361 -0.055206
|
||||
v -0.014044 -0.391975 -0.048868
|
||||
v -0.009826 -0.379748 -0.040967
|
||||
v 0.009826 -0.379748 -0.040967
|
||||
v 0.014044 -0.391975 -0.048868
|
||||
v 0.000000 -0.262249 0.000002
|
||||
v -0.061672 -0.233381 0.000002
|
||||
v -0.054590 -0.224245 -0.012569
|
||||
v 0.000000 -0.255577 -0.012569
|
||||
v -0.045765 -0.212018 -0.008794
|
||||
v 0.000000 -0.238285 -0.008794
|
||||
v -0.045765 -0.212018 0.008798
|
||||
v 0.000000 -0.238285 0.008798
|
||||
v -0.054590 -0.224245 0.012574
|
||||
v 0.000000 -0.255577 0.012574
|
||||
v -0.089582 -0.148609 0.000002
|
||||
v -0.077200 -0.148609 -0.012569
|
||||
v -0.064722 -0.148609 -0.008794
|
||||
v -0.064722 -0.148609 0.008799
|
||||
v -0.077200 -0.148609 0.012574
|
||||
v -0.061672 -0.063837 0.000002
|
||||
v -0.054590 -0.072971 -0.012569
|
||||
v -0.045765 -0.085198 -0.008794
|
||||
v -0.045765 -0.085198 0.008799
|
||||
v -0.054590 -0.072971 0.012574
|
||||
v 0.000000 -0.034967 0.000002
|
||||
v 0.000000 -0.041641 -0.012569
|
||||
v 0.000000 -0.058933 -0.008794
|
||||
v 0.000000 -0.058933 0.008799
|
||||
v 0.000000 -0.041641 0.012574
|
||||
v 0.061672 -0.063837 0.000002
|
||||
v 0.054590 -0.072971 -0.012569
|
||||
v 0.045765 -0.085198 -0.008794
|
||||
v 0.045765 -0.085198 0.008799
|
||||
v 0.054590 -0.072971 0.012574
|
||||
v 0.089582 -0.148609 0.000002
|
||||
v 0.077200 -0.148609 -0.012569
|
||||
v 0.064722 -0.148609 -0.008794
|
||||
v 0.064722 -0.148609 0.008799
|
||||
v 0.077200 -0.148609 0.012574
|
||||
v 0.061672 -0.232631 0.000002
|
||||
v 0.054590 -0.224245 -0.012569
|
||||
v 0.045765 -0.212018 -0.008794
|
||||
v 0.045765 -0.212018 0.008798
|
||||
v 0.054590 -0.224245 0.012574
|
||||
v 0.000000 0.073316 0.000002
|
||||
v 0.061672 0.102183 0.000002
|
||||
v 0.054590 0.111319 0.012574
|
||||
v 0.000000 0.079988 0.012574
|
||||
v 0.045765 0.123546 0.008799
|
||||
v 0.000000 0.097280 0.008799
|
||||
v 0.045765 0.123546 -0.008794
|
||||
v 0.000000 0.097280 -0.008794
|
||||
v 0.054590 0.111319 -0.012569
|
||||
v 0.000000 0.079988 -0.012569
|
||||
v 0.089582 0.186956 0.000002
|
||||
v 0.077200 0.186956 0.012574
|
||||
v 0.064722 0.186956 0.008799
|
||||
v 0.064722 0.186956 -0.008794
|
||||
v 0.077200 0.186956 -0.012569
|
||||
v 0.061672 0.271728 0.000002
|
||||
v 0.054590 0.262594 0.012574
|
||||
v 0.045765 0.250367 0.008799
|
||||
v 0.045765 0.250367 -0.008794
|
||||
v 0.054590 0.262594 -0.012569
|
||||
v 0.000000 0.300597 0.000002
|
||||
v 0.000000 0.293923 0.012574
|
||||
v 0.000000 0.276631 0.008799
|
||||
v 0.000000 0.276631 -0.008794
|
||||
v 0.000000 0.293923 -0.012569
|
||||
v -0.061672 0.271728 0.000002
|
||||
v -0.054590 0.262594 0.012574
|
||||
v -0.045765 0.250367 0.008799
|
||||
v -0.045765 0.250367 -0.008794
|
||||
v -0.054590 0.262594 -0.012569
|
||||
v -0.089582 0.186956 0.000002
|
||||
v -0.077200 0.186956 0.012574
|
||||
v -0.064722 0.186956 0.008799
|
||||
v -0.064722 0.186956 -0.008794
|
||||
v -0.077200 0.186956 -0.012569
|
||||
v -0.061672 0.102931 0.000002
|
||||
v -0.054590 0.111319 0.012574
|
||||
v -0.045765 0.123546 0.008799
|
||||
v -0.045765 0.123546 -0.008794
|
||||
v -0.054590 0.111319 -0.012569
|
||||
v 0.000000 -0.095037 0.000002
|
||||
v 0.000000 -0.066168 -0.055206
|
||||
v 0.014044 -0.057034 -0.048868
|
||||
v 0.014044 -0.088363 0.000002
|
||||
v 0.009826 -0.044807 -0.040967
|
||||
v 0.009826 -0.071071 0.000002
|
||||
v -0.009826 -0.044807 -0.040967
|
||||
v -0.009826 -0.071071 0.000002
|
||||
v -0.014044 -0.057034 -0.048868
|
||||
v -0.014044 -0.088363 0.000002
|
||||
v 0.000000 0.018605 -0.080190
|
||||
v 0.014044 0.018605 -0.069108
|
||||
v 0.009826 0.018605 -0.057936
|
||||
v -0.009826 0.018605 -0.057936
|
||||
v -0.014044 0.018605 -0.069108
|
||||
v 0.000000 0.103377 -0.055206
|
||||
v 0.014044 0.094243 -0.048868
|
||||
v 0.009826 0.082016 -0.040967
|
||||
v -0.009826 0.082016 -0.040967
|
||||
v -0.014044 0.094243 -0.048868
|
||||
v 0.000000 0.132246 0.000002
|
||||
v 0.014044 0.125572 0.000002
|
||||
v 0.009826 0.108280 0.000002
|
||||
v -0.009826 0.108280 0.000002
|
||||
v -0.014044 0.125572 0.000002
|
||||
v 0.000000 0.103377 0.055211
|
||||
v 0.014044 0.094243 0.048870
|
||||
v 0.009826 0.082016 0.040970
|
||||
v -0.009826 0.082016 0.040970
|
||||
v -0.014044 0.094243 0.048870
|
||||
v 0.000000 0.018605 0.080195
|
||||
v 0.014044 0.018605 0.069112
|
||||
v 0.009826 0.018605 0.057941
|
||||
v -0.009826 0.018605 0.057941
|
||||
v -0.014044 0.018605 0.069112
|
||||
v 0.000000 -0.065420 0.055211
|
||||
v 0.014044 -0.057032 0.048870
|
||||
v 0.009826 -0.044807 0.040970
|
||||
v -0.009826 -0.044807 0.040970
|
||||
v -0.014044 -0.057032 0.048870
|
||||
v 0.000000 -0.598329 0.000002
|
||||
v 0.061672 -0.569460 0.000002
|
||||
v 0.054590 -0.560326 0.012574
|
||||
v 0.000000 -0.591655 0.012574
|
||||
v 0.045765 -0.548099 0.008798
|
||||
v 0.000000 -0.574363 0.008798
|
||||
v 0.045765 -0.548099 -0.008794
|
||||
v 0.000000 -0.574363 -0.008794
|
||||
v 0.054590 -0.560326 -0.012569
|
||||
v 0.000000 -0.591655 -0.012569
|
||||
v 0.089582 -0.484687 0.000002
|
||||
v 0.077200 -0.484687 0.012574
|
||||
v 0.064722 -0.484687 0.008798
|
||||
v 0.064722 -0.484687 -0.008794
|
||||
v 0.077200 -0.484687 -0.012569
|
||||
v 0.061672 -0.399915 0.000002
|
||||
v 0.054590 -0.409051 0.012574
|
||||
v 0.045765 -0.421278 0.008798
|
||||
v 0.045765 -0.421278 -0.008794
|
||||
v 0.054590 -0.409051 -0.012569
|
||||
v 0.000000 -0.371048 0.000002
|
||||
v 0.000000 -0.377719 0.012574
|
||||
v 0.000000 -0.395012 0.008798
|
||||
v 0.000000 -0.395012 -0.008794
|
||||
v 0.000000 -0.377719 -0.012569
|
||||
v -0.061672 -0.399915 0.000002
|
||||
v -0.054590 -0.409051 0.012574
|
||||
v -0.045765 -0.421278 0.008798
|
||||
v -0.045765 -0.421278 -0.008794
|
||||
v -0.054590 -0.409051 -0.012569
|
||||
v -0.089582 -0.484687 0.000002
|
||||
v -0.077200 -0.484687 0.012574
|
||||
v -0.064722 -0.484687 0.008798
|
||||
v -0.064722 -0.484687 -0.008794
|
||||
v -0.077200 -0.484687 -0.012569
|
||||
v -0.061672 -0.568712 0.000002
|
||||
v -0.054590 -0.560326 0.012574
|
||||
v -0.045765 -0.548099 0.008798
|
||||
v -0.045765 -0.548099 -0.008794
|
||||
v -0.054590 -0.560326 -0.012569
|
||||
v 0.000000 0.241043 0.000002
|
||||
v 0.000000 0.269910 0.055211
|
||||
v -0.014044 0.279047 0.048870
|
||||
v -0.014044 0.247717 0.000002
|
||||
v -0.009826 0.291274 0.040970
|
||||
v -0.009826 0.265007 0.000002
|
||||
v 0.009826 0.291274 0.040970
|
||||
v 0.009826 0.265007 0.000002
|
||||
v 0.014044 0.279047 0.048870
|
||||
v 0.014044 0.247717 0.000002
|
||||
v 0.000000 0.354683 0.080195
|
||||
v -0.014044 0.354683 0.069112
|
||||
v -0.009826 0.354683 0.057941
|
||||
v 0.009826 0.354683 0.057941
|
||||
v 0.014044 0.354683 0.069112
|
||||
v 0.000000 0.439455 0.055211
|
||||
v -0.014044 0.430321 0.048870
|
||||
v -0.009826 0.418094 0.040970
|
||||
v 0.009826 0.418094 0.040970
|
||||
v 0.014044 0.430321 0.048870
|
||||
v 0.000000 0.468325 0.000002
|
||||
v -0.014044 0.461651 0.000002
|
||||
v -0.009826 0.444361 0.000002
|
||||
v 0.009826 0.444361 0.000002
|
||||
v 0.014044 0.461651 0.000002
|
||||
v 0.000000 0.439455 -0.055206
|
||||
v -0.014044 0.430321 -0.048868
|
||||
v -0.009826 0.418094 -0.040967
|
||||
v 0.009826 0.418094 -0.040967
|
||||
v 0.014044 0.430321 -0.048868
|
||||
v 0.000000 0.354683 -0.080190
|
||||
v -0.014044 0.354683 -0.069108
|
||||
v -0.009826 0.354683 -0.057936
|
||||
v 0.009826 0.354683 -0.057936
|
||||
v 0.014044 0.354683 -0.069108
|
||||
v 0.000000 0.270661 -0.055206
|
||||
v -0.014044 0.279047 -0.048868
|
||||
v -0.009826 0.291274 -0.040967
|
||||
v 0.009826 0.291274 -0.040967
|
||||
v 0.014044 0.279047 -0.048868
|
||||
vt 0.187500 0.125000
|
||||
vt 0.250000 0.125000
|
||||
vt 0.250000 0.187500
|
||||
vt 0.187500 0.187500
|
||||
vt 0.250000 0.250000
|
||||
vt 0.187500 0.250000
|
||||
vt 0.250000 0.312500
|
||||
vt 0.187500 0.312500
|
||||
vt 0.250000 0.375000
|
||||
vt 0.187500 0.375000
|
||||
vt 0.187500 0.062500
|
||||
vt 0.250000 0.062500
|
||||
vt 0.312500 0.125000
|
||||
vt 0.312500 0.187500
|
||||
vt 0.312500 0.250000
|
||||
vt 0.312500 0.312500
|
||||
vt 0.312500 0.375000
|
||||
vt 0.312500 0.062500
|
||||
vt 0.375000 0.125000
|
||||
vt 0.375000 0.187500
|
||||
vt 0.375000 0.250000
|
||||
vt 0.375000 0.312500
|
||||
vt 0.375000 0.375000
|
||||
vt 0.375000 0.062500
|
||||
vt 0.437500 0.125000
|
||||
vt 0.437500 0.187500
|
||||
vt 0.437500 0.250000
|
||||
vt 0.437500 0.312500
|
||||
vt 0.437500 0.375000
|
||||
vt 0.437500 0.062500
|
||||
vt 0.500000 0.125000
|
||||
vt 0.500000 0.187500
|
||||
vt 0.500000 0.250000
|
||||
vt 0.500000 0.312500
|
||||
vt 0.500000 0.375000
|
||||
vt 0.500000 0.062500
|
||||
vt -0.000000 0.125000
|
||||
vt 0.062500 0.125000
|
||||
vt 0.062500 0.187500
|
||||
vt -0.000000 0.187500
|
||||
vt 0.062500 0.250000
|
||||
vt -0.000000 0.250000
|
||||
vt 0.062500 0.312500
|
||||
vt -0.000000 0.312500
|
||||
vt 0.062500 0.375000
|
||||
vt -0.000000 0.375000
|
||||
vt -0.000000 0.062500
|
||||
vt 0.062500 0.062500
|
||||
vt 0.125000 0.125000
|
||||
vt 0.125000 0.187500
|
||||
vt 0.125000 0.250000
|
||||
vt 0.125000 0.312500
|
||||
vt 0.125000 0.375000
|
||||
vt 0.125000 0.062500
|
||||
vt 0.750000 0.625000
|
||||
vt 0.812500 0.625000
|
||||
vt 0.812500 0.687500
|
||||
vt 0.750000 0.687500
|
||||
vt 0.750000 0.375000
|
||||
vt 0.812500 0.375000
|
||||
vt 0.812500 0.437500
|
||||
vt 0.750000 0.437500
|
||||
vt 0.812500 0.500000
|
||||
vt 0.750000 0.500000
|
||||
vt 0.812500 0.562500
|
||||
vt 0.750000 0.562500
|
||||
vt 0.875000 0.625000
|
||||
vt 0.875000 0.687500
|
||||
vt 0.875000 0.375000
|
||||
vt 0.875000 0.437500
|
||||
vt 0.875000 0.500000
|
||||
vt 0.875000 0.562500
|
||||
vt 0.937500 0.625000
|
||||
vt 0.937500 0.687500
|
||||
vt 0.937500 0.375000
|
||||
vt 0.937500 0.437500
|
||||
vt 0.937500 0.500000
|
||||
vt 0.937500 0.562500
|
||||
vt 1.000000 0.625000
|
||||
vt 1.000000 0.687500
|
||||
vt 1.000000 0.375000
|
||||
vt 1.000000 0.437500
|
||||
vt 1.000000 0.500000
|
||||
vt 1.000000 0.562500
|
||||
vt 0.500000 0.625000
|
||||
vt 0.562500 0.625000
|
||||
vt 0.562500 0.687500
|
||||
vt 0.500000 0.687500
|
||||
vt 0.562500 0.375000
|
||||
vt 0.562500 0.437500
|
||||
vt 0.500000 0.437500
|
||||
vt 0.562500 0.500000
|
||||
vt 0.500000 0.500000
|
||||
vt 0.562500 0.562500
|
||||
vt 0.500000 0.562500
|
||||
vt 0.625000 0.625000
|
||||
vt 0.625000 0.687500
|
||||
vt 0.625000 0.375000
|
||||
vt 0.625000 0.437500
|
||||
vt 0.625000 0.500000
|
||||
vt 0.625000 0.562500
|
||||
vt 0.687500 0.625000
|
||||
vt 0.687500 0.687500
|
||||
vt 0.687500 0.375000
|
||||
vt 0.687500 0.437500
|
||||
vt 0.687500 0.500000
|
||||
vt 0.687500 0.562500
|
||||
vt 0.250000 0.625000
|
||||
vt 0.312500 0.625000
|
||||
vt 0.312500 0.687500
|
||||
vt 0.250000 0.687500
|
||||
vt 0.312500 0.437500
|
||||
vt 0.250000 0.437500
|
||||
vt 0.312500 0.500000
|
||||
vt 0.250000 0.500000
|
||||
vt 0.312500 0.562500
|
||||
vt 0.250000 0.562500
|
||||
vt 0.375000 0.625000
|
||||
vt 0.375000 0.687500
|
||||
vt 0.375000 0.437500
|
||||
vt 0.375000 0.500000
|
||||
vt 0.375000 0.562500
|
||||
vt 0.437500 0.625000
|
||||
vt 0.437500 0.687500
|
||||
vt 0.437500 0.437500
|
||||
vt 0.437500 0.500000
|
||||
vt 0.437500 0.562500
|
||||
vt -0.000000 0.625000
|
||||
vt 0.062500 0.625000
|
||||
vt 0.062500 0.687500
|
||||
vt -0.000000 0.687500
|
||||
vt 0.062500 0.437500
|
||||
vt -0.000000 0.437500
|
||||
vt 0.062500 0.500000
|
||||
vt -0.000000 0.500000
|
||||
vt 0.062500 0.562500
|
||||
vt -0.000000 0.562500
|
||||
vt 0.125000 0.625000
|
||||
vt 0.125000 0.687500
|
||||
vt 0.125000 0.437500
|
||||
vt 0.125000 0.500000
|
||||
vt 0.125000 0.562500
|
||||
vt 0.187500 0.625000
|
||||
vt 0.187500 0.687500
|
||||
vt 0.187500 0.437500
|
||||
vt 0.187500 0.500000
|
||||
vt 0.187500 0.562500
|
||||
vt 0.687500 0.750000
|
||||
vt 0.750000 0.750000
|
||||
vt 0.750000 0.812500
|
||||
vt 0.687500 0.812500
|
||||
vt 0.750000 0.875000
|
||||
vt 0.687500 0.875000
|
||||
vt 0.750000 0.937500
|
||||
vt 0.687500 0.937500
|
||||
vt 0.750000 1.000000
|
||||
vt 0.687500 1.000000
|
||||
vt 0.812500 0.750000
|
||||
vt 0.812500 0.812500
|
||||
vt 0.812500 0.875000
|
||||
vt 0.812500 0.937500
|
||||
vt 0.812500 1.000000
|
||||
vt 0.875000 0.750000
|
||||
vt 0.875000 0.812500
|
||||
vt 0.875000 0.875000
|
||||
vt 0.875000 0.937500
|
||||
vt 0.875000 1.000000
|
||||
vt 0.937500 0.750000
|
||||
vt 0.937500 0.812500
|
||||
vt 0.937500 0.875000
|
||||
vt 0.937500 0.937500
|
||||
vt 0.937500 1.000000
|
||||
vt 1.000000 0.750000
|
||||
vt 1.000000 0.812500
|
||||
vt 1.000000 0.875000
|
||||
vt 1.000000 0.937500
|
||||
vt 1.000000 1.000000
|
||||
vt 0.500000 0.750000
|
||||
vt 0.562500 0.750000
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.812500
|
||||
vt 0.562500 0.875000
|
||||
vt 0.500000 0.875000
|
||||
vt 0.562500 0.937500
|
||||
vt 0.500000 0.937500
|
||||
vt 0.562500 1.000000
|
||||
vt 0.500000 1.000000
|
||||
vt 0.625000 0.750000
|
||||
vt 0.625000 0.812500
|
||||
vt 0.625000 0.875000
|
||||
vt 0.625000 0.937500
|
||||
vt 0.625000 1.000000
|
||||
vt 0.750000 0.312500
|
||||
vt 0.812500 0.312500
|
||||
vt 0.750000 0.062500
|
||||
vt 0.812500 0.062500
|
||||
vt 0.812500 0.125000
|
||||
vt 0.750000 0.125000
|
||||
vt 0.812500 0.187500
|
||||
vt 0.750000 0.187500
|
||||
vt 0.812500 0.250000
|
||||
vt 0.750000 0.250000
|
||||
vt 0.875000 0.312500
|
||||
vt 0.875000 0.062500
|
||||
vt 0.875000 0.125000
|
||||
vt 0.875000 0.187500
|
||||
vt 0.875000 0.250000
|
||||
vt 0.937500 0.312500
|
||||
vt 0.937500 0.062500
|
||||
vt 0.937500 0.125000
|
||||
vt 0.937500 0.187500
|
||||
vt 0.937500 0.250000
|
||||
vt 1.000000 0.312500
|
||||
vt 1.000000 0.062500
|
||||
vt 1.000000 0.125000
|
||||
vt 1.000000 0.187500
|
||||
vt 1.000000 0.250000
|
||||
vt 0.562500 0.312500
|
||||
vt 0.562500 0.062500
|
||||
vt 0.562500 0.125000
|
||||
vt 0.562500 0.187500
|
||||
vt 0.562500 0.250000
|
||||
vt 0.625000 0.312500
|
||||
vt 0.625000 0.062500
|
||||
vt 0.625000 0.125000
|
||||
vt 0.625000 0.187500
|
||||
vt 0.625000 0.250000
|
||||
vt 0.687500 0.312500
|
||||
vt 0.687500 0.062500
|
||||
vt 0.687500 0.125000
|
||||
vt 0.687500 0.187500
|
||||
vt 0.687500 0.250000
|
||||
vt 0.250000 0.937500
|
||||
vt 0.312500 0.937500
|
||||
vt 0.312500 1.000000
|
||||
vt 0.250000 1.000000
|
||||
vt 0.312500 0.750000
|
||||
vt 0.250000 0.750000
|
||||
vt 0.312500 0.812500
|
||||
vt 0.250000 0.812500
|
||||
vt 0.312500 0.875000
|
||||
vt 0.250000 0.875000
|
||||
vt 0.375000 0.937500
|
||||
vt 0.375000 1.000000
|
||||
vt 0.375000 0.750000
|
||||
vt 0.375000 0.812500
|
||||
vt 0.375000 0.875000
|
||||
vt 0.437500 0.937500
|
||||
vt 0.437500 1.000000
|
||||
vt 0.437500 0.750000
|
||||
vt 0.437500 0.812500
|
||||
vt 0.437500 0.875000
|
||||
vt 0.000000 0.937500
|
||||
vt 0.062500 0.937500
|
||||
vt 0.062500 1.000000
|
||||
vt 0.000000 1.000000
|
||||
vt 0.062500 0.750000
|
||||
vt 0.000000 0.750000
|
||||
vt 0.062500 0.812500
|
||||
vt 0.000000 0.812500
|
||||
vt 0.062500 0.875000
|
||||
vt 0.000000 0.875000
|
||||
vt 0.125000 0.937500
|
||||
vt 0.125000 1.000000
|
||||
vt 0.125000 0.750000
|
||||
vt 0.125000 0.812500
|
||||
vt 0.125000 0.875000
|
||||
vt 0.187500 0.937500
|
||||
vt 0.187500 1.000000
|
||||
vt 0.187500 0.750000
|
||||
vt 0.187500 0.812500
|
||||
vt 0.187500 0.875000
|
||||
vn 0.000000 -1.000000 -0.004800
|
||||
vn 0.000000 -0.657400 0.753500
|
||||
vn -0.898300 -0.248500 0.362300
|
||||
vn -0.863600 -0.504100 -0.003400
|
||||
vn -0.661500 0.421500 -0.620200
|
||||
vn -0.746000 0.665900 0.000000
|
||||
vn 0.661500 0.421500 -0.620200
|
||||
vn 0.746000 0.665900 0.000000
|
||||
vn 0.898300 -0.248500 0.362300
|
||||
vn 0.863600 -0.504100 -0.003400
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn -0.925200 0.000000 0.379500
|
||||
vn -0.617100 0.000000 -0.786900
|
||||
vn 0.617100 0.000000 -0.786900
|
||||
vn 0.925200 0.000000 0.379500
|
||||
vn 0.000000 0.657400 0.753500
|
||||
vn -0.898300 0.248400 0.362300
|
||||
vn -0.661500 -0.421500 -0.620200
|
||||
vn 0.661500 -0.421500 -0.620200
|
||||
vn 0.898300 0.248400 0.362300
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -0.866100 0.499800 0.000000
|
||||
vn -0.746000 -0.665900 0.000000
|
||||
vn 0.746000 -0.665900 0.000000
|
||||
vn 0.866100 0.499800 0.000000
|
||||
vn 0.000000 0.657400 -0.753500
|
||||
vn -0.898300 0.248400 -0.362400
|
||||
vn -0.661600 -0.421500 0.620200
|
||||
vn 0.661500 -0.421500 0.620200
|
||||
vn 0.898300 0.248400 -0.362300
|
||||
vn 0.000000 -0.000900 -1.000000
|
||||
vn -0.924600 -0.000600 -0.380700
|
||||
vn -0.617100 0.000000 0.786900
|
||||
vn 0.617100 0.000000 0.786900
|
||||
vn 0.924700 -0.000600 -0.380700
|
||||
vn 0.000000 -0.650300 -0.759600
|
||||
vn -0.895600 -0.254600 -0.364800
|
||||
vn -0.661600 0.421500 0.620200
|
||||
vn 0.661600 0.421500 0.620200
|
||||
vn 0.895600 -0.254600 -0.364800
|
||||
vn 0.004900 -1.000000 0.000000
|
||||
vn -0.729700 -0.683800 0.000000
|
||||
vn -0.324500 -0.256300 -0.910500
|
||||
vn 0.003300 -0.475500 -0.879700
|
||||
vn 0.578700 0.436200 -0.689100
|
||||
vn 0.000000 0.666600 -0.745400
|
||||
vn 0.578700 0.436200 0.689100
|
||||
vn 0.000000 0.666600 0.745400
|
||||
vn -0.324500 -0.256300 0.910500
|
||||
vn 0.003300 -0.475500 0.879700
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn -0.359600 0.000000 -0.933100
|
||||
vn 0.756400 0.000000 -0.654100
|
||||
vn 0.756400 0.000000 0.654100
|
||||
vn -0.359600 0.000000 0.933100
|
||||
vn -0.729700 0.683700 0.000000
|
||||
vn -0.324500 0.256300 -0.910500
|
||||
vn 0.578700 -0.436200 -0.689100
|
||||
vn 0.578700 -0.436200 0.689100
|
||||
vn -0.324500 0.256300 0.910500
|
||||
vn 0.000000 0.470900 -0.882200
|
||||
vn 0.000000 -0.666600 -0.745400
|
||||
vn 0.000000 -0.666600 0.745400
|
||||
vn 0.000000 0.470900 0.882200
|
||||
vn 0.729700 0.683700 0.000000
|
||||
vn 0.324500 0.256300 -0.910500
|
||||
vn -0.578700 -0.436200 -0.689100
|
||||
vn -0.578700 -0.436200 0.689100
|
||||
vn 0.324500 0.256300 0.910500
|
||||
vn 1.000000 -0.001100 0.000000
|
||||
vn 0.361000 -0.000700 -0.932600
|
||||
vn -0.756400 0.000000 -0.654100
|
||||
vn -0.756400 0.000000 0.654100
|
||||
vn 0.361000 -0.000700 0.932600
|
||||
vn 0.736100 -0.676800 0.000000
|
||||
vn 0.327100 -0.263100 -0.907600
|
||||
vn -0.578700 0.436200 -0.689100
|
||||
vn -0.578700 0.436200 0.689100
|
||||
vn 0.327100 -0.263100 0.907600
|
||||
vn -0.004900 -1.000000 0.000000
|
||||
vn 0.729700 -0.683800 0.000000
|
||||
vn 0.324500 -0.256300 0.910500
|
||||
vn -0.003300 -0.475400 0.879700
|
||||
vn 0.324500 -0.256300 -0.910500
|
||||
vn -0.003300 -0.475400 -0.879700
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.359600 0.000000 0.933100
|
||||
vn 0.359600 0.000000 -0.933100
|
||||
vn -1.000000 -0.001100 0.000000
|
||||
vn -0.361000 -0.000700 0.932600
|
||||
vn -0.361000 -0.000700 -0.932600
|
||||
vn -0.736100 -0.676800 0.000000
|
||||
vn -0.327100 -0.263100 0.907600
|
||||
vn -0.327100 -0.263100 -0.907600
|
||||
vn 0.000000 -1.000000 0.004800
|
||||
vn 0.000000 -0.657400 -0.753500
|
||||
vn 0.898300 -0.248500 -0.362400
|
||||
vn 0.863600 -0.504100 0.003400
|
||||
vn -0.898300 -0.248500 -0.362400
|
||||
vn -0.863600 -0.504100 0.003400
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.925200 0.000000 -0.379500
|
||||
vn -0.925200 0.000000 -0.379500
|
||||
vn 0.898300 0.248500 -0.362400
|
||||
vn 0.661600 -0.421500 0.620200
|
||||
vn -0.898300 0.248500 -0.362400
|
||||
vn 0.898300 0.248500 0.362300
|
||||
vn -0.898300 0.248500 0.362300
|
||||
vn 0.000000 -0.000900 1.000000
|
||||
vn 0.924700 -0.000600 0.380700
|
||||
vn -0.924700 -0.000600 0.380700
|
||||
vn 0.000000 -0.650300 0.759600
|
||||
vn 0.895600 -0.254600 0.364700
|
||||
vn -0.895600 -0.254600 0.364700
|
||||
vn 0.729700 -0.683700 0.000000
|
||||
vn 0.729700 0.683800 0.000000
|
||||
vn -0.729700 0.683800 0.000000
|
||||
vn -0.898300 -0.248400 0.362300
|
||||
vn -0.863600 -0.504100 -0.003500
|
||||
vn 0.898300 -0.248400 0.362300
|
||||
vn 0.863600 -0.504100 -0.003500
|
||||
vn -0.661500 -0.421500 0.620200
|
||||
vn 0.924600 -0.000600 -0.380700
|
||||
vn -0.661500 0.421500 0.620200
|
||||
vn 0.661500 0.421500 0.620200
|
||||
s 1
|
||||
f 1/1/1 2/2/2 3/3/3 4/4/4
|
||||
f 4/4/4 3/3/3 5/5/5 6/6/6
|
||||
f 6/6/6 5/5/5 7/7/7 8/8/8
|
||||
f 8/8/8 7/7/7 9/9/9 10/10/10
|
||||
f 1/1/1 10/11/10 9/12/9 2/2/2
|
||||
f 2/2/2 11/13/11 12/14/12 3/3/3
|
||||
f 3/3/3 12/14/12 13/15/13 5/5/5
|
||||
f 5/5/5 13/15/13 14/16/14 7/7/7
|
||||
f 7/7/7 14/16/14 15/17/15 9/9/9
|
||||
f 9/12/9 15/18/15 11/13/11 2/2/2
|
||||
f 11/13/11 16/19/16 17/20/17 12/14/12
|
||||
f 12/14/12 17/20/17 18/21/18 13/15/13
|
||||
f 13/15/13 18/21/18 19/22/19 14/16/14
|
||||
f 14/16/14 19/22/19 20/23/20 15/17/15
|
||||
f 15/18/15 20/24/20 16/19/16 11/13/11
|
||||
f 16/19/16 21/25/21 22/26/22 17/20/17
|
||||
f 17/20/17 22/26/22 23/27/23 18/21/18
|
||||
f 18/21/18 23/27/23 24/28/24 19/22/19
|
||||
f 19/22/19 24/28/24 25/29/25 20/23/20
|
||||
f 20/24/20 25/30/25 21/25/21 16/19/16
|
||||
f 21/25/21 26/31/26 27/32/27 22/26/22
|
||||
f 22/26/22 27/32/27 28/33/28 23/27/23
|
||||
f 23/27/23 28/33/28 29/34/29 24/28/24
|
||||
f 24/28/24 29/34/29 30/35/30 25/29/25
|
||||
f 25/30/25 30/36/30 26/31/26 21/25/21
|
||||
f 26/37/26 31/38/31 32/39/32 27/40/27
|
||||
f 27/40/27 32/39/32 33/41/33 28/42/28
|
||||
f 28/42/28 33/41/33 34/43/34 29/44/29
|
||||
f 29/44/29 34/43/34 35/45/35 30/46/30
|
||||
f 30/47/30 35/48/35 31/38/31 26/37/26
|
||||
f 31/38/31 36/49/36 37/50/37 32/39/32
|
||||
f 32/39/32 37/50/37 38/51/38 33/41/33
|
||||
f 33/41/33 38/51/38 39/52/39 34/43/34
|
||||
f 34/43/34 39/52/39 40/53/40 35/45/35
|
||||
f 35/48/35 40/54/40 36/49/36 31/38/31
|
||||
f 36/49/36 1/1/1 4/4/4 37/50/37
|
||||
f 37/50/37 4/4/4 6/6/6 38/51/38
|
||||
f 38/51/38 6/6/6 8/8/8 39/52/39
|
||||
f 39/52/39 8/8/8 10/10/10 40/53/40
|
||||
f 1/1/1 36/49/36 40/54/40 10/11/10
|
||||
f 41/55/41 42/56/42 43/57/43 44/58/44
|
||||
f 44/59/44 43/60/43 45/61/45 46/62/46
|
||||
f 46/62/46 45/61/45 47/63/47 48/64/48
|
||||
f 48/64/48 47/63/47 49/65/49 50/66/50
|
||||
f 41/55/41 50/66/50 49/65/49 42/56/42
|
||||
f 42/56/42 51/67/51 52/68/52 43/57/43
|
||||
f 43/60/43 52/69/52 53/70/53 45/61/45
|
||||
f 45/61/45 53/70/53 54/71/54 47/63/47
|
||||
f 47/63/47 54/71/54 55/72/55 49/65/49
|
||||
f 49/65/49 55/72/55 51/67/51 42/56/42
|
||||
f 51/67/51 56/73/56 57/74/57 52/68/52
|
||||
f 52/69/52 57/75/57 58/76/58 53/70/53
|
||||
f 53/70/53 58/76/58 59/77/59 54/71/54
|
||||
f 54/71/54 59/77/59 60/78/60 55/72/55
|
||||
f 55/72/55 60/78/60 56/73/56 51/67/51
|
||||
f 56/73/56 61/79/21 62/80/61 57/74/57
|
||||
f 57/75/57 62/81/61 63/82/62 58/76/58
|
||||
f 58/76/58 63/82/62 64/83/63 59/77/59
|
||||
f 59/77/59 64/83/63 65/84/64 60/78/60
|
||||
f 60/78/60 65/84/64 61/79/21 56/73/56
|
||||
f 61/85/21 66/86/65 67/87/66 62/88/61
|
||||
f 62/35/61 67/89/66 68/90/67 63/91/62
|
||||
f 63/91/62 68/90/67 69/92/68 64/93/63
|
||||
f 64/93/63 69/92/68 70/94/69 65/95/64
|
||||
f 65/95/64 70/94/69 66/86/65 61/85/21
|
||||
f 66/86/65 71/96/70 72/97/71 67/87/66
|
||||
f 67/89/66 72/98/71 73/99/72 68/90/67
|
||||
f 68/90/67 73/99/72 74/100/73 69/92/68
|
||||
f 69/92/68 74/100/73 75/101/74 70/94/69
|
||||
f 70/94/69 75/101/74 71/96/70 66/86/65
|
||||
f 71/96/70 76/102/75 77/103/76 72/97/71
|
||||
f 72/98/71 77/104/76 78/105/77 73/99/72
|
||||
f 73/99/72 78/105/77 79/106/78 74/100/73
|
||||
f 74/100/73 79/106/78 80/107/79 75/101/74
|
||||
f 75/101/74 80/107/79 76/102/75 71/96/70
|
||||
f 76/102/75 41/55/41 44/58/44 77/103/76
|
||||
f 77/104/76 44/59/44 46/62/46 78/105/77
|
||||
f 78/105/77 46/62/46 48/64/48 79/106/78
|
||||
f 79/106/78 48/64/48 50/66/50 80/107/79
|
||||
f 41/55/41 76/102/75 80/107/79 50/66/50
|
||||
f 81/108/80 82/109/81 83/110/82 84/111/83
|
||||
f 84/9/83 83/17/82 85/112/78 86/113/48
|
||||
f 86/113/48 85/112/78 87/114/77 88/115/46
|
||||
f 88/115/46 87/114/77 89/116/84 90/117/85
|
||||
f 81/108/80 90/117/85 89/116/84 82/109/81
|
||||
f 82/109/81 91/118/86 92/119/87 83/110/82
|
||||
f 83/17/82 92/23/87 93/120/73 85/112/78
|
||||
f 85/112/78 93/120/73 94/121/72 87/114/77
|
||||
f 87/114/77 94/121/72 95/122/88 89/116/84
|
||||
f 89/116/84 95/122/88 91/118/86 82/109/81
|
||||
f 91/118/86 96/123/65 97/124/69 92/119/87
|
||||
f 92/23/87 97/29/69 98/125/68 93/120/73
|
||||
f 93/120/73 98/125/68 99/126/67 94/121/72
|
||||
f 94/121/72 99/126/67 100/127/66 95/122/88
|
||||
f 95/122/88 100/127/66 96/123/65 91/118/86
|
||||
f 96/123/65 101/85/21 102/88/64 97/124/69
|
||||
f 97/29/69 102/35/64 103/91/63 98/125/68
|
||||
f 98/125/68 103/91/63 104/93/62 99/126/67
|
||||
f 99/126/67 104/93/62 105/95/61 100/127/66
|
||||
f 100/127/66 105/95/61 101/85/21 96/123/65
|
||||
f 101/128/21 106/129/56 107/130/60 102/131/64
|
||||
f 102/46/64 107/45/60 108/132/59 103/133/63
|
||||
f 103/133/63 108/132/59 109/134/58 104/135/62
|
||||
f 104/135/62 109/134/58 110/136/57 105/137/61
|
||||
f 105/137/61 110/136/57 106/129/56 101/128/21
|
||||
f 106/129/56 111/138/89 112/139/90 107/130/60
|
||||
f 107/45/60 112/53/90 113/140/54 108/132/59
|
||||
f 108/132/59 113/140/54 114/141/53 109/134/58
|
||||
f 109/134/58 114/141/53 115/142/91 110/136/57
|
||||
f 110/136/57 115/142/91 111/138/89 106/129/56
|
||||
f 111/138/89 116/143/92 117/144/93 112/139/90
|
||||
f 112/53/90 117/10/93 118/145/47 113/140/54
|
||||
f 113/140/54 118/145/47 119/146/45 114/141/53
|
||||
f 114/141/53 119/146/45 120/147/94 115/142/91
|
||||
f 115/142/91 120/147/94 116/143/92 111/138/89
|
||||
f 116/143/92 81/108/80 84/111/83 117/144/93
|
||||
f 117/10/93 84/9/83 86/113/48 118/145/47
|
||||
f 118/145/47 86/113/48 88/115/46 119/146/45
|
||||
f 119/146/45 88/115/46 90/117/85 120/147/94
|
||||
f 81/108/80 116/143/92 120/147/94 90/117/85
|
||||
f 121/148/95 122/149/96 123/150/97 124/151/98
|
||||
f 124/151/98 123/150/97 125/152/39 126/153/8
|
||||
f 126/153/8 125/152/39 127/154/38 128/155/6
|
||||
f 128/155/6 127/154/38 129/156/99 130/157/100
|
||||
f 121/148/95 130/103/100 129/58/99 122/149/96
|
||||
f 122/149/96 131/158/101 132/159/102 123/150/97
|
||||
f 123/150/97 132/159/102 133/160/34 125/152/39
|
||||
f 125/152/39 133/160/34 134/161/33 127/154/38
|
||||
f 127/154/38 134/161/33 135/162/103 129/156/99
|
||||
f 129/58/99 135/57/103 131/158/101 122/149/96
|
||||
f 131/158/101 136/163/26 137/164/104 132/159/102
|
||||
f 132/159/102 137/164/104 138/165/105 133/160/34
|
||||
f 133/160/34 138/165/105 139/166/28 134/161/33
|
||||
f 134/161/33 139/166/28 140/167/106 135/162/103
|
||||
f 135/57/103 140/68/106 136/163/26 131/158/101
|
||||
f 136/163/26 141/168/21 142/169/25 137/164/104
|
||||
f 137/164/104 142/169/25 143/170/24 138/165/105
|
||||
f 138/165/105 143/170/24 144/171/23 139/166/28
|
||||
f 139/166/28 144/171/23 145/172/22 140/167/106
|
||||
f 140/68/106 145/74/22 141/168/21 136/163/26
|
||||
f 141/168/21 146/173/16 147/174/107 142/169/25
|
||||
f 142/169/25 147/174/107 148/175/19 143/170/24
|
||||
f 143/170/24 148/175/19 149/176/18 144/171/23
|
||||
f 144/171/23 149/176/18 150/177/108 145/172/22
|
||||
f 145/74/22 150/80/108 146/173/16 141/168/21
|
||||
f 146/178/16 151/179/109 152/180/110 147/181/107
|
||||
f 147/181/107 152/180/110 153/182/14 148/183/19
|
||||
f 148/183/19 153/182/14 154/184/13 149/185/18
|
||||
f 149/185/18 154/184/13 155/186/111 150/187/108
|
||||
f 150/88/108 155/87/111 151/179/109 146/178/16
|
||||
f 151/179/109 156/188/112 157/189/113 152/180/110
|
||||
f 152/180/110 157/189/113 158/190/7 153/182/14
|
||||
f 153/182/14 158/190/7 159/191/5 154/184/13
|
||||
f 154/184/13 159/191/5 160/192/114 155/186/111
|
||||
f 155/87/111 160/97/114 156/188/112 151/179/109
|
||||
f 156/188/112 121/148/95 124/151/98 157/189/113
|
||||
f 157/189/113 124/151/98 126/153/8 158/190/7
|
||||
f 158/190/7 126/153/8 128/155/6 159/191/5
|
||||
f 159/191/5 128/155/6 130/157/100 160/192/114
|
||||
f 121/148/95 156/188/112 160/97/114 130/103/100
|
||||
f 161/193/80 162/194/115 163/60/82 164/59/83
|
||||
f 164/195/83 163/196/82 165/197/78 166/198/48
|
||||
f 166/198/48 165/197/78 167/199/77 168/200/46
|
||||
f 168/200/46 167/199/77 169/201/84 170/202/85
|
||||
f 161/193/80 170/202/85 169/201/84 162/194/115
|
||||
f 162/194/115 171/203/86 172/69/87 163/60/82
|
||||
f 163/196/82 172/204/87 173/205/73 165/197/78
|
||||
f 165/197/78 173/205/73 174/206/72 167/199/77
|
||||
f 167/199/77 174/206/72 175/207/88 169/201/84
|
||||
f 169/201/84 175/207/88 171/203/86 162/194/115
|
||||
f 171/203/86 176/208/116 177/75/69 172/69/87
|
||||
f 172/204/87 177/209/69 178/210/68 173/205/73
|
||||
f 173/205/73 178/210/68 179/211/67 174/206/72
|
||||
f 174/206/72 179/211/67 180/212/66 175/207/88
|
||||
f 175/207/88 180/212/66 176/208/116 171/203/86
|
||||
f 176/208/116 181/213/21 182/81/64 177/75/69
|
||||
f 177/209/69 182/214/64 183/215/63 178/210/68
|
||||
f 178/210/68 183/215/63 184/216/62 179/211/67
|
||||
f 179/211/67 184/216/62 185/217/61 180/212/66
|
||||
f 180/212/66 185/217/61 181/213/21 176/208/116
|
||||
f 181/34/21 186/218/117 187/89/60 182/35/64
|
||||
f 182/36/64 187/219/60 188/220/59 183/31/63
|
||||
f 183/31/63 188/220/59 189/221/58 184/32/62
|
||||
f 184/32/62 189/221/58 190/222/57 185/33/61
|
||||
f 185/33/61 190/222/57 186/218/117 181/34/21
|
||||
f 186/218/117 191/223/89 192/98/90 187/89/60
|
||||
f 187/219/60 192/224/90 193/225/54 188/220/59
|
||||
f 188/220/59 193/225/54 194/226/53 189/221/58
|
||||
f 189/221/58 194/226/53 195/227/91 190/222/57
|
||||
f 190/222/57 195/227/91 191/223/89 186/218/117
|
||||
f 191/223/89 196/228/92 197/104/93 192/98/90
|
||||
f 192/224/90 197/229/93 198/230/47 193/225/54
|
||||
f 193/225/54 198/230/47 199/231/45 194/226/53
|
||||
f 194/226/53 199/231/45 200/232/94 195/227/91
|
||||
f 195/227/91 200/232/94 196/228/92 191/223/89
|
||||
f 196/228/92 161/193/80 164/59/83 197/104/93
|
||||
f 197/229/93 164/195/83 166/198/48 198/230/47
|
||||
f 198/230/47 166/198/48 168/200/46 199/231/45
|
||||
f 199/231/45 168/200/46 170/202/85 200/232/94
|
||||
f 161/193/80 196/228/92 200/232/94 170/202/85
|
||||
f 201/233/1 202/234/2 203/235/118 204/236/119
|
||||
f 204/111/119 203/110/118 205/237/5 206/238/6
|
||||
f 206/238/6 205/237/5 207/239/7 208/240/8
|
||||
f 208/240/8 207/239/7 209/241/120 210/242/121
|
||||
f 201/233/1 210/242/121 209/241/120 202/234/2
|
||||
f 202/234/2 211/243/11 212/244/12 203/235/118
|
||||
f 203/110/118 212/119/12 213/245/13 205/237/5
|
||||
f 205/237/5 213/245/13 214/246/14 207/239/7
|
||||
f 207/239/7 214/246/14 215/247/15 209/241/120
|
||||
f 209/241/120 215/247/15 211/243/11 202/234/2
|
||||
f 211/243/11 216/248/16 217/249/108 212/244/12
|
||||
f 212/119/12 217/124/108 218/250/18 213/245/13
|
||||
f 213/245/13 218/250/18 219/251/19 214/246/14
|
||||
f 214/246/14 219/251/19 220/252/107 215/247/15
|
||||
f 215/247/15 220/252/107 216/248/16 211/243/11
|
||||
f 216/248/16 221/185/21 222/187/22 217/249/108
|
||||
f 217/124/108 222/88/22 223/178/23 218/250/18
|
||||
f 218/250/18 223/178/23 224/181/24 219/251/19
|
||||
f 219/251/19 224/181/24 225/183/25 220/252/107
|
||||
f 220/252/107 225/183/25 221/185/21 216/248/16
|
||||
f 221/253/21 226/254/26 227/255/106 222/256/22
|
||||
f 222/131/22 227/130/106 228/257/122 223/258/23
|
||||
f 223/258/23 228/257/122 229/259/29 224/260/24
|
||||
f 224/260/24 229/259/29 230/261/104 225/262/25
|
||||
f 225/262/25 230/261/104 226/254/26 221/253/21
|
||||
f 226/254/26 231/263/31 232/264/32 227/255/106
|
||||
f 227/130/106 232/139/32 233/265/33 228/257/122
|
||||
f 228/257/122 233/265/33 234/266/34 229/259/29
|
||||
f 229/259/29 234/266/34 235/267/123 230/261/104
|
||||
f 230/261/104 235/267/123 231/263/31 226/254/26
|
||||
f 231/263/31 236/268/36 237/269/37 232/264/32
|
||||
f 232/139/32 237/144/37 238/270/124 233/265/33
|
||||
f 233/265/33 238/270/124 239/271/125 234/266/34
|
||||
f 234/266/34 239/271/125 240/272/40 235/267/123
|
||||
f 235/267/123 240/272/40 236/268/36 231/263/31
|
||||
f 236/268/36 201/233/1 204/236/119 237/269/37
|
||||
f 237/144/37 204/111/119 206/238/6 238/270/124
|
||||
f 238/270/124 206/238/6 208/240/8 239/271/125
|
||||
f 239/271/125 208/240/8 210/242/121 240/272/40
|
||||
f 201/233/1 236/268/36 240/272/40 210/242/121
|
56
basic_materials/plastics.lua
Normal file
@ -0,0 +1,56 @@
|
||||
-- Translation support
|
||||
local S = minetest.get_translator("basic_materials")
|
||||
|
||||
-- items
|
||||
|
||||
minetest.register_craftitem("basic_materials:plastic_sheet", {
|
||||
description = S("Plastic sheet"),
|
||||
inventory_image = "basic_materials_plastic_sheet.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:plastic_strip", {
|
||||
description = S("Plastic strips"),
|
||||
groups = { strip = 1 },
|
||||
inventory_image = "basic_materials_plastic_strip.png",
|
||||
})
|
||||
|
||||
minetest.register_craftitem("basic_materials:empty_spool", {
|
||||
description = S("Empty wire spool"),
|
||||
inventory_image = "basic_materials_empty_spool.png"
|
||||
})
|
||||
|
||||
-- crafts
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "basic_materials:plastic_sheet",
|
||||
recipe = "basic_materials:paraffin",
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "basic_materials:plastic_sheet",
|
||||
burntime = 30,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:plastic_strip 9",
|
||||
recipe = {
|
||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "basic_materials:empty_spool 3",
|
||||
recipe = {
|
||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" },
|
||||
{ "", "basic_materials:plastic_sheet", "" },
|
||||
{ "basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet" }
|
||||
},
|
||||
})
|
||||
|
||||
-- aliases
|
||||
|
||||
minetest.register_alias("homedecor:plastic_sheeting", "basic_materials:plastic_sheet")
|
||||
minetest.register_alias("homedecor:plastic_strips", "basic_materials:plastic_strip")
|
||||
minetest.register_alias("homedecor:empty_spool", "basic_materials:empty_spool")
|
BIN
basic_materials/textures/basic_materials_brass_block.png
Normal file
After Width: | Height: | Size: 272 B |
BIN
basic_materials/textures/basic_materials_brass_ingot.png
Normal file
After Width: | Height: | Size: 223 B |
BIN
basic_materials/textures/basic_materials_cement_block.png
Normal file
After Width: | Height: | Size: 243 B |
BIN
basic_materials/textures/basic_materials_chain_brass.png
Normal file
After Width: | Height: | Size: 344 B |
BIN
basic_materials/textures/basic_materials_chain_brass_inv.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
basic_materials/textures/basic_materials_chain_steel.png
Normal file
After Width: | Height: | Size: 386 B |
BIN
basic_materials/textures/basic_materials_chain_steel_inv.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
basic_materials/textures/basic_materials_chainlink_brass.png
Normal file
After Width: | Height: | Size: 178 B |
BIN
basic_materials/textures/basic_materials_chainlink_steel.png
Normal file
After Width: | Height: | Size: 175 B |
BIN
basic_materials/textures/basic_materials_concrete_block.png
Normal file
After Width: | Height: | Size: 252 B |
BIN
basic_materials/textures/basic_materials_copper_strip.png
Normal file
After Width: | Height: | Size: 326 B |
BIN
basic_materials/textures/basic_materials_copper_wire.png
Normal file
After Width: | Height: | Size: 306 B |
BIN
basic_materials/textures/basic_materials_empty_spool.png
Normal file
After Width: | Height: | Size: 214 B |
BIN
basic_materials/textures/basic_materials_energy_crystal.png
Normal file
After Width: | Height: | Size: 817 B |
BIN
basic_materials/textures/basic_materials_gear_steel.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
basic_materials/textures/basic_materials_gold_wire.png
Normal file
After Width: | Height: | Size: 286 B |
BIN
basic_materials/textures/basic_materials_heating_element.png
Normal file
After Width: | Height: | Size: 369 B |
BIN
basic_materials/textures/basic_materials_ic.png
Normal file
After Width: | Height: | Size: 293 B |
BIN
basic_materials/textures/basic_materials_motor.png
Normal file
After Width: | Height: | Size: 247 B |
BIN
basic_materials/textures/basic_materials_oil_extract.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
basic_materials/textures/basic_materials_padlock.png
Normal file
After Width: | Height: | Size: 215 B |
BIN
basic_materials/textures/basic_materials_paraffin.png
Normal file
After Width: | Height: | Size: 345 B |
BIN
basic_materials/textures/basic_materials_plastic_sheet.png
Normal file
After Width: | Height: | Size: 293 B |
BIN
basic_materials/textures/basic_materials_plastic_strip.png
Normal file
After Width: | Height: | Size: 160 B |
BIN
basic_materials/textures/basic_materials_silicon.png
Normal file
After Width: | Height: | Size: 769 B |
BIN
basic_materials/textures/basic_materials_silver_wire.png
Normal file
After Width: | Height: | Size: 251 B |
BIN
basic_materials/textures/basic_materials_steel_bar.png
Normal file
After Width: | Height: | Size: 311 B |
BIN
basic_materials/textures/basic_materials_steel_strip.png
Normal file
After Width: | Height: | Size: 326 B |
BIN
basic_materials/textures/basic_materials_steel_wire.png
Normal file
After Width: | Height: | Size: 284 B |
BIN
basic_materials/textures/basic_materials_terracotta_base.png
Normal file
After Width: | Height: | Size: 775 B |
BIN
basic_materials/textures/basic_materials_wet_cement.png
Normal file
After Width: | Height: | Size: 366 B |
@ -8,8 +8,29 @@ Currently, the following devices are implemented:
|
||||
|
||||
## License
|
||||
|
||||
Copyright (C) 2020 Joachim Stolberg
|
||||
Copyright (C) 2020 Thomas-S
|
||||
Copyright (C) 2020-2021 Joachim Stolberg
|
||||
Copyright (C) 2020-2021 Thomas-S
|
||||
|
||||
### Code
|
||||
Licensed under the GNU AGPL version 3 or later. See `LICENSE.txt`.
|
||||
|
||||
The only exception is the file `markdown2lua.py` (by Joachim Stolberg), which is licensed under the GNU GPL version 3 or later.
|
||||
See `LICENSE_GPL.txt`.
|
||||
It is taken from the [ta4_jetpack](https://github.com/joe7575/ta4_jetpack) mod.
|
||||
|
||||
### Textures
|
||||
|
||||
`ta4_addons_touchscreen.png`:
|
||||
Based on [techage_display.png](https://github.com/joe7575/techage/blob/master/textures/techage_display.png) by Joachim Stolberg, published under the CC BY-SA 3.0 license.
|
||||
Modifications were made by Thomas-S.
|
||||
|
||||
`ta4_addons_touchscreen_inventory.png`, `ta4_addons_matrix_screen_inventory.png`, `ta4_addons_appl_matrix_screen.png`:
|
||||
Based on [techage_display_inventory.png](https://github.com/joe7575/techage/blob/master/textures/techage_display_inventory.png) by Joachim Stolberg, published under the CC BY-SA 3.0 license.
|
||||
Modifications were made by Thomas-S.
|
||||
|
||||
Everything else:
|
||||
CC BY-SA 3.0 by Thomas-S
|
||||
|
||||
|
||||
## Example Program for the Lua Controller
|
||||
|
||||
@ -55,23 +76,3 @@ if num == tostring(TOUCHSCREEN_NUM) and msg.next then
|
||||
end
|
||||
```
|
||||
|
||||
### Code
|
||||
Licensed under the GNU AGPL version 3 or later. See `LICENSE.txt`.
|
||||
|
||||
The only exception is the file `markdown2lua.py` (by Joachim Stolberg), which is licensed under the GNU GPL version 3 or later.
|
||||
See `LICENSE_GPL.txt`.
|
||||
It is taken from the [ta4_jetpack](https://github.com/joe7575/ta4_jetpack) mod.
|
||||
|
||||
### Textures
|
||||
|
||||
`ta4_addons_touchscreen.png`:
|
||||
Based on [techage_display.png](https://github.com/joe7575/techage/blob/master/textures/techage_display.png) by Joachim Stolberg, published under the CC BY-SA 3.0 license.
|
||||
Modifications were made by Thomas-S.
|
||||
|
||||
`ta4_addons_touchscreen_inventory.png`:
|
||||
Based on [techage_display_inventory.png](https://github.com/joe7575/techage/blob/master/textures/techage_display_inventory.png) by Joachim Stolberg, published under the CC BY-SA 3.0 license.
|
||||
Modifications were made by Thomas-S.
|
||||
|
||||
Everything else:
|
||||
CC BY-SA 3.0 by Thomas-S
|
||||
|
||||
|
20
ta4_addons/generate_pixels.py
Normal file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from PIL import Image
|
||||
|
||||
colors = [
|
||||
"000000", "000055", "0000aa", "0000ff", "550000", "550055", "5500aa", "5500ff",
|
||||
"aa0000", "aa0055", "aa00aa", "aa00ff", "ff0000", "ff0055", "ff00aa", "ff00ff",
|
||||
"005500", "005555", "0055aa", "0055ff", "555500", "555555", "5555aa", "5555ff",
|
||||
"aa5500", "aa5555", "aa55aa", "aa55ff", "ff5500", "ff5555", "ff55aa", "ff55ff",
|
||||
"00aa00", "00aa55", "00aaaa", "00aaff", "55aa00", "55aa55", "55aaaa", "55aaff",
|
||||
"aaaa00", "aaaa55", "aaaaaa", "aaaaff", "ffaa00", "ffaa55", "ffaaaa", "ffaaff",
|
||||
"00ff00", "00ff55", "00ffaa", "00ffff", "55ff00", "55ff55", "55ffaa", "55ffff",
|
||||
"aaff00", "aaff55", "aaffaa", "aaffff", "ffff00", "ffff55", "ffffaa", "ffffff",
|
||||
]
|
||||
|
||||
for idx,color in enumerate(colors):
|
||||
img = Image.new('RGB', (1,1), color="#"+color)
|
||||
img.save("textures/px"+str(idx+1)+".png")
|
||||
|
@ -3,8 +3,8 @@
|
||||
TA4 Addons
|
||||
==========
|
||||
|
||||
Copyright (C) 2020 Joachim Stolberg
|
||||
Copyright (C) 2020 Thomas S.
|
||||
Copyright (C) 2020-2021 Joachim Stolberg
|
||||
Copyright (C) 2020-2021 Thomas S.
|
||||
|
||||
GPL v3
|
||||
See LICENSE.txt for more information
|
||||
@ -22,9 +22,11 @@ ta4_addons.S = minetest.get_translator("ta4_addons")
|
||||
local MP = minetest.get_modpath("ta4_addons")
|
||||
|
||||
dofile(MP.."/touchscreen/main.lua") -- Touchscreen
|
||||
dofile(MP.."/matrix_screen/main.lua") -- Matrix Screen
|
||||
|
||||
dofile(MP.."/manual_DE.lua") -- Techage Manual DE
|
||||
dofile(MP.."/manual_EN.lua") -- Techage Manual EN
|
||||
|
||||
|
||||
techage.add_manual_items({ta4_addons_touchscreen = "ta4_addons_touchscreen_inventory.png"})
|
||||
techage.add_manual_items({ta4_addons_matrix_screen = "ta4_addons_matrix_screen_inventory.png"})
|
||||
|
@ -2,6 +2,7 @@ techage.add_to_manual('DE', {
|
||||
"1,TA4 Addons",
|
||||
"2,Touchscreen",
|
||||
"3,Unterstützte Elemente und ihre Eigenschaften",
|
||||
"2,Matrix Screen",
|
||||
}, {
|
||||
"Aktuell sind folgende Erweiterungen für TA4 verfügbar:\n"..
|
||||
"\n"..
|
||||
@ -56,12 +57,26 @@ techage.add_to_manual('DE', {
|
||||
"\n"..
|
||||
"Für weitere Informationen über die Bedeutung dieser Elemente sei die Datei lua_api.txt des Minetest-Projekts empfohlen.\n"..
|
||||
"\n",
|
||||
"\n"..
|
||||
"\n"..
|
||||
"Der Matrix Screen ist eine 16x16px-Anzeige.\n"..
|
||||
"Es stehen verschiedene Paletten mit je 64 Farben zur Verfügung.\n"..
|
||||
"\n"..
|
||||
"Zum Programmieren der Anzeige wird ein Base64-codierter String als Payload des Befehls \"pixels\" gesendet.\n"..
|
||||
"Dieser String muss 256 Zeichen umfassen\\, wobei jedes Zeichen einem Pixel entspricht (zeilenweise von links oben nach rechts unten).\n"..
|
||||
"\n"..
|
||||
"Zum einfachen Erstellen solcher Strings sei der TA4 Matrix Screen Programmer empfohlen.\n"..
|
||||
"\n"..
|
||||
"Die verwendete Farbpalette kann über den Befehl \"palette\" geändert werden.\n"..
|
||||
"\n",
|
||||
}, {
|
||||
"",
|
||||
"ta4_addons_touchscreen",
|
||||
"ta4_addons_touchscreen",
|
||||
"ta4_addons_matrix_screen",
|
||||
}, {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
})
|
||||
|
@ -54,4 +54,18 @@ image_button_exit: x, y, w, h, texture_name, name, label
|
||||
box: x, y, w, h, color
|
||||
checkbox: x, y, name, label, selected
|
||||
|
||||
Für weitere Informationen über die Bedeutung dieser Elemente sei die Datei lua_api.txt des Minetest-Projekts empfohlen.
|
||||
Für weitere Informationen über die Bedeutung dieser Elemente sei die Datei lua_api.txt des Minetest-Projekts empfohlen.
|
||||
|
||||
## Matrix Screen
|
||||
|
||||
[ta4_addons_matrix_screen|image]
|
||||
|
||||
Der Matrix Screen ist eine 16x16px-Anzeige.
|
||||
Es stehen verschiedene Paletten mit je 64 Farben zur Verfügung.
|
||||
|
||||
Zum Programmieren der Anzeige wird ein Base64-codierter String als Payload des Befehls "pixels" gesendet.
|
||||
Dieser String muss 256 Zeichen umfassen, wobei jedes Zeichen einem Pixel entspricht (zeilenweise von links oben nach rechts unten).
|
||||
|
||||
Zum einfachen Erstellen solcher Strings sei der TA4 Matrix Screen Programmer empfohlen.
|
||||
|
||||
Die verwendete Farbpalette kann über den Befehl "palette" geändert werden.
|
||||
|
@ -2,6 +2,7 @@ techage.add_to_manual('EN', {
|
||||
"1,TA4 Addons",
|
||||
"2,Touchscreen",
|
||||
"3,Supported Elements and their properties",
|
||||
"2,Matrix Screen",
|
||||
}, {
|
||||
"Currently\\, the following extensions for TA4 are available:\n"..
|
||||
"\n"..
|
||||
@ -56,12 +57,26 @@ techage.add_to_manual('EN', {
|
||||
"\n"..
|
||||
"For further information of the meaning of these elements\\, please consult Minetest's lua_api.txt.\n"..
|
||||
"\n",
|
||||
"\n"..
|
||||
"\n"..
|
||||
"The matrix screen is a 16x16px display.\n"..
|
||||
"Different palettes with 64 colors each are available.\n"..
|
||||
"\n"..
|
||||
"To program the display\\, you can send a base64 encoded string as a payload for the \"pixels\" command.\n"..
|
||||
"This string has to be 256 characters long. Each character corresponds to a pixel\\, line by line from the upper left-hand corner to the lower right-hand corner. \n"..
|
||||
"\n"..
|
||||
"It is recommended to use the TA4 Matrix Screen Programmer in order to create such strings easily.\n"..
|
||||
"\n"..
|
||||
"The color palette can be changed with the \"palette\" command.\n"..
|
||||
"\n",
|
||||
}, {
|
||||
"",
|
||||
"ta4_addons_touchscreen",
|
||||
"ta4_addons_touchscreen",
|
||||
"ta4_addons_matrix_screen",
|
||||
}, {
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
})
|
||||
|
@ -54,4 +54,18 @@ image_button_exit: x, y, w, h, texture_name, name, label
|
||||
box: x, y, w, h, color
|
||||
checkbox: x, y, name, label, selected
|
||||
|
||||
For further information of the meaning of these elements, please consult Minetest's lua_api.txt.
|
||||
For further information of the meaning of these elements, please consult Minetest's lua_api.txt.
|
||||
|
||||
## Matrix Screen
|
||||
|
||||
[ta4_addons_matrix_screen|image]
|
||||
|
||||
The matrix screen is a 16x16px display.
|
||||
Different palettes with 64 colors each are available.
|
||||
|
||||
To program the display, you can send a base64 encoded string as a payload for the "pixels" command.
|
||||
This string has to be 256 characters long. Each character corresponds to a pixel, line by line from the upper left-hand corner to the lower right-hand corner.
|
||||
|
||||
It is recommended to use the TA4 Matrix Screen Programmer in order to create such strings easily.
|
||||
|
||||
The color palette can be changed with the "palette" command.
|
||||
|
462
ta4_addons/matrix_screen/main.lua
Normal file
@ -0,0 +1,462 @@
|
||||
--[[
|
||||
|
||||
TA4 Addons
|
||||
==========
|
||||
|
||||
Copyright (C) 2020-2021 Joachim Stolberg
|
||||
Copyright (C) 2020-2021 Thomas S.
|
||||
|
||||
AGPL v3
|
||||
See LICENSE.txt for more information
|
||||
|
||||
Matrix Screen
|
||||
|
||||
]]--
|
||||
|
||||
local S = ta4_addons.S
|
||||
local M = minetest.get_meta
|
||||
local N = techage.get_nvm
|
||||
|
||||
local letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
|
||||
local letters_to_idx = {}
|
||||
for idx = 1,64 do
|
||||
letters_to_idx[letters:sub(idx, idx)] = idx
|
||||
end
|
||||
|
||||
local function letter_to_idx(letter)
|
||||
return letters_to_idx[letter] or 1
|
||||
end
|
||||
|
||||
local palettes = {
|
||||
"rgb6bit",-- "resurrect64", "aap64", "sweet_canyon_extended", "endesga64"
|
||||
}
|
||||
|
||||
local palettes_to_idx = {}
|
||||
|
||||
for k,v in ipairs(palettes) do
|
||||
palettes_to_idx[v] = k
|
||||
end
|
||||
|
||||
local rgb6bit_palette = {
|
||||
"000000", "000055", "0000aa", "0000ff", "550000", "550055", "5500aa", "5500ff",
|
||||
"aa0000", "aa0055", "aa00aa", "aa00ff", "ff0000", "ff0055", "ff00aa", "ff00ff",
|
||||
"005500", "005555", "0055aa", "0055ff", "555500", "555555", "5555aa", "5555ff",
|
||||
"aa5500", "aa5555", "aa55aa", "aa55ff", "ff5500", "ff5555", "ff55aa", "ff55ff",
|
||||
"00aa00", "00aa55", "00aaaa", "00aaff", "55aa00", "55aa55", "55aaaa", "55aaff",
|
||||
"aaaa00", "aaaa55", "aaaaaa", "aaaaff", "ffaa00", "ffaa55", "ffaaaa", "ffaaff",
|
||||
"00ff00", "00ff55", "00ffaa", "00ffff", "55ff00", "55ff55", "55ffaa", "55ffff",
|
||||
"aaff00", "aaff55", "aaffaa", "aaffff", "ffff00", "ffff55", "ffffaa", "ffffff",
|
||||
}
|
||||
|
||||
-- Source: https://lospec.com/palette-list/resurrect-64
|
||||
local resurrect64_palette = {
|
||||
"2e222f", "3e3546", "625565", "966c6c", "ab947a", "694f62", "7f708a", "9babb2",
|
||||
"c7dcd0", "ffffff", "6e2727", "b33831", "ea4f36", "f57d4a", "ae2334", "e83b3b",
|
||||
"fb6b1d", "f79617", "f9c22b", "7a3045", "9e4539", "cd683d", "e6904e", "fbb954",
|
||||
"4c3e24", "676633", "a2a947", "d5e04b", "fbff86", "165a4c", "239063", "1ebc73",
|
||||
"91db69", "cddf6c", "313638", "374e4a", "547e64", "92a984", "b2ba90", "0b5e65",
|
||||
"0b8a8f", "0eaf9b", "30e1b9", "8ff8e2", "323353", "484a77", "4d65b4", "4d9be6",
|
||||
"8fd3ff", "45293f", "6b3e75", "905ea9", "a884f3", "eaaded", "753c54", "a24b6f",
|
||||
"cf657f", "ed8099", "831c5d", "c32454", "f04f78", "f68181", "fca790", "fdcbb0",
|
||||
}
|
||||
|
||||
-- Source: https://lospec.com/palette-list/aap-64
|
||||
local aap64_palette = {
|
||||
"060608", "141013", "3b1725", "73172d", "b4202a", "df3e23", "fa6a0a", "f9a31b",
|
||||
"ffd541", "fffc40", "d6f264", "9cdb43", "59c135", "14a02e", "1a7a3e", "24523b",
|
||||
"122020", "143464", "285cc4", "249fde", "20d6c7", "a6fcdb", "ffffff", "fef3c0",
|
||||
"fad6b8", "f5a097", "e86a73", "bc4a9b", "793a80", "403353", "242234", "221c1a",
|
||||
"322b28", "71413b", "bb7547", "dba463", "f4d29c", "dae0ea", "b3b9d1", "8b93af",
|
||||
"6d758d", "4a5462", "333941", "422433", "5b3138", "8e5252", "ba756a", "e9b5a3",
|
||||
"e3e6ff", "b9bffb", "849be4", "588dbe", "477d85", "23674e", "328464", "5daf8d",
|
||||
"92dcba", "cdf7e2", "e4d2aa", "c7b08b", "a08662", "796755", "5a4e44", "423934",
|
||||
}
|
||||
|
||||
-- Source: https://lospec.com/palette-list/sweet-canyon-extended-64
|
||||
local sweet_canyon_extended_palette = {
|
||||
"0f0e11", "2d2c33", "40404a", "51545c", "6b7179", "7c8389", "a8b2b6", "d5d5d5",
|
||||
"eeebe0", "f1dbb1", "eec99f", "e1a17e", "cc9562", "ab7b49", "9a643a", "86482f",
|
||||
"783a29", "6a3328", "541d29", "42192c", "512240", "782349", "8b2e5d", "a93e89",
|
||||
"d062c8", "ec94ea", "f2bdfc", "eaebff", "a2fafa", "64e7e7", "54cfd8", "2fb6c3",
|
||||
"2c89af", "25739d", "2a5684", "214574", "1f2966", "101445", "3c0d3b", "66164c",
|
||||
"901f3d", "bb3030", "dc473c", "ec6a45", "fb9b41", "f0c04c", "f4d66e", "fffb76",
|
||||
"ccf17a", "97d948", "6fba3b", "229443", "1d7e45", "116548", "0c4f3f", "0a3639",
|
||||
"251746", "48246d", "69189c", "9f20c0", "e527d2", "ff51cf", "ff7ada", "ff9edb",
|
||||
}
|
||||
|
||||
-- Source: https://lospec.com/palette-list/endesga-64
|
||||
local endesga64_palette = {
|
||||
"ff0040", "131313", "1b1b1b", "272727", "3d3d3d", "5d5d5d", "858585", "b4b4b4",
|
||||
"ffffff", "c7cfdd", "92a1b9", "657392", "424c6e", "2a2f4e", "1a1932", "0e071b",
|
||||
"1c121c", "391f21", "5d2c28", "8a4836", "bf6f4a", "e69c69", "f6ca9f", "f9e6cf",
|
||||
"edab50", "e07438", "c64524", "8e251d", "ff5000", "ed7614", "ffa214", "ffc825",
|
||||
"ffeb57", "d3fc7e", "99e65f", "5ac54f", "33984b", "1e6f50", "134c4c", "0c2e44",
|
||||
"00396d", "0069aa", "0098dc", "00cdf9", "0cf1ff", "94fdff", "fdd2ed", "f389f5",
|
||||
"db3ffd", "7a09fa", "3003d9", "0c0293", "03193f", "3b1443", "622461", "93388f",
|
||||
"ca52c9", "c85086", "f68187", "f5555d", "ea323c", "c42430", "891e2b", "571c27",
|
||||
}
|
||||
|
||||
local function rgb6bit(idx)
|
||||
return rgb6bit_palette[idx]
|
||||
end
|
||||
|
||||
local function resurrect64(idx)
|
||||
return resurrect64_palette[idx]
|
||||
end
|
||||
|
||||
local function aap64(idx)
|
||||
return aap64_palette[idx]
|
||||
end
|
||||
|
||||
local function sweet_canyon_extended(idx)
|
||||
return sweet_canyon_extended_palette[idx]
|
||||
end
|
||||
|
||||
local function endesga64(idx)
|
||||
return endesga64_palette[idx]
|
||||
end
|
||||
|
||||
local function get_palette(palette_name)
|
||||
--if palette_name == "resurrect64" then
|
||||
-- return resurrect64
|
||||
--elseif palette_name == "aap64" then
|
||||
-- return aap64
|
||||
--elseif palette_name == "sweet_canyon_extended" then
|
||||
-- return sweet_canyon_extended
|
||||
--elseif palette_name == "endesga64" then
|
||||
-- return endesga64
|
||||
--end
|
||||
return rgb6bit
|
||||
end
|
||||
|
||||
local function string_to_indices(input_string)
|
||||
input_string = input_string:gsub("%s", "") -- Ignore space characters
|
||||
input_string = input_string:sub(1, 256) -- Limit to 256 chars at max
|
||||
input_string = input_string..string.rep("A", 256-#input_string) -- Fill up to reach 256 chars
|
||||
local result = {}
|
||||
for i = 1,#input_string do
|
||||
result[i] = letter_to_idx(input_string:sub(i, i))
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
local function string_to_colors(input_string, palette_name)
|
||||
local palette_func = get_palette(palette_name)
|
||||
local indices = string_to_indices(input_string)
|
||||
local result = {}
|
||||
for i = 1,#indices do
|
||||
result[i] = palette_func(indices[i])
|
||||
end
|
||||
return result
|
||||
end
|
||||
|
||||
local function generate_texture_from_color_list(colors)
|
||||
local texture = {"[combine:16x16"}
|
||||
local x, y = 0, 0
|
||||
for _,color in ipairs(colors) do
|
||||
texture[#texture+1] = ":"
|
||||
texture[#texture+1] = x
|
||||
texture[#texture+1] = ","
|
||||
texture[#texture+1] = y
|
||||
texture[#texture+1] = "=px.png\\^[colorize\\:#"
|
||||
texture[#texture+1] = color
|
||||
x = x + 1
|
||||
if x >= 16 then
|
||||
x = 0
|
||||
y = y + 1
|
||||
end
|
||||
end
|
||||
texture[#texture+1] = "^[resize:128x128^ta4_addons_matrix_screen_overlay.png"
|
||||
return table.concat(texture, "")
|
||||
end
|
||||
|
||||
local function generate_texture_from_indices(indices)
|
||||
local texture = {"[combine:16x16:0,0=px_bg.png"}
|
||||
local x, y = 0, 0
|
||||
for _,index in ipairs(indices) do
|
||||
if index ~=1 then
|
||||
texture[#texture+1] = ":"
|
||||
texture[#texture+1] = x
|
||||
texture[#texture+1] = ","
|
||||
texture[#texture+1] = y
|
||||
texture[#texture+1] = "=px"
|
||||
texture[#texture+1] = index
|
||||
texture[#texture+1] = ".png"
|
||||
end
|
||||
x = x + 1
|
||||
if x >= 16 then
|
||||
x = 0
|
||||
y = y + 1
|
||||
end
|
||||
end
|
||||
texture[#texture+1] = "^[resize:128x128^ta4_addons_matrix_screen_overlay.png"
|
||||
return table.concat(texture, "")
|
||||
end
|
||||
|
||||
local function string_to_table(input_string)
|
||||
local indices = string_to_indices(input_string)
|
||||
local t = {}
|
||||
local x, y = 0, 0
|
||||
for i = 1,#indices do
|
||||
t[y] = t[y] or {}
|
||||
t[y][x] = indices[i]
|
||||
x = x + 1
|
||||
if x >= 16 then
|
||||
x = 0
|
||||
y = y + 1
|
||||
end
|
||||
end
|
||||
return t
|
||||
end
|
||||
|
||||
ta4_addons.base64_to_texture = function(color_string, palette)
|
||||
--return generate_texture_from_color_list(string_to_colors(color_string, palette))
|
||||
return generate_texture_from_indices(string_to_indices(color_string))
|
||||
end
|
||||
|
||||
local function update_matrix_display(pos, objref)
|
||||
pos = vector.round(pos)
|
||||
local nvm = N(pos)
|
||||
objref:set_properties({
|
||||
textures = { ta4_addons.base64_to_texture(nvm.color_string or "", nvm.palette) },
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("ta4_addons:matrix_screen", {
|
||||
description = S("TA4 Matrix Screen"),
|
||||
inventory_image = "ta4_addons_matrix_screen_inventory.png",
|
||||
tiles = {"ta4_addons_matrix_screen.png"},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
paramtype2 = "wallmounted",
|
||||
node_box = techage.display.lcd_box,
|
||||
selection_box = techage.display.lcd_box,
|
||||
light_source = 6,
|
||||
|
||||
display_entities = {
|
||||
["techage:display_entity"] = {
|
||||
depth = 0.42,
|
||||
on_display_update = update_matrix_display
|
||||
},
|
||||
},
|
||||
|
||||
after_place_node = function(pos, placer)
|
||||
local number = techage.add_node(pos, "ta4_addons:matrix_screen")
|
||||
local meta = M(pos)
|
||||
meta:set_string("node_number", number)
|
||||
meta:set_string("infotext", S("Matrix Screen no: ")..number)
|
||||
local nvm = techage.get_nvm(pos)
|
||||
nvm.color_string = "AABBCCDDEEFFGGHHAABBCCDDEEFFGGHH"
|
||||
.. "IIJJKKLLMMNNOOPPIIJJKKLLMMNNOOPP"
|
||||
.. "QQRRSSTTUUVVWWXXQQRRSSTTUUVVWWXX"
|
||||
.. "YYZZaabbccddeeffYYZZaabbccddeeff"
|
||||
.. "gghhiijjkkllmmnngghhiijjkkllmmnn"
|
||||
.. "ooppqqrrssttuuvvooppqqrrssttuuvv"
|
||||
.. "wwxxyyzz00112233wwxxyyzz00112233"
|
||||
.. "445566778899++//445566778899++//"
|
||||
lcdlib.update_entities(pos)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end,
|
||||
|
||||
after_dig_node = function(pos, oldnode, oldmetadata)
|
||||
techage.remove_node(pos, oldnode, oldmetadata)
|
||||
end,
|
||||
|
||||
on_timer = techage.display.on_timer,
|
||||
on_place = lcdlib.on_place,
|
||||
on_construct = lcdlib.on_construct,
|
||||
on_destruct = lcdlib.on_destruct,
|
||||
on_rotate = lcdlib.on_rotate,
|
||||
groups = {cracky=2, crumbly=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "ta4_addons:matrix_screen",
|
||||
recipe = {
|
||||
{"dye:red", "dye:green", "dye:blue"},
|
||||
{"default:copper_ingot", "techage:ta4_display", "default:copper_ingot"},
|
||||
{"", "default:mese_crystal_fragment", ""},
|
||||
},
|
||||
})
|
||||
|
||||
techage.register_node({"ta4_addons:matrix_screen"}, {
|
||||
on_recv_message = function(pos, src, topic, payload)
|
||||
local mem = techage.get_mem(pos)
|
||||
mem.ticks = mem.ticks or 0
|
||||
|
||||
if mem.ticks == 0 then
|
||||
mem.ticks = 1
|
||||
end
|
||||
|
||||
if topic == "pixels" then
|
||||
N(pos).color_string = tostring(payload)
|
||||
elseif topic == "palette" then
|
||||
N(pos).palette = tostring(payload)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
local function generate_px_button(x, y, i, palette_func, name)
|
||||
return "image_button["..x..","..y..";.5,.5;px.png^[colorize:#"..palette_func(i)..";"..name..";"..letters:sub(i,i).."]"
|
||||
end
|
||||
|
||||
local function get_px_val(nvm, x, y)
|
||||
return ((nvm.px or {})[y] or {})[x] or 1
|
||||
end
|
||||
|
||||
local function generate_base64(nvm)
|
||||
local result = ""
|
||||
for y=0,15 do
|
||||
for x=0,15 do
|
||||
local i = get_px_val(nvm, x, y)
|
||||
result = result..letters:sub(i,i)
|
||||
end
|
||||
result = result.." "
|
||||
end
|
||||
return result:sub(1,-2)
|
||||
end
|
||||
|
||||
local function update_fs(pos)
|
||||
local nvm = N(pos)
|
||||
local palette = nvm.palette or "rgb6bit"
|
||||
local palette_func = get_palette(palette)
|
||||
local current_idx = nvm.current_idx or 1
|
||||
local fs = "formspec_version[4]size[18,12]"
|
||||
fs = fs.."label[0.5,.75;Palette:]"
|
||||
fs = fs.."dropdown[2,.5;3,.5;palette;"..table.concat(palettes, ",")..";"..(palettes_to_idx[palette] or 1).."]"
|
||||
local x = .5
|
||||
local y = 1.5
|
||||
for i = 1,64 do
|
||||
fs = fs..generate_px_button(x, y, i, palette_func, "color_idx_"..i)
|
||||
x = x + .6
|
||||
if x > 2.5 then
|
||||
x = .5
|
||||
y = y + .6
|
||||
end
|
||||
end
|
||||
for y_px = 0,15 do
|
||||
for x_px = 0,15 do
|
||||
fs = fs..generate_px_button(3.5+x_px*.6, 1.5+y_px*.6, get_px_val(nvm, x_px, y_px), palette_func, "px_"..x_px.."_"..y_px)
|
||||
end
|
||||
end
|
||||
fs = fs.."label[13.5,.75;Current Color:]"
|
||||
fs = fs..generate_px_button(17, .5, current_idx, palette_func, "current_color")
|
||||
fs = fs.."style_type[textarea;font=mono]"
|
||||
fs = fs.."textarea[13.5,4.5;4,5;base64;Base64 string:;"..generate_base64(nvm).."]"
|
||||
fs = fs.."button[16.5,9.5;1,.5;read_base64;Read]"
|
||||
fs = fs.."field[13.5,10.5;3,1;target;Target Techage Number:;"..minetest.formspec_escape(nvm.target or "").."]"
|
||||
fs = fs.."button[16.5,10.5;1,1;send_cmnd;Send]"
|
||||
M(pos):set_string("formspec", fs)
|
||||
end
|
||||
|
||||
minetest.register_node("ta4_addons:matrix_screen_programmer", {
|
||||
description = S("TA4 Matrix Screen Programmer"),
|
||||
tiles = {
|
||||
-- up, down, right, left, back, front
|
||||
"techage_filling_ta4.png^techage_frame_ta4_top.png",
|
||||
"techage_filling_ta4.png^techage_frame_ta4.png",
|
||||
"techage_filling_ta4.png^techage_frame_ta4.png",
|
||||
"techage_filling_ta4.png^techage_frame_ta4.png",
|
||||
"techage_filling_ta4.png^techage_frame_ta4.png",
|
||||
"techage_filling_ta4.png^techage_frame_ta4.png^ta4_addons_appl_matrix_screen.png",
|
||||
},
|
||||
drawtype = "normal",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
on_construct = function(pos)
|
||||
update_fs(pos)
|
||||
M(pos):set_string("infotext", S("TA4 Matrix Screen Programmer"))
|
||||
end,
|
||||
after_place_node = function(pos, placer)
|
||||
local number = techage.add_node(pos, "ta4_addons:matrix_screen_programmer")
|
||||
local meta = M(pos)
|
||||
meta:set_string("node_number", number)
|
||||
meta:set_string("infotext", S("Matrix Screen Programmer ")..number)
|
||||
end,
|
||||
after_dig_node = function(pos, oldnode, oldmetadata)
|
||||
techage.remove_node(pos, oldnode, oldmetadata)
|
||||
end,
|
||||
groups = {cracky=2, crumbly=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_metal_defaults(),
|
||||
on_receive_fields = function (pos, formname, fields, sender)
|
||||
local player_name = sender:get_player_name()
|
||||
if minetest.is_protected(pos, player_name) then
|
||||
return
|
||||
end
|
||||
local nvm = N(pos)
|
||||
for i=1,64 do
|
||||
if fields["color_idx_"..i] then
|
||||
nvm.current_idx = i
|
||||
end
|
||||
end
|
||||
for y=0,15 do
|
||||
for x=0,15 do
|
||||
if fields["px_"..x.."_"..y] then
|
||||
nvm.px = nvm.px or {}
|
||||
nvm.px[y] = nvm.px[y] or {}
|
||||
nvm.px[y][x] = nvm.current_idx
|
||||
end
|
||||
end
|
||||
end
|
||||
if fields.read_base64 and fields.base64 then
|
||||
nvm.px = string_to_table(fields.base64)
|
||||
end
|
||||
if fields.send_cmnd and fields.target and techage.check_numbers(fields.target, player_name) then
|
||||
nvm.target = fields.target
|
||||
local own_number = M(pos):get_string("node_number")
|
||||
if not own_number or own_number == "" then
|
||||
own_number = "0"
|
||||
end
|
||||
techage.send_multi(own_number, fields.target, "palette", nvm.palette or "rgb6bit")
|
||||
techage.send_multi(own_number, fields.target, "pixels", generate_base64(nvm))
|
||||
end
|
||||
if fields.palette then
|
||||
nvm.palette = fields.palette
|
||||
end
|
||||
update_fs(pos)
|
||||
end
|
||||
})
|
||||
|
||||
techage.register_node({"ta4_addons:matrix_screen_programmer"}, {
|
||||
on_recv_message = function(pos, src, topic, payload)
|
||||
local nvm = N(pos)
|
||||
if topic == "on" then
|
||||
local own_number = M(pos):get_string("node_number")
|
||||
techage.send_multi(own_number, nvm.target, "pixels", generate_base64(nvm))
|
||||
techage.send_multi(own_number, nvm.target, "palette", nvm.palette or "rgb6bit")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "ta4_addons:matrix_screen_programmer",
|
||||
recipe = {
|
||||
{"default:steel_ingot", "techage:ta4_ramchip", "default:steel_ingot"},
|
||||
{"", "ta4_addons:matrix_screen", ""},
|
||||
{"default:steel_ingot", "techage:ta4_wlanchip", "default:steel_ingot"},
|
||||
},
|
||||
})
|
||||
|
||||
if techage.repair_number then
|
||||
minetest.register_lbm({
|
||||
label = "Fix lost techage numbers for matrix screens",
|
||||
name = "ta4_addons:repair_matrix_screen_numbers",
|
||||
nodenames = {"ta4_addons:matrix_screen", "ta4_addons:matrix_screen_programmer"},
|
||||
action = function(pos, node)
|
||||
techage.repair_number(pos)
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_lbm({
|
||||
label = "Fix lost timer for matrix screens",
|
||||
name = "ta4_addons:repair_matrix_screen_timer",
|
||||
nodenames = {"ta4_addons:matrix_screen"},
|
||||
action = function(pos, node)
|
||||
minetest.get_node_timer(pos):start(2)
|
||||
end
|
||||
})
|
BIN
ta4_addons/textures/px.png
Normal file
After Width: | Height: | Size: 82 B |
BIN
ta4_addons/textures/px1.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px10.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px11.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px12.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px13.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px14.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px15.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px16.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px17.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px18.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px19.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px2.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px20.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px21.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px22.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px23.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px24.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px25.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px26.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px27.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px28.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px29.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px3.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px30.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px31.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px32.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px33.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px34.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px35.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px36.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px37.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px38.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px39.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px4.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px40.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px41.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px42.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px43.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px44.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px45.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px46.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px47.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px48.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px49.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px5.png
Normal file
After Width: | Height: | Size: 69 B |
BIN
ta4_addons/textures/px50.png
Normal file
After Width: | Height: | Size: 69 B |