move resources out of non-commercial (#2008)
## Description: Move assets out of non-commercial so they can be relicensed to Creative Commons BY-SA 4.0 in a follow up PR ## Please complete the following: - [x] I have added screenshots for all UI updates - [x] I process any text displayed to the user through translateText() and I've added it to the en.json file - [x] I have added relevant tests to the test directory - [x] I confirm I have thoroughly tested these changes and take full responsibility for any bugs introduced ## Please put your Discord username so you can be contacted if a bug or regression is found: evan
@@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
|
|
||||||
As of commit 25d5cc370207fd39e0c3bcaa69873b8fc6c60e68, the src/client directory of the OpenFront.io project has been relicensed from the MIT License to the GNU General Public License (GPL) version 3.0. The rest of the project remains under the MIT License unless otherwise specified. Assets in the `/non-commercial/` directory are licensed under CC BY-NC 4.0 with a commercial exemption for OpenFront LLC. Below are the details of all licenses and their applicability.
|
As of commit 25d5cc370207fd39e0c3bcaa69873b8fc6c60e68, the src/client directory of the OpenFront.io project has been relicensed from the MIT License to the GNU General Public License (GPL) version 3.0. The rest of the project remains under the MIT License unless otherwise specified. Below are the details of all licenses and their applicability.
|
||||||
|
|
||||||
## MIT License
|
## MIT License
|
||||||
|
|
||||||
**Applies to:** All parts of the OpenFront.io project except the src/client directory as of commit 25d5cc370207fd39e0c3bcaa69873b8fc6c60e68 (March 25 2025) and the `resources/non-commercial/` directory.
|
**Applies to:** All parts of the OpenFront.io project except the src/client directory as of commit 25d5cc370207fd39e0c3bcaa69873b8fc6c60e68 (March 25 2025).
|
||||||
|
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
@@ -55,40 +55,16 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
[Full text of the GPL v3.0 license can be found in src/client/LICENSE-GPL.txt, or at <https://www.gnu.org/licenses/gpl-3.0.txt>]
|
[Full text of the GPL v3.0 license can be found in src/client/LICENSE-GPL.txt, or at <https://www.gnu.org/licenses/gpl-3.0.txt>]
|
||||||
|
|
||||||
## CC BY-NC 4.0 with Commercial Exemption
|
|
||||||
|
|
||||||
**Applies to:** Assets in the `/non-commercial/` directory.
|
|
||||||
|
|
||||||
CC BY-NC 4.0 with OpenFront LLC Commercial Exemption
|
|
||||||
|
|
||||||
Copyright (c) 2025 OpenFront.io Team and Contributors
|
|
||||||
|
|
||||||
This work is licensed under Creative Commons Attribution-NonCommercial 4.0
|
|
||||||
International License with the following exception:
|
|
||||||
|
|
||||||
**OpenFront LLC is granted unlimited commercial use rights for all purposes.**
|
|
||||||
|
|
||||||
For all other parties, standard CC BY-NC 4.0 terms apply, which means:
|
|
||||||
|
|
||||||
- **Attribution:** You must give appropriate credit
|
|
||||||
- **NonCommercial:** You may not use the material for commercial purposes
|
|
||||||
- **No additional restrictions:** You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits
|
|
||||||
|
|
||||||
Full CC BY-NC 4.0 license text: https://creativecommons.org/licenses/by-nc/4.0/
|
|
||||||
|
|
||||||
## Important Notes
|
## Important Notes
|
||||||
|
|
||||||
- **MIT License:** A permissive license that allows users to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software with minimal restrictions, provided the copyright notice and permission notice are included.
|
- **MIT License:** A permissive license that allows users to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the software with minimal restrictions, provided the copyright notice and permission notice are included.
|
||||||
|
|
||||||
- **GPL v3.0:** A copyleft license that requires any derivative works or distributions of the src/client code to also be licensed under GPL v3.0 or later, ensuring that the source code remains open and freely available.
|
- **GPL v3.0:** A copyleft license that requires any derivative works or distributions of the src/client code to also be licensed under GPL v3.0 or later, ensuring that the source code remains open and freely available.
|
||||||
|
|
||||||
- **CC BY-NC 4.0 with Exemption:** Protects assets from commercial exploitation while allowing OpenFront LLC full commercial rights. Community use for non-commercial purposes is encouraged.
|
|
||||||
|
|
||||||
- **Mixed Licensing:** If you are combining code from src/client (GPL) with other parts of the project (MIT), the GPL's copyleft requirements may affect the licensing of the combined work. Consult a legal expert for specific guidance.
|
- **Mixed Licensing:** If you are combining code from src/client (GPL) with other parts of the project (MIT), the GPL's copyleft requirements may affect the licensing of the combined work. Consult a legal expert for specific guidance.
|
||||||
|
|
||||||
- **Contributions:**
|
- **Contributions:**
|
||||||
- For contributions to src/client, ensure that all contributors agree to the GPL v3.0 terms.
|
- For contributions to src/client, ensure that all contributors agree to the GPL v3.0 terms.
|
||||||
- For contributions to `/non-commercial/`, contributors grant CC BY-NC rights to the public and commercial rights to OpenFront LLC as specified in our contribution guidelines.
|
|
||||||
- For contributions to other directories, standard MIT terms apply.
|
- For contributions to other directories, standard MIT terms apply.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ This project uses a multi-licensing approach:
|
|||||||
|
|
||||||
- Code in the `server/` and `core/` directory is licensed under MIT
|
- Code in the `server/` and `core/` directory is licensed under MIT
|
||||||
- Client code (in the `client/` directory) is licensed under GPL v3
|
- Client code (in the `client/` directory) is licensed under GPL v3
|
||||||
- Assets in resources/non-commercial are under CC BY-NC 4.0 with OpenFront LLC Commercial Exemption. By contributing assets to /non-commercial/, contributors agree that OpenFront LLC may use their contributions for commercial purposes while the contributions remain CC BY-NC 4.0 for all other parties.
|
|
||||||
|
|
||||||
See LICENSE file for more details.
|
See LICENSE file for more details.
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 8.1 KiB |
|
Before Width: | Height: | Size: 587 B After Width: | Height: | Size: 587 B |
|
Before Width: | Height: | Size: 643 B After Width: | Height: | Size: 643 B |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 551 B After Width: | Height: | Size: 551 B |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -1,48 +0,0 @@
|
|||||||
Creative Commons Non-Commercial License Agreement
|
|
||||||
|
|
||||||
With Commercial Exemption for OpenFront LLC
|
|
||||||
This License Agreement (“Agreement”) is entered into by and between the Licensor and the public users of the Licensed Work, subject to the terms described below.
|
|
||||||
|
|
||||||
1. Definitions
|
|
||||||
(a) “Licensor” means Evan Ray Pellegrini, on behalf of OpenFront LLC.
|
|
||||||
(b) “Licensee” means any natural or legal person who receives the Licensed Work under this Agreement.
|
|
||||||
(c) “Licensed Work” refers to the creative assets including but not limited to images, sounds, and music created by or for OpenFront LLC and distributed under this Agreement.
|
|
||||||
(d) “Non-Commercial” means not primarily intended for or directed toward commercial advantage or monetary compensation.
|
|
||||||
(e) “Commercial Use” means use of the Licensed Work for monetary compensation, financial gain, or other commercial advantage.
|
|
||||||
(f) “Exempt Commercial Use” means use of the Licensed Work by OpenFront LLC or its authorized agents, licensees, or contractors for any commercial purpose.
|
|
||||||
|
|
||||||
2. License Grant (Non-Commercial Use)
|
|
||||||
Subject to the terms and conditions of this Agreement, Licensor hereby grants to Licensee a worldwide, royalty-free, non-exclusive, revocable license to use, copy, distribute, publicly perform, publicly display, and create derivative works of the Licensed Work solely for Non-Commercial purposes, provided that proper attribution is given as required under Section 4.
|
|
||||||
|
|
||||||
3. Commercial Use Exemption for OpenFront LLC
|
|
||||||
Notwithstanding Section 2, OpenFront LLC, including its owners, employees, contractors, sublicensees, and assigns, is expressly exempt from the Non-Commercial restriction. OpenFront LLC is granted an unrestricted, irrevocable, worldwide, royalty-free, exclusive right to use, copy, modify, distribute, sublicense, and commercially exploit the Licensed Work, including in derivative or combined works.
|
|
||||||
|
|
||||||
4. Attribution
|
|
||||||
Licensee must provide proper attribution to the Licensor as follows:
|
|
||||||
“Asset created by Evan Ray Pellegrini for OpenFront LLC – used under Creative Commons Non-Commercial License (CC NC) with Commercial Exemption in favor of OpenFront LLC.”
|
|
||||||
Attribution must be included in any reasonable manner, but not in any way that suggests the Licensor endorses the Licensee or its use.
|
|
||||||
|
|
||||||
5. Restrictions
|
|
||||||
Licensee shall not:
|
|
||||||
(a) use the Licensed Work for Commercial Use unless specifically authorized by Licensor in writing;
|
|
||||||
(b) sublicense or assign the Licensed Work for Commercial Use;
|
|
||||||
(c) remove, obscure, or modify any copyright, trademark, or attribution notice.
|
|
||||||
|
|
||||||
6. No Warranties
|
|
||||||
The Licensed Work is provided “AS IS,” without warranty of any kind. Licensor disclaims all warranties, express or implied, including but not limited to warranties of merchantability, fitness for a particular purpose, and non-infringement.
|
|
||||||
|
|
||||||
7. Termination
|
|
||||||
This license terminates automatically if Licensee breaches any of its terms. Upon termination, Licensee must cease all use and destroy any copies of the Licensed Work in their possession.
|
|
||||||
|
|
||||||
8. Governing Law
|
|
||||||
This Agreement shall be governed by and construed in accordance with the laws of the State of California, without regard to its conflict of law principles.
|
|
||||||
|
|
||||||
9. Entire Agreement
|
|
||||||
This Agreement constitutes the entire understanding between the parties and supersedes all prior agreements regarding the subject matter hereof.
|
|
||||||
|
|
||||||
IN WITNESS WHEREOF, this Creative Commons Non-Commercial License Agreement is made effective as of the date the Licensed Work is first used or accessed.
|
|
||||||
Licensor:
|
|
||||||
Evan Ray Pellegrini
|
|
||||||
on behalf of OpenFront LLC
|
|
||||||
2108 N ST STE N
|
|
||||||
SACRAMENTO CA 95816
|
|
||||||
@@ -1,172 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
fill="#000000"
|
|
||||||
version="1.1"
|
|
||||||
id="Icons"
|
|
||||||
viewBox="0 0 32 32"
|
|
||||||
xml:space="preserve"
|
|
||||||
sodipodi:docname="MissileSiloIconWhite.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
|
||||||
id="defs13"><inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect4"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.98396776,0,1 @ F,0,0,1,0,0.90902474,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" /><inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect3"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.99419457,0,1 @ F,0,0,1,0,0.88997446,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" /><inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect3-5"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.99419457,0,1 @ F,0,0,1,0,0.88997446,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" /><inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect3-7"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.99419457,0,1 @ F,0,0,1,0,0.88997446,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" /></defs><sodipodi:namedview
|
|
||||||
id="namedview11"
|
|
||||||
pagecolor="#999999"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="2.1825"
|
|
||||||
inkscape:cx="-105.38373"
|
|
||||||
inkscape:cy="0.68728522"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-height="991"
|
|
||||||
inkscape:window-x="-9"
|
|
||||||
inkscape:window-y="-9"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="Icons"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:deskcolor="#d1d1d1" />
|
|
||||||
|
|
||||||
<path
|
|
||||||
id="path2"
|
|
||||||
style="fill:#ffffff;stroke-width:0.677186"
|
|
||||||
d="m 25.898883,7.6636543 c -0.04144,0.04884 -3.863384,-3.2777509 -3.863384,-3.2777509 1.46078,-1.721777 3.509825,-2.3838038 4.576668,-1.4786782 1.066845,0.9051262 0.747497,3.0346514 -0.713284,4.7564291 z"
|
|
||||||
sodipodi:nodetypes="ccsc" /><path
|
|
||||||
id="rect3"
|
|
||||||
style="fill:#ffffff;stroke-width:1.1798"
|
|
||||||
d="m 12.748325,7.3692592 h 6.599784 v 9.7262258 a 0.98396776,0.98396776 135 0 1 -0.983968,0.983968 H 13.65735 a 0.90902474,0.90902474 45 0 1 -0.909025,-0.909025 z"
|
|
||||||
inkscape:path-effect="#path-effect4"
|
|
||||||
inkscape:original-d="m 12.748325,7.3692592 h 6.599784 V 18.079453 h -6.599784 z"
|
|
||||||
transform="matrix(0.58656255,0.49764806,-0.57368061,0.67617979,18.00944,-6.0548174)" /><path
|
|
||||||
style="fill:#ffffff"
|
|
||||||
d="M 12.316287,10.791417 12.02519,14.786754 9.5403643,15.849128 A 0.64473841,0.64473841 33.887593 0 1 8.6422492,15.245902 l 0.010113,-0.626994 a 1.8979735,1.8979735 116.0463 0 1 0.7076373,-1.447901 z"
|
|
||||||
id="path3"
|
|
||||||
inkscape:path-effect="#path-effect3"
|
|
||||||
inkscape:original-d="m 12.316287,10.791417 -0.291097,3.995337 -3.3989742,1.453213 0.040499,-2.510918 z"
|
|
||||||
transform="matrix(0.57903787,0.50638361,-0.89799211,1.0268331,20.723968,-10.08514)"
|
|
||||||
sodipodi:nodetypes="ccccc" /><path
|
|
||||||
style="fill:#ffffff"
|
|
||||||
d="M 12.316287,10.791417 12.02519,14.786754 9.5403643,15.849128 A 0.64473841,0.64473841 33.887593 0 1 8.6422492,15.245902 l 0.010113,-0.626994 a 1.8979735,1.8979735 116.0463 0 1 0.7076373,-1.447901 z"
|
|
||||||
id="path3-1"
|
|
||||||
inkscape:path-effect="#path-effect3-7"
|
|
||||||
inkscape:original-d="m 12.316287,10.791417 -0.291097,3.995337 -3.3989742,1.453213 0.040499,-2.510918 z"
|
|
||||||
transform="matrix(-0.59419498,-0.4885095,-0.86629519,1.0537118,40.501308,6.456681)"
|
|
||||||
sodipodi:nodetypes="ccccc" /><path
|
|
||||||
style="fill:#ffffff;stroke-width:1.06472"
|
|
||||||
d="m 13.737178,16.80511 c 0,0 -9.3199199,7.391956 -7.1372902,13.873745 l 5.2775782,0.03513 c -2.0517202,-5.22962 3.28918,-12.748302 3.28918,-12.748302 z"
|
|
||||||
id="path4"
|
|
||||||
sodipodi:nodetypes="ccccc" /><circle
|
|
||||||
style="fill:#ffffff"
|
|
||||||
id="path5"
|
|
||||||
cx="3.7514319"
|
|
||||||
cy="29.066437"
|
|
||||||
r="0.88774341" /><circle
|
|
||||||
style="fill:#ffffff"
|
|
||||||
id="path5-4"
|
|
||||||
cx="12.046965"
|
|
||||||
cy="29.945017"
|
|
||||||
r="0.88774341" /><ellipse
|
|
||||||
style="fill:#ffffff;stroke-width:1.33861"
|
|
||||||
id="path5-3"
|
|
||||||
cx="11.284078"
|
|
||||||
cy="27.854525"
|
|
||||||
rx="1.1741122"
|
|
||||||
ry="1.2027493" /><circle
|
|
||||||
style="fill:#ffffff"
|
|
||||||
id="path5-2"
|
|
||||||
cx="6.2749138"
|
|
||||||
cy="27.315006"
|
|
||||||
r="0.88774341" /><ellipse
|
|
||||||
style="fill:#ffffff;stroke-width:2.01452"
|
|
||||||
id="path5-6"
|
|
||||||
cx="5.9450173"
|
|
||||||
cy="29.290951"
|
|
||||||
rx="1.8613975"
|
|
||||||
ry="1.7182131" /><ellipse
|
|
||||||
style="fill:#ffffff;stroke-width:0.807137"
|
|
||||||
id="path5-6-9"
|
|
||||||
cx="2.4461236"
|
|
||||||
cy="26.341803"
|
|
||||||
rx="0.70718539"
|
|
||||||
ry="0.7259956" /><circle
|
|
||||||
style="fill:#ffffff;stroke-width:0.806452"
|
|
||||||
id="path5-5"
|
|
||||||
cx="14.434135"
|
|
||||||
cy="28.200459"
|
|
||||||
r="0.71592212" /><circle
|
|
||||||
style="fill:#ffffff;stroke-width:1.29032"
|
|
||||||
id="path5-61"
|
|
||||||
cx="4.2863698"
|
|
||||||
cy="23.691866"
|
|
||||||
r="1.1454754" /></svg>
|
|
||||||
|
Before Width: | Height: | Size: 6.0 KiB |
@@ -1,221 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
id="svg4"
|
|
||||||
version="1.1"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
sodipodi:docname="SamLauncherIconWhite.svg"
|
|
||||||
inkscape:version="1.4.2 (f4327f4, 2025-05-13)"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<!-- Generator: Adobe Illustrator 29.3.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 151) -->
|
|
||||||
<defs
|
|
||||||
id="defs1">
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect11"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0.31531758,0,1 @ F,0,0,1,0,0.056759862,0,1 @ F,0,0,1,0,0.16487468,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.19973466,0,1 @ F,0,0,1,0,0.075242437,0,1 @ F,0,0,1,0,0.3011792,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect10"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect9"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.49680354,0,1 @ F,0,0,1,0,0.46383368,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect8"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0.20544103,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect6"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0.6771002,0,1 @ F,0,0,1,0,0.21443289,0,1 @ F,0,0,1,0,0.20068725,0,1 @ F,0,0,1,0,0.61305832,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect5"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
<style
|
|
||||||
id="style1">
|
|
||||||
.st0 {
|
|
||||||
fill: #333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.st0, .st1 {
|
|
||||||
fill-opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.st1 {
|
|
||||||
fill: #ececec;
|
|
||||||
}
|
|
||||||
|
|
||||||
.st2 {
|
|
||||||
fill: #fff;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<inkscape:path-effect
|
|
||||||
effect="fillet_chamfer"
|
|
||||||
id="path-effect6-9"
|
|
||||||
is_visible="true"
|
|
||||||
lpeversion="1"
|
|
||||||
nodesatellites_param="F,0,0,1,0,0.6771002,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0.21443289,0,1"
|
|
||||||
radius="0"
|
|
||||||
unit="px"
|
|
||||||
method="auto"
|
|
||||||
mode="F"
|
|
||||||
chamfer_steps="1"
|
|
||||||
flexible="false"
|
|
||||||
use_knot_distance="true"
|
|
||||||
apply_no_radius="true"
|
|
||||||
apply_with_radius="true"
|
|
||||||
only_selected="false"
|
|
||||||
hide_knots="false" />
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview6"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:current-layer="layer1"
|
|
||||||
inkscape:cx="-1.3745704"
|
|
||||||
inkscape:cy="8.2199313"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:window-height="991"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:window-width="1920"
|
|
||||||
inkscape:window-x="-9"
|
|
||||||
inkscape:window-y="-9"
|
|
||||||
inkscape:zoom="18.1875"
|
|
||||||
pagecolor="#828282"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:showpageshadow="2"
|
|
||||||
inkscape:deskcolor="#d1d1d1" />
|
|
||||||
<g
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
id="layer1"
|
|
||||||
inkscape:label="Layer 1">
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;stroke-width:1.32815"
|
|
||||||
d="m 17.680103,4.3837562 1.471937,2.3505899 c 0,0 1.557345,-0.6986001 0.828902,-1.8430742 -0.709885,-1.115248 -2.300839,-0.5075157 -2.300839,-0.5075157 z"
|
|
||||||
id="path3"
|
|
||||||
sodipodi:nodetypes="ccsc" />
|
|
||||||
<path
|
|
||||||
id="rect4"
|
|
||||||
style="fill:#ffffff;stroke-width:1.06832"
|
|
||||||
d="m 7.412439,8.3385684 c 2.2265471,0.022033 5.06556,-0.00697 7.576035,-0.0086 0.118341,-7.68e-5 0.214275,0.095934 0.214275,0.2143622 l 0,2.2790372 a 0.20068725,0.20068725 135 0 1 -0.200687,0.200687 H 7.3484537 A 0.61305832,0.61305832 45 0 1 6.7353954,10.410996 V 9.0069971 c 0,-0.3739521 0.3031104,-0.672129 0.6770436,-0.6684287 z"
|
|
||||||
inkscape:path-effect="#path-effect6"
|
|
||||||
inkscape:original-d="m 6.7353954,8.3298969 c 2.3661435,0.038026 5.6449026,0 8.4673536,0 V 11.024054 H 6.7353954 Z"
|
|
||||||
sodipodi:nodetypes="ccccc"
|
|
||||||
transform="matrix(1.3871173,-0.56218381,0.7027184,1.1097117,-10.354938,3.8136388)" />
|
|
||||||
<path
|
|
||||||
style="fill:#ffffff;stroke-width:1.32815"
|
|
||||||
d="m 17.46913,1.7477688 0.735969,1.1752951 c 0,0 0.998735,-0.2087137 1.51062,0.2066682 0.110775,-0.097941 0.30661,-0.5279917 0.05425,-0.8744476 -0.813874,-1.0688142 -2.30084,-0.5075157 -2.30084,-0.5075157 z"
|
|
||||||
id="path3-8"
|
|
||||||
sodipodi:nodetypes="ccccc" />
|
|
||||||
<path
|
|
||||||
id="rect4-8"
|
|
||||||
style="fill:#ffffff;stroke-width:1.48584"
|
|
||||||
d="M 16.185391,1.9343439 C 12.701012,3.3485891 8.7751898,4.9780406 5.6675841,6.2067613 5.1462949,6.4128743 4.9569987,6.9059035 5.2454361,7.3098295 l 0.3037033,0.425192 11.6233046,-4.9169042 -0.5456,-0.776552 C 16.540403,1.9185247 16.342728,1.8704833 16.185391,1.9343439 Z"
|
|
||||||
sodipodi:nodetypes="cscccc" />
|
|
||||||
<path
|
|
||||||
id="rect6"
|
|
||||||
style="fill:#ffffff"
|
|
||||||
d="m 9.9518898,14.020619 2.9965632,-1.457045 v 1.949931 a 0.4923079,0.4923079 135.26041 0 1 -0.496783,0.492288 l -2.063457,-0.01876 a 0.45488806,0.45488806 46.078703 0 1 -0.4505676,-0.46786 z"
|
|
||||||
sodipodi:nodetypes="ccccc"
|
|
||||||
inkscape:path-effect="#path-effect9"
|
|
||||||
inkscape:original-d="m 9.9518898,14.020619 2.9965632,-1.457045 v 2.446735 l -3.0240546,-0.02749 z"
|
|
||||||
transform="matrix(1.5549622,0,0,1.2439898,-5.3629748,-5.3468075)" />
|
|
||||||
<rect
|
|
||||||
style="fill:#ffffff;stroke-width:1.27479"
|
|
||||||
id="rect7"
|
|
||||||
width="2.9068708"
|
|
||||||
height="3.1029518"
|
|
||||||
x="11.007972"
|
|
||||||
y="14.623526" />
|
|
||||||
<path
|
|
||||||
id="rect8"
|
|
||||||
style="fill:#ffffff;stroke-width:1.80595"
|
|
||||||
d="m 6.3154251,19.421168 v 0.803136 a 0.10556598,0.10575084 0 0 1 -0.102369,0.105707 l -1.2284353,0.03728 a 0.30883774,0.30937857 0 0 0 -0.2994769,0.307034 l -0.012108,1.703993 15.9080751,-0.01409 0.003,-1.626855 a 0.37070023,0.37134941 0 0 0 -0.359663,-0.371867 l -1.146325,-0.03449 a 0.13990479,0.14014979 0 0 1 -0.135706,-0.140085 v -0.795287 a 0.54344015,0.54439183 0 0 0 -0.543439,-0.544393 l -11.5146875,-1.7e-5 a 0.56894912,0.56994548 0 0 0 -0.5688864,0.569952 z"
|
|
||||||
sodipodi:nodetypes="ccccccccc" />
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 8.1 KiB |
@@ -5,12 +5,12 @@ import cityIcon from "../../../../resources/images/CityIconWhite.svg";
|
|||||||
import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg";
|
import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg";
|
||||||
import goldCoinIcon from "../../../../resources/images/GoldCoinIcon.svg";
|
import goldCoinIcon from "../../../../resources/images/GoldCoinIcon.svg";
|
||||||
import mirvIcon from "../../../../resources/images/MIRVIcon.svg";
|
import mirvIcon from "../../../../resources/images/MIRVIcon.svg";
|
||||||
|
import missileSiloIcon from "../../../../resources/images/MissileSiloIconWhite.svg";
|
||||||
import hydrogenBombIcon from "../../../../resources/images/MushroomCloudIconWhite.svg";
|
import hydrogenBombIcon from "../../../../resources/images/MushroomCloudIconWhite.svg";
|
||||||
import atomBombIcon from "../../../../resources/images/NukeIconWhite.svg";
|
import atomBombIcon from "../../../../resources/images/NukeIconWhite.svg";
|
||||||
import portIcon from "../../../../resources/images/PortIcon.svg";
|
import portIcon from "../../../../resources/images/PortIcon.svg";
|
||||||
|
import samlauncherIcon from "../../../../resources/images/SamLauncherIconWhite.svg";
|
||||||
import shieldIcon from "../../../../resources/images/ShieldIconWhite.svg";
|
import shieldIcon from "../../../../resources/images/ShieldIconWhite.svg";
|
||||||
import missileSiloIcon from "../../../../resources/non-commercial/svg/MissileSiloIconWhite.svg";
|
|
||||||
import samlauncherIcon from "../../../../resources/non-commercial/svg/SamLauncherIconWhite.svg";
|
|
||||||
import { translateText } from "../../../client/Utils";
|
import { translateText } from "../../../client/Utils";
|
||||||
import { EventBus } from "../../../core/EventBus";
|
import { EventBus } from "../../../core/EventBus";
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ import { EventBus } from "../../../core/EventBus";
|
|||||||
import { TransformHandler } from "../TransformHandler";
|
import { TransformHandler } from "../TransformHandler";
|
||||||
import { Layer } from "./Layer";
|
import { Layer } from "./Layer";
|
||||||
|
|
||||||
import cityIcon from "../../../../resources/non-commercial/images/buildings/cityAlt1.png";
|
import cityIcon from "../../../../resources/images/buildings/cityAlt1.png";
|
||||||
import factoryIcon from "../../../../resources/non-commercial/images/buildings/factoryAlt1.png";
|
import factoryIcon from "../../../../resources/images/buildings/factoryAlt1.png";
|
||||||
import shieldIcon from "../../../../resources/non-commercial/images/buildings/fortAlt3.png";
|
import shieldIcon from "../../../../resources/images/buildings/fortAlt3.png";
|
||||||
import anchorIcon from "../../../../resources/non-commercial/images/buildings/port1.png";
|
import anchorIcon from "../../../../resources/images/buildings/port1.png";
|
||||||
import missileSiloIcon from "../../../../resources/non-commercial/images/buildings/silo1.png";
|
import missileSiloIcon from "../../../../resources/images/buildings/silo1.png";
|
||||||
import SAMMissileIcon from "../../../../resources/non-commercial/images/buildings/silo4.png";
|
import SAMMissileIcon from "../../../../resources/images/buildings/silo4.png";
|
||||||
import { Cell, UnitType } from "../../../core/game/Game";
|
import { Cell, UnitType } from "../../../core/game/Game";
|
||||||
import { euclDistFN, isometricDistFN } from "../../../core/game/GameMap";
|
import { euclDistFN, isometricDistFN } from "../../../core/game/GameMap";
|
||||||
import { GameUpdateType } from "../../../core/game/GameUpdates";
|
import { GameUpdateType } from "../../../core/game/GameUpdates";
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import portIcon from "../../../../resources/images/AnchorIcon.png";
|
|||||||
import cityIcon from "../../../../resources/images/CityIconWhite.svg";
|
import cityIcon from "../../../../resources/images/CityIconWhite.svg";
|
||||||
import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg";
|
import factoryIcon from "../../../../resources/images/FactoryIconWhite.svg";
|
||||||
import missileSiloIcon from "../../../../resources/images/MissileSiloUnit.png";
|
import missileSiloIcon from "../../../../resources/images/MissileSiloUnit.png";
|
||||||
|
import samLauncherIcon from "../../../../resources/images/SamLauncherIconWhite.svg";
|
||||||
import defensePostIcon from "../../../../resources/images/ShieldIconWhite.svg";
|
import defensePostIcon from "../../../../resources/images/ShieldIconWhite.svg";
|
||||||
import samLauncherIcon from "../../../../resources/non-commercial/svg/SamLauncherIconWhite.svg";
|
|
||||||
import { EventBus } from "../../../core/EventBus";
|
import { EventBus } from "../../../core/EventBus";
|
||||||
import { UnitType } from "../../../core/game/Game";
|
import { UnitType } from "../../../core/game/Game";
|
||||||
import { GameView } from "../../../core/game/GameView";
|
import { GameView } from "../../../core/game/GameView";
|
||||||
|
|||||||
@@ -396,13 +396,13 @@ label.option-card:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#helpModal .missile-silo-icon {
|
#helpModal .missile-silo-icon {
|
||||||
mask: url("../../resources/non-commercial/svg/MissileSiloIconWhite.svg")
|
mask: url("../../resources/images/MissileSiloIconWhite.svg") no-repeat
|
||||||
no-repeat center / cover;
|
center / cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
#helpModal .sam-launcher-icon {
|
#helpModal .sam-launcher-icon {
|
||||||
mask: url("../../resources/non-commercial/svg/SamLauncherIconWhite.svg")
|
mask: url("../../resources/images/SamLauncherIconWhite.svg") no-repeat
|
||||||
no-repeat center / cover;
|
center / cover;
|
||||||
}
|
}
|
||||||
|
|
||||||
#helpModal .atom-bomb-icon {
|
#helpModal .atom-bomb-icon {
|
||||||
|
|||||||