Merge branch 'relaunch' of https://github.com/webdesigner97/streets into relaunch
397
LICENSE
Normal file
@ -0,0 +1,397 @@
|
||||
LICENSE FOR CODE:
|
||||
=================
|
||||
|
||||
|
||||
BSD 2-Clause License
|
||||
|
||||
Copyright (c) 2016, webdesigner97
|
||||
Copyright (c) 2016, cheapie
|
||||
Copyright (c) 2016, Thomas-S
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
|
||||
|
||||
LICENSE FOR MEDIA:
|
||||
==================
|
||||
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported
|
||||
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||
LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||
REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR
|
||||
DAMAGES RESULTING FROM ITS USE.
|
||||
|
||||
License
|
||||
|
||||
THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE
|
||||
COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY
|
||||
COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS
|
||||
AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED.
|
||||
|
||||
BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE
|
||||
TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY
|
||||
BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS
|
||||
CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND
|
||||
CONDITIONS.
|
||||
|
||||
1. Definitions
|
||||
|
||||
a. "Adaptation" means a work based upon the Work, or upon the Work and
|
||||
other pre-existing works, such as a translation, adaptation,
|
||||
derivative work, arrangement of music or other alterations of a
|
||||
literary or artistic work, or phonogram or performance and includes
|
||||
cinematographic adaptations or any other form in which the Work may be
|
||||
recast, transformed, or adapted including in any form recognizably
|
||||
derived from the original, except that a work that constitutes a
|
||||
Collection will not be considered an Adaptation for the purpose of
|
||||
this License. For the avoidance of doubt, where the Work is a musical
|
||||
work, performance or phonogram, the synchronization of the Work in
|
||||
timed-relation with a moving image ("synching") will be considered an
|
||||
Adaptation for the purpose of this License.
|
||||
b. "Collection" means a collection of literary or artistic works, such as
|
||||
encyclopedias and anthologies, or performances, phonograms or
|
||||
broadcasts, or other works or subject matter other than works listed
|
||||
in Section 1(f) below, which, by reason of the selection and
|
||||
arrangement of their contents, constitute intellectual creations, in
|
||||
which the Work is included in its entirety in unmodified form along
|
||||
with one or more other contributions, each constituting separate and
|
||||
independent works in themselves, which together are assembled into a
|
||||
collective whole. A work that constitutes a Collection will not be
|
||||
considered an Adaptation (as defined below) for the purposes of this
|
||||
License.
|
||||
c. "Creative Commons Compatible License" means a license that is listed
|
||||
at https://creativecommons.org/compatiblelicenses that has been
|
||||
approved by Creative Commons as being essentially equivalent to this
|
||||
License, including, at a minimum, because that license: (i) contains
|
||||
terms that have the same purpose, meaning and effect as the License
|
||||
Elements of this License; and, (ii) explicitly permits the relicensing
|
||||
of adaptations of works made available under that license under this
|
||||
License or a Creative Commons jurisdiction license with the same
|
||||
License Elements as this License.
|
||||
d. "Distribute" means to make available to the public the original and
|
||||
copies of the Work or Adaptation, as appropriate, through sale or
|
||||
other transfer of ownership.
|
||||
e. "License Elements" means the following high-level license attributes
|
||||
as selected by Licensor and indicated in the title of this License:
|
||||
Attribution, ShareAlike.
|
||||
f. "Licensor" means the individual, individuals, entity or entities that
|
||||
offer(s) the Work under the terms of this License.
|
||||
g. "Original Author" means, in the case of a literary or artistic work,
|
||||
the individual, individuals, entity or entities who created the Work
|
||||
or if no individual or entity can be identified, the publisher; and in
|
||||
addition (i) in the case of a performance the actors, singers,
|
||||
musicians, dancers, and other persons who act, sing, deliver, declaim,
|
||||
play in, interpret or otherwise perform literary or artistic works or
|
||||
expressions of folklore; (ii) in the case of a phonogram the producer
|
||||
being the person or legal entity who first fixes the sounds of a
|
||||
performance or other sounds; and, (iii) in the case of broadcasts, the
|
||||
organization that transmits the broadcast.
|
||||
h. "Work" means the literary and/or artistic work offered under the terms
|
||||
of this License including without limitation any production in the
|
||||
literary, scientific and artistic domain, whatever may be the mode or
|
||||
form of its expression including digital form, such as a book,
|
||||
pamphlet and other writing; a lecture, address, sermon or other work
|
||||
of the same nature; a dramatic or dramatico-musical work; a
|
||||
choreographic work or entertainment in dumb show; a musical
|
||||
composition with or without words; a cinematographic work to which are
|
||||
assimilated works expressed by a process analogous to cinematography;
|
||||
a work of drawing, painting, architecture, sculpture, engraving or
|
||||
lithography; a photographic work to which are assimilated works
|
||||
expressed by a process analogous to photography; a work of applied
|
||||
art; an illustration, map, plan, sketch or three-dimensional work
|
||||
relative to geography, topography, architecture or science; a
|
||||
performance; a broadcast; a phonogram; a compilation of data to the
|
||||
extent it is protected as a copyrightable work; or a work performed by
|
||||
a variety or circus performer to the extent it is not otherwise
|
||||
considered a literary or artistic work.
|
||||
i. "You" means an individual or entity exercising rights under this
|
||||
License who has not previously violated the terms of this License with
|
||||
respect to the Work, or who has received express permission from the
|
||||
Licensor to exercise rights under this License despite a previous
|
||||
violation.
|
||||
j. "Publicly Perform" means to perform public recitations of the Work and
|
||||
to communicate to the public those public recitations, by any means or
|
||||
process, including by wire or wireless means or public digital
|
||||
performances; to make available to the public Works in such a way that
|
||||
members of the public may access these Works from a place and at a
|
||||
place individually chosen by them; to perform the Work to the public
|
||||
by any means or process and the communication to the public of the
|
||||
performances of the Work, including by public digital performance; to
|
||||
broadcast and rebroadcast the Work by any means including signs,
|
||||
sounds or images.
|
||||
k. "Reproduce" means to make copies of the Work by any means including
|
||||
without limitation by sound or visual recordings and the right of
|
||||
fixation and reproducing fixations of the Work, including storage of a
|
||||
protected performance or phonogram in digital form or other electronic
|
||||
medium.
|
||||
|
||||
2. Fair Dealing Rights. Nothing in this License is intended to reduce,
|
||||
limit, or restrict any uses free from copyright or rights arising from
|
||||
limitations or exceptions that are provided for in connection with the
|
||||
copyright protection under copyright law or other applicable laws.
|
||||
|
||||
3. License Grant. Subject to the terms and conditions of this License,
|
||||
Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
|
||||
perpetual (for the duration of the applicable copyright) license to
|
||||
exercise the rights in the Work as stated below:
|
||||
|
||||
a. to Reproduce the Work, to incorporate the Work into one or more
|
||||
Collections, and to Reproduce the Work as incorporated in the
|
||||
Collections;
|
||||
b. to create and Reproduce Adaptations provided that any such Adaptation,
|
||||
including any translation in any medium, takes reasonable steps to
|
||||
clearly label, demarcate or otherwise identify that changes were made
|
||||
to the original Work. For example, a translation could be marked "The
|
||||
original work was translated from English to Spanish," or a
|
||||
modification could indicate "The original work has been modified.";
|
||||
c. to Distribute and Publicly Perform the Work including as incorporated
|
||||
in Collections; and,
|
||||
d. to Distribute and Publicly Perform Adaptations.
|
||||
e. For the avoidance of doubt:
|
||||
|
||||
i. Non-waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or
|
||||
compulsory licensing scheme cannot be waived, the Licensor
|
||||
reserves the exclusive right to collect such royalties for any
|
||||
exercise by You of the rights granted under this License;
|
||||
ii. Waivable Compulsory License Schemes. In those jurisdictions in
|
||||
which the right to collect royalties through any statutory or
|
||||
compulsory licensing scheme can be waived, the Licensor waives the
|
||||
exclusive right to collect such royalties for any exercise by You
|
||||
of the rights granted under this License; and,
|
||||
iii. Voluntary License Schemes. The Licensor waives the right to
|
||||
collect royalties, whether individually or, in the event that the
|
||||
Licensor is a member of a collecting society that administers
|
||||
voluntary licensing schemes, via that society, from any exercise
|
||||
by You of the rights granted under this License.
|
||||
|
||||
The above rights may be exercised in all media and formats whether now
|
||||
known or hereafter devised. The above rights include the right to make
|
||||
such modifications as are technically necessary to exercise the rights in
|
||||
other media and formats. Subject to Section 8(f), all rights not expressly
|
||||
granted by Licensor are hereby reserved.
|
||||
|
||||
4. Restrictions. The license granted in Section 3 above is expressly made
|
||||
subject to and limited by the following restrictions:
|
||||
|
||||
a. You may Distribute or Publicly Perform the Work only under the terms
|
||||
of this License. You must include a copy of, or the Uniform Resource
|
||||
Identifier (URI) for, this License with every copy of the Work You
|
||||
Distribute or Publicly Perform. You may not offer or impose any terms
|
||||
on the Work that restrict the terms of this License or the ability of
|
||||
the recipient of the Work to exercise the rights granted to that
|
||||
recipient under the terms of the License. You may not sublicense the
|
||||
Work. You must keep intact all notices that refer to this License and
|
||||
to the disclaimer of warranties with every copy of the Work You
|
||||
Distribute or Publicly Perform. When You Distribute or Publicly
|
||||
Perform the Work, You may not impose any effective technological
|
||||
measures on the Work that restrict the ability of a recipient of the
|
||||
Work from You to exercise the rights granted to that recipient under
|
||||
the terms of the License. This Section 4(a) applies to the Work as
|
||||
incorporated in a Collection, but this does not require the Collection
|
||||
apart from the Work itself to be made subject to the terms of this
|
||||
License. If You create a Collection, upon notice from any Licensor You
|
||||
must, to the extent practicable, remove from the Collection any credit
|
||||
as required by Section 4(c), as requested. If You create an
|
||||
Adaptation, upon notice from any Licensor You must, to the extent
|
||||
practicable, remove from the Adaptation any credit as required by
|
||||
Section 4(c), as requested.
|
||||
b. You may Distribute or Publicly Perform an Adaptation only under the
|
||||
terms of: (i) this License; (ii) a later version of this License with
|
||||
the same License Elements as this License; (iii) a Creative Commons
|
||||
jurisdiction license (either this or a later license version) that
|
||||
contains the same License Elements as this License (e.g.,
|
||||
Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible
|
||||
License. If you license the Adaptation under one of the licenses
|
||||
mentioned in (iv), you must comply with the terms of that license. If
|
||||
you license the Adaptation under the terms of any of the licenses
|
||||
mentioned in (i), (ii) or (iii) (the "Applicable License"), you must
|
||||
comply with the terms of the Applicable License generally and the
|
||||
following provisions: (I) You must include a copy of, or the URI for,
|
||||
the Applicable License with every copy of each Adaptation You
|
||||
Distribute or Publicly Perform; (II) You may not offer or impose any
|
||||
terms on the Adaptation that restrict the terms of the Applicable
|
||||
License or the ability of the recipient of the Adaptation to exercise
|
||||
the rights granted to that recipient under the terms of the Applicable
|
||||
License; (III) You must keep intact all notices that refer to the
|
||||
Applicable License and to the disclaimer of warranties with every copy
|
||||
of the Work as included in the Adaptation You Distribute or Publicly
|
||||
Perform; (IV) when You Distribute or Publicly Perform the Adaptation,
|
||||
You may not impose any effective technological measures on the
|
||||
Adaptation that restrict the ability of a recipient of the Adaptation
|
||||
from You to exercise the rights granted to that recipient under the
|
||||
terms of the Applicable License. This Section 4(b) applies to the
|
||||
Adaptation as incorporated in a Collection, but this does not require
|
||||
the Collection apart from the Adaptation itself to be made subject to
|
||||
the terms of the Applicable License.
|
||||
c. If You Distribute, or Publicly Perform the Work or any Adaptations or
|
||||
Collections, You must, unless a request has been made pursuant to
|
||||
Section 4(a), keep intact all copyright notices for the Work and
|
||||
provide, reasonable to the medium or means You are utilizing: (i) the
|
||||
name of the Original Author (or pseudonym, if applicable) if supplied,
|
||||
and/or if the Original Author and/or Licensor designate another party
|
||||
or parties (e.g., a sponsor institute, publishing entity, journal) for
|
||||
attribution ("Attribution Parties") in Licensor's copyright notice,
|
||||
terms of service or by other reasonable means, the name of such party
|
||||
or parties; (ii) the title of the Work if supplied; (iii) to the
|
||||
extent reasonably practicable, the URI, if any, that Licensor
|
||||
specifies to be associated with the Work, unless such URI does not
|
||||
refer to the copyright notice or licensing information for the Work;
|
||||
and (iv) , consistent with Ssection 3(b), in the case of an
|
||||
Adaptation, a credit identifying the use of the Work in the Adaptation
|
||||
(e.g., "French translation of the Work by Original Author," or
|
||||
"Screenplay based on original Work by Original Author"). The credit
|
||||
required by this Section 4(c) may be implemented in any reasonable
|
||||
manner; provided, however, that in the case of a Adaptation or
|
||||
Collection, at a minimum such credit will appear, if a credit for all
|
||||
contributing authors of the Adaptation or Collection appears, then as
|
||||
part of these credits and in a manner at least as prominent as the
|
||||
credits for the other contributing authors. For the avoidance of
|
||||
doubt, You may only use the credit required by this Section for the
|
||||
purpose of attribution in the manner set out above and, by exercising
|
||||
Your rights under this License, You may not implicitly or explicitly
|
||||
assert or imply any connection with, sponsorship or endorsement by the
|
||||
Original Author, Licensor and/or Attribution Parties, as appropriate,
|
||||
of You or Your use of the Work, without the separate, express prior
|
||||
written permission of the Original Author, Licensor and/or Attribution
|
||||
Parties.
|
||||
d. Except as otherwise agreed in writing by the Licensor or as may be
|
||||
otherwise permitted by applicable law, if You Reproduce, Distribute or
|
||||
Publicly Perform the Work either by itself or as part of any
|
||||
Adaptations or Collections, You must not distort, mutilate, modify or
|
||||
take other derogatory action in relation to the Work which would be
|
||||
prejudicial to the Original Author's honor or reputation. Licensor
|
||||
agrees that in those jurisdictions (e.g. Japan), in which any exercise
|
||||
of the right granted in Section 3(b) of this License (the right to
|
||||
make Adaptations) would be deemed to be a distortion, mutilation,
|
||||
modification or other derogatory action prejudicial to the Original
|
||||
Author's honor and reputation, the Licensor will waive or not assert,
|
||||
as appropriate, this Section, to the fullest extent permitted by the
|
||||
applicable national law, to enable You to reasonably exercise Your
|
||||
right under Section 3(b) of this License (right to make Adaptations)
|
||||
but not otherwise.
|
||||
|
||||
5. Representations, Warranties and Disclaimer
|
||||
|
||||
UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR
|
||||
OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY
|
||||
KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
||||
INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF
|
||||
LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS,
|
||||
WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
|
||||
OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU.
|
||||
|
||||
6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE
|
||||
LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR
|
||||
ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES
|
||||
ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS
|
||||
BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
7. Termination
|
||||
|
||||
a. This License and the rights granted hereunder will terminate
|
||||
automatically upon any breach by You of the terms of this License.
|
||||
Individuals or entities who have received Adaptations or Collections
|
||||
from You under this License, however, will not have their licenses
|
||||
terminated provided such individuals or entities remain in full
|
||||
compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will
|
||||
survive any termination of this License.
|
||||
b. Subject to the above terms and conditions, the license granted here is
|
||||
perpetual (for the duration of the applicable copyright in the Work).
|
||||
Notwithstanding the above, Licensor reserves the right to release the
|
||||
Work under different license terms or to stop distributing the Work at
|
||||
any time; provided, however that any such election will not serve to
|
||||
withdraw this License (or any other license that has been, or is
|
||||
required to be, granted under the terms of this License), and this
|
||||
License will continue in full force and effect unless terminated as
|
||||
stated above.
|
||||
|
||||
8. Miscellaneous
|
||||
|
||||
a. Each time You Distribute or Publicly Perform the Work or a Collection,
|
||||
the Licensor offers to the recipient a license to the Work on the same
|
||||
terms and conditions as the license granted to You under this License.
|
||||
b. Each time You Distribute or Publicly Perform an Adaptation, Licensor
|
||||
offers to the recipient a license to the original Work on the same
|
||||
terms and conditions as the license granted to You under this License.
|
||||
c. If any provision of this License is invalid or unenforceable under
|
||||
applicable law, it shall not affect the validity or enforceability of
|
||||
the remainder of the terms of this License, and without further action
|
||||
by the parties to this agreement, such provision shall be reformed to
|
||||
the minimum extent necessary to make such provision valid and
|
||||
enforceable.
|
||||
d. No term or provision of this License shall be deemed waived and no
|
||||
breach consented to unless such waiver or consent shall be in writing
|
||||
and signed by the party to be charged with such waiver or consent.
|
||||
e. This License constitutes the entire agreement between the parties with
|
||||
respect to the Work licensed here. There are no understandings,
|
||||
agreements or representations with respect to the Work not specified
|
||||
here. Licensor shall not be bound by any additional provisions that
|
||||
may appear in any communication from You. This License may not be
|
||||
modified without the mutual written agreement of the Licensor and You.
|
||||
f. The rights granted under, and the subject matter referenced, in this
|
||||
License were drafted utilizing the terminology of the Berne Convention
|
||||
for the Protection of Literary and Artistic Works (as amended on
|
||||
September 28, 1979), the Rome Convention of 1961, the WIPO Copyright
|
||||
Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996
|
||||
and the Universal Copyright Convention (as revised on July 24, 1971).
|
||||
These rights and subject matter take effect in the relevant
|
||||
jurisdiction in which the License terms are sought to be enforced
|
||||
according to the corresponding provisions of the implementation of
|
||||
those treaty provisions in the applicable national law. If the
|
||||
standard suite of rights granted under applicable copyright law
|
||||
includes additional rights not granted under this License, such
|
||||
additional rights are deemed to be included in the License; this
|
||||
License is not intended to restrict the license of any rights under
|
||||
applicable law.
|
||||
|
||||
|
||||
Creative Commons Notice
|
||||
|
||||
Creative Commons is not a party to this License, and makes no warranty
|
||||
whatsoever in connection with the Work. Creative Commons will not be
|
||||
liable to You or any party on any legal theory for any damages
|
||||
whatsoever, including without limitation any general, special,
|
||||
incidental or consequential damages arising in connection to this
|
||||
license. Notwithstanding the foregoing two (2) sentences, if Creative
|
||||
Commons has expressly identified itself as the Licensor hereunder, it
|
||||
shall have all rights and obligations of Licensor.
|
||||
|
||||
Except for the limited purpose of indicating to the public that the
|
||||
Work is licensed under the CCPL, Creative Commons does not authorize
|
||||
the use by either party of the trademark "Creative Commons" or any
|
||||
related trademark or logo of Creative Commons without the prior
|
||||
written consent of Creative Commons. Any permitted use will be in
|
||||
compliance with Creative Commons' then-current trademark usage
|
||||
guidelines, as may be published on its website or otherwise made
|
||||
available upon request from time to time. For the avoidance of doubt,
|
||||
this trademark restriction does not form part of the License.
|
||||
|
||||
Creative Commons may be contacted at https://creativecommons.org/.
|
7
README.md
Normal file
@ -0,0 +1,7 @@
|
||||
#Streets mod 2.0
|
||||
|
||||
##Contributors
|
||||
|
||||
* webdesigner97
|
||||
* cheapie
|
||||
* Thomas-S
|
7
api.lua
@ -42,11 +42,4 @@ end
|
||||
|
||||
function streets.register_road_marking(data)
|
||||
streets.labels.labeltypes[data.name] = data
|
||||
if data.flip_required then
|
||||
local data2 = copytable(data)
|
||||
data2.tex = data2.tex.."^[transformFX"
|
||||
data2.name = data2.name.."_rotated"
|
||||
data2.friendlyname = data2.friendlyname.." (rotated)"
|
||||
streets.labels.labeltypes[data2.name] = data2
|
||||
end
|
||||
end
|
||||
|
@ -20,7 +20,7 @@ local function copytable(orig)
|
||||
return copy
|
||||
end
|
||||
|
||||
local register_surface_nodes = function(friendlyname,name,tiles,groups,sounds,craft)
|
||||
local register_surface_nodes = function(friendlyname, name, tiles, groups, sounds, craft)
|
||||
minetest.register_node(":streets:"..name,{
|
||||
description = friendlyname,
|
||||
tiles = tiles,
|
||||
@ -62,9 +62,25 @@ local register_sign_node = function(friendlyname,name,tiles,thickness)
|
||||
behind_pos.x = behind_pos.x - 1
|
||||
end
|
||||
local behind_node = minetest.get_node(behind_pos)
|
||||
if behind_node.name:sub(1,15) == "streets:bigpole" then
|
||||
node.name = node.name.."_polemount"
|
||||
minetest.set_node(pos,node)
|
||||
local under_pos = {x = pos.x, y = pos.y-1, z = pos.z}
|
||||
local under_node = minetest.get_node(under_pos)
|
||||
local upper_pos = {x = pos.x, y = pos.y+1, z = pos.z}
|
||||
local upper_node = minetest.get_node(upper_pos)
|
||||
if minetest.registered_nodes[behind_node.name].groups.bigpole then
|
||||
if minetest.registered_nodes[behind_node.name].streets_pole_connection[param2][behind_node.param2 + 1] ~= 1 then
|
||||
node.name = node.name .. "_polemount"
|
||||
minetest.set_node(pos, node)
|
||||
end
|
||||
elseif minetest.registered_nodes[under_node.name].groups.bigpole then
|
||||
if minetest.registered_nodes[under_node.name].streets_pole_connection["t"][under_node.param2 + 1] == 1 then
|
||||
node.name = node.name .. "_center"
|
||||
minetest.set_node(pos, node)
|
||||
end
|
||||
elseif minetest.registered_nodes[upper_node.name].groups.bigpole then
|
||||
if minetest.registered_nodes[upper_node.name].streets_pole_connection["b"][upper_node.param2 + 1] == 1 then
|
||||
node.name = node.name .. "_center"
|
||||
minetest.set_node(pos, node)
|
||||
end
|
||||
end
|
||||
end,
|
||||
node_box = {
|
||||
@ -76,7 +92,7 @@ local register_sign_node = function(friendlyname,name,tiles,thickness)
|
||||
fixed = {-1/2, -1/2, 0.5, 1/2, 1/2, math.min(0.5 - thickness,0.45)}
|
||||
}
|
||||
})
|
||||
minetest.register_node(":streets:"..name.."_polemount",{
|
||||
minetest.register_node(":streets:"..name.."_polemount", {
|
||||
tiles = tiles,
|
||||
groups = {cracky = 3,not_in_creative_inventory = 1},
|
||||
drop = "streets:"..name,
|
||||
@ -89,76 +105,123 @@ local register_sign_node = function(friendlyname,name,tiles,thickness)
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, math.min(0.85 - thickness,0.80), 1/2, 1/2, 0.85}
|
||||
fixed = {-1/2, -1/2, math.min(0.875 - thickness,0.80), 1/2, 1/2, 0.85}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_node(":streets:"..name.."_center", {
|
||||
tiles = tiles,
|
||||
groups = {cracky = 3,not_in_creative_inventory = 1},
|
||||
drop = "streets:"..name,
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -(thickness/2), 1/2, 1/2, (thickness/2)}
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -math.min((thickness/2),0.05), 1/2, 1/2, math.min((thickness/2),0.05)}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
local register_marking_nodes = function(surface_friendlyname,surface_name,surface_tiles,surface_groups,surface_sounds,friendlyname,name,tex)
|
||||
minetest.register_node(":streets:mark_"..name,{
|
||||
description = "Marking Overlay: "..friendlyname,
|
||||
tiles = {tex,"streets_transparent.png"},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy = 3,attached_node = 1,oddly_breakable_by_hand = 1},
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
inventory_image = tex,
|
||||
wield_image = tex,
|
||||
after_place_node = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local lower_pos = {x = pos.x, y = pos.y-1, z = pos.z}
|
||||
local lower_node = minetest.get_node(lower_pos)
|
||||
local lower_node_is_asphalt = minetest.registered_nodes[lower_node.name].groups.asphalt and streets.surfaces.surfacetypes[lower_node.name]
|
||||
if lower_node_is_asphalt then
|
||||
local lower_node_basename = streets.surfaces.surfacetypes[lower_node.name].name
|
||||
lower_node.name = "streets:mark_"..(node.name:sub(14)).."_on_"..lower_node_basename
|
||||
lower_node.param2 = node.param2
|
||||
minetest.set_node(lower_pos,lower_node)
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5,-0.5,-0.5,0.5,-0.499,0.5}
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}
|
||||
}
|
||||
})
|
||||
local tiles = {}
|
||||
tiles[1] = surface_tiles[1]
|
||||
tiles[2] = surface_tiles[2] or surface_tiles[1] --If less than 6 textures are used, this'll "expand" them to 6
|
||||
tiles[3] = surface_tiles[3] or surface_tiles[1]
|
||||
tiles[4] = surface_tiles[4] or surface_tiles[1]
|
||||
tiles[5] = surface_tiles[5] or surface_tiles[1]
|
||||
tiles[6] = surface_tiles[6] or surface_tiles[1]
|
||||
tiles[1] = tiles[1].."^"..tex
|
||||
tiles[5] = tiles[5].."^"..tex.."^[transformR180"
|
||||
tiles[6] = tiles[6].."^"..tex
|
||||
local groups = copytable(surface_groups)
|
||||
groups.not_in_creative_inventory = 1
|
||||
minetest.register_node(":streets:mark_"..name.."_on_"..surface_name,{
|
||||
description = surface_friendlyname.." With Marking: "..friendlyname,
|
||||
groups = groups,
|
||||
sounds = surface_sounds,
|
||||
tiles = tiles,
|
||||
paramtype2 = "facedir"
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "streets:mark_"..name.."_on_"..surface_name,
|
||||
type = "shapeless",
|
||||
recipe = {"streets:"..surface_name,"streets:mark_"..name}
|
||||
})
|
||||
if minetest.get_modpath("moreblocks") or minetest.get_modpath("stairsplus") then
|
||||
stairsplus:register_all("streets", name.."_on_"..surface_name, "streets:mark_"..name.."_on_"..surface_name, {
|
||||
description = surface_friendlyname.." with Marking: "..friendlyname,
|
||||
tiles = tiles,
|
||||
groups = surface_groups,
|
||||
sounds = surface_sounds
|
||||
local register_marking_nodes = function(surface_friendlyname, surface_name, surface_tiles, surface_groups, surface_sounds, register_stairs, friendlyname, name, tex, r)
|
||||
local rotation_friendly = ""
|
||||
if r == "r90" then
|
||||
rotation_friendly = " (R90)"
|
||||
tex = tex .. "^[transformR90"
|
||||
elseif r == "r180" then
|
||||
rotation_friendly = " (R180)"
|
||||
tex = tex .. "^[transformR180"
|
||||
elseif r == "r270" then
|
||||
rotation_friendly = " (R270)"
|
||||
tex = tex .. "^[transformR270"
|
||||
end
|
||||
|
||||
if r ~= "" then
|
||||
r = "_" .. r
|
||||
end
|
||||
|
||||
for color = 1,2 do
|
||||
local colorname
|
||||
if color == 1 then
|
||||
colorname = "White"
|
||||
elseif color == 2 then
|
||||
colorname = "Yellow"
|
||||
tex = "" .. tex .. "^[colorize:#ecb100"
|
||||
end
|
||||
|
||||
minetest.register_node(":streets:mark_" .. name:gsub("{color}", colorname:lower()) .. r, {
|
||||
description = "Marking Overlay: " .. friendlyname .. rotation_friendly .. " " .. colorname,
|
||||
tiles = {tex, "streets_transparent.png"},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy = 3, attached_node = 1, oddly_breakable_by_hand = 1, not_in_creative_inventory = 1},
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
inventory_image = tex,
|
||||
wield_image = tex,
|
||||
after_place_node = function(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local lower_pos = {x = pos.x, y = pos.y-1, z = pos.z}
|
||||
local lower_node = minetest.get_node(lower_pos)
|
||||
local lower_node_is_asphalt = minetest.registered_nodes[lower_node.name].groups.asphalt and streets.surfaces.surfacetypes[lower_node.name]
|
||||
if lower_node_is_asphalt then
|
||||
local lower_node_basename = streets.surfaces.surfacetypes[lower_node.name].name
|
||||
lower_node.name = "streets:mark_" .. (node.name:sub(14)) .. "_on_" .. lower_node_basename
|
||||
lower_node.param2 = node.param2
|
||||
minetest.set_node(lower_pos, lower_node)
|
||||
minetest.remove_node(pos)
|
||||
end
|
||||
end,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5,-0.5,-0.5,0.5,-0.499,0.5}
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}
|
||||
}
|
||||
})
|
||||
|
||||
local tiles = {}
|
||||
tiles[1] = surface_tiles[1]
|
||||
tiles[2] = surface_tiles[2] or surface_tiles[1] --If less than 6 textures are used, this'll "expand" them to 6
|
||||
tiles[3] = surface_tiles[3] or surface_tiles[1]
|
||||
tiles[4] = surface_tiles[4] or surface_tiles[1]
|
||||
tiles[5] = surface_tiles[5] or surface_tiles[1]
|
||||
tiles[6] = surface_tiles[6] or surface_tiles[1]
|
||||
tiles[1] = tiles[1] .. "^(" .. tex .. ")"
|
||||
tiles[5] = tiles[5] .. "^(" .. tex .. ")^[transformR180"
|
||||
tiles[6] = tiles[6] .. "^(" .. tex .. ")"
|
||||
local groups = copytable(surface_groups)
|
||||
groups.not_in_creative_inventory = 1
|
||||
minetest.register_node(":streets:mark_" .. name:gsub("{color}", colorname:lower()) .. r .. "_on_" .. surface_name, {
|
||||
description = surface_friendlyname .. " with Marking: " .. friendlyname .. rotation_friendly .. " " .. colorname,
|
||||
groups = groups,
|
||||
sounds = surface_sounds,
|
||||
tiles = tiles,
|
||||
paramtype2 = "facedir"
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "streets:mark_" .. name:gsub("{color}", colorname:lower()) .. r .. "_on_" .. surface_name,
|
||||
type = "shapeless",
|
||||
recipe = {"streets:" .. surface_name, "streets:mark_" .. name:gsub("{color}", colorname:lower())}
|
||||
})
|
||||
if register_stairs and (minetest.get_modpath("moreblocks") or minetest.get_modpath("stairsplus")) then
|
||||
stairsplus:register_all(
|
||||
"streets",
|
||||
name:gsub("{color}", colorname:lower()) .. r .. "_on_" .. surface_name,
|
||||
"streets:mark_" .. name:gsub("{color}", colorname:lower()) .. "_on_" .. surface_name, {
|
||||
description = surface_friendlyname .. " with Marking: " .. friendlyname .. rotation_friendly .. " " .. colorname,
|
||||
tiles = tiles,
|
||||
groups = surface_groups,
|
||||
sounds = surface_sounds
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -167,7 +230,18 @@ if streets.surfaces.surfacetypes then
|
||||
register_surface_nodes(v.friendlyname,v.name,v.tiles,v.groups,v.sounds,v.craft)
|
||||
if streets.labels.labeltypes then
|
||||
for _,w in pairs(streets.labels.labeltypes) do
|
||||
register_marking_nodes(v.friendlyname,v.name,v.tiles,v.groups,v.sounds,w.friendlyname,w.name,w.tex)
|
||||
register_marking_nodes(v.friendlyname, v.name, v.tiles, v.groups, v.sounds, v.register_stairs, w.friendlyname, w.name, w.tex, "")
|
||||
if w.rotation then
|
||||
if w.rotation.r90 then
|
||||
register_marking_nodes(v.friendlyname, v.name, v.tiles, v.groups, v.sounds, v.register_stairs, w.friendlyname, w.name, w.tex, "r90")
|
||||
end
|
||||
if w.rotation.r180 then
|
||||
register_marking_nodes(v.friendlyname, v.name, v.tiles, v.groups, v.sounds, v.register_stairs, w.friendlyname, w.name, w.tex, "r180")
|
||||
end
|
||||
if w.rotation.r270 then
|
||||
register_marking_nodes(v.friendlyname, v.name, v.tiles, v.groups, v.sounds, v.register_stairs, w.friendlyname, w.name, w.tex, "r270")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,5 +1,7 @@
|
||||
default
|
||||
stairs
|
||||
dye?
|
||||
xpanes?
|
||||
stairsplus?
|
||||
moreblocks?
|
||||
digilines?
|
||||
|
2
init.lua
@ -12,7 +12,7 @@ streets = {}
|
||||
-- Config stuff goes here
|
||||
streets.conf = {
|
||||
version = "2.0",
|
||||
licenseCode = "",
|
||||
licenseCode = "BSD 2-clause",
|
||||
licenseMedia = "CC-BY-SA 3.0",
|
||||
modpath = minetest.get_modpath("streets")
|
||||
}
|
||||
|
@ -5,21 +5,22 @@
|
||||
]]
|
||||
|
||||
minetest.register_node(":streets:delineator", {
|
||||
tiles = {"streets_delineator_top.png", "streets_delineator_top.png", "streets_delineator_right.png", "streets_delineator_left.png", "streets_delineator_front.png", "streets_delineator_back.png"},
|
||||
description = "Delineator",
|
||||
tiles = {"streets_delineator_top.png", "streets_delineator_top.png", "streets_delineator_left.png", "streets_delineator_right.png", "streets_delineator_back.png", "streets_delineator_front.png"},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy = 2},
|
||||
light_source = 2,
|
||||
sunlight_propagates = true,
|
||||
paramtype2 = "facedir",
|
||||
groups = {snappy = 2},
|
||||
light_source = 2,
|
||||
sunlight_propagates = true,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.125, -0.5, -0.0625, 0.125, 0.4375, 0.0625}, -- Body
|
||||
{-0.125, 0.4375, -0.0625, 0, 0.5, 0.0625}, -- Top
|
||||
{0, 0.4375, -0.0625, 0.125, 0.5, 0.0625}, -- Top
|
||||
}
|
||||
},
|
||||
selection_box = {
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.125, -0.5, -0.0625, 0.125, 0.5, 0.0625}, -- Body
|
||||
|
@ -11,28 +11,35 @@ function streets.workshop.start(pos)
|
||||
if node.name ~= "streets:asphalt_workshop" then
|
||||
return
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local template = inv:get_stack("template",1):get_name()
|
||||
local surface = inv:get_stack("surface",1):get_name()
|
||||
local yellow_needed = inv:get_stack("yellow_needed",1):get_count()
|
||||
local white_needed = inv:get_stack("white_needed",1):get_count()
|
||||
local yellow_ok = inv:get_stack("yellow_dye",1):get_count() >= yellow_needed
|
||||
local white_ok = inv:get_stack("white_dye",1):get_count() >= white_needed
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
local template = inv:get_stack("template", 1):get_name()
|
||||
local surface = inv:get_stack("surface", 1):get_name()
|
||||
local yellow_needed = inv:get_stack("yellow_needed", 1):get_count()
|
||||
local white_needed = inv:get_stack("white_needed", 1):get_count()
|
||||
local yellow_ok = inv:get_stack("yellow_dye", 1):get_count() >= yellow_needed
|
||||
local white_ok = inv:get_stack("white_dye", 1):get_count() >= white_needed
|
||||
|
||||
if not (yellow_ok and white_ok and surface and surface ~= "" and template and template ~= "") then
|
||||
return
|
||||
end
|
||||
|
||||
local surface_suffix = ""
|
||||
if streets.surfaces.surfacetypes[surface] then surface_suffix = "_on_"..streets.surfaces.surfacetypes[surface].name end
|
||||
local outname = template..surface_suffix
|
||||
if not inv:room_for_item("output",{name = outname,count = 1}) then
|
||||
if streets.surfaces.surfacetypes[surface] then
|
||||
surface_suffix = "_on_" .. streets.surfaces.surfacetypes[surface].name
|
||||
end
|
||||
|
||||
local outname = template .. surface_suffix
|
||||
if not inv:room_for_item("output", {name = outname, count = 1}) then
|
||||
return
|
||||
end
|
||||
meta:set_string("working_on",outname)
|
||||
meta:set_int("progress",0)
|
||||
inv:remove_item("yellow_dye",{name = "dye:yellow",count = yellow_needed})
|
||||
inv:remove_item("white_dye",{name = "dye:white",count = white_needed})
|
||||
inv:remove_item("surface",{name = inv:get_stack("surface",1):get_name(),count = 1})
|
||||
|
||||
meta:set_string("working_on", outname)
|
||||
meta:set_int("progress", 0)
|
||||
inv:remove_item("yellow_dye", {name = "dye:yellow", count = yellow_needed})
|
||||
inv:remove_item("white_dye" , {name = "dye:white" , count = white_needed })
|
||||
inv:remove_item("surface", {name = inv:get_stack("surface", 1):get_name(), count = 1})
|
||||
streets.workshop.step(pos)
|
||||
end
|
||||
|
||||
@ -49,12 +56,12 @@ function streets.workshop.step(pos)
|
||||
local progress = meta:get_int("progress")
|
||||
progress = progress + 1
|
||||
if progress < 10 then
|
||||
minetest.after(0.2,streets.workshop.step,pos)
|
||||
minetest.after(0.2, streets.workshop.step, pos)
|
||||
else
|
||||
meta:set_int("progress",0)
|
||||
progress = 0
|
||||
inv:add_item("output",meta:get_string("working_on"))
|
||||
meta:set_string("working_on","")
|
||||
meta:set_string("working_on", "")
|
||||
streets.workshop.start(pos)
|
||||
end
|
||||
meta:set_int("progress",progress)
|
||||
@ -68,9 +75,9 @@ function streets.workshop.update_formspec(pos)
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local fs = "size[9,9;]"
|
||||
fs = fs.."tabheader[0,0;tabs;"
|
||||
fs = fs .. "tabheader[0,0;tabs;"
|
||||
for k,v in pairs(streets.labels.sections) do
|
||||
fs = fs..minetest.formspec_escape(v.friendlyname)..","
|
||||
fs = fs..minetest.formspec_escape(v.friendlyname) .. ","
|
||||
end
|
||||
fs = fs:sub(1,-2) --Strip trailing comma
|
||||
fs = fs .. ";" .. meta:get_int("section") .. ";false;true]"
|
||||
@ -83,18 +90,23 @@ function streets.workshop.update_formspec(pos)
|
||||
fs = fs .. "label[0,2.75;Dye Required]"
|
||||
fs = fs .. "list[context;white_needed;0,3.25;1,1]"
|
||||
fs = fs .. "list[context;yellow_needed;1,3.25;1,1]"
|
||||
fs = fs .. "list[context;list;2,0;4,4]"
|
||||
fs = fs .. "label[6.5,0.5;Surface]"
|
||||
fs = fs .. "label[7.5,0.5;Template]"
|
||||
fs = fs .. "list[context;surface;6.5,1;1,1]"
|
||||
fs = fs .. "list[context;template;7.5,1;1,1]"
|
||||
fs = fs .. "image[7,2;1,1;gui_furnace_arrow_bg.png^[lowpart:" .. meta:get_int("progress")*10 .. ":gui_furnace_arrow_fg.png^[transformR180]"
|
||||
fs = fs .. "list[context;output;7,3;1,1]"
|
||||
fs = fs .. "label[2,-0.25;Rotation]"
|
||||
fs = fs .. "button[2,0.25;1,1;r0;R0]"
|
||||
fs = fs .. "button[2,1.25;1,1;r90;R90]"
|
||||
fs = fs .. "button[2,2.25;1,1;r180;R180]"
|
||||
fs = fs .. "button[2,3.25;1,1;r270;R270]"
|
||||
fs = fs .. "list[context;list;3,0;4,4]"
|
||||
fs = fs .. "label[7,0.5;Surface]"
|
||||
fs = fs .. "label[8,0.5;Template]"
|
||||
fs = fs .. "list[context;surface;7,1;1,1]"
|
||||
fs = fs .. "list[context;template;8,1;1,1]"
|
||||
fs = fs .. "image[7.5,2;1,1;gui_furnace_arrow_bg.png^[lowpart:" .. meta:get_int("progress")*10 .. ":gui_furnace_arrow_fg.png^[transformR180]"
|
||||
fs = fs .. "list[context;output;7.5,3;1,1]"
|
||||
fs = fs .. "list[current_player;main;0.5,5;8,4]"
|
||||
if minetest.setting_getbool("creative_mode") then
|
||||
fs = fs .."label[2,4;CREATIVE MODE: Taking templates is enabled]"
|
||||
end
|
||||
meta:set_string("formspec",fs)
|
||||
meta:set_string("formspec", fs)
|
||||
end
|
||||
|
||||
local function update_inventory(pos)
|
||||
@ -103,49 +115,77 @@ local function update_inventory(pos)
|
||||
return
|
||||
end
|
||||
local meta = minetest.get_meta(pos)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("white_dye",1)
|
||||
inv:set_size("yellow_dye",1)
|
||||
inv:set_size("white_needed",0)
|
||||
inv:set_size("yellow_needed",0)
|
||||
inv:set_size("list",0)
|
||||
inv:set_size("white_needed",1)
|
||||
inv:set_size("yellow_needed",1)
|
||||
inv:set_size("list",16) -- 4x4
|
||||
inv:set_size("surface",1)
|
||||
inv:set_size("template",1)
|
||||
inv:set_size("output",1)
|
||||
local inv = meta:get_inventory()
|
||||
inv:set_size("white_dye" , 1)
|
||||
inv:set_size("yellow_dye" , 1)
|
||||
inv:set_size("white_needed" , 0)
|
||||
inv:set_size("yellow_needed", 0)
|
||||
inv:set_size("list" , 0)
|
||||
inv:set_size("white_needed" , 1)
|
||||
inv:set_size("yellow_needed", 1)
|
||||
inv:set_size("list" , 16) -- 4x4
|
||||
inv:set_size("surface" , 1)
|
||||
inv:set_size("template" , 1)
|
||||
inv:set_size("output" , 1)
|
||||
|
||||
local color = meta:get_string("color")
|
||||
local section = meta:get_int("section")
|
||||
local rotation = meta:get_string("rotation")
|
||||
local sectionname = streets.labels.sections[section].name
|
||||
for k,v in pairs(streets.labels.labeltypes) do
|
||||
if v.category.color == color and v.category.section == sectionname then
|
||||
inv:add_item("list","streets:mark_"..v.name)
|
||||
if v.section == sectionname then
|
||||
if v.rotation then
|
||||
if v.rotation.r90 and rotation == "r90" then
|
||||
inv:add_item("list","streets:mark_" .. v.name:gsub("{color}", color:lower()) .. "_r90" )
|
||||
elseif v.rotation.r180 and rotation == "r180" then
|
||||
inv:add_item("list","streets:mark_" .. v.name:gsub("{color}", color:lower()) .. "_r180")
|
||||
elseif v.rotation.r270 and rotation == "r270" then
|
||||
inv:add_item("list","streets:mark_" .. v.name:gsub("{color}", color:lower()) .. "_r270")
|
||||
end
|
||||
end
|
||||
if rotation == "r0" then
|
||||
inv:add_item("list","streets:mark_" .. v.name:gsub("{color}", color:lower()) )
|
||||
end
|
||||
end
|
||||
end
|
||||
local templatestack = inv:get_stack("template",1)
|
||||
local templatestack = inv:get_stack("template", 1)
|
||||
if templatestack and templatestack:to_string() ~= "" then
|
||||
local selectedmarking = templatestack:to_table().name:sub(14)
|
||||
local dyesneeded = streets.labels.labeltypes[selectedmarking].dye_needed
|
||||
if dyesneeded.white then
|
||||
inv:add_item("white_needed",{name = "dye:white",count = dyesneeded.white})
|
||||
if selectedmarking:find("white") then
|
||||
markingcolor = "white"
|
||||
elseif selectedmarking:find("yellow") then
|
||||
markingcolor = "yellow"
|
||||
end
|
||||
if dyesneeded.yellow then
|
||||
inv:add_item("yellow_needed",{name = "dye:yellow",count = dyesneeded.yellow})
|
||||
selectedmarking = selectedmarking:gsub("white" , "{color}")
|
||||
selectedmarking = selectedmarking:gsub("yellow", "{color}")
|
||||
local dyesneeded = streets.labels.labeltypes[selectedmarking].dye_needed
|
||||
if markingcolor == "white" then
|
||||
inv:add_item("white_needed", {name = "dye:white", count = dyesneeded})
|
||||
end
|
||||
if markingcolor == "yellow" then
|
||||
inv:add_item("yellow_needed", {name = "dye:yellow", count = dyesneeded})
|
||||
end
|
||||
end
|
||||
streets.workshop.update_formspec(pos)
|
||||
streets.workshop.start(pos)
|
||||
end
|
||||
|
||||
local function on_receive_fields(pos,formname,fields,sender)
|
||||
local function on_receive_fields(pos, formname, fields, sender)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if fields.tabs then
|
||||
meta:set_int("section",fields.tabs)
|
||||
meta:set_int("section", fields.tabs)
|
||||
elseif fields.color_white then
|
||||
meta:set_string("color","white")
|
||||
meta:set_string("color", "white")
|
||||
elseif fields.color_yellow then
|
||||
meta:set_string("color","yellow")
|
||||
meta:set_string("color", "yellow")
|
||||
elseif fields.r0 then
|
||||
meta:set_string("rotation", "r0")
|
||||
elseif fields.r90 then
|
||||
meta:set_string("rotation", "r90")
|
||||
elseif fields.r180 then
|
||||
meta:set_string("rotation", "r180")
|
||||
elseif fields.r270 then
|
||||
meta:set_string("rotation", "r270")
|
||||
end
|
||||
update_inventory(pos)
|
||||
end
|
||||
|
@ -32,10 +32,10 @@ minetest.register_node("streets:bollard_driver", {
|
||||
mesecons = {
|
||||
effector = {
|
||||
rules = mesecon.rules.default,
|
||||
action_on = function (pos, node)
|
||||
action_off = function (pos, node)
|
||||
toggle_bollard(vector.add(pos, vector.new(0, 1, 0)), node, nil, nil, {type = "node", under = vector.add(pos, vector.new(0, -1, 0)), above = vector.add(pos, vector.new(0, 1, 0))},"up")
|
||||
end,
|
||||
action_off = function (pos, node)
|
||||
action_on = function (pos, node)
|
||||
toggle_bollard(vector.add(pos, vector.new(0, 1, 0)), node, nil, nil, {type = "node", under = vector.add(pos, vector.new(0, -1, 0)), above = vector.add(pos, vector.new(0, 1, 0))},"down")
|
||||
end
|
||||
}}
|
||||
|
@ -13,6 +13,10 @@ for surface_name, surface_data in pairs(streets.surfaces.surfacetypes) do
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky = 3},
|
||||
on_rightclick = function(pos,node)
|
||||
if minetest.is_protected(pos, clicker) and not minetest.check_player_privs(clicker, {protection_bypass=true}) then
|
||||
minetest.record_protection_violation(pos, clicker)
|
||||
return
|
||||
end
|
||||
node.name = node.name.."_open"
|
||||
minetest.set_node(pos,node)
|
||||
end,
|
||||
@ -40,8 +44,13 @@ for surface_name, surface_data in pairs(streets.surfaces.surfacetypes) do
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
climbable = true,
|
||||
drop = "streets:" .. surface_name:sub(2, -1):split(":")[2] .. "_manhole",
|
||||
groups = {cracky = 3,not_in_creative_inventory = 1},
|
||||
on_rightclick = function(pos,node)
|
||||
if minetest.is_protected(pos, clicker) and not minetest.check_player_privs(clicker, {protection_bypass=true}) then
|
||||
minetest.record_protection_violation(pos, clicker)
|
||||
return
|
||||
end
|
||||
node.name = string.sub(node.name,1,-6)
|
||||
minetest.set_node(pos,node)
|
||||
end,
|
||||
|
@ -5,7 +5,7 @@
|
||||
]]
|
||||
|
||||
minetest.register_node(":streets:bigpole", {
|
||||
description = "Pole",
|
||||
description = "Pole Straight",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
@ -31,11 +31,28 @@ minetest.register_node(":streets:bigpole", {
|
||||
{x= 0, y=-2, z= 0}
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
[1] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
|
||||
[2] = {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
[3] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
|
||||
["t"] = {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole 3",
|
||||
recipe = {
|
||||
{"default:steel_ingot"},
|
||||
{"default:steel_ingot"}
|
||||
}
|
||||
})
|
||||
minetest.register_node(":streets:bigpole_edge", {
|
||||
description = "Pole",
|
||||
drop = "streets:bigpole",
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_short", {
|
||||
description = "Pole Short",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
@ -45,10 +62,10 @@ minetest.register_node(":streets:bigpole_edge", {
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15,-0.5,-0.15,0.15,0.15,0.15},
|
||||
{-0.15,-0.15,-0.15,0.15,0.15,-0.5}
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.15, 0.15}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
@ -60,11 +77,82 @@ minetest.register_node(":streets:bigpole_edge", {
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
[1] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
[2] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
||||
[3] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0},
|
||||
["t"] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_short 2",
|
||||
recipe = {
|
||||
{"streets:bigpole"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_edge", {
|
||||
description = "Pole Edge",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_pole.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, level = 2, bigpole = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.15, 0.15},
|
||||
{-0.15, -0.15, -0.15, 0.15, 0.15, -0.5}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
{x= 0, y= 0, z=-1},
|
||||
{x= 0, y= 0, z= 1},
|
||||
{x= 1, y= 0, z= 0},
|
||||
{x=-1, y= 0, z= 0},
|
||||
{x= 0, y=-1, z= 0},
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
|
||||
[1] = {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1},
|
||||
[2] = {0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0},
|
||||
[3] = {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0},
|
||||
["t"] = {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_edge 3",
|
||||
recipe = {
|
||||
{"streets:bigpole","streets:bigpole"},
|
||||
{"streets:bigpole",""}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_edge 3",
|
||||
recipe = {
|
||||
{"streets:bigpole","streets:bigpole"},
|
||||
{"","streets:bigpole"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_tjunction", {
|
||||
description = "Pole",
|
||||
drop = "streets:bigpole",
|
||||
description = "Pole T-Junction",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
@ -78,6 +166,7 @@ minetest.register_node(":streets:bigpole_tjunction", {
|
||||
{-0.15, -0.15, -0.5, 0.15, 0.15, 0.5}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
@ -89,37 +178,258 @@ minetest.register_node(":streets:bigpole_tjunction", {
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},
|
||||
[1] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1},
|
||||
[2] = {1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},
|
||||
[3] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1},
|
||||
["t"] = {0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole 3",
|
||||
output = "streets:bigpole_tjunction",
|
||||
recipe = {
|
||||
{"","",""},
|
||||
{"","default:steel_ingot",""},
|
||||
{"","default:steel_ingot",""}
|
||||
{"streets:bigpole_edge","streets:bigpole_short"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_corner", {
|
||||
description = "Pole Corner",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_pole.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, level = 2, bigpole = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.15, 0.15},
|
||||
{-0.15, -0.15, -0.15, 0.15, 0.15, -0.5},
|
||||
{-0.15, -0.15, -0.15, 0.5, 0.15, 0.15}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
{x= 0, y= 0, z=-1},
|
||||
{x= 0, y= 0, z= 1},
|
||||
{x= 1, y= 0, z= 0},
|
||||
{x=-1, y= 0, z= 0},
|
||||
{x= 0, y=-1, z= 0},
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0},
|
||||
[1] = {0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1},
|
||||
[2] = {0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1},
|
||||
[3] = {1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0},
|
||||
["t"] = {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_edge 3",
|
||||
output = "streets:bigpole_corner",
|
||||
recipe = {
|
||||
{"","",""},
|
||||
{"streets:bigpole","streets:bigpole",""},
|
||||
{"streets:bigpole","",""}
|
||||
{"streets:bigpole_edge"},
|
||||
{"streets:bigpole_short"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_four_side_junction", {
|
||||
description = "Pole 4-Side-Junction",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_pole.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, level = 2, bigpole = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||||
{-0.15, -0.15, -0.15, 0.15, 0.15, -0.5},
|
||||
{-0.15, -0.15, -0.15, 0.5, 0.15, 0.15}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
{x= 0, y= 0, z=-1},
|
||||
{x= 0, y= 0, z= 1},
|
||||
{x= 1, y= 0, z= 0},
|
||||
{x=-1, y= 0, z= 0},
|
||||
{x= 0, y=-1, z= 0},
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0},
|
||||
[1] = {0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1},
|
||||
[2] = {0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1},
|
||||
[3] = {1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0},
|
||||
["t"] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_edge 3",
|
||||
output = "streets:bigpole_four_side_junction",
|
||||
recipe = {
|
||||
{"","",""},
|
||||
{"streets:bigpole","streets:bigpole",""},
|
||||
{"","streets:bigpole",""}
|
||||
{"streets:bigpole_short"},
|
||||
{"streets:bigpole_corner"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_cross", {
|
||||
description = "Pole Cross",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_pole.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, level = 2, bigpole = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||||
{-0.15, -0.15, -0.5, 0.15, 0.15, 0.5}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
{x= 0, y= 0, z=-1},
|
||||
{x= 0, y= 0, z= 1},
|
||||
{x= 1, y= 0, z= 0},
|
||||
{x=-1, y= 0, z= 0},
|
||||
{x= 0, y=-1, z= 0},
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},
|
||||
[1] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1},
|
||||
[2] = {1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0},
|
||||
[3] = {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1},
|
||||
["t"] = {1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_tjunction 2",
|
||||
output = "streets:bigpole_cross",
|
||||
recipe = {
|
||||
{"","",""},
|
||||
{"streets:bigpole_edge","streets:bigpole",""},
|
||||
{"","",""}
|
||||
{"", "streets:bigpole_short", ""},
|
||||
{"streets:bigpole_short", "", "streets:bigpole_short"},
|
||||
{"", "streets:bigpole_short", ""},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_five_side_junction", {
|
||||
description = "Pole 5-Side-Junction",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_pole.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, level = 2, bigpole = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||||
{-0.15, -0.15, -0.5, 0.15, 0.15, 0.5},
|
||||
{-0.15,-0.15,-0.15,0.5,0.15,0.15}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
{x= 0, y= 0, z=-1},
|
||||
{x= 0, y= 0, z= 1},
|
||||
{x= 1, y= 0, z= 0},
|
||||
{x=-1, y= 0, z= 0},
|
||||
{x= 0, y=-1, z= 0},
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0},
|
||||
[1] = {0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1},
|
||||
[2] = {1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1},
|
||||
[3] = {1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1},
|
||||
["t"] = {1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_fice_side_junction",
|
||||
recipe = {
|
||||
{"streets:bigpole_cross", "streets:bigpole_short"}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
minetest.register_node(":streets:bigpole_all_sides", {
|
||||
description = "Pole All Sides",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_pole.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, level = 2, bigpole = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||||
{-0.15, -0.15, -0.5, 0.15, 0.15, 0.5},
|
||||
{-0.5, -0.15, -0.15, 0.5, 0.15, 0.15}
|
||||
}
|
||||
},
|
||||
on_place = minetest.rotate_node,
|
||||
digiline = {
|
||||
wire = {
|
||||
rules = {
|
||||
{x= 0, y= 0, z=-1},
|
||||
{x= 0, y= 0, z= 1},
|
||||
{x= 1, y= 0, z= 0},
|
||||
{x=-1, y= 0, z= 0},
|
||||
{x= 0, y=-1, z= 0},
|
||||
{x= 0, y= 1, z= 0},
|
||||
}
|
||||
}
|
||||
},
|
||||
streets_pole_connection = {
|
||||
[0] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
||||
[1] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
||||
[2] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
||||
[3] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
||||
["t"] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
|
||||
["b"] = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:bigpole_all_sides",
|
||||
recipe = {
|
||||
{"streets:bigpole_short", "streets:bigpole_cross", "streets:bigpole_short"}
|
||||
}
|
||||
})
|
||||
|
@ -15,490 +15,341 @@ streets.labels.sections = {
|
||||
{name="other",friendlyname="Other"}
|
||||
}
|
||||
|
||||
|
||||
-- CENTER LINES
|
||||
|
||||
-- Normal Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_white_center_line",
|
||||
friendlyname = "Dashed White Center Line",
|
||||
tex = "streets_line_dashed.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "centerlines"},
|
||||
dye_needed = {white = 1},
|
||||
name = "dashed_{color}_center_line",
|
||||
friendlyname = "Dashed Center Line",
|
||||
tex = "streets_dashed_center_line.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 1,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_center_line",
|
||||
friendlyname = "Solid White Center Line",
|
||||
tex = "streets_line_solid.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "centerlines"},
|
||||
dye_needed = {white = 2},
|
||||
name = "solid_{color}_center_line",
|
||||
friendlyname = "Solid Center Line",
|
||||
tex = "streets_solid_center_line.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
|
||||
-- Wide Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_{color}_center_line_wide",
|
||||
friendlyname = "Dashed Center Line Wide",
|
||||
tex = "streets_dashed_center_line_wide.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_side_line",
|
||||
friendlyname = "Solid White Side Line",
|
||||
tex = "streets_line_side_slim.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "sidelines"},
|
||||
dye_needed = {white = 2},
|
||||
name = "solid_{color}_center_line_wide",
|
||||
friendlyname = "Solid Center Line Wide",
|
||||
tex = "streets_solid_center_line_wide.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
|
||||
-- Double Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_dashed_{color}_center_line",
|
||||
friendlyname = "Double Dashed Center Line",
|
||||
tex = "streets_double_dashed_center_line.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_side_line_wide",
|
||||
friendlyname = "Solid White Side Line (Wide)",
|
||||
tex = "streets_line_side_thick.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "sidelines"},
|
||||
dye_needed = {white = 3},
|
||||
name = "double_solid_{color}_center_line",
|
||||
friendlyname = "Double Solid Center Line",
|
||||
tex = "streets_double_solid_center_line.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_white_side_line",
|
||||
friendlyname = "Dashed White Side Line",
|
||||
tex = "streets_line_side_dashed_slim.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "sidelines"},
|
||||
dye_needed = {white = 1},
|
||||
name = "mixed_{color}_center_line",
|
||||
friendlyname = "Solid/Dashed Center Line",
|
||||
tex = "streets_mixed_center_line.png",
|
||||
section = "centerlines",
|
||||
dye_needed = 3,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
|
||||
--CENTER LINE CORNERS
|
||||
|
||||
--Normal Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_{color}_center_line_corner",
|
||||
friendlyname = "Solid Center Line Corner",
|
||||
tex = "streets_solid_center_line_corner.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_white_side_line_wide",
|
||||
friendlyname = "Dashed White Side Line (Wide)",
|
||||
tex = "streets_line_side_dashed_thick.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "sidelines"},
|
||||
dye_needed = {white = 2},
|
||||
name = "solid_{color}_center_line_tjunction",
|
||||
friendlyname = "Solid Center Line T-Junction",
|
||||
tex = "streets_solid_center_line_tjunction.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 3,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_side_line_corner",
|
||||
friendlyname = "Solid White Side Line Corner",
|
||||
tex = "streets_line_edge_slim.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "sidelines"},
|
||||
dye_needed = {white = 3},
|
||||
name = "solid_{color}_center_line_crossing",
|
||||
friendlyname = "Solid Center Line Crossing",
|
||||
tex = "streets_solid_center_line_crossing.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 4,
|
||||
})
|
||||
|
||||
|
||||
--Wide Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_{color}_center_line_wide_corner",
|
||||
friendlyname = "Solid Center Line Wide Corner",
|
||||
tex = "streets_solid_center_line_wide_corner.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_side_line_wide_corner",
|
||||
friendlyname = "Solid White Side Line (Wide) Corner",
|
||||
tex = "streets_line_edge_thick.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "sidelines"},
|
||||
dye_needed = {white = 4},
|
||||
name = "solid_{color}_center_line_wide_tjunction",
|
||||
friendlyname = "Solid Center Line Wide T-Junction",
|
||||
tex = "streets_solid_center_line_wide_tjunction.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 6,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_solid_white_center_line",
|
||||
friendlyname = "Double Solid White Center Line",
|
||||
tex = "streets_line_solid_double.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "centerlines"},
|
||||
dye_needed = {white = 4},
|
||||
name = "solid_{color}_center_line_wide_crossing",
|
||||
friendlyname = "Solid Center Line Wide Crossing",
|
||||
tex = "streets_solid_center_line_wide_crossing.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 8,
|
||||
})
|
||||
|
||||
|
||||
--Double Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_solid_{color}_center_line_corner",
|
||||
friendlyname = "Double Solid Center Line Corner",
|
||||
tex = "streets_double_solid_center_line_corner.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_dashed_white_center_line",
|
||||
friendlyname = "Double Dashed White Center Line",
|
||||
tex = "streets_line_dashed_double.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "centerlines"},
|
||||
dye_needed = {white = 2},
|
||||
name = "double_solid_{color}_center_line_tjunction",
|
||||
friendlyname = "Double Solid Center Line T-Junction",
|
||||
tex = "streets_double_solid_center_line_tjunction.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 6,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "mixed_white_center_line",
|
||||
friendlyname = "Solid/Dashed White Center Line",
|
||||
tex = "streets_line_mixed_double.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "centerlines"},
|
||||
dye_needed = {white = 3},
|
||||
name = "double_solid_{color}_center_line_crossing",
|
||||
friendlyname = "Double Solid Center Line Crossing",
|
||||
tex = "streets_double_solid_center_line_crossing.png",
|
||||
section = "centerlinecorners",
|
||||
dye_needed = 8,
|
||||
})
|
||||
|
||||
--SIDE LINES
|
||||
|
||||
--Normal Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_{color}_side_line",
|
||||
friendlyname = "Solid Side Line",
|
||||
tex = "streets_solid_side_line.png",
|
||||
section = "sidelines",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_stripe",
|
||||
friendlyname = "Solid White Stripe",
|
||||
tex = "streets_crosswalk.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "other"},
|
||||
dye_needed = {white = 4},
|
||||
name = "solid_{color}_side_line_corner",
|
||||
friendlyname = "Solid Side Line Corner",
|
||||
tex = "streets_solid_side_line_corner.png",
|
||||
section = "sidelines",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_straight",
|
||||
friendlyname = "White Arrow (straight)",
|
||||
name = "dashed_{color}_side_line",
|
||||
friendlyname = "Dashed Side Line",
|
||||
tex = "streets_dashed_side_line.png",
|
||||
section = "sidelines",
|
||||
dye_needed = 1,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
|
||||
--Wide Lines
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_{color}_side_line_wide",
|
||||
friendlyname = "Solid Side Line Wide",
|
||||
tex = "streets_solid_side_line_wide.png",
|
||||
section = "sidelines",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_{color}_side_line_wide_corner",
|
||||
friendlyname = "Solid Side Line Wide Corner",
|
||||
tex = "streets_solid_side_line_wide_corner.png",
|
||||
section = "sidelines",
|
||||
dye_needed = 8,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_{color}_side_line_wide",
|
||||
friendlyname = "Dashed Side Line Wide",
|
||||
tex = "streets_dashed_side_line_wide.png",
|
||||
section = "sidelines",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
|
||||
--ARROWS
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "{color}_arrow_straight",
|
||||
friendlyname = "Arrow Straight",
|
||||
tex = "streets_arrow_straight.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 2},
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_left",
|
||||
friendlyname = "White Arrow (left)",
|
||||
tex = "streets_arrow_left.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 2},
|
||||
name = "{color}_arrow_left",
|
||||
friendlyname = "Arrow Left",
|
||||
tex = "streets_arrow_right.png^[transformFX",
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_right",
|
||||
friendlyname = "White Arrow (right)",
|
||||
name = "{color}_arrow_right",
|
||||
friendlyname = "Arrow Right",
|
||||
tex = "streets_arrow_right.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 2},
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_left_straight",
|
||||
friendlyname = "White Arrow (left+straight)",
|
||||
tex = "streets_arrow_straightleft.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 3},
|
||||
name = "{color}_arrow_left_straight",
|
||||
friendlyname = "Arrow Left And Straight",
|
||||
tex = "streets_arrow_right_straight.png^[transformFX",
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_straight_right",
|
||||
friendlyname = "White Arrow (straight+right)",
|
||||
tex = "streets_arrow_straightright.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 3},
|
||||
name = "{color}_arrow_right_straight",
|
||||
friendlyname = "Arrow Right And Straight",
|
||||
tex = "streets_arrow_right_straight.png",
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_left_straight_right",
|
||||
friendlyname = "White Arrow (left+straight+right)",
|
||||
tex = "streets_arrow_straightleftright.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 4},
|
||||
name = "{color}_arrow_left_right_straight",
|
||||
friendlyname = "Arrow Left, Right And Straight",
|
||||
tex = "streets_arrow_right_straight.png^[transformFX^streets_arrow_right_straight.png",
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_arrow_left_right",
|
||||
friendlyname = "White Arrow (left+right)",
|
||||
tex = "streets_arrow_leftright.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "arrows"},
|
||||
dye_needed = {white = 3},
|
||||
name = "{color}_arrow_left_right",
|
||||
friendlyname = "Arrow Left And Right",
|
||||
tex = "streets_arrow_left_right.png",
|
||||
section = "arrows",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
|
||||
--SYMBOLS
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_parking",
|
||||
friendlyname = "White Parking",
|
||||
name = "{color}_parking",
|
||||
friendlyname = "Parking",
|
||||
tex = "streets_parking.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "symbols"},
|
||||
dye_needed = {white = 3},
|
||||
section = "symbols",
|
||||
dye_needed = 3,
|
||||
rotation = { r90 = 1, r180 = 1, r270 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_white_diagonal_line",
|
||||
friendlyname = "Solid White Diagonal Line",
|
||||
tex = "streets_zigzag.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "other"},
|
||||
dye_needed = {white = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_solid_white_diagonal_line",
|
||||
friendlyname = "Double Solid White Diagonal Line",
|
||||
tex = "streets_forbidden.png",
|
||||
flip_required = true,
|
||||
category = {color = "white", section = "other"},
|
||||
dye_needed = {white = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "white_x",
|
||||
friendlyname = "White X",
|
||||
name = "{color}_cross",
|
||||
friendlyname = "Cross",
|
||||
tex = "streets_cross.png",
|
||||
flip_required = false,
|
||||
category = {color = "white", section = "symbols"},
|
||||
dye_needed = {white = 4},
|
||||
section = "symbols",
|
||||
dye_needed = 4,
|
||||
})
|
||||
|
||||
--OTHER
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_{color}_stripe",
|
||||
friendlyname = "Solid Stripe",
|
||||
tex = "streets_solid_stripe.png",
|
||||
section = "other",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_yellow_center_line",
|
||||
friendlyname = "Dashed Yellow Center Line",
|
||||
tex = "streets_line_dashed_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 1},
|
||||
name = "solid_{color}_diagonal_line",
|
||||
friendlyname = "Solid Diagonal Line",
|
||||
tex = "streets_solid_diagonal_line.png",
|
||||
section = "other",
|
||||
dye_needed = 2,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line",
|
||||
friendlyname = "Solid Yellow Center Line",
|
||||
tex = "streets_line_solid_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_side_line",
|
||||
friendlyname = "Solid Yellow Side Line",
|
||||
tex = "streets_line_side_slim_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "sidelines"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_side_line_wide",
|
||||
friendlyname = "Solid Yellow Side Line (Wide)",
|
||||
tex = "streets_line_side_thick_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "sidelines"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_yellow_side_line",
|
||||
friendlyname = "Dashed Yellow Side Line",
|
||||
tex = "streets_line_side_dashed_slim_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "sidelines"},
|
||||
dye_needed = {yellow = 1},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "dashed_yellow_side_line_wide",
|
||||
friendlyname = "Dashed Yellow Side Line (Wide)",
|
||||
tex = "streets_line_side_dashed_thick_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "sidelines"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_side_line_corner",
|
||||
friendlyname = "Solid Yellow Side Line Corner",
|
||||
tex = "streets_line_edge_slim_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "sidelines"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_side_line_wide_corner",
|
||||
friendlyname = "Solid Yellow Side Line (Wide) Corner",
|
||||
tex = "streets_line_edge_thick_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "sidelines"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_solid_yellow_center_line",
|
||||
friendlyname = "Double Solid Yellow Center Line",
|
||||
tex = "streets_line_solid_double_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_dashed_yellow_center_line",
|
||||
friendlyname = "Double Dashed Yellow Center Line",
|
||||
tex = "streets_line_dashed_double_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "mixed_yellow_center_line",
|
||||
friendlyname = "Solid/Dashed Yellow Center Line",
|
||||
tex = "streets_line_mixed_double_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_stripe",
|
||||
friendlyname = "Solid Yellow Stripe",
|
||||
tex = "streets_crosswalk_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "other"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_straight",
|
||||
friendlyname = "Yellow Arrow (straight)",
|
||||
tex = "streets_arrow_straight_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_left",
|
||||
friendlyname = "Yellow Arrow (left)",
|
||||
tex = "streets_arrow_left_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_right",
|
||||
friendlyname = "Yellow Arrow (right)",
|
||||
tex = "streets_arrow_right_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_left_straight",
|
||||
friendlyname = "Yellow Arrow (left+straight)",
|
||||
tex = "streets_arrow_straightleft_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_straight_right",
|
||||
friendlyname = "Yellow Arrow (straight+right)",
|
||||
tex = "streets_arrow_straightright_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_left_straight_right",
|
||||
friendlyname = "Yellow Arrow (left+straight+right)",
|
||||
tex = "streets_arrow_straightleftright_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_arrow_left_right",
|
||||
friendlyname = "Yellow Arrow (left+right)",
|
||||
tex = "streets_arrow_leftright_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "arrows"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_parking",
|
||||
friendlyname = "Yellow Parking",
|
||||
tex = "streets_parking_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "symbols"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_diagonal_line",
|
||||
friendlyname = "Solid Yellow Diagonal Line",
|
||||
tex = "streets_zigzag_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "other"},
|
||||
dye_needed = {yellow = 2},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_solid_yellow_diagonal_line",
|
||||
friendlyname = "Double Solid Yellow Diagonal Line",
|
||||
tex = "streets_forbidden_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "other"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "yellow_x",
|
||||
friendlyname = "Yellow X",
|
||||
tex = "streets_cross_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "symbols"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line_corner",
|
||||
friendlyname = "Solid Yellow Center Line Corner",
|
||||
tex = "streets_rw_solid_curve.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "centerlinecorners"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line_tjunction",
|
||||
friendlyname = "Solid Yellow Center Line T-Junction",
|
||||
tex = "streets_rw_solid_tjunction.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "centerlinecorners"},
|
||||
dye_needed = {yellow = 4},
|
||||
})
|
||||
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line_crossing",
|
||||
friendlyname = "Solid Yellow Center Line Crossing",
|
||||
tex = "streets_rw_solid_crossing.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlinecorners"},
|
||||
dye_needed = {yellow = 5},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_yellow_center_line_wide",
|
||||
friendlyname = "Double Solid Yellow Center Line (Wide)",
|
||||
tex = "streets_line_solid_double_wide_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 5},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line_wide",
|
||||
friendlyname = "Solid Yellow Center Line (Wide)",
|
||||
tex = "streets_line_solid_wide_yellow.png",
|
||||
flip_required = false,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line_wide_corner",
|
||||
friendlyname = "Solid Yellow Center Line (Wide) Corner",
|
||||
tex = "streets_line_solid_wide_yellow_corner.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "centerlinecorners"},
|
||||
dye_needed = {yellow = 3},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "double_yellow_center_line_wide_corner",
|
||||
friendlyname = "Double Solid Yellow Center Line (Wide) Corner",
|
||||
tex = "streets_line_solid_double_wide_yellow_corner.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "centerlinecorners"},
|
||||
dye_needed = {yellow = 5},
|
||||
})
|
||||
|
||||
streets.register_road_marking({
|
||||
name = "solid_yellow_center_line_wide_offset",
|
||||
friendlyname = "Solid Yellow Center Line (Wide, Offset)",
|
||||
tex = "streets_line_solid_offset_wide_yellow.png",
|
||||
flip_required = true,
|
||||
category = {color = "yellow", section = "centerlines"},
|
||||
dye_needed = {yellow = 3},
|
||||
name = "double_solid_{color}_diagonal_line",
|
||||
friendlyname = "Double Solid White Diagonal Line",
|
||||
tex = "streets_double_solid_diagonal_line.png",
|
||||
section = "other",
|
||||
dye_needed = 4,
|
||||
rotation = { r90 = 1},
|
||||
})
|
||||
|
@ -11,6 +11,7 @@ streets.register_road_surface({
|
||||
tiles = {"streets_asphalt.png"},
|
||||
groups = {cracky = 3,asphalt = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
register_stairs = true,
|
||||
craft = {
|
||||
output = "streets:asphalt 1",
|
||||
type = "cooking",
|
||||
@ -25,6 +26,7 @@ streets.register_road_surface({
|
||||
tiles = {"streets_asphalt_red.png"},
|
||||
groups = {cracky = 3,asphalt = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
register_stairs = true,
|
||||
craft = {
|
||||
output = "streets:asphalt_red 1",
|
||||
type = "shapeless",
|
||||
@ -32,7 +34,7 @@ streets.register_road_surface({
|
||||
}
|
||||
})
|
||||
|
||||
streets.register_road_surface({
|
||||
--[[streets.register_road_surface({
|
||||
name = "asphalt_yellow",
|
||||
friendlyname = "Yellow Asphalt",
|
||||
tiles = {"streets_asphalt_yellow.png"},
|
||||
@ -44,6 +46,7 @@ streets.register_road_surface({
|
||||
recipe = {"streets:asphalt", "dye:yellow"}
|
||||
}
|
||||
})
|
||||
]]
|
||||
|
||||
streets.register_road_surface({
|
||||
name = "asphalt_blue",
|
||||
@ -51,6 +54,7 @@ streets.register_road_surface({
|
||||
tiles = {"streets_asphalt_blue.png"},
|
||||
groups = {cracky = 3,asphalt = 1},
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
register_stairs = false,
|
||||
craft = {
|
||||
output = "streets:asphalt_blue 1",
|
||||
type = "shapeless",
|
||||
|
@ -4,6 +4,9 @@
|
||||
Optional: true
|
||||
]]
|
||||
|
||||
|
||||
-- Traffic Barrier
|
||||
|
||||
minetest.register_node("streets:roadwork_traffic_barrier", {
|
||||
description = "Traffic Barrier",
|
||||
paramtype = "light",
|
||||
@ -32,6 +35,90 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
|
||||
-- Traffic Fence
|
||||
|
||||
|
||||
minetest.register_node("streets:roadwork_traffic_fence", {
|
||||
description = "Traffic Fence",
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_roadwork_traffic_fence_top.png", "streets_roadwork_traffic_fence_top.png", "streets_roadwork_traffic_fence.png"},
|
||||
inventory_image = "streets_roadwork_traffic_fence.png",
|
||||
wield_image = "streets_roadwork_traffic_fence.png",
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1, wall = 1},
|
||||
node_box = {
|
||||
type = "connected",
|
||||
fixed = {-1/16, -0.5, -1/16, 1/16, 0.5, 1/16},
|
||||
connect_front = {
|
||||
{-1/16, -0.5, -0.5, 1/16, -0.25, 1/16},
|
||||
{-1/16, 0.25, -0.5, 1/16, 0.5, 1/16},
|
||||
{-1/16, -0.25, -0.5, 1/16, 0.25, -7/16},
|
||||
{-1/16, -0.25, -5/16, 1/16, 0.25, -3/16}
|
||||
}, -- z-
|
||||
connect_back = {
|
||||
{-1/16, -0.5, -1/16, 1/16, -0.25, 0.5},
|
||||
{-1/16, 0.25, -1/16, 1/16, 0.5, 0.5},
|
||||
{-1/16, -0.25, 7/16, 1/16, 0.25, 0.5},
|
||||
{-1/16, -0.25, 3/16, 1/16, 0.25, 5/16}
|
||||
}, -- z+
|
||||
connect_left = {
|
||||
{-0.5, -0.5, -1/16, 1/16, -0.25, 1/16},
|
||||
{-0.5, 0.25, -1/16, 1/16, 0.5, 1/16},
|
||||
{-0.5, -0.25, -1/16, -7/16, 0.25, 1/16},
|
||||
{-5/16, -0.25, -1/16, -3/16, 0.25, 1/16}
|
||||
}, -- x-
|
||||
connect_right = {
|
||||
{-1/16, -0.5, -1/16, 0.5, -0.25, 1/16},
|
||||
{-1/16, 0.25, -1/16, 0.5, 0.5, 1/16},
|
||||
{7/16, -0.25, -1/16, 0.5, 0.25, 1/16},
|
||||
{3/16, -0.25, -1/16, 5/16, 0.25, 1/16},
|
||||
} -- x+
|
||||
},
|
||||
connects_to = {"group:wall", "group:stone", "group:wood", "group:tree", "group:sign", "group:concrete"},
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:roadwork_traffic_fence 3",
|
||||
recipe = {
|
||||
{"dye:red", "dye:white", "dye:red"},
|
||||
{"xpanes:bar", "xpanes:bar", "xpanes:bar"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
-- Pylon
|
||||
|
||||
|
||||
minetest.register_node("streets:roadwork_pylon", {
|
||||
description = "Pylon",
|
||||
paramtype = "light",
|
||||
drawtype = "nodebox",
|
||||
tiles = {"streets_roadwork_pylon_top.png", "streets_roadwork_pylon_top.png", "streets_roadwork_pylon.png"},
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky = 1},
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.375, -0.5, -0.125, 0.375, -0.4375, 0.125},
|
||||
{-0.125, -0.5, -0.375, 0.125, -0.4375, 0.375},
|
||||
{-0.3125, -0.5, 0, 0.3125, 0.1875, 0},
|
||||
{0, -0.5, -0.3125, 0, 0.1875, 0.3125},
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "streets:roadwork_pylon 3",
|
||||
recipe = {
|
||||
{"dye:orange", "", "dye:orange"},
|
||||
{"dye:white", "default:stick", "dye:white"},
|
||||
{"dye:orange", "default:steel_ingot", "dye:orange"},
|
||||
}
|
||||
})
|
||||
|
||||
-- Blinking Light
|
||||
|
||||
minetest.register_node("streets:roadwork_blinking_light_off", {
|
||||
description = "Blinking Light",
|
||||
paramtype = "light",
|
||||
|
Before Width: | Height: | Size: 334 B |
Before Width: | Height: | Size: 380 B After Width: | Height: | Size: 380 B |
Before Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 322 B |
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 388 B |
Before Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 276 B |
Before Width: | Height: | Size: 387 B |
Before Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 435 B |
Before Width: | Height: | Size: 359 B |
Before Width: | Height: | Size: 335 B |
Before Width: | Height: | Size: 353 B |
Before Width: | Height: | Size: 3.0 KiB |
BIN
textures/streets_dashed_center_line.png
Normal file
After Width: | Height: | Size: 461 B |
BIN
textures/streets_dashed_center_line_wide.png
Normal file
After Width: | Height: | Size: 461 B |
BIN
textures/streets_dashed_side_line.png
Normal file
After Width: | Height: | Size: 453 B |
BIN
textures/streets_dashed_side_line_wide.png
Normal file
After Width: | Height: | Size: 453 B |
BIN
textures/streets_double_dashed_center_line.png
Normal file
After Width: | Height: | Size: 463 B |
BIN
textures/streets_double_solid_center_line.png
Normal file
After Width: | Height: | Size: 453 B |
BIN
textures/streets_double_solid_center_line_corner.png
Normal file
After Width: | Height: | Size: 481 B |
BIN
textures/streets_double_solid_center_line_crossing.png
Normal file
After Width: | Height: | Size: 490 B |
BIN
textures/streets_double_solid_center_line_tjunction.png
Normal file
After Width: | Height: | Size: 471 B |
Before Width: | Height: | Size: 434 B After Width: | Height: | Size: 434 B |
Before Width: | Height: | Size: 387 B |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 318 B |
Before Width: | Height: | Size: 279 B |
Before Width: | Height: | Size: 377 B |
Before Width: | Height: | Size: 313 B |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 261 B |
Before Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 304 B |
Before Width: | Height: | Size: 309 B |
Before Width: | Height: | Size: 236 B |
Before Width: | Height: | Size: 232 B |
Before Width: | Height: | Size: 273 B |
Before Width: | Height: | Size: 265 B |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 230 B |
Before Width: | Height: | Size: 235 B |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 233 B |
Before Width: | Height: | Size: 177 B |
Before Width: | Height: | Size: 172 B |
Before Width: | Height: | Size: 3.2 KiB |
BIN
textures/streets_mixed_center_line.png
Normal file
After Width: | Height: | Size: 460 B |
Before Width: | Height: | Size: 244 B |
BIN
textures/streets_roadwork_pylon.png
Normal file
After Width: | Height: | Size: 566 B |
BIN
textures/streets_roadwork_pylon_top.png
Normal file
After Width: | Height: | Size: 196 B |
BIN
textures/streets_roadwork_traffic_fence.png
Normal file
After Width: | Height: | Size: 512 B |
BIN
textures/streets_roadwork_traffic_fence_top.png
Normal file
After Width: | Height: | Size: 653 B |
Before Width: | Height: | Size: 306 B |
Before Width: | Height: | Size: 260 B |
Before Width: | Height: | Size: 304 B |
BIN
textures/streets_solid_center_line.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
textures/streets_solid_center_line_corner.png
Normal file
After Width: | Height: | Size: 466 B |
BIN
textures/streets_solid_center_line_crossing.png
Normal file
After Width: | Height: | Size: 469 B |
BIN
textures/streets_solid_center_line_tjunction.png
Normal file
After Width: | Height: | Size: 465 B |
BIN
textures/streets_solid_center_line_wide.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
textures/streets_solid_center_line_wide_corner.png
Normal file
After Width: | Height: | Size: 485 B |
BIN
textures/streets_solid_center_line_wide_crossing.png
Normal file
After Width: | Height: | Size: 498 B |
BIN
textures/streets_solid_center_line_wide_tjunction.png
Normal file
After Width: | Height: | Size: 486 B |
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 438 B |
BIN
textures/streets_solid_side_line.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
textures/streets_solid_side_line_corner.png
Normal file
After Width: | Height: | Size: 457 B |
BIN
textures/streets_solid_side_line_wide.png
Normal file
After Width: | Height: | Size: 454 B |
BIN
textures/streets_solid_side_line_wide_corner.png
Normal file
After Width: | Height: | Size: 454 B |
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 381 B |