12
.github/workflows/ci.yml
vendored
@ -39,3 +39,15 @@ jobs:
|
|||||||
- name: Lint
|
- name: Lint
|
||||||
run: |
|
run: |
|
||||||
yarn lint
|
yarn lint
|
||||||
|
|
||||||
|
- name: YAML Lint
|
||||||
|
uses: ibiqlik/action-yamllint@v1.0.0
|
||||||
|
with:
|
||||||
|
file_or_dir: translations/*.yaml
|
||||||
|
|
||||||
|
- name: TSLint
|
||||||
|
run: |
|
||||||
|
cd gulp
|
||||||
|
yarn gulp translations.fullBuild
|
||||||
|
cd ..
|
||||||
|
yarn tslint
|
||||||
|
4
.gitignore
vendored
@ -109,10 +109,6 @@ build
|
|||||||
|
|
||||||
tmp_standalone_files
|
tmp_standalone_files
|
||||||
|
|
||||||
|
|
||||||
# Github Actions files
|
|
||||||
.github/workflows
|
|
||||||
|
|
||||||
# Local config
|
# Local config
|
||||||
config.local.js
|
config.local.js
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
283
.travis.yml
@ -3,165 +3,164 @@ os: linux
|
|||||||
dist: xenial
|
dist: xenial
|
||||||
language: node_js
|
language: node_js
|
||||||
node_js:
|
node_js:
|
||||||
- "10"
|
- "12"
|
||||||
cache: yarn
|
cache: yarn
|
||||||
|
|
||||||
# platform specific configuration
|
# platform specific configuration
|
||||||
jobs:
|
jobs:
|
||||||
|
# jobs which have to succeed
|
||||||
|
include:
|
||||||
|
# OS: MAC
|
||||||
|
## -> build darwin
|
||||||
|
# - name: "Standalone MacOS on MacOS"
|
||||||
|
# os: osx
|
||||||
|
# osx_image: xcode11.3
|
||||||
|
# before_install:
|
||||||
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
|
||||||
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
|
||||||
|
# script:
|
||||||
|
# - cd gulp
|
||||||
|
# - yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
|
# - yarn gulp standalone.prepare
|
||||||
|
# - yarn gulp standalone.package.prod.darwin64
|
||||||
|
# - cd ..
|
||||||
|
|
||||||
# jobs which have to succeed
|
## -> build win
|
||||||
include:
|
# - name: "Standalone Windows on MacOS"
|
||||||
# OS: MAC
|
# os: osx
|
||||||
## -> build darwin
|
# osx_image: xcode11.3
|
||||||
- name: "Standalone MacOS on MacOS"
|
# before_install:
|
||||||
os: osx
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
|
||||||
osx_image: xcode11.3
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
|
||||||
before_install:
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew cask install wine-stable
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
|
# # prevent Wine popup dialogs about installing additional packages
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
|
# - export WINEDLLOVERRIDES="mscoree,mshtml="
|
||||||
script:
|
# - export WINEDEBUG="-all"
|
||||||
- cd gulp
|
# script:
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
# - cd gulp
|
||||||
- yarn gulp standalone.prepare
|
# - yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
- yarn gulp standalone.package.prod.darwin64
|
# - yarn gulp standalone.prepare
|
||||||
- cd ..
|
# - yarn gulp standalone.package.prod.win64
|
||||||
|
# - yarn gulp standalone.package.prod.win32
|
||||||
|
# - cd ..
|
||||||
|
|
||||||
## -> build win
|
## -> build linux
|
||||||
- name: "Standalone Windows on MacOS"
|
# - name: "Standalone Linux on MacOS"
|
||||||
os: osx
|
# os: osx
|
||||||
osx_image: xcode11.3
|
# osx_image: xcode11.3
|
||||||
before_install:
|
# before_install:
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
|
# - HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew cask install wine-stable
|
# script:
|
||||||
# prevent Wine popup dialogs about installing additional packages
|
# - cd gulp
|
||||||
- export WINEDLLOVERRIDES="mscoree,mshtml="
|
# - yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
- export WINEDEBUG="-all"
|
# - yarn gulp standalone.prepare
|
||||||
script:
|
# - yarn gulp standalone.package.prod.linux64
|
||||||
- cd gulp
|
# - yarn gulp standalone.package.prod.linux32
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
# - cd ..
|
||||||
- yarn gulp standalone.prepare
|
|
||||||
- yarn gulp standalone.package.prod.win64
|
|
||||||
- yarn gulp standalone.package.prod.win32
|
|
||||||
- cd ..
|
|
||||||
|
|
||||||
## -> build linux
|
# OS: LINUX
|
||||||
- name: "Standalone Linux on MacOS"
|
## -> build darwin
|
||||||
os: osx
|
## not possible
|
||||||
osx_image: xcode11.3
|
|
||||||
before_install:
|
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install git-lfs
|
|
||||||
- HOMEBREW_NO_AUTO_UPDATE=1 brew install ffmpeg
|
|
||||||
script:
|
|
||||||
- cd gulp
|
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
|
||||||
- yarn gulp standalone.prepare
|
|
||||||
- yarn gulp standalone.package.prod.linux64
|
|
||||||
- yarn gulp standalone.package.prod.linux32
|
|
||||||
- cd ..
|
|
||||||
|
|
||||||
# OS: LINUX
|
## -> build win
|
||||||
## -> build darwin
|
# - name: "Standalone Windows on Linux"
|
||||||
## not possible
|
# os: linux
|
||||||
|
# addons:
|
||||||
|
# apt:
|
||||||
|
# packages:
|
||||||
|
# - libavformat-dev
|
||||||
|
# - libavfilter-dev
|
||||||
|
# - libavdevice-dev
|
||||||
|
# - ffmpeg
|
||||||
|
# - wine
|
||||||
|
# script:
|
||||||
|
# - cd gulp
|
||||||
|
# - yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
|
# - yarn gulp standalone.prepare
|
||||||
|
# - yarn gulp standalone.package.prod.win64
|
||||||
|
# - yarn gulp standalone.package.prod.win32
|
||||||
|
# - cd ..
|
||||||
|
|
||||||
## -> build win
|
## -> build linux
|
||||||
- name: "Standalone Windows on Linux"
|
# - name: "Standalone Linux on Linux"
|
||||||
os: linux
|
# os: linux
|
||||||
addons:
|
# addons:
|
||||||
apt:
|
# apt:
|
||||||
packages:
|
# packages:
|
||||||
- libavformat-dev
|
# - libavformat-dev
|
||||||
- libavfilter-dev
|
# - libavfilter-dev
|
||||||
- libavdevice-dev
|
# - libavdevice-dev
|
||||||
- ffmpeg
|
# - ffmpeg
|
||||||
- wine
|
# script:
|
||||||
script:
|
# - cd gulp
|
||||||
- cd gulp
|
# - yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
# - yarn gulp standalone.prepare
|
||||||
- yarn gulp standalone.prepare
|
# - yarn gulp standalone.package.prod.linux64
|
||||||
- yarn gulp standalone.package.prod.win64
|
# - yarn gulp standalone.package.prod.linux32
|
||||||
- yarn gulp standalone.package.prod.win32
|
# - cd ..
|
||||||
- cd ..
|
|
||||||
|
|
||||||
## -> build linux
|
# OS: WINDOWS
|
||||||
- name: "Standalone Linux on Linux"
|
## -> build darwin
|
||||||
os: linux
|
## not possible
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- libavformat-dev
|
|
||||||
- libavfilter-dev
|
|
||||||
- libavdevice-dev
|
|
||||||
- ffmpeg
|
|
||||||
script:
|
|
||||||
- cd gulp
|
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
|
||||||
- yarn gulp standalone.prepare
|
|
||||||
- yarn gulp standalone.package.prod.linux64
|
|
||||||
- yarn gulp standalone.package.prod.linux32
|
|
||||||
- cd ..
|
|
||||||
|
|
||||||
# OS: WINDOWS
|
## -> build linux
|
||||||
## -> build darwin
|
# - name: "Standalone Linux on Windows"
|
||||||
## not possible
|
# os: windows
|
||||||
|
# env: YARN_GPG=no
|
||||||
|
# before_install:
|
||||||
|
# - choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
|
||||||
|
# - choco install ffmpeg --version=4.2.3
|
||||||
|
# - export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
|
||||||
|
# - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
|
||||||
|
# - wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
|
||||||
|
# script:
|
||||||
|
# - cd gulp
|
||||||
|
# - yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
|
# - yarn gulp standalone.prepare
|
||||||
|
# - yarn gulp standalone.package.prod.linux64
|
||||||
|
# - yarn gulp standalone.package.prod.linux32
|
||||||
|
# - cd ..
|
||||||
|
|
||||||
## -> build linux
|
## -> build win
|
||||||
- name: "Standalone Linux on Windows"
|
- name: "Standalone Windows on Windows"
|
||||||
os: windows
|
os: windows
|
||||||
env: YARN_GPG=no
|
env: YARN_GPG=no
|
||||||
before_install:
|
before_install:
|
||||||
- choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
|
- choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
|
||||||
- choco install ffmpeg --version=4.2.3
|
- choco install ffmpeg --version=4.2.3
|
||||||
- export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
|
- choco install wget
|
||||||
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
|
- export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
|
||||||
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
|
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
|
||||||
script:
|
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
|
||||||
- cd gulp
|
script:
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
- cd gulp
|
||||||
- yarn gulp standalone.prepare
|
- yarn gulp build.standalone-prod || travis_terminate 1
|
||||||
- yarn gulp standalone.package.prod.linux64
|
- yarn gulp standalone.prepare
|
||||||
- yarn gulp standalone.package.prod.linux32
|
- yarn gulp standalone.package.prod.win64
|
||||||
- cd ..
|
- yarn gulp standalone.package.prod.win32
|
||||||
|
- cd ..
|
||||||
|
|
||||||
## -> build win
|
# mark build as finished even if "allow_failures" are still running
|
||||||
- name: "Standalone Windows on Windows"
|
fast_finish: true
|
||||||
os: windows
|
|
||||||
env: YARN_GPG=no
|
|
||||||
before_install:
|
|
||||||
- choco install git-lfs -y -f || echo "0" # choco fails but git-lfs is still installed
|
|
||||||
- choco install ffmpeg --version=4.2.3
|
|
||||||
- choco install wget
|
|
||||||
- export PATH=/C/ProgramData/chocolatey/lib/ffmpeg/tools/ffmpeg/bin:$PATH
|
|
||||||
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/avicap32.dll -P /C/Windows/System32/
|
|
||||||
- wget https://github.com/moiamond/docker-ffmpeg-base-windowsservercore/raw/master/System32/msvfw32.dll -P /C/Windows/System32/
|
|
||||||
script:
|
|
||||||
- cd gulp
|
|
||||||
- yarn gulp build.standalone-prod || travis_terminate 1
|
|
||||||
- yarn gulp standalone.prepare
|
|
||||||
- yarn gulp standalone.package.prod.win64
|
|
||||||
- yarn gulp standalone.package.prod.win32
|
|
||||||
- cd ..
|
|
||||||
|
|
||||||
# mark build as finished even if "allow_failures" are still running
|
# optional jobs which may fail
|
||||||
fast_finish: true
|
#allow_failures:
|
||||||
|
# - name: ""
|
||||||
# optional jobs which may fail
|
|
||||||
#allow_failures:
|
|
||||||
# - name: ""
|
|
||||||
|
|
||||||
# shared
|
# shared
|
||||||
install:
|
install:
|
||||||
- git lfs install
|
- git lfs install
|
||||||
- git lfs pull
|
- git lfs pull
|
||||||
|
|
||||||
- yarn
|
- yarn
|
||||||
|
|
||||||
# electron dependencies
|
# electron dependencies
|
||||||
- cd electron
|
- cd electron
|
||||||
- yarn
|
- yarn
|
||||||
- cd ..
|
- cd ..
|
||||||
|
|
||||||
# gulp dependendencies
|
# gulp dependendencies
|
||||||
- cd gulp
|
- cd gulp
|
||||||
- yarn
|
- yarn
|
||||||
- cd ..
|
- cd ..
|
||||||
|
6
.yamllint
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
line-length:
|
||||||
|
level: warning
|
||||||
|
max: 200
|
48
README.md
@ -11,6 +11,15 @@ Your goal is to produce shapes by cutting, rotating, merging and painting parts
|
|||||||
- [Steam Page](https://steam.shapez.io)
|
- [Steam Page](https://steam.shapez.io)
|
||||||
- [Official Discord](https://discord.com/invite/HN7EVzV) <- _Highly recommended to join!_
|
- [Official Discord](https://discord.com/invite/HN7EVzV) <- _Highly recommended to join!_
|
||||||
|
|
||||||
|
## Reporting issues, suggestions, feedback, bugs
|
||||||
|
|
||||||
|
1. Ask in `#bugs` / `#feedback` / `#questions` on the [Official Discord](https://discord.com/invite/HN7EVzV) if you are not entirely sure if it's a bug etc.
|
||||||
|
2. Check out the trello board: https://trello.com/b/ISQncpJP/shapezio
|
||||||
|
3. See if it's already there - If so, vote for it, done. I will see it. (You have to be signed in on trello)
|
||||||
|
4. If not, check if it's already reported here: https://github.com/tobspr/shapez.io/issues
|
||||||
|
5. If not, file a new issue here: https://github.com/tobspr/shapez.io/issues/new
|
||||||
|
6. I will then have a look (This can take days or weeks) and convert it to trello, and comment with the link. You can then vote there ;)
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
|
|
||||||
- Make sure git `git lfs` extension is on your path
|
- Make sure git `git lfs` extension is on your path
|
||||||
@ -41,11 +50,48 @@ If you want to add a new feature or in generally contribute I recommend to get i
|
|||||||
|
|
||||||
### Code
|
### Code
|
||||||
|
|
||||||
The game is based on a custom engine which itself is based on the YORG.io 3 game egine (Actually it shares almost the same core).
|
The game is based on a custom engine which itself is based on the YORG.io 3 game engine (Actually it shares almost the same core).
|
||||||
The code within the engine is relatively clean with some code for the actual game on top being hacky.
|
The code within the engine is relatively clean with some code for the actual game on top being hacky.
|
||||||
|
|
||||||
This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop.
|
This project is based on ES5. Some ES2015 features are used but most of them are too slow, especially when polyfilled. For example, `Array.prototype.forEach` is only used within non-critical loops since its slower than a plain for loop.
|
||||||
|
|
||||||
|
#### Adding a new component
|
||||||
|
|
||||||
|
1. Create the component file in `src/js/game/components/<name_lowercase>.js`
|
||||||
|
2. Create a component class (e.g. `MyFancyComponent`) which `extends Component`
|
||||||
|
3. Create a `static getId()` method which should return the `PascalCaseName` without component (e.g. `MyFancy`)
|
||||||
|
4. If any data needs to be persisted, create a `static getSchema()` which should return the properties to be saved (See other components)
|
||||||
|
5. Add a constructor. **The constructor must be called with optional parameters only!** `new MyFancyComponent({})` should always work.
|
||||||
|
6. Add any props you need in the constructor.
|
||||||
|
7. Add the component in `src/js/game/component_registry.js`
|
||||||
|
8. Add the componetn in `src/js/game/entity_components.js`
|
||||||
|
9. Done! You can use your component now
|
||||||
|
|
||||||
|
#### Adding a new building
|
||||||
|
|
||||||
|
(The easiest way is to copy an existing building)
|
||||||
|
|
||||||
|
1. Create your building in `src/js/game/buildings/<my_building.js>`
|
||||||
|
2. Create the building meta class, e.g. `MetaMyFancyBuilding extends MetaBuilding`
|
||||||
|
3. Override the methods from MetaBuilding you want to override.
|
||||||
|
4. Most important is `setupEntityComponents`
|
||||||
|
5. Add the building to `src/js/game/meta_building_registry.js`: You need to register it on the registry, and also call `registerBuildingVariant`.
|
||||||
|
6. Add the building to the right toolbar, e.g. `src/js/game/hud/parts/buildings_toolbar.js`:`supportedBuildings`
|
||||||
|
7. Add a keybinding for the building in `src/js/game/key_action_mapper.js` in `KEYMAPPINGS.buildings`
|
||||||
|
8. In `translations/base-en.yaml` add it to two sections: `buildings.[my_building].XXX` (See other buildings) and also `keybindings.mappings.[my_building]`. Be sure to do it the same way as other buildings do!
|
||||||
|
9. Create a icon (128x128, [prefab](https://github.com/tobspr/shapez.io-artwork/blob/master/ui/toolbar-icons.psd)) for your building and save it in `res/ui/buildings_icons` with the id of your building
|
||||||
|
10. Create a tutorial image (600x600) for your building and save it in `res/ui/building_tutorials`
|
||||||
|
11. In `src/css/icons.scss` add your building to `$buildings` as well as `$buildingAndVariants`
|
||||||
|
12. Done! Optional: Add a new reward for unlocking your building at some point.
|
||||||
|
|
||||||
|
#### Adding a new game system
|
||||||
|
|
||||||
|
1. Create the class in `src/js/game/systems/<system_name>.js`
|
||||||
|
2. Derive it from `GameSystemWithFilter` if you want it to work on certain entities only which have the given components. Otherwise use `GameSystem` to do more generic stuff.
|
||||||
|
3. Implement the `update()` method.
|
||||||
|
4. Add the system in `src/js/game/game_system_manager.js` (To `this.systems` and also call `add` in the `internalInitSystems()` method)
|
||||||
|
5. If your system should draw stuff, this is a bit more complicated. Have a look at existing systems on how they do it.
|
||||||
|
|
||||||
### Assets
|
### Assets
|
||||||
|
|
||||||
For most assets I use Adobe Photoshop, you can find them in `assets/`.
|
For most assets I use Adobe Photoshop, you can find them in `assets/`.
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
const glob = require("glob");
|
|
||||||
const execSync = require("child_process").execSync;
|
|
||||||
const trim = require("trim");
|
|
||||||
const fs = require("fs");
|
|
||||||
const path = require("path");
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
getRevision: function (useLast = false) {
|
|
||||||
const commitHash = execSync("git rev-parse --short " + (useLast ? "HEAD^1" : "HEAD")).toString("ascii");
|
|
||||||
return commitHash.replace(/^\s+|\s+$/g, "");
|
|
||||||
},
|
|
||||||
getAllResourceImages() {
|
|
||||||
return glob
|
|
||||||
.sync("res/**/*.@(png|svg|jpg)", { cwd: ".." })
|
|
||||||
.map((f) => f.replace(/^res\//gi, ""))
|
|
||||||
.filter((f) => {
|
|
||||||
if (f.indexOf("ui") >= 0) {
|
|
||||||
// We drop all ui images except for the noinline ones
|
|
||||||
return f.indexOf("noinline") >= 0;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
getAllAtlasImages() {
|
|
||||||
return glob.sync("res_built/atlas/*.png", { cwd: ".." }).map((s) => s.replace("res_built/atlas/", "res/"));
|
|
||||||
},
|
|
||||||
|
|
||||||
getAllSounds() {
|
|
||||||
return glob.sync("res_built/sounds/**/*.mp3", { cwd: ".." }).map((s) => s.replace("res_built/sounds/", "res/sounds/"));
|
|
||||||
},
|
|
||||||
|
|
||||||
getVersion() {
|
|
||||||
return trim(fs.readFileSync(path.join(__dirname, "version")).toString());
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {string} url
|
|
||||||
* @param {string} commitHash
|
|
||||||
*/
|
|
||||||
cachebust(url, commitHash) {
|
|
||||||
return "/v/" + commitHash + "/" + url;
|
|
||||||
},
|
|
||||||
};
|
|
@ -11,6 +11,7 @@ module.exports = {
|
|||||||
);
|
);
|
||||||
return commitHash.replace(/^\s+|\s+$/g, "");
|
return commitHash.replace(/^\s+|\s+$/g, "");
|
||||||
},
|
},
|
||||||
|
|
||||||
getAllResourceImages() {
|
getAllResourceImages() {
|
||||||
return glob
|
return glob
|
||||||
.sync("res/**/*.@(png|svg|jpg)", { cwd: ".." })
|
.sync("res/**/*.@(png|svg|jpg)", { cwd: ".." })
|
||||||
@ -24,18 +25,6 @@ module.exports = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
getAllAtlasImages() {
|
|
||||||
return glob
|
|
||||||
.sync("res_built/atlas/*.png", { cwd: ".." })
|
|
||||||
.map(s => s.replace("res_built/atlas/", "res/"));
|
|
||||||
},
|
|
||||||
|
|
||||||
getAllSounds() {
|
|
||||||
return glob
|
|
||||||
.sync("res_built/sounds/**/*.mp3", { cwd: ".." })
|
|
||||||
.map(s => s.replace("res_built/sounds/", "res/sounds/"));
|
|
||||||
},
|
|
||||||
|
|
||||||
getVersion() {
|
getVersion() {
|
||||||
return trim(fs.readFileSync(path.join(__dirname, "..", "version")).toString());
|
return trim(fs.readFileSync(path.join(__dirname, "..", "version")).toString());
|
||||||
},
|
},
|
||||||
|
19
gulp/cordova.js
vendored
@ -132,25 +132,6 @@ function gulptasksCordova($, gulp, buildFolder) {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
// gulp.task("pushToStagingRepo", (cb) => {
|
|
||||||
// var cmd = spawn('../push-pgb.sh', ['https://TOKEN@github.com/tobspr/shapezapp-cordova-buildslave.git'],
|
|
||||||
// { stdio: 'inherit', stdout: 'inherit', stderr: 'inherit', shell: true });
|
|
||||||
// cmd.on('close', function (code) {
|
|
||||||
// console.log('push staging exited with code ' + code + " / " + cmd.stdout + " / " + cmd.stderr);
|
|
||||||
// cb(code);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// });
|
|
||||||
|
|
||||||
// gulp.task("pushToProdRepo", (cb) => {
|
|
||||||
// var cmd = spawn('../push-pgb.sh', ['https://TOKEN@github.com/tobspr/shapezapp-cordova-buildslave-release.git'],
|
|
||||||
// { stdio: 'inherit', stdout: 'inherit', stderr: 'inherit', shell: true });
|
|
||||||
// cmd.on('close', function (code) {
|
|
||||||
// console.log('push prod exited with code ' + code + " / " + cmd.stdout + " / " + cmd.stderr);
|
|
||||||
// cb(code);
|
|
||||||
// });
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -77,7 +77,6 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) {
|
|||||||
.pipe($.plumber())
|
.pipe($.plumber())
|
||||||
.pipe($.sass.sync({ outputStyle: "compressed" }).on("error", $.sass.logError))
|
.pipe($.sass.sync({ outputStyle: "compressed" }).on("error", $.sass.logError))
|
||||||
.pipe($.postcss(postcssPlugins(true, { cachebust: true })))
|
.pipe($.postcss(postcssPlugins(true, { cachebust: true })))
|
||||||
// .pipe($.cssbeautify())
|
|
||||||
.pipe(gulp.dest(buildFolder))
|
.pipe(gulp.dest(buildFolder))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
@ -90,7 +89,6 @@ function gulptasksCSS($, gulp, buildFolder, browserSync) {
|
|||||||
.pipe($.plumber())
|
.pipe($.plumber())
|
||||||
.pipe($.sass.sync({ outputStyle: "compressed" }).on("error", $.sass.logError))
|
.pipe($.sass.sync({ outputStyle: "compressed" }).on("error", $.sass.logError))
|
||||||
.pipe($.postcss(postcssPlugins(true, { cachebust: false })))
|
.pipe($.postcss(postcssPlugins(true, { cachebust: false })))
|
||||||
// .pipe($.cssbeautify())
|
|
||||||
.pipe(gulp.dest(buildFolder))
|
.pipe(gulp.dest(buildFolder))
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
59
gulp/html.js
@ -9,7 +9,7 @@ function computeIntegrityHash(fullPath, algorithm = "sha256") {
|
|||||||
return algorithm + "-" + hash;
|
return algorithm + "-" + hash;
|
||||||
}
|
}
|
||||||
|
|
||||||
function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
function gulptasksHTML($, gulp, buildFolder) {
|
||||||
const commitHash = buildUtils.getRevision();
|
const commitHash = buildUtils.getRevision();
|
||||||
async function buildHtml(
|
async function buildHtml(
|
||||||
apiUrl,
|
apiUrl,
|
||||||
@ -27,9 +27,8 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
|||||||
return gulp
|
return gulp
|
||||||
.src("../src/html/" + (standalone ? "index.standalone.html" : "index.html"))
|
.src("../src/html/" + (standalone ? "index.standalone.html" : "index.html"))
|
||||||
.pipe(
|
.pipe(
|
||||||
$.dom(function () {
|
$.dom(/** @this {Document} **/ function () {
|
||||||
// @ts-ignore
|
const document = this;
|
||||||
const document = /** @type {Document} */ (this);
|
|
||||||
|
|
||||||
// Preconnect to api
|
// Preconnect to api
|
||||||
const prefetchLink = document.createElement("link");
|
const prefetchLink = document.createElement("link");
|
||||||
@ -38,21 +37,6 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
|||||||
prefetchLink.setAttribute("crossorigin", "anonymous");
|
prefetchLink.setAttribute("crossorigin", "anonymous");
|
||||||
document.head.appendChild(prefetchLink);
|
document.head.appendChild(prefetchLink);
|
||||||
|
|
||||||
// // Append css preload
|
|
||||||
// const cssPreload = document.createElement("link");
|
|
||||||
// cssPreload.rel = "preload";
|
|
||||||
// cssPreload.href = cachebust("main.css");
|
|
||||||
// cssPreload.setAttribute("as", "style");
|
|
||||||
// document.head.appendChild(cssPreload);
|
|
||||||
// document.head.appendChild(prefetchLink);
|
|
||||||
|
|
||||||
// // Append js preload
|
|
||||||
// const jsPreload = document.createElement("link");
|
|
||||||
// jsPreload.rel = "preload";
|
|
||||||
// jsPreload.href = cachebust("bundle.js");
|
|
||||||
// jsPreload.setAttribute("as", "script");
|
|
||||||
// document.head.appendChild(jsPreload);
|
|
||||||
|
|
||||||
// Append css
|
// Append css
|
||||||
const css = document.createElement("link");
|
const css = document.createElement("link");
|
||||||
css.rel = "stylesheet";
|
css.rel = "stylesheet";
|
||||||
@ -68,17 +52,6 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
|||||||
}
|
}
|
||||||
document.head.appendChild(css);
|
document.head.appendChild(css);
|
||||||
|
|
||||||
if (analytics) {
|
|
||||||
// Logrocket
|
|
||||||
// const logrocketScript = document.createElement("script");
|
|
||||||
// logrocketScript.src = "https://cdn.lr-ingest.io/LogRocket.min.js";
|
|
||||||
// logrocketScript.setAttribute("crossorigin", "anonymous");
|
|
||||||
// document.head.appendChild(logrocketScript);
|
|
||||||
// const logrocketInit = document.createElement("script");
|
|
||||||
// logrocketInit.textContent = "window.LogRocket && window.LogRocket.init('TODO: GET LOGROCKET ID');";
|
|
||||||
// document.head.appendChild(logrocketInit);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (app) {
|
if (app) {
|
||||||
// Append cordova link
|
// Append cordova link
|
||||||
const cdv = document.createElement("script");
|
const cdv = document.createElement("script");
|
||||||
@ -114,18 +87,9 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
|||||||
|
|
||||||
// Do not need to preload in app or standalone
|
// Do not need to preload in app or standalone
|
||||||
if (!hasLocalFiles) {
|
if (!hasLocalFiles) {
|
||||||
// Preload images
|
|
||||||
const images = buildUtils.getAllResourceImages();
|
|
||||||
|
|
||||||
// Preload essentials
|
// Preload essentials
|
||||||
const preloads = ["fonts/GameFont.woff2"];
|
const preloads = ["fonts/GameFont.woff2"];
|
||||||
|
|
||||||
// for (let i = 0; i < images.length; ++i) {
|
|
||||||
// if (preloads.indexOf(images[i]) < 0) {
|
|
||||||
// preloads.push(images[i]);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
preloads.forEach(src => {
|
preloads.forEach(src => {
|
||||||
const preloadLink = document.createElement("link");
|
const preloadLink = document.createElement("link");
|
||||||
preloadLink.rel = "preload";
|
preloadLink.rel = "preload";
|
||||||
@ -138,23 +102,6 @@ function gulptasksHTML($, gulp, buildFolder, browserSync) {
|
|||||||
}
|
}
|
||||||
document.head.appendChild(preloadLink);
|
document.head.appendChild(preloadLink);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Sound preloads
|
|
||||||
// const sounds = buildUtils.getAllSounds();
|
|
||||||
// sounds.forEach((src) => {
|
|
||||||
|
|
||||||
// if (src.indexOf("sounds/music/") >= 0) {
|
|
||||||
// // skip music
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// const preloadLink = document.createElement("link");
|
|
||||||
// preloadLink.rel = "preload";
|
|
||||||
// preloadLink.href = cachebust(src);
|
|
||||||
// // preloadLink.setAttribute("crossorigin", "anonymous");
|
|
||||||
// preloadLink.setAttribute("as", "fetch");
|
|
||||||
// document.head.appendChild(preloadLink);
|
|
||||||
// });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const loadingSvg = `background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46YXV0bztiYWNrZ3JvdW5kOjAgMCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgZGlzcGxheT0iYmxvY2siPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzM5Mzc0NyIgc3Ryb2tlLXdpZHRoPSIzIiByPSI0MiIgc3Ryb2tlLWRhc2hhcnJheT0iMTk3LjkyMDMzNzE3NjE1Njk4IDY3Ljk3MzQ0NTcyNTM4NTY2IiB0cmFuc2Zvcm09InJvdGF0ZSg0OC4yNjUgNTAgNTApIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iNS41NTU1NTU1NTU1NTU1NTVzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIi8+PC9jaXJjbGU+PC9zdmc+")`;
|
const loadingSvg = `background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHN0eWxlPSJtYXJnaW46YXV0bztiYWNrZ3JvdW5kOjAgMCIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCIgZGlzcGxheT0iYmxvY2siPjxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzM5Mzc0NyIgc3Ryb2tlLXdpZHRoPSIzIiByPSI0MiIgc3Ryb2tlLWRhc2hhcnJheT0iMTk3LjkyMDMzNzE3NjE1Njk4IDY3Ljk3MzQ0NTcyNTM4NTY2IiB0cmFuc2Zvcm09InJvdGF0ZSg0OC4yNjUgNTAgNTApIj48YW5pbWF0ZVRyYW5zZm9ybSBhdHRyaWJ1dGVOYW1lPSJ0cmFuc2Zvcm0iIHR5cGU9InJvdGF0ZSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iNS41NTU1NTU1NTU1NTU1NTVzIiB2YWx1ZXM9IjAgNTAgNTA7MzYwIDUwIDUwIiBrZXlUaW1lcz0iMDsxIi8+PC9jaXJjbGU+PC9zdmc+")`;
|
||||||
|
@ -6,12 +6,6 @@ function requireUncached(module) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function gulptasksJS($, gulp, buildFolder, browserSync) {
|
function gulptasksJS($, gulp, buildFolder, browserSync) {
|
||||||
gulp.task("js.prettify", () => {
|
|
||||||
return gulp
|
|
||||||
.src(path.join(buildFolder, "bundle.js"))
|
|
||||||
.pipe($.jsbeautifier(require("./jsbeautify.json")))
|
|
||||||
.pipe(gulp.dest(buildFolder));
|
|
||||||
});
|
|
||||||
|
|
||||||
//// DEV
|
//// DEV
|
||||||
|
|
||||||
@ -71,6 +65,7 @@ function gulptasksJS($, gulp, buildFolder, browserSync) {
|
|||||||
gulp.task("js.staging", gulp.parallel("js.staging.transpiled", "js.staging.latest"));
|
gulp.task("js.staging", gulp.parallel("js.staging.transpiled", "js.staging.latest"));
|
||||||
|
|
||||||
//// PROD
|
//// PROD
|
||||||
|
|
||||||
gulp.task("js.prod.transpiled", () => {
|
gulp.task("js.prod.transpiled", () => {
|
||||||
return gulp
|
return gulp
|
||||||
.src("../src/js/main.js")
|
.src("../src/js/main.js")
|
||||||
@ -167,8 +162,6 @@ function gulptasksJS($, gulp, buildFolder, browserSync) {
|
|||||||
)
|
)
|
||||||
.pipe(gulp.dest(buildFolder));
|
.pipe(gulp.dest(buildFolder));
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: Tasks for te app
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "builder",
|
"description": "builder",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "main.js",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"gulp": "gulp"
|
"gulp": "gulp"
|
||||||
},
|
},
|
||||||
@ -20,7 +19,7 @@
|
|||||||
"ajv": "^6.10.2",
|
"ajv": "^6.10.2",
|
||||||
"audiosprite": "^0.7.2",
|
"audiosprite": "^0.7.2",
|
||||||
"babel-loader": "^8.1.0",
|
"babel-loader": "^8.1.0",
|
||||||
"browser-sync": "^2.24.6",
|
"browser-sync": "^2.26.10",
|
||||||
"circular-dependency-plugin": "^5.0.2",
|
"circular-dependency-plugin": "^5.0.2",
|
||||||
"circular-json": "^0.5.9",
|
"circular-json": "^0.5.9",
|
||||||
"clipboard-copy": "^3.1.0",
|
"clipboard-copy": "^3.1.0",
|
||||||
@ -41,21 +40,18 @@
|
|||||||
"lz-string": "^1.4.4",
|
"lz-string": "^1.4.4",
|
||||||
"markdown-loader": "^5.1.0",
|
"markdown-loader": "^5.1.0",
|
||||||
"node-sri": "^1.1.1",
|
"node-sri": "^1.1.1",
|
||||||
"obfuscator-loader": "^1.1.2",
|
|
||||||
"phonegap-plugin-mobile-accessibility": "^1.0.5",
|
"phonegap-plugin-mobile-accessibility": "^1.0.5",
|
||||||
"promise-polyfill": "^8.1.0",
|
"promise-polyfill": "^8.1.0",
|
||||||
"query-string": "^6.8.1",
|
"query-string": "^6.8.1",
|
||||||
"rusha": "^0.8.13",
|
"rusha": "^0.8.13",
|
||||||
"serialize-error": "^3.0.0",
|
"serialize-error": "^3.0.0",
|
||||||
"sloc": "^0.2.1",
|
|
||||||
"strictdom": "^1.0.1",
|
"strictdom": "^1.0.1",
|
||||||
"string-replace-webpack-plugin": "^0.1.3",
|
"string-replace-webpack-plugin": "^0.1.3",
|
||||||
"terser-webpack-plugin": "^1.1.0",
|
"terser-webpack-plugin": "^1.1.0",
|
||||||
"through2": "^3.0.1",
|
"through2": "^3.0.1",
|
||||||
"uglify-template-string-loader": "^1.1.0",
|
"uglify-template-string-loader": "^1.1.0",
|
||||||
"unused-files-webpack-plugin": "^3.4.0",
|
"unused-files-webpack-plugin": "^3.4.0",
|
||||||
"webpack": "^4.31.0",
|
"webpack": "^4.43.0",
|
||||||
"webpack-bundle-analyzer": "^3.0.3",
|
|
||||||
"webpack-cli": "^3.1.0",
|
"webpack-cli": "^3.1.0",
|
||||||
"webpack-deep-scope-plugin": "^1.6.0",
|
"webpack-deep-scope-plugin": "^1.6.0",
|
||||||
"webpack-plugin-replace": "^1.1.1",
|
"webpack-plugin-replace": "^1.1.1",
|
||||||
@ -77,8 +73,6 @@
|
|||||||
"gulp-cache": "^1.1.3",
|
"gulp-cache": "^1.1.3",
|
||||||
"gulp-cached": "^1.1.1",
|
"gulp-cached": "^1.1.1",
|
||||||
"gulp-clean": "^0.4.0",
|
"gulp-clean": "^0.4.0",
|
||||||
"gulp-cssbeautify": "^2.0.1",
|
|
||||||
"gulp-csslint": "^1.0.1",
|
|
||||||
"gulp-dom": "^1.0.0",
|
"gulp-dom": "^1.0.0",
|
||||||
"gulp-flatten": "^0.4.0",
|
"gulp-flatten": "^0.4.0",
|
||||||
"gulp-fluent-ffmpeg": "^2.0.0",
|
"gulp-fluent-ffmpeg": "^2.0.0",
|
||||||
@ -86,8 +80,6 @@
|
|||||||
"gulp-htmlmin": "^5.0.1",
|
"gulp-htmlmin": "^5.0.1",
|
||||||
"gulp-if": "^3.0.0",
|
"gulp-if": "^3.0.0",
|
||||||
"gulp-imagemin": "^7.1.0",
|
"gulp-imagemin": "^7.1.0",
|
||||||
"gulp-javascript-obfuscator": "^1.1.5",
|
|
||||||
"gulp-jsbeautifier": "^3.0.0",
|
|
||||||
"gulp-load-plugins": "^2.0.3",
|
"gulp-load-plugins": "^2.0.3",
|
||||||
"gulp-phonegap-build": "^0.1.5",
|
"gulp-phonegap-build": "^0.1.5",
|
||||||
"gulp-plumber": "^1.2.1",
|
"gulp-plumber": "^1.2.1",
|
||||||
@ -105,16 +97,14 @@
|
|||||||
"imagemin-pngquant": "^9.0.0",
|
"imagemin-pngquant": "^9.0.0",
|
||||||
"jimp": "^0.6.1",
|
"jimp": "^0.6.1",
|
||||||
"js-yaml": "^3.13.1",
|
"js-yaml": "^3.13.1",
|
||||||
"onesky-fetch": "^0.0.7",
|
|
||||||
"postcss-assets": "^5.0.0",
|
"postcss-assets": "^5.0.0",
|
||||||
"postcss-preset-env": "^6.5.0",
|
"postcss-preset-env": "^6.5.0",
|
||||||
"postcss-round-subpixels": "^1.2.0",
|
"postcss-round-subpixels": "^1.2.0",
|
||||||
"postcss-unprefix": "^2.1.3",
|
"postcss-unprefix": "^2.1.3",
|
||||||
"sass-unused": "^0.3.0",
|
"sass-unused": "^0.3.0",
|
||||||
"speed-measure-webpack-plugin": "^1.3.1",
|
|
||||||
"strip-json-comments": "^3.0.1",
|
"strip-json-comments": "^3.0.1",
|
||||||
"trim": "^0.0.1",
|
"trim": "^0.0.1",
|
||||||
"webpack-stream": "^5.1.0",
|
"webpack-stream": "^5.2.1",
|
||||||
"yaml-loader": "^0.6.0"
|
"yaml-loader": "^0.6.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
const packager = require("electron-packager");
|
const packager = require("electron-packager");
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const buildutils = require("./buildutils");
|
const { getVersion } = require("./buildutils");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const fse = require("fs-extra");
|
const fse = require("fs-extra");
|
||||||
const execSync = require("child_process").execSync;
|
const execSync = require("child_process").execSync;
|
||||||
|
|
||||||
function gulptasksStandalone($, gulp, buildFolder) {
|
function gulptasksStandalone($, gulp) {
|
||||||
const electronBaseDir = path.join(__dirname, "..", "electron");
|
const electronBaseDir = path.join(__dirname, "..", "electron");
|
||||||
|
|
||||||
const tempDestDir = path.join(__dirname, "..", "tmp_standalone_files");
|
const tempDestDir = path.join(__dirname, "..", "tmp_standalone_files");
|
||||||
@ -47,49 +47,7 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("standalone.prepare.minifyCode", () => {
|
gulp.task("standalone.prepare.minifyCode", () => {
|
||||||
return (
|
return gulp.src(path.join(electronBaseDir, "*.js")).pipe(gulp.dest(tempDestBuildDir));
|
||||||
gulp
|
|
||||||
.src(path.join(electronBaseDir, "*.js"))
|
|
||||||
// .pipe(
|
|
||||||
// $.terser({
|
|
||||||
// ecma: 6,
|
|
||||||
// parse: {},
|
|
||||||
// module: false,
|
|
||||||
// toplevel: true,
|
|
||||||
// keep_classnames: false,
|
|
||||||
// keep_fnames: false,
|
|
||||||
// safari10: false,
|
|
||||||
// compress: {
|
|
||||||
// arguments: false, // breaks
|
|
||||||
// drop_console: false,
|
|
||||||
// // keep_fargs: false,
|
|
||||||
// keep_infinity: true,
|
|
||||||
// passes: 2,
|
|
||||||
// module: false,
|
|
||||||
// toplevel: true,
|
|
||||||
// unsafe_math: true,
|
|
||||||
// unsafe_arrows: false,
|
|
||||||
// warnings: true,
|
|
||||||
// },
|
|
||||||
// mangle: {
|
|
||||||
// eval: true,
|
|
||||||
// keep_classnames: false,
|
|
||||||
// keep_fnames: false,
|
|
||||||
// module: false,
|
|
||||||
// toplevel: true,
|
|
||||||
// safari10: false,
|
|
||||||
// },
|
|
||||||
// output: {
|
|
||||||
// comments: false,
|
|
||||||
// ascii_only: true,
|
|
||||||
// beautify: false,
|
|
||||||
// braces: false,
|
|
||||||
// ecma: 6,
|
|
||||||
// },
|
|
||||||
// })
|
|
||||||
// )
|
|
||||||
.pipe(gulp.dest(tempDestBuildDir))
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task("standalone.prepare.copyGamefiles", () => {
|
gulp.task("standalone.prepare.copyGamefiles", () => {
|
||||||
@ -122,15 +80,14 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
|||||||
* @param {'win32'|'linux'|'darwin'} platform
|
* @param {'win32'|'linux'|'darwin'} platform
|
||||||
* @param {'x64'|'ia32'} arch
|
* @param {'x64'|'ia32'} arch
|
||||||
* @param {function():void} cb
|
* @param {function():void} cb
|
||||||
* @param {boolean=} isRelease
|
|
||||||
*/
|
*/
|
||||||
function packageStandalone(platform, arch, cb, isRelease = false) {
|
function packageStandalone(platform, arch, cb) {
|
||||||
const tomlFile = fs.readFileSync(path.join(__dirname, ".itch.toml"));
|
const tomlFile = fs.readFileSync(path.join(__dirname, ".itch.toml"));
|
||||||
|
|
||||||
packager({
|
packager({
|
||||||
dir: tempDestBuildDir,
|
dir: tempDestBuildDir,
|
||||||
appCopyright: "Tobias Springer",
|
appCopyright: "Tobias Springer",
|
||||||
appVersion: buildutils.getVersion(),
|
appVersion: getVersion(),
|
||||||
buildVersion: "1.0.0",
|
buildVersion: "1.0.0",
|
||||||
arch,
|
arch,
|
||||||
platform,
|
platform,
|
||||||
@ -164,19 +121,6 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
|||||||
'#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n'
|
'#!/usr/bin/env bash\n./shapezio --no-sandbox "$@"\n'
|
||||||
);
|
);
|
||||||
fs.chmodSync(path.join(appPath, "play.sh"), 0o775);
|
fs.chmodSync(path.join(appPath, "play.sh"), 0o775);
|
||||||
} else if (platform === "win32") {
|
|
||||||
// Optional: Create a playable copy. Shouldn't be required
|
|
||||||
// const playablePath = appPath + "_playable";
|
|
||||||
// fse.copySync(appPath, playablePath);
|
|
||||||
// fs.writeFileSync(path.join(playablePath, "steam_appid.txt"), "1134480");
|
|
||||||
// fs.writeFileSync(
|
|
||||||
// path.join(playablePath, "play.bat"),
|
|
||||||
// "start shapezio --dev --disable-direct-composition --in-process-gpu\r\n"
|
|
||||||
// );
|
|
||||||
// fs.writeFileSync(
|
|
||||||
// path.join(playablePath, "play_local.bat"),
|
|
||||||
// "start shapezio --local --dev --disable-direct-composition --in-process-gpu\r\n"
|
|
||||||
// );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (platform === "darwin") {
|
if (platform === "darwin") {
|
||||||
@ -226,11 +170,11 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
gulp.task("standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb, true));
|
gulp.task("standalone.package.prod.win64", cb => packageStandalone("win32", "x64", cb));
|
||||||
gulp.task("standalone.package.prod.win32", cb => packageStandalone("win32", "ia32", cb, true));
|
gulp.task("standalone.package.prod.win32", cb => packageStandalone("win32", "ia32", cb));
|
||||||
gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb, true));
|
gulp.task("standalone.package.prod.linux64", cb => packageStandalone("linux", "x64", cb));
|
||||||
gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb, true));
|
gulp.task("standalone.package.prod.linux32", cb => packageStandalone("linux", "ia32", cb));
|
||||||
gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb, true));
|
gulp.task("standalone.package.prod.darwin64", cb => packageStandalone("darwin", "x64", cb));
|
||||||
|
|
||||||
gulp.task(
|
gulp.task(
|
||||||
"standalone.package.prod",
|
"standalone.package.prod",
|
||||||
@ -240,8 +184,6 @@ function gulptasksStandalone($, gulp, buildFolder) {
|
|||||||
"standalone.package.prod.win64",
|
"standalone.package.prod.win64",
|
||||||
"standalone.package.prod.linux64",
|
"standalone.package.prod.linux64",
|
||||||
"standalone.package.prod.darwin64"
|
"standalone.package.prod.darwin64"
|
||||||
// "standalone.package.prod.win32",
|
|
||||||
// "standalone.package.prod.linux32",
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -5,7 +5,7 @@ const yaml = require("gulp-yaml");
|
|||||||
const translationsSourceDir = path.join(__dirname, "..", "translations");
|
const translationsSourceDir = path.join(__dirname, "..", "translations");
|
||||||
const translationsJsonDir = path.join(__dirname, "..", "src", "js", "built-temp");
|
const translationsJsonDir = path.join(__dirname, "..", "src", "js", "built-temp");
|
||||||
|
|
||||||
function gulptasksTranslations($, gulp, buildFolder) {
|
function gulptasksTranslations($, gulp) {
|
||||||
gulp.task("translations.convertToJson", () => {
|
gulp.task("translations.convertToJson", () => {
|
||||||
return gulp
|
return gulp
|
||||||
.src(path.join(translationsSourceDir, "*.yaml"))
|
.src(path.join(translationsSourceDir, "*.yaml"))
|
||||||
|
@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const webpack = require("webpack");
|
const webpack = require("webpack");
|
||||||
const utils = require("./buildutils");
|
const { getRevision, getVersion, getAllResourceImages } = require("./buildutils");
|
||||||
const lzString = require("lz-string");
|
const lzString = require("lz-string");
|
||||||
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
|
||||||
const CircularDependencyPlugin = require("circular-dependency-plugin");
|
const CircularDependencyPlugin = require("circular-dependency-plugin");
|
||||||
|
|
||||||
module.exports = ({ watch = false, standalone = false }) => {
|
module.exports = ({ watch = false, standalone = false }) => {
|
||||||
@ -41,9 +40,9 @@ module.exports = ({ watch = false, standalone = false }) => {
|
|||||||
G_IS_BROWSER: "true",
|
G_IS_BROWSER: "true",
|
||||||
G_IS_STANDALONE: standalone ? "true" : "false",
|
G_IS_STANDALONE: standalone ? "true" : "false",
|
||||||
G_BUILD_TIME: "" + new Date().getTime(),
|
G_BUILD_TIME: "" + new Date().getTime(),
|
||||||
G_BUILD_COMMIT_HASH: JSON.stringify(utils.getRevision()),
|
G_BUILD_COMMIT_HASH: JSON.stringify(getRevision()),
|
||||||
G_BUILD_VERSION: JSON.stringify(utils.getVersion()),
|
G_BUILD_VERSION: JSON.stringify(getVersion()),
|
||||||
G_ALL_UI_IMAGES: JSON.stringify(utils.getAllResourceImages()),
|
G_ALL_UI_IMAGES: JSON.stringify(getAllResourceImages()),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
new CircularDependencyPlugin({
|
new CircularDependencyPlugin({
|
||||||
@ -60,7 +59,6 @@ module.exports = ({ watch = false, standalone = false }) => {
|
|||||||
// set the current working directory for displaying module paths
|
// set the current working directory for displaying module paths
|
||||||
cwd: path.join(__dirname, "..", "src", "js"),
|
cwd: path.join(__dirname, "..", "src", "js"),
|
||||||
}),
|
}),
|
||||||
// new BundleAnalyzerPlugin()
|
|
||||||
],
|
],
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
|
@ -2,14 +2,12 @@
|
|||||||
|
|
||||||
const path = require("path");
|
const path = require("path");
|
||||||
const webpack = require("webpack");
|
const webpack = require("webpack");
|
||||||
const utils = require("./buildutils");
|
const { getRevision, getVersion, getAllResourceImages } = require("./buildutils");
|
||||||
const lzString = require("lz-string");
|
const lzString = require("lz-string");
|
||||||
|
|
||||||
const TerserPlugin = require("terser-webpack-plugin");
|
const TerserPlugin = require("terser-webpack-plugin");
|
||||||
const StringReplacePlugin = require("string-replace-webpack-plugin");
|
const StringReplacePlugin = require("string-replace-webpack-plugin");
|
||||||
// const BundleAnalyzerPlugin = require("webpack-bundle-analyzer").BundleAnalyzerPlugin;
|
|
||||||
const UnusedFilesPlugin = require("unused-files-webpack-plugin").UnusedFilesWebpackPlugin;
|
const UnusedFilesPlugin = require("unused-files-webpack-plugin").UnusedFilesWebpackPlugin;
|
||||||
// const SpeedMeasurePlugin = require("speed-measure-webpack-plugin");
|
|
||||||
|
|
||||||
module.exports = ({
|
module.exports = ({
|
||||||
enableAssert = false,
|
enableAssert = false,
|
||||||
@ -34,9 +32,9 @@ module.exports = ({
|
|||||||
G_APP_ENVIRONMENT: JSON.stringify(environment),
|
G_APP_ENVIRONMENT: JSON.stringify(environment),
|
||||||
G_HAVE_ASSERT: enableAssert ? "true" : "false",
|
G_HAVE_ASSERT: enableAssert ? "true" : "false",
|
||||||
G_BUILD_TIME: "" + new Date().getTime(),
|
G_BUILD_TIME: "" + new Date().getTime(),
|
||||||
G_BUILD_COMMIT_HASH: JSON.stringify(utils.getRevision()),
|
G_BUILD_COMMIT_HASH: JSON.stringify(getRevision()),
|
||||||
G_BUILD_VERSION: JSON.stringify(utils.getVersion()),
|
G_BUILD_VERSION: JSON.stringify(getVersion()),
|
||||||
G_ALL_UI_IMAGES: JSON.stringify(utils.getAllResourceImages()),
|
G_ALL_UI_IMAGES: JSON.stringify(getAllResourceImages()),
|
||||||
};
|
};
|
||||||
|
|
||||||
const minifyNames = environment === "prod";
|
const minifyNames = environment === "prod";
|
||||||
@ -143,9 +141,9 @@ module.exports = ({
|
|||||||
ecma: es6 ? 6 : 5,
|
ecma: es6 ? 6 : 5,
|
||||||
preamble:
|
preamble:
|
||||||
"/* shapez.io Codebase - Copyright 2020 Tobias Springer - " +
|
"/* shapez.io Codebase - Copyright 2020 Tobias Springer - " +
|
||||||
utils.getVersion() +
|
getVersion() +
|
||||||
" @ " +
|
" @ " +
|
||||||
utils.getRevision() +
|
getRevision() +
|
||||||
" */",
|
" */",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -164,15 +162,6 @@ module.exports = ({
|
|||||||
cwd: path.join(__dirname, "..", "src", "js"),
|
cwd: path.join(__dirname, "..", "src", "js"),
|
||||||
patterns: ["../src/js/**/*.js"],
|
patterns: ["../src/js/**/*.js"],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// new webpack.SourceMapDevToolPlugin({
|
|
||||||
// filename: "[name].map",
|
|
||||||
// publicPath: "/v/" + utils.getRevision() + "/",
|
|
||||||
// }),
|
|
||||||
// new ReplaceCompressBlocks()
|
|
||||||
// new webpack.optimize.ModuleConcatenationPlugin()
|
|
||||||
// new WebpackDeepScopeAnalysisPlugin()
|
|
||||||
// new BundleAnalyzerPlugin()
|
|
||||||
],
|
],
|
||||||
module: {
|
module: {
|
||||||
rules: [
|
rules: [
|
||||||
|
1454
gulp/yarn.lock
13
package.json
@ -9,7 +9,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "cd gulp && yarn gulp main.serveDev",
|
"dev": "cd gulp && yarn gulp main.serveDev",
|
||||||
"tslint": "cd src/js && tsc",
|
"tslint": "cd src/js && tsc",
|
||||||
"lint": "npx eslint src/js",
|
"lint": "eslint src/js",
|
||||||
"prettier-all": "prettier --write src/**/*.* && prettier --write gulp/**/*.*",
|
"prettier-all": "prettier --write src/**/*.* && prettier --write gulp/**/*.*",
|
||||||
"publishOnItchWindows": "butler push tmp_standalone_files/shapez.io-standalone-win32-x64 tobspr/shapezio:windows --userversion-file version",
|
"publishOnItchWindows": "butler push tmp_standalone_files/shapez.io-standalone-win32-x64 tobspr/shapezio:windows --userversion-file version",
|
||||||
"publishOnItchLinux": "butler push tmp_standalone_files/shapez.io-standalone-linux-x64 tobspr/shapezio:linux --userversion-file version",
|
"publishOnItchLinux": "butler push tmp_standalone_files/shapez.io-standalone-linux-x64 tobspr/shapezio:linux --userversion-file version",
|
||||||
@ -29,13 +29,14 @@
|
|||||||
"@types/filesystem": "^0.0.29",
|
"@types/filesystem": "^0.0.29",
|
||||||
"ajv": "^6.10.2",
|
"ajv": "^6.10.2",
|
||||||
"babel-loader": "^8.0.4",
|
"babel-loader": "^8.0.4",
|
||||||
"browser-sync": "^2.24.6",
|
|
||||||
"circular-dependency-plugin": "^5.0.2",
|
"circular-dependency-plugin": "^5.0.2",
|
||||||
"circular-json": "^0.5.9",
|
"circular-json": "^0.5.9",
|
||||||
"clipboard-copy": "^3.1.0",
|
"clipboard-copy": "^3.1.0",
|
||||||
"colors": "^1.3.3",
|
"colors": "^1.3.3",
|
||||||
"core-js": "3",
|
"core-js": "3",
|
||||||
|
"crc": "^3.8.0",
|
||||||
"cssnano-preset-advanced": "^4.0.7",
|
"cssnano-preset-advanced": "^4.0.7",
|
||||||
|
"debounce-promise": "^3.1.2",
|
||||||
"email-validator": "^2.0.4",
|
"email-validator": "^2.0.4",
|
||||||
"eslint": "7.1.0",
|
"eslint": "7.1.0",
|
||||||
"fastdom": "^1.0.8",
|
"fastdom": "^1.0.8",
|
||||||
@ -47,20 +48,18 @@
|
|||||||
"lz-string": "^1.4.4",
|
"lz-string": "^1.4.4",
|
||||||
"markdown-loader": "^4.0.0",
|
"markdown-loader": "^4.0.0",
|
||||||
"match-all": "^1.2.5",
|
"match-all": "^1.2.5",
|
||||||
"obfuscator-loader": "^1.1.2",
|
|
||||||
"phonegap-plugin-mobile-accessibility": "^1.0.5",
|
"phonegap-plugin-mobile-accessibility": "^1.0.5",
|
||||||
"promise-polyfill": "^8.1.0",
|
"promise-polyfill": "^8.1.0",
|
||||||
"query-string": "^6.8.1",
|
"query-string": "^6.8.1",
|
||||||
"rusha": "^0.8.13",
|
"rusha": "^0.8.13",
|
||||||
"serialize-error": "^3.0.0",
|
"serialize-error": "^3.0.0",
|
||||||
"sloc": "^0.2.1",
|
|
||||||
"strictdom": "^1.0.1",
|
"strictdom": "^1.0.1",
|
||||||
"string-replace-webpack-plugin": "^0.1.3",
|
"string-replace-webpack-plugin": "^0.1.3",
|
||||||
"terser-webpack-plugin": "^1.1.0",
|
"terser-webpack-plugin": "^1.1.0",
|
||||||
"typescript": "3.9.3",
|
"typescript": "3.9.3",
|
||||||
"uglify-template-string-loader": "^1.1.0",
|
"uglify-template-string-loader": "^1.1.0",
|
||||||
"unused-files-webpack-plugin": "^3.4.0",
|
"unused-files-webpack-plugin": "^3.4.0",
|
||||||
"webpack": "^4.31.0",
|
"webpack": "^4.43.0",
|
||||||
"webpack-bundle-analyzer": "^3.0.3",
|
"webpack-bundle-analyzer": "^3.0.3",
|
||||||
"webpack-cli": "^3.1.0",
|
"webpack-cli": "^3.1.0",
|
||||||
"webpack-deep-scope-plugin": "^1.6.0",
|
"webpack-deep-scope-plugin": "^1.6.0",
|
||||||
@ -88,16 +87,14 @@
|
|||||||
"imagemin-pngquant": "^8.0.0",
|
"imagemin-pngquant": "^8.0.0",
|
||||||
"jimp": "^0.6.1",
|
"jimp": "^0.6.1",
|
||||||
"js-yaml": "^3.13.1",
|
"js-yaml": "^3.13.1",
|
||||||
"onesky-fetch": "^0.0.7",
|
|
||||||
"postcss-assets": "^5.0.0",
|
"postcss-assets": "^5.0.0",
|
||||||
"postcss-preset-env": "^6.5.0",
|
"postcss-preset-env": "^6.5.0",
|
||||||
"postcss-round-subpixels": "^1.2.0",
|
"postcss-round-subpixels": "^1.2.0",
|
||||||
"postcss-unprefix": "^2.1.3",
|
"postcss-unprefix": "^2.1.3",
|
||||||
"prettier": "^2.0.4",
|
"prettier": "^2.0.4",
|
||||||
"sass-unused": "^0.3.0",
|
"sass-unused": "^0.3.0",
|
||||||
"speed-measure-webpack-plugin": "^1.3.1",
|
|
||||||
"strip-json-comments": "^3.0.1",
|
"strip-json-comments": "^3.0.1",
|
||||||
"trim": "^0.0.1",
|
"trim": "^0.0.1",
|
||||||
"webpack-stream": "^5.1.0"
|
"yarn": "^1.22.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
res/ui/building_icons/constant_signal.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 9.7 KiB |
BIN
res/ui/building_icons/display.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 5.7 KiB |
BIN
res/ui/building_icons/filter.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res/ui/building_icons/lever.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
res/ui/building_icons/logic_gate.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
res/ui/building_icons/reader.png
Normal file
After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 4.6 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.9 KiB |
BIN
res/ui/building_icons/virtual_processor.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 4.6 KiB |
BIN
res/ui/building_icons/wire_tunnel.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
res/ui/building_tutorials/rotater-fl.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
res/ui/icons/display_sorted.png
Normal file
After Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 712 B After Width: | Height: | Size: 756 B |
BIN
res/ui/icons/link.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 216 KiB |
Before Width: | Height: | Size: 515 KiB |
Before Width: | Height: | Size: 976 KiB |
1476
res_built/atlas/atlas0_hq.json
Normal file
BIN
res_built/atlas/atlas0_hq.png
Normal file
After Width: | Height: | Size: 1.3 MiB |
1476
res_built/atlas/atlas0_lq.json
Normal file
BIN
res_built/atlas/atlas0_lq.png
Normal file
After Width: | Height: | Size: 280 KiB |
1476
res_built/atlas/atlas0_mq.json
Normal file
BIN
res_built/atlas/atlas0_mq.png
Normal file
After Width: | Height: | Size: 677 KiB |
@ -7,28 +7,11 @@
|
|||||||
<string>5.4.0</string>
|
<string>5.4.0</string>
|
||||||
<key>autoSDSettings</key>
|
<key>autoSDSettings</key>
|
||||||
<array>
|
<array>
|
||||||
<struct type="AutoSDSettings">
|
|
||||||
<key>scale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>extension</key>
|
|
||||||
<string>_100</string>
|
|
||||||
<key>spriteFilter</key>
|
|
||||||
<string></string>
|
|
||||||
<key>acceptFractionalValues</key>
|
|
||||||
<true/>
|
|
||||||
<key>maxTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>4096</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>4096</int>
|
|
||||||
</QSize>
|
|
||||||
</struct>
|
|
||||||
<struct type="AutoSDSettings">
|
<struct type="AutoSDSettings">
|
||||||
<key>scale</key>
|
<key>scale</key>
|
||||||
<double>0.75</double>
|
<double>0.75</double>
|
||||||
<key>extension</key>
|
<key>extension</key>
|
||||||
<string>_75</string>
|
<string>_hq</string>
|
||||||
<key>spriteFilter</key>
|
<key>spriteFilter</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
<key>acceptFractionalValues</key>
|
<key>acceptFractionalValues</key>
|
||||||
@ -45,7 +28,7 @@
|
|||||||
<key>scale</key>
|
<key>scale</key>
|
||||||
<double>0.5</double>
|
<double>0.5</double>
|
||||||
<key>extension</key>
|
<key>extension</key>
|
||||||
<string>_50</string>
|
<string>_mq</string>
|
||||||
<key>spriteFilter</key>
|
<key>spriteFilter</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
<key>acceptFractionalValues</key>
|
<key>acceptFractionalValues</key>
|
||||||
@ -62,7 +45,7 @@
|
|||||||
<key>scale</key>
|
<key>scale</key>
|
||||||
<double>0.25</double>
|
<double>0.25</double>
|
||||||
<key>extension</key>
|
<key>extension</key>
|
||||||
<string>_25</string>
|
<string>_lq</string>
|
||||||
<key>spriteFilter</key>
|
<key>spriteFilter</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
<key>acceptFractionalValues</key>
|
<key>acceptFractionalValues</key>
|
||||||
@ -70,26 +53,9 @@
|
|||||||
<key>maxTextureSize</key>
|
<key>maxTextureSize</key>
|
||||||
<QSize>
|
<QSize>
|
||||||
<key>width</key>
|
<key>width</key>
|
||||||
<int>1024</int>
|
<int>2048</int>
|
||||||
<key>height</key>
|
<key>height</key>
|
||||||
<int>1024</int>
|
<int>2048</int>
|
||||||
</QSize>
|
|
||||||
</struct>
|
|
||||||
<struct type="AutoSDSettings">
|
|
||||||
<key>scale</key>
|
|
||||||
<double>0.1</double>
|
|
||||||
<key>extension</key>
|
|
||||||
<string>_10</string>
|
|
||||||
<key>spriteFilter</key>
|
|
||||||
<string></string>
|
|
||||||
<key>acceptFractionalValues</key>
|
|
||||||
<true/>
|
|
||||||
<key>maxTextureSize</key>
|
|
||||||
<QSize>
|
|
||||||
<key>width</key>
|
|
||||||
<int>-1</int>
|
|
||||||
<key>height</key>
|
|
||||||
<int>-1</int>
|
|
||||||
</QSize>
|
</QSize>
|
||||||
</struct>
|
</struct>
|
||||||
</array>
|
</array>
|
||||||
@ -174,7 +140,7 @@
|
|||||||
<key>freeSizeMode</key>
|
<key>freeSizeMode</key>
|
||||||
<enum type="AlgorithmSettings::AlgorithmFreeSizeMode">Best</enum>
|
<enum type="AlgorithmSettings::AlgorithmFreeSizeMode">Best</enum>
|
||||||
<key>sizeConstraints</key>
|
<key>sizeConstraints</key>
|
||||||
<enum type="AlgorithmSettings::SizeConstraints">AnySize</enum>
|
<enum type="AlgorithmSettings::SizeConstraints">POT</enum>
|
||||||
<key>forceSquared</key>
|
<key>forceSquared</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>maxRects</key>
|
<key>maxRects</key>
|
||||||
@ -249,17 +215,123 @@
|
|||||||
</struct>
|
</struct>
|
||||||
<key>individualSpriteSettings</key>
|
<key>individualSpriteSettings</key>
|
||||||
<map type="IndividualSpriteSettingsMap">
|
<map type="IndividualSpriteSettingsMap">
|
||||||
<key type="filename">sprites/belt/forward_0.png</key>
|
<key type="filename">sprites/belt/built/forward_0.png</key>
|
||||||
<key type="filename">sprites/belt/forward_1.png</key>
|
<key type="filename">sprites/belt/built/forward_1.png</key>
|
||||||
<key type="filename">sprites/belt/forward_2.png</key>
|
<key type="filename">sprites/belt/built/forward_10.png</key>
|
||||||
<key type="filename">sprites/buildings/miner.png</key>
|
<key type="filename">sprites/belt/built/forward_11.png</key>
|
||||||
<key type="filename">sprites/buildings/rotater.png</key>
|
<key type="filename">sprites/belt/built/forward_12.png</key>
|
||||||
<key type="filename">sprites/buildings/trash.png</key>
|
<key type="filename">sprites/belt/built/forward_13.png</key>
|
||||||
<key type="filename">sprites/misc/wires_overlay_tile.png</key>
|
<key type="filename">sprites/belt/built/forward_2.png</key>
|
||||||
<key type="filename">sprites/wires/pin_negative_accept.png</key>
|
<key type="filename">sprites/belt/built/forward_3.png</key>
|
||||||
<key type="filename">sprites/wires/pin_negative_eject.png</key>
|
<key type="filename">sprites/belt/built/forward_4.png</key>
|
||||||
<key type="filename">sprites/wires/pin_positive_accept.png</key>
|
<key type="filename">sprites/belt/built/forward_5.png</key>
|
||||||
<key type="filename">sprites/wires/pin_positive_eject.png</key>
|
<key type="filename">sprites/belt/built/forward_6.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/forward_7.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/forward_8.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/forward_9.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_0.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_1.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_10.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_11.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_12.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_13.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_2.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_3.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_4.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_5.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_6.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_7.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_8.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/left_9.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_0.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_1.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_10.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_11.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_12.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_13.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_2.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_3.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_4.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_5.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_6.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_7.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_8.png</key>
|
||||||
|
<key type="filename">sprites/belt/built/right_9.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/constant_signal.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/display.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/lever.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/logic_gate-not.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/logic_gate-or.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/logic_gate-transistor.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/logic_gate-xor.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/logic_gate.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/miner-chainable.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/miner.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/reader.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/rotater-ccw.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/rotater-fl.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/rotater.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/splitter-compact-inverse.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/splitter-compact-merge-inverse.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/splitter-compact-merge.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/splitter-compact.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/trash.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/underground_belt_entry-tier2.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/underground_belt_entry.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/underground_belt_exit-tier2.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/underground_belt_exit.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/virtual_processor-analyzer.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/virtual_processor-rotater.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/virtual_processor-shapecompare.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/virtual_processor-unstacker.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/virtual_processor.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/wire_tunnel-coating.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/wire_tunnel.png</key>
|
||||||
|
<key type="filename">sprites/buildings/constant_signal.png</key>
|
||||||
|
<key type="filename">sprites/buildings/display.png</key>
|
||||||
|
<key type="filename">sprites/buildings/lever.png</key>
|
||||||
|
<key type="filename">sprites/buildings/logic_gate-not.png</key>
|
||||||
|
<key type="filename">sprites/buildings/logic_gate-or.png</key>
|
||||||
|
<key type="filename">sprites/buildings/logic_gate-transistor.png</key>
|
||||||
|
<key type="filename">sprites/buildings/logic_gate-xor.png</key>
|
||||||
|
<key type="filename">sprites/buildings/logic_gate.png</key>
|
||||||
|
<key type="filename">sprites/buildings/miner-chainable.png</key>
|
||||||
|
<key type="filename">sprites/buildings/reader.png</key>
|
||||||
|
<key type="filename">sprites/buildings/rotater-ccw.png</key>
|
||||||
|
<key type="filename">sprites/buildings/rotater-fl.png</key>
|
||||||
|
<key type="filename">sprites/buildings/splitter-compact-inverse.png</key>
|
||||||
|
<key type="filename">sprites/buildings/splitter-compact-merge-inverse.png</key>
|
||||||
|
<key type="filename">sprites/buildings/splitter-compact-merge.png</key>
|
||||||
|
<key type="filename">sprites/buildings/splitter-compact.png</key>
|
||||||
|
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>
|
||||||
|
<key type="filename">sprites/buildings/underground_belt_entry.png</key>
|
||||||
|
<key type="filename">sprites/buildings/underground_belt_exit-tier2.png</key>
|
||||||
|
<key type="filename">sprites/buildings/underground_belt_exit.png</key>
|
||||||
|
<key type="filename">sprites/buildings/virtual_processor-analyzer.png</key>
|
||||||
|
<key type="filename">sprites/buildings/virtual_processor-rotater.png</key>
|
||||||
|
<key type="filename">sprites/buildings/virtual_processor-shapecompare.png</key>
|
||||||
|
<key type="filename">sprites/buildings/virtual_processor-unstacker.png</key>
|
||||||
|
<key type="filename">sprites/buildings/virtual_processor.png</key>
|
||||||
|
<key type="filename">sprites/buildings/wire_tunnel-coating.png</key>
|
||||||
|
<key type="filename">sprites/buildings/wire_tunnel.png</key>
|
||||||
|
<key type="filename">sprites/misc/reader_overlay.png</key>
|
||||||
|
<key type="filename">sprites/wires/lever_on.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/color_cross.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/color_forward.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/color_split.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/color_turn.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/conflict_cross.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/conflict_forward.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/conflict_split.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/conflict_turn.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/regular_cross.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/regular_forward.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/regular_split.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/regular_turn.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/shape_cross.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/shape_forward.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/shape_split.png</key>
|
||||||
|
<key type="filename">sprites/wires/sets/shape_turn.png</key>
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
<point_f>0.5,0.5</point_f>
|
<point_f>0.5,0.5</point_f>
|
||||||
@ -268,109 +340,26 @@
|
|||||||
<key>scale9Enabled</key>
|
<key>scale9Enabled</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>scale9Borders</key>
|
<key>scale9Borders</key>
|
||||||
<rect>32,32,64,64</rect>
|
<rect>48,48,96,96</rect>
|
||||||
<key>scale9Paddings</key>
|
<key>scale9Paddings</key>
|
||||||
<rect>32,32,64,64</rect>
|
<rect>48,48,96,96</rect>
|
||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/belt/forward_10.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_11.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_12.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_13.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_14.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_15.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_16.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_17.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_18.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_19.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_20.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_21.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_22.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_23.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_24.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_25.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_26.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_27.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_3.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_4.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_5.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_6.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_7.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_8.png</key>
|
|
||||||
<key type="filename">sprites/belt/forward_9.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_0.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_1.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_10.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_11.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_12.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_13.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_14.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_15.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_16.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_17.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_18.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_19.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_2.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_20.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_21.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_22.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_23.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_24.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_25.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_26.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_27.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_3.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_4.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_5.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_6.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_7.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_8.png</key>
|
|
||||||
<key type="filename">sprites/belt/left_9.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_0.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_1.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_10.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_11.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_12.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_13.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_14.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_15.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_16.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_17.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_18.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_19.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_2.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_20.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_21.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_22.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_23.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_24.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_25.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_26.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_27.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_3.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_4.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_5.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_6.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_7.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_8.png</key>
|
|
||||||
<key type="filename">sprites/belt/right_9.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/belt_left.png</key>
|
<key type="filename">sprites/blueprints/belt_left.png</key>
|
||||||
<key type="filename">sprites/blueprints/belt_right.png</key>
|
<key type="filename">sprites/blueprints/belt_right.png</key>
|
||||||
<key type="filename">sprites/blueprints/belt_top.png</key>
|
<key type="filename">sprites/blueprints/belt_top.png</key>
|
||||||
<key type="filename">sprites/blueprints/wire_crossings-merger.png</key>
|
<key type="filename">sprites/blueprints/wire-cross.png</key>
|
||||||
<key type="filename">sprites/blueprints/wire_crossings.png</key>
|
<key type="filename">sprites/blueprints/wire-split.png</key>
|
||||||
<key type="filename">sprites/blueprints/wire_left.png</key>
|
<key type="filename">sprites/blueprints/wire-turn.png</key>
|
||||||
<key type="filename">sprites/blueprints/wire_right.png</key>
|
<key type="filename">sprites/blueprints/wire.png</key>
|
||||||
<key type="filename">sprites/blueprints/wire_top.png</key>
|
|
||||||
<key type="filename">sprites/buildings/belt_left.png</key>
|
<key type="filename">sprites/buildings/belt_left.png</key>
|
||||||
<key type="filename">sprites/buildings/belt_right.png</key>
|
<key type="filename">sprites/buildings/belt_right.png</key>
|
||||||
<key type="filename">sprites/buildings/belt_top.png</key>
|
<key type="filename">sprites/buildings/belt_top.png</key>
|
||||||
<key type="filename">sprites/buildings/wire_crossings-merger.png</key>
|
<key type="filename">sprites/buildings/wire-cross.png</key>
|
||||||
<key type="filename">sprites/buildings/wire_crossings.png</key>
|
<key type="filename">sprites/buildings/wire-split.png</key>
|
||||||
<key type="filename">sprites/buildings/wire_left.png</key>
|
<key type="filename">sprites/buildings/wire-turn.png</key>
|
||||||
<key type="filename">sprites/buildings/wire_right.png</key>
|
<key type="filename">sprites/buildings/wire.png</key>
|
||||||
<key type="filename">sprites/buildings/wire_top.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
<point_f>0.5,0.5</point_f>
|
<point_f>0.5,0.5</point_f>
|
||||||
@ -385,28 +374,6 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/blueprints/advanced_processor.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/energy_generator.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/painter-double.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/trash-storage.png</key>
|
|
||||||
<key type="filename">sprites/buildings/advanced_processor.png</key>
|
|
||||||
<key type="filename">sprites/buildings/energy_generator.png</key>
|
|
||||||
<key type="filename">sprites/buildings/painter-double.png</key>
|
|
||||||
<key type="filename">sprites/misc/energy_generator_overlay.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>96,96,192,192</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>96,96,192,192</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/blueprints/cutter-quad.png</key>
|
<key type="filename">sprites/blueprints/cutter-quad.png</key>
|
||||||
<key type="filename">sprites/blueprints/painter-quad.png</key>
|
<key type="filename">sprites/blueprints/painter-quad.png</key>
|
||||||
<key type="filename">sprites/buildings/cutter-quad.png</key>
|
<key type="filename">sprites/buildings/cutter-quad.png</key>
|
||||||
@ -426,11 +393,13 @@
|
|||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/blueprints/cutter.png</key>
|
<key type="filename">sprites/blueprints/cutter.png</key>
|
||||||
|
<key type="filename">sprites/blueprints/filter.png</key>
|
||||||
<key type="filename">sprites/blueprints/mixer.png</key>
|
<key type="filename">sprites/blueprints/mixer.png</key>
|
||||||
<key type="filename">sprites/blueprints/painter-mirrored.png</key>
|
<key type="filename">sprites/blueprints/painter-mirrored.png</key>
|
||||||
<key type="filename">sprites/blueprints/painter.png</key>
|
<key type="filename">sprites/blueprints/painter.png</key>
|
||||||
<key type="filename">sprites/blueprints/splitter.png</key>
|
<key type="filename">sprites/blueprints/splitter.png</key>
|
||||||
<key type="filename">sprites/blueprints/stacker.png</key>
|
<key type="filename">sprites/blueprints/stacker.png</key>
|
||||||
|
<key type="filename">sprites/buildings/filter.png</key>
|
||||||
<key type="filename">sprites/buildings/painter-mirrored.png</key>
|
<key type="filename">sprites/buildings/painter-mirrored.png</key>
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
@ -446,25 +415,9 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/blueprints/miner-chainable.png</key>
|
<key type="filename">sprites/blueprints/painter-double.png</key>
|
||||||
<key type="filename">sprites/blueprints/miner.png</key>
|
<key type="filename">sprites/blueprints/trash-storage.png</key>
|
||||||
<key type="filename">sprites/blueprints/rotater-ccw.png</key>
|
<key type="filename">sprites/buildings/painter-double.png</key>
|
||||||
<key type="filename">sprites/blueprints/rotater.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/splitter-compact-inverse.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/splitter-compact.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/trash.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_entry-tier2.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_entry.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_exit-tier2.png</key>
|
|
||||||
<key type="filename">sprites/blueprints/underground_belt_exit.png</key>
|
|
||||||
<key type="filename">sprites/buildings/miner-chainable.png</key>
|
|
||||||
<key type="filename">sprites/buildings/rotater-ccw.png</key>
|
|
||||||
<key type="filename">sprites/buildings/splitter-compact-inverse.png</key>
|
|
||||||
<key type="filename">sprites/buildings/splitter-compact.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_entry-tier2.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_entry.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_exit-tier2.png</key>
|
|
||||||
<key type="filename">sprites/buildings/underground_belt_exit.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
<point_f>0.5,0.5</point_f>
|
<point_f>0.5,0.5</point_f>
|
||||||
@ -473,9 +426,9 @@
|
|||||||
<key>scale9Enabled</key>
|
<key>scale9Enabled</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>scale9Borders</key>
|
<key>scale9Borders</key>
|
||||||
<rect>48,48,96,96</rect>
|
<rect>96,96,192,192</rect>
|
||||||
<key>scale9Paddings</key>
|
<key>scale9Paddings</key>
|
||||||
<rect>48,48,96,96</rect>
|
<rect>96,96,192,192</rect>
|
||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
@ -513,6 +466,28 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
|
<key type="filename">sprites/buildings/miner.png</key>
|
||||||
|
<key type="filename">sprites/buildings/rotater.png</key>
|
||||||
|
<key type="filename">sprites/buildings/trash.png</key>
|
||||||
|
<key type="filename">sprites/misc/processor_disabled.png</key>
|
||||||
|
<key type="filename">sprites/misc/processor_disconnected.png</key>
|
||||||
|
<key type="filename">sprites/wires/logical_acceptor.png</key>
|
||||||
|
<key type="filename">sprites/wires/logical_ejector.png</key>
|
||||||
|
<key type="filename">sprites/wires/overlay_tile.png</key>
|
||||||
|
<struct type="IndividualSpriteSettings">
|
||||||
|
<key>pivotPoint</key>
|
||||||
|
<point_f>0.5,0.5</point_f>
|
||||||
|
<key>spriteScale</key>
|
||||||
|
<double>1</double>
|
||||||
|
<key>scale9Enabled</key>
|
||||||
|
<false/>
|
||||||
|
<key>scale9Borders</key>
|
||||||
|
<rect>32,32,64,64</rect>
|
||||||
|
<key>scale9Paddings</key>
|
||||||
|
<rect>32,32,64,64</rect>
|
||||||
|
<key>scale9FromFile</key>
|
||||||
|
<false/>
|
||||||
|
</struct>
|
||||||
<key type="filename">sprites/buildings/trash-storage.png</key>
|
<key type="filename">sprites/buildings/trash-storage.png</key>
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
@ -530,9 +505,6 @@
|
|||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/debug/acceptor_slot.png</key>
|
<key type="filename">sprites/debug/acceptor_slot.png</key>
|
||||||
<key type="filename">sprites/debug/ejector_slot.png</key>
|
<key type="filename">sprites/debug/ejector_slot.png</key>
|
||||||
<key type="filename">sprites/map_overview/belt_forward.png</key>
|
|
||||||
<key type="filename">sprites/map_overview/belt_left.png</key>
|
|
||||||
<key type="filename">sprites/map_overview/belt_right.png</key>
|
|
||||||
<key type="filename">sprites/misc/hub_direction_indicator.png</key>
|
<key type="filename">sprites/misc/hub_direction_indicator.png</key>
|
||||||
<key type="filename">sprites/misc/waypoint.png</key>
|
<key type="filename">sprites/misc/waypoint.png</key>
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
@ -549,7 +521,6 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/misc/deletion_marker.png</key>
|
|
||||||
<key type="filename">sprites/misc/slot_bad_arrow.png</key>
|
<key type="filename">sprites/misc/slot_bad_arrow.png</key>
|
||||||
<key type="filename">sprites/misc/slot_good_arrow.png</key>
|
<key type="filename">sprites/misc/slot_good_arrow.png</key>
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
@ -566,21 +537,6 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/misc/lock_direction_indicator.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
|
||||||
<key>pivotPoint</key>
|
|
||||||
<point_f>0.5,0.5</point_f>
|
|
||||||
<key>spriteScale</key>
|
|
||||||
<double>1</double>
|
|
||||||
<key>scale9Enabled</key>
|
|
||||||
<false/>
|
|
||||||
<key>scale9Borders</key>
|
|
||||||
<rect>12,12,24,24</rect>
|
|
||||||
<key>scale9Paddings</key>
|
|
||||||
<rect>12,12,24,24</rect>
|
|
||||||
<key>scale9FromFile</key>
|
|
||||||
<false/>
|
|
||||||
</struct>
|
|
||||||
<key type="filename">sprites/misc/storage_overlay.png</key>
|
<key type="filename">sprites/misc/storage_overlay.png</key>
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
@ -596,13 +552,11 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
<key type="filename">sprites/wires/battery_empty.png</key>
|
<key type="filename">sprites/wires/boolean_false.png</key>
|
||||||
<key type="filename">sprites/wires/battery_full.png</key>
|
<key type="filename">sprites/wires/boolean_true.png</key>
|
||||||
<key type="filename">sprites/wires/battery_low.png</key>
|
<key type="filename">sprites/wires/network_conflict.png</key>
|
||||||
<key type="filename">sprites/wires/battery_medium.png</key>
|
<key type="filename">sprites/wires/network_empty.png</key>
|
||||||
<key type="filename">sprites/wires/negative_energy.png</key>
|
<key type="filename">sprites/wires/wires_preview.png</key>
|
||||||
<key type="filename">sprites/wires/positive_energy.png</key>
|
|
||||||
<key type="filename">sprites/wires/waste_piled.png</key>
|
|
||||||
<struct type="IndividualSpriteSettings">
|
<struct type="IndividualSpriteSettings">
|
||||||
<key>pivotPoint</key>
|
<key>pivotPoint</key>
|
||||||
<point_f>0.5,0.5</point_f>
|
<point_f>0.5,0.5</point_f>
|
||||||
@ -617,6 +571,27 @@
|
|||||||
<key>scale9FromFile</key>
|
<key>scale9FromFile</key>
|
||||||
<false/>
|
<false/>
|
||||||
</struct>
|
</struct>
|
||||||
|
<key type="filename">sprites/wires/display/blue.png</key>
|
||||||
|
<key type="filename">sprites/wires/display/cyan.png</key>
|
||||||
|
<key type="filename">sprites/wires/display/green.png</key>
|
||||||
|
<key type="filename">sprites/wires/display/purple.png</key>
|
||||||
|
<key type="filename">sprites/wires/display/red.png</key>
|
||||||
|
<key type="filename">sprites/wires/display/white.png</key>
|
||||||
|
<key type="filename">sprites/wires/display/yellow.png</key>
|
||||||
|
<struct type="IndividualSpriteSettings">
|
||||||
|
<key>pivotPoint</key>
|
||||||
|
<point_f>0.5,0.5</point_f>
|
||||||
|
<key>spriteScale</key>
|
||||||
|
<double>1</double>
|
||||||
|
<key>scale9Enabled</key>
|
||||||
|
<false/>
|
||||||
|
<key>scale9Borders</key>
|
||||||
|
<rect>11,11,22,22</rect>
|
||||||
|
<key>scale9Paddings</key>
|
||||||
|
<rect>11,11,22,22</rect>
|
||||||
|
<key>scale9FromFile</key>
|
||||||
|
<false/>
|
||||||
|
</struct>
|
||||||
</map>
|
</map>
|
||||||
<key>fileList</key>
|
<key>fileList</key>
|
||||||
<array>
|
<array>
|
||||||
|
3
res_raw/sounds/music/theme-full.mp3
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:4e6959df75e915fb1a8d55e3d0ab750349b27276788ded63178f2a117c2edcf5
|
||||||
|
size 79441572
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:a4f810fcfbfcea08cfb48a8d58f9b65d1fd14cd20ff3cabf94a03c39b5250547
|
oid sha256:3207e92c0fa5e71030d04c739647032be2697bf910eb7b7d9548bf04e95803b1
|
||||||
size 1765124
|
size 1223220
|
||||||
|
BIN
res_raw/sprites/belt/built/forward_0.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
res_raw/sprites/belt/built/forward_1.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_10.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_11.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_12.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_13.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_2.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_3.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_4.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_5.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_6.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_7.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
res_raw/sprites/belt/built/forward_8.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/forward_9.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
res_raw/sprites/belt/built/left_0.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/left_1.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/left_10.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res_raw/sprites/belt/built/left_11.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/left_12.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/left_13.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/left_2.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
res_raw/sprites/belt/built/left_3.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/left_4.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
res_raw/sprites/belt/built/left_5.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
res_raw/sprites/belt/built/left_6.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
res_raw/sprites/belt/built/left_7.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/left_8.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/left_9.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/right_0.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res_raw/sprites/belt/built/right_1.png
Normal file
After Width: | Height: | Size: 6.1 KiB |
BIN
res_raw/sprites/belt/built/right_10.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/right_11.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
res_raw/sprites/belt/built/right_12.png
Normal file
After Width: | Height: | Size: 5.8 KiB |
BIN
res_raw/sprites/belt/built/right_13.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
res_raw/sprites/belt/built/right_2.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
res_raw/sprites/belt/built/right_3.png
Normal file
After Width: | Height: | Size: 6.0 KiB |