Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
684567777f | ||
|
|
5e94d7db85 | ||
|
|
8a7e3306a7 | ||
|
|
68fbffad54 | ||
|
|
dd6e557f39 | ||
|
|
e4a4eae88e | ||
|
|
f920cdcaf5 | ||
|
|
40cad381af | ||
|
|
0d20a1fe44 | ||
|
|
599e9a6ef0 | ||
|
|
e22b888bfc | ||
|
|
88ef1d3202 | ||
|
|
f2af90c876 | ||
|
|
4dba3c3a71 | ||
|
|
e31a677d83 | ||
|
|
35fcbe54b5 | ||
|
|
9e83fe0a10 | ||
|
|
33fb1a65d3 | ||
|
|
415cc98758 | ||
|
|
2d93ce1340 | ||
|
|
1129872234 | ||
|
|
2b2b18cfa4 | ||
|
|
b19800e37f | ||
|
|
e14729500c | ||
|
|
48bfc54830 | ||
|
|
7e74e42bd7 | ||
|
|
96a81b165b | ||
|
|
0681f0d240 | ||
|
|
d700f1276a | ||
|
|
3bea3d67b9 | ||
|
|
ec41b7553a | ||
|
|
9e2539499e | ||
|
|
3a5cd1c937 | ||
|
|
1afa5f9893 | ||
|
|
1383e87104 | ||
|
|
a2b8f41a21 | ||
|
|
93f23abeb9 | ||
|
|
4ba3ff9e5a | ||
|
|
a9a889a8fd | ||
|
|
fc34b19a42 | ||
|
|
9e65d258d7 | ||
|
|
ab266a07fb | ||
|
|
61c7709b97 | ||
|
|
1044d4b450 | ||
|
|
54edc4dab7 | ||
|
|
f40efb0467 | ||
|
|
10de948a79 | ||
|
|
0ae95e927f | ||
|
|
9f591113f8 | ||
|
|
685a0b8066 | ||
|
|
a1a215ec19 | ||
|
|
3bed920f11 | ||
|
|
6dc82aade6 | ||
|
|
ac6692cd97 | ||
|
|
14de9f3f1b | ||
|
|
dd64c0ce04 | ||
|
|
84f6baae6a | ||
|
|
5afbf679ed | ||
|
|
89f5b5990d | ||
|
|
b441063061 | ||
|
|
b96550ca5c | ||
|
|
cc74a2ca8b | ||
|
|
f9fe4af1fe | ||
|
|
4a96906002 | ||
|
|
c448216496 | ||
|
|
f10c273067 | ||
|
|
04aa879c22 | ||
|
|
4ffe29654b | ||
|
|
1d7ac76d0e | ||
|
|
77315ffbea | ||
|
|
0862ecd269 | ||
|
|
f4d3e48be2 | ||
|
|
6ae8899912 | ||
|
|
76f1cdc3c7 | ||
|
|
8105b110f2 | ||
|
|
acb87b3844 | ||
|
|
94d5c934c6 | ||
|
|
3372c7a4b7 | ||
|
|
4181096a9e | ||
|
|
89a5e6367b | ||
|
|
cb893b770a | ||
|
|
2f08455518 | ||
|
|
729e12ed7b | ||
|
|
fe47861bd0 | ||
|
|
c894d88c54 | ||
|
|
c8d59ef5f4 | ||
|
|
f5c50ae079 | ||
|
|
b1199f6a21 | ||
|
|
47a8d81ecd | ||
|
|
24ac07a3b3 | ||
|
|
b647d7256f | ||
|
|
421f01b3db | ||
|
|
f215d3487f | ||
|
|
1661f82a07 | ||
|
|
512e7e868b | ||
|
|
427bad4f6b | ||
|
|
209d212287 | ||
|
|
2271b0a621 | ||
|
|
6940428b88 | ||
|
|
aa602a7bb8 | ||
|
|
8588f097a2 | ||
|
|
5d8ffb7e48 | ||
|
|
270fddff52 | ||
|
|
084e7fbe61 | ||
|
|
190be6ec61 | ||
|
|
36e925101e | ||
|
|
84e7e8380f | ||
|
|
c58af8ce48 | ||
|
|
07298fd21c | ||
|
|
3a1a0fb0f6 | ||
|
|
3396947115 | ||
|
|
6cf2ab895d | ||
|
|
b039dd8b43 | ||
|
|
8bad1a487c | ||
|
|
0f18559d3f | ||
|
|
5a5053440c | ||
|
|
02a1222210 | ||
|
|
f8c344f65e | ||
|
|
0bec108dcb | ||
|
|
997839a187 | ||
|
|
da71d5560c | ||
|
|
02082bf99e | ||
|
|
c82c094519 | ||
|
|
8ec101e1f1 | ||
|
|
8499c25b67 | ||
|
|
200ac40648 | ||
|
|
25091a48a7 | ||
|
|
259f99ddf8 | ||
|
|
f123bdacc0 | ||
|
|
8f27fec3c8 | ||
|
|
0d0d4db2db | ||
|
|
bfbdf5c99b | ||
|
|
50b2cf2cf1 | ||
|
|
013096459a | ||
|
|
31aa5c3127 | ||
|
|
f9502fe2d4 | ||
|
|
b5565d796a | ||
|
|
6b31401240 | ||
|
|
2c006b4528 | ||
|
|
680f367a42 | ||
|
|
318d661ac1 | ||
|
|
321e1b6fe9 | ||
|
|
20aba6c273 | ||
|
|
c5ce6e8a2c | ||
|
|
9315ff723d | ||
|
|
50b7eb0bce | ||
|
|
03e8feac67 | ||
|
|
35f2c4a389 | ||
|
|
6bc3933291 | ||
|
|
03441c642b | ||
|
|
77b15a8797 | ||
|
|
94872957fd | ||
|
|
a6de69c882 | ||
|
|
52f3936e42 | ||
|
|
2f123e6a3c | ||
|
|
f6569313bf | ||
|
|
ebb22c9ec1 | ||
|
|
ae9a848864 | ||
|
|
ca7e047c09 | ||
|
|
5c34bbad38 | ||
|
|
70dd525315 | ||
|
|
3025fcf305 | ||
|
|
52452a96d5 | ||
|
|
84b3ace13d | ||
|
|
7116d7198a | ||
|
|
6944415912 | ||
|
|
88fe1519e3 | ||
|
|
5bb3abed20 | ||
|
|
e79982c43f | ||
|
|
8e2d7a4133 | ||
|
|
cb80fa8b03 | ||
|
|
e84c1148f3 | ||
|
|
1432c2990a | ||
|
|
1a2dd08092 | ||
|
|
59a1275f68 | ||
|
|
d128ffcde5 | ||
|
|
fd17d3b5c9 | ||
|
|
1f0444009f | ||
|
|
bd40e0fdf2 | ||
|
|
6991307b8b | ||
|
|
b7ad5c67d4 | ||
|
|
5bbaa895eb | ||
|
|
1299a14f3b | ||
|
|
8fad643dd9 | ||
|
|
ec0749f3e5 | ||
|
|
6e4b1b37da | ||
|
|
1eaaedfcbd | ||
|
|
c1f92c7244 | ||
|
|
2896602e6a | ||
|
|
9079bf1bb3 | ||
|
|
f7dd5f32ba | ||
|
|
b4bb85cc71 | ||
|
|
bcbe9c987e | ||
|
|
16d4fc2bca | ||
|
|
4f10b1a9e9 | ||
|
|
484a4101ad | ||
|
|
ea6cb430fe | ||
|
|
354b3cd180 | ||
|
|
1d1de08bd7 | ||
|
|
21345b8251 | ||
|
|
b94e7e2b22 | ||
|
|
5584bc66a0 | ||
|
|
4f693b555d | ||
|
|
4733295a39 | ||
|
|
d9b9531828 | ||
|
|
1db6cab8ca | ||
|
|
8de1adda04 | ||
|
|
f07cfc91d5 | ||
|
|
0a3b3c5862 | ||
|
|
0d1e382b37 | ||
|
|
12d5f8c236 | ||
|
|
6fe856fa8e | ||
|
|
c2a85a2d86 | ||
|
|
dafb679780 | ||
|
|
f3663a4280 | ||
|
|
9c8d365ab6 | ||
|
|
0be036fcea | ||
|
|
e153e51abd | ||
|
|
d292ce389a | ||
|
|
807e006245 | ||
|
|
8d7a982e50 | ||
|
|
ddf6b7befe | ||
|
|
a300ddbb49 | ||
|
|
c9e51c9b6a | ||
|
|
b58f837a94 | ||
|
|
5fe865c621 | ||
|
|
9b9fc9cde8 | ||
|
|
ef459a210d | ||
|
|
7680d11c0e | ||
|
|
e7376a3e9c | ||
|
|
2a87e98904 | ||
|
|
9211b0bcca | ||
|
|
43a93d7c19 | ||
|
|
803bcaad05 | ||
|
|
314284ed94 | ||
|
|
0a815f04d6 | ||
|
|
2bd031784a | ||
|
|
d5cb8eb1ec | ||
|
|
02c11ffe5a | ||
|
|
240d5612df | ||
|
|
84dd5b76f1 | ||
|
|
2950857e3d | ||
|
|
dde95c3e4f | ||
|
|
4701164a6c | ||
|
|
6c875d23ae | ||
|
|
3c36b8b9db | ||
|
|
c943264d05 | ||
|
|
ca459c6185 | ||
|
|
1bfae63fe3 | ||
|
|
cb9609ac2c | ||
|
|
c40f956771 | ||
|
|
e264c85a04 | ||
|
|
9c24569a06 | ||
|
|
031458bfc8 | ||
|
|
3d1cf14334 | ||
|
|
df44426195 | ||
|
|
670cc830fd | ||
|
|
582e96615a | ||
|
|
ac9d196e3e | ||
|
|
f332e15791 | ||
|
|
0fb53f6827 | ||
|
|
c74141a346 | ||
|
|
b3ee636848 | ||
|
|
83ba270184 | ||
|
|
027e267cc7 | ||
|
|
f5275b2abd | ||
|
|
93d077f18d | ||
|
|
078dc952e7 | ||
|
|
112b63319f | ||
|
|
e2949708e6 | ||
|
|
512cbce7fe | ||
|
|
f0e3c3a597 | ||
|
|
75bfcbea02 | ||
|
|
4259d057fd | ||
|
|
6ae4cbeddc | ||
|
|
35655a671d | ||
|
|
a8203dcb9c | ||
|
|
612c641391 | ||
|
|
da722fe4bb | ||
|
|
c5fc214384 | ||
|
|
ff24707186 | ||
|
|
1fe77d843e | ||
|
|
d236925612 | ||
|
|
0af7f204dc | ||
|
|
79a04f1496 | ||
|
|
08eb6dcff9 | ||
|
|
751ff15b95 | ||
|
|
97659f74cc | ||
|
|
41d3c5f3b7 | ||
|
|
40756b0178 | ||
|
|
af05f2ae21 | ||
|
|
034f1e55aa | ||
|
|
da4f07f37a | ||
|
|
d90d05170b | ||
|
|
f61c3e1cef | ||
|
|
bc13386f55 | ||
|
|
72fe37040c | ||
|
|
dcfc397421 | ||
|
|
5b2314dbf8 | ||
|
|
0dc526535c | ||
|
|
6c00b2cb7b | ||
|
|
654ce39a02 |
@@ -0,0 +1,6 @@
|
||||
# All PNG image are binary
|
||||
*.png binary
|
||||
# Element placeholder mesh should be save as binary
|
||||
*.ph binary
|
||||
# Raw json data should be binary, although i edit it manually
|
||||
assets/jsons/*.json5 binary
|
||||
@@ -0,0 +1,27 @@
|
||||
name: Publish docs via GitHub Pages
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Deploy docs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout master
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
ref: master
|
||||
|
||||
- name: Install MkDocs
|
||||
run: |
|
||||
echo 'mkdocs' > requirements.txt
|
||||
echo 'pymdown-extensions' >> requirements.txt
|
||||
|
||||
- name: Deploy docs
|
||||
uses: mhausenblas/mkdocs-deploy-gh-pages@nomaterial
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
CONFIG_FILE: docs/mkdocs.yml
|
||||
# GITHUB_DOMAIN: github.myenterprise.com
|
||||
@@ -1,138 +1,3 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
## ===== Personal =====
|
||||
# Disable VSCode
|
||||
.vscode/
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
# Ballance Blender Helper
|
||||
# BBP NG
|
||||
|
||||
This is a Blender plugin which is served for Ballance mapping.
|
||||
[中文版本](README_ZH.md)
|
||||
|
||||
WIP. Only BM export function is finished. But it is enough. Following function will be added in the future and it just like the decoration of BM export. Because once we have BM export, every map can be converted from Blender to Virtools.
|
||||
BBP NG, abbr **B**allance **B**lender **P**lugin **N**ext **G**eneration.
|
||||
|
||||
BM file spec can be seen in [there](https://github.com/yyc12345/gist/tree/master/BMFileSpec)
|
||||
|
||||
Support criteria: Only support the lastest **LTS** version.
|
||||
For an introduction to this plugin, installing it, compiling it, reporting bugs, etc., see the GitHub Page of this project: https://yyc12345.github.io/BallanceBlenderHelper
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
# BBP NG
|
||||
|
||||
[English version](README.md)
|
||||
|
||||
BBP NG,又名**B**allance **B**lender **P**lugin **N**ext **G**eneration(下一代Ballance Blender插件)。
|
||||
|
||||
有关此插件的介绍,安装,编译,汇报错误等,请参阅本项目的GitHub Page页面:https://yyc12345.github.io/BallanceBlenderHelper
|
||||
|
After Width: | Height: | Size: 785 B |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 7.0 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 7.2 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 39 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 58 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 663 B |
|
After Width: | Height: | Size: 745 B |
|
After Width: | Height: | Size: 945 B |
|
After Width: | Height: | Size: 818 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 984 B |
|
After Width: | Height: | Size: 611 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 471 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 494 B |
|
After Width: | Height: | Size: 360 B |
|
After Width: | Height: | Size: 992 B |
|
After Width: | Height: | Size: 444 B |
|
After Width: | Height: | Size: 691 B |
|
After Width: | Height: | Size: 775 B |
|
After Width: | Height: | Size: 807 B |
|
After Width: | Height: | Size: 652 B |
|
After Width: | Height: | Size: 695 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 265 B |
@@ -0,0 +1,185 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_1x1",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, True, True, True, True)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[3], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[5], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ rot(0, 0, 270)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[4], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_1x1",
|
||||
"showcase": {
|
||||
"title": "Normal 1x1",
|
||||
"category": "1x1 Blocks",
|
||||
"icon": "Normal1x1",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_1x1",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_1x1",
|
||||
"showcase": {
|
||||
"title": "Sink 1x1",
|
||||
"category": "1x1 Blocks",
|
||||
"icon": "Sink1x1",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_1x1",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,240 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_border",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, False, False, True, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
},
|
||||
{
|
||||
"field": "is_ribbon",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "length",
|
||||
"short_edge_offset": "0",
|
||||
"short_edge_length": "length",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "is_ribbon"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_border",
|
||||
"showcase": {
|
||||
"title": "Normal Border",
|
||||
"category": "Borders",
|
||||
"icon": "NormalBorder",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_border",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_border",
|
||||
"showcase": {
|
||||
"title": "Sink Border",
|
||||
"category": "Borders",
|
||||
"icon": "SinkBorder",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_border",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_ribbon_border",
|
||||
"showcase": {
|
||||
"title": "Ribbon Border",
|
||||
"category": "Borders",
|
||||
"icon": "RibbonBorder",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_border",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,427 @@
|
||||
[
|
||||
// One of Chris suggested more vanilla prototypes.
|
||||
// This prototype represent a half of a normal, sink or double ribbon border,
|
||||
// which looks like trapezoid from top to bottom.
|
||||
//
|
||||
// The bottom edge of trapezoid is from origin to +X with `long_edge_length` length.
|
||||
// The length of top edge is `short_edge_length` and it just like moving bottom edge to +Y direction.
|
||||
// The offset between top edge and bottom edge is always 2.5.
|
||||
// The distance from the closest point of top edge, to Y axis is `short_edge_offset`.
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "long_edge_length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "short_edge_offset",
|
||||
"data": "0.0"
|
||||
},
|
||||
{
|
||||
"field": "short_edge_length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, False, False, True, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
},
|
||||
{
|
||||
"field": "is_ribbon",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "long_edge_length == 0.0 or short_edge_length == 0.0",
|
||||
"vars": [
|
||||
{
|
||||
"field": "long_edge_uv_length",
|
||||
"data": "long_edge_length / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "short_edge_uv_offset",
|
||||
"data": "short_edge_offset / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "short_edge_uv_length",
|
||||
"data": "short_edge_length / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "short_edge_total",
|
||||
"data": "short_edge_offset + short_edge_length"
|
||||
},
|
||||
{
|
||||
"field": "short_edge_uv_total",
|
||||
"data": "short_edge_uv_offset + short_edge_uv_length"
|
||||
},
|
||||
{
|
||||
"field": "uv_border_texture",
|
||||
"data": "1.0 if is_ribbon else 0.5"
|
||||
},
|
||||
{
|
||||
"field": "sink",
|
||||
"data": "0.7 if is_sink else 0.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(short_edge_offset, 2.5, -sink)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(long_edge_length, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(short_edge_total, 2.5, -sink)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "(\"FloorTopFlat\" if is_ribbon else \"FloorTopProfil\") if is_sink else \"FloorTopBorder\"",
|
||||
"indices": [0, 2, 3, 1],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(0, long_edge_uv_length)",
|
||||
"(uv_border_texture, short_edge_uv_total)",
|
||||
"(uv_border_texture, short_edge_uv_offset)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "long_edge_length",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "distance(0, 0, short_edge_offset, 2.5)",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "rot(0, 0, angle(0, 0, short_edge_offset, 2.5)) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "distance(long_edge_length, 0, short_edge_total, 2.5)",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(long_edge_length, 0, 0) @ rot(0, 0, angle(long_edge_length, 0, short_edge_total, 2.5))"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "short_edge_length",
|
||||
"is_left_sink": "is_sink",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(short_edge_offset, 2.5, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_4edges_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"top_left_pos": "(0, 0)",
|
||||
"top_right_pos": "(short_edge_offset, 2.5)",
|
||||
"bottom_left_pos": "(long_edge_length, 0)",
|
||||
"bottom_right_pos": "(short_edge_total, 2.5)"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
// Same as previous one, but looks like triangle from top to bottom.
|
||||
//
|
||||
// The bottom edge is from origin to +X with `edge_length` length.
|
||||
// The tip is going to +Y.
|
||||
// The height of this triangle is always 2.5 and the offset between tip and Y axis is `tip_offset`.
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "edge_length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "tip_offset",
|
||||
"data": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, False, False, True, None)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "edge_length == 0.0",
|
||||
"vars": [
|
||||
{
|
||||
"field": "edge_uv_length",
|
||||
"data": "edge_length / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "tip_uv_offset",
|
||||
"data": "tip_offset / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "sink",
|
||||
"data": "0.7 if is_sink else 0.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(tip_offset, 2.5, -sink)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(edge_length, 0, 0)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "\"FloorTopProfil\" if is_sink else \"FloorTopBorder\"",
|
||||
"indices": [0, 2, 1],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(0, edge_uv_length)",
|
||||
"(0.5, tip_uv_offset)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "edge_length",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "distance(0, 0, tip_offset, 2.5)",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "rot(0, 0, angle(0, 0, tip_offset, 2.5)) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "distance(edge_length, 0, tip_offset, 2.5)",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(edge_length, 0, 0) @ rot(0, 0, angle(edge_length, 0, tip_offset, 2.5))"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_triangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "edge_length",
|
||||
"width": "2.5",
|
||||
"tip_offset": "tip_offset"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, False, False, True, None)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [
|
||||
{
|
||||
"field": "sink",
|
||||
"data": "0.7 if is_sink else 0.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(5, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(2.5, 2.5, -sink)"
|
||||
},
|
||||
{
|
||||
"skip": "(not face[0]) or (not is_sink)",
|
||||
"data": "(2.5, 0, -sink)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "(not face[0]) or is_sink",
|
||||
"texture": "\"FloorTopFlat\"",
|
||||
"indices": [0, 1, 2],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(1, 0)",
|
||||
"(0.5, 0.5)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[0]) or (not is_sink)",
|
||||
"texture": "\"FloorTopProfil\"",
|
||||
"indices": [0, 3, 2],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(0.5, 0)",
|
||||
"(0.5, 0.5)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[0]) or (not is_sink)",
|
||||
"texture": "\"FloorTopProfil\"",
|
||||
"indices": [3, 1, 2],
|
||||
"uvs": [
|
||||
"(0.5, 0)",
|
||||
"(1, 0)",
|
||||
"(0.5, 0.5)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "distance(0, 0, 2.5, 2.5)",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "rot(0, 0, 45)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "distance(5, 0, 2.5, 2.5)",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 0, 0) @ rot(0, 0, 135)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "(not face[4]) or (not is_sink)",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "(not face[4]) or (not is_sink)",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "True",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(2.5, 0, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "(not face[4]) or is_sink",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_triangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "2.5",
|
||||
"tip_offset": "2.5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,466 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, False, False, False, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
},
|
||||
{
|
||||
"field": "is_inner",
|
||||
"data": "False"
|
||||
},
|
||||
{
|
||||
"field": "is_ribbon",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [
|
||||
{
|
||||
"field": "PXPY_sink",
|
||||
"data": "0.7 if (is_sink and (not is_inner)) else 0"
|
||||
},
|
||||
{
|
||||
"field": "NXNY_sink",
|
||||
"data": "0.7 if (is_sink and is_inner) else 0"
|
||||
},
|
||||
{
|
||||
"field": "PXPY_uv",
|
||||
"data": "(0 if is_inner else 0.5) * (2 if is_ribbon else 1)"
|
||||
},
|
||||
{
|
||||
"field": "NXNY_uv",
|
||||
"data": "(0.5 if is_inner else 0) * (2 if is_ribbon else 1)"
|
||||
},
|
||||
{
|
||||
"field": "corner_texture",
|
||||
"data": "(\"FloorTopFlat\" if is_ribbon else \"FloorTopProfil\") if is_sink else \"FloorTopBorder\""
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 0, -NXNY_sink)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(2.5, 0, -NXNY_sink)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(2.5, 2.5, -PXPY_sink)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 2.5, -NXNY_sink)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "corner_texture",
|
||||
"indices": [0, 1, 2],
|
||||
"uvs": [
|
||||
"(NXNY_uv, 0.5)",
|
||||
"(NXNY_uv, 0)",
|
||||
"(PXPY_uv, 0)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "corner_texture",
|
||||
"indices": [0, 2, 3],
|
||||
"uvs": [
|
||||
"(NXNY_uv, 0.5)",
|
||||
"(PXPY_uv, 0)",
|
||||
"(NXNY_uv, 0)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "NXNY_sink != 0",
|
||||
"is_right_sink": "NXNY_sink != 0"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "NXNY_sink != 0",
|
||||
"is_right_sink": "NXNY_sink != 0"
|
||||
},
|
||||
"transform": "move(0, 2.5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "NXNY_sink != 0",
|
||||
"is_right_sink": "PXPY_sink != 0"
|
||||
},
|
||||
"transform": "move(2.5, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "PXPY_sink != 0",
|
||||
"is_right_sink": "NXNY_sink != 0"
|
||||
},
|
||||
"transform": "move(2.5, 2.5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "2.5",
|
||||
"width": "2.5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_inner_corner",
|
||||
"showcase": {
|
||||
"title": "Normal Inner Corner",
|
||||
"category": "Half Block Corners",
|
||||
"icon": "NormalInnerCorner",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False",
|
||||
"is_inner": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"showcase": {
|
||||
"title": "Sink Inner Corner",
|
||||
"category": "Half Block Corners",
|
||||
"icon": "SinkInnerCorner",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_inner": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_ribbon_inner_corner",
|
||||
"showcase": {
|
||||
"title": "Ribbon Inner Corner",
|
||||
"category": "Half Block Corners",
|
||||
"icon": "RibbonInnerCorner",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_inner": "True",
|
||||
"is_ribbon": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_outter_corner",
|
||||
"showcase": {
|
||||
"title": "Normal Outter Corner",
|
||||
"category": "Half Block Corners",
|
||||
"icon": "NormalOutterCorner",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False",
|
||||
"is_inner": "False",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_outter_corner",
|
||||
"showcase": {
|
||||
"title": "Sink Outter Corner",
|
||||
"category": "Half Block Corners",
|
||||
"icon": "SinkOutterCorner",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_inner": "False",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_ribbon_outter_corner",
|
||||
"showcase": {
|
||||
"title": "Ribbon Outter Corner",
|
||||
"category": "Half Block Corners",
|
||||
"icon": "RibbonOutterCorner",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_inner": "False",
|
||||
"is_ribbon": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,533 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_l_crossing",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, True, False, True, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[4], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[3], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[5], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_t_crossing",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, True, False, False, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[4], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[3], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[5], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_x_crossing",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, False, False, False, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[4], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[3], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[5], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(5, 5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_center",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_l_crossing",
|
||||
"showcase": {
|
||||
"title": "Normal L Crossing",
|
||||
"category": "Floor Crossings",
|
||||
"icon": "NormalLCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_l_crossing",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_l_crossing",
|
||||
"showcase": {
|
||||
"title": "Sink L Crossing",
|
||||
"category": "Floor Crossings",
|
||||
"icon": "SinkLCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_l_crossing",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_t_crossing",
|
||||
"showcase": {
|
||||
"title": "Normal T Crossing",
|
||||
"category": "Floor Crossings",
|
||||
"icon": "NormalTCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_t_crossing",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_t_crossing",
|
||||
"showcase": {
|
||||
"title": "Sink T Crossing",
|
||||
"category": "Floor Crossings",
|
||||
"icon": "SinkTCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_t_crossing",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_x_crossing",
|
||||
"showcase": {
|
||||
"title": "Normal X Crossing",
|
||||
"category": "Floor Crossings",
|
||||
"icon": "NormalXCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_x_crossing",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_x_crossing",
|
||||
"showcase": {
|
||||
"title": "Sink X Crossing",
|
||||
"category": "Floor Crossings",
|
||||
"icon": "SinkXCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_x_crossing",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,172 @@
|
||||
[
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"showcase": {
|
||||
"title": "Flat",
|
||||
"category": "Miscellaneous",
|
||||
"icon": "Flat",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "width_",
|
||||
"type": "float",
|
||||
"title": "Width",
|
||||
"desc": "The width of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink_",
|
||||
"type": "bool",
|
||||
"title": "Is Sink",
|
||||
"desc": "Whether this flat floor is used for sink floor.",
|
||||
"default": "False"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "width_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "is_sink_"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0.0 or width == 0.0",
|
||||
"vars": [
|
||||
{
|
||||
"field": "sink",
|
||||
"data": "0.7 if is_sink else 0"
|
||||
},
|
||||
{
|
||||
"field": "uv_length",
|
||||
"data": "length / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "uv_width",
|
||||
"data": "width / 5.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 0, -sink)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(length, 0, -sink)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(length, width, -sink)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, width, -sink)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "\"FloorTopBorderless\"",
|
||||
"indices": [0, 1, 2, 3],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_length, 0)",
|
||||
"(uv_length, uv_width)",
|
||||
"(0, uv_width)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"is_left_sink": "is_sink",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "width",
|
||||
"is_left_sink": "is_sink",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(0, width, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "width",
|
||||
"is_left_sink": "is_sink",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(length, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"is_left_sink": "is_sink",
|
||||
"is_right_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(length, width, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "width"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,343 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_platform",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, True, True, True, True)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
},
|
||||
{
|
||||
"field": "is_ribbon",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "length + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "length",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[4], False)",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "is_ribbon"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "length + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "length",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[5], False)",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "is_ribbon"
|
||||
},
|
||||
"transform": "move(0, 5 + width, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "width + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "width",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[3], False)",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "is_ribbon"
|
||||
},
|
||||
"transform": "move(5 + length, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "width + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "width",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], False)",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "is_ribbon"
|
||||
},
|
||||
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"width": "width",
|
||||
"face": "(face[0], False, False, False, False, False)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(2.5, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5 + length",
|
||||
"width": "5 + width"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_platform",
|
||||
"showcase": {
|
||||
"title": "Normal Platform",
|
||||
"category": "Platforms",
|
||||
"icon": "NormalPlatform",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "width_",
|
||||
"type": "float",
|
||||
"title": "Width",
|
||||
"desc": "The width of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "width_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_platform",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "width",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_platform",
|
||||
"showcase": {
|
||||
"title": "Sink Platform",
|
||||
"category": "Platforms",
|
||||
"icon": "SinkPlatform",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "width_",
|
||||
"type": "float",
|
||||
"title": "Width",
|
||||
"desc": "The width of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "width_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_platform",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "width",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_ribbon_platform",
|
||||
"showcase": {
|
||||
"title": "Ribbon Platform",
|
||||
"category": "Platforms",
|
||||
"icon": "RibbonPlatform",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "width_",
|
||||
"type": "float",
|
||||
"title": "Width",
|
||||
"desc": "The width of block.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "width_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_platform",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "width",
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,324 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "is_left_sink",
|
||||
"data": "False"
|
||||
},
|
||||
{
|
||||
"field": "is_right_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "height <= (0.7 if (is_left_sink or is_right_sink) else 0.0) or length == 0.0",
|
||||
"vars": [
|
||||
{
|
||||
"field": "skip_long_side",
|
||||
"data": "height <= 5.0"
|
||||
},
|
||||
{
|
||||
"field": "skip_short_side",
|
||||
"data": "height > 5.0"
|
||||
},
|
||||
{
|
||||
"field": "uv_height",
|
||||
"data": "height / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "uv_length",
|
||||
"data": "length / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "left_sink",
|
||||
"data": "0.7 if is_left_sink else 0.0"
|
||||
},
|
||||
{
|
||||
"field": "right_sink",
|
||||
"data": "0.7 if is_right_sink else 0.0"
|
||||
},
|
||||
{
|
||||
"field": "uv_left_sink",
|
||||
"data": "left_sink / 5.0"
|
||||
},
|
||||
{
|
||||
"field": "uv_right_sink",
|
||||
"data": "right_sink / 5.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 0, -left_sink)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(length, 0, -right_sink)"
|
||||
},
|
||||
{
|
||||
"skip": "skip_long_side",
|
||||
"data": "(0, 0, -5.0)"
|
||||
},
|
||||
{
|
||||
"skip": "skip_long_side",
|
||||
"data": "(length, 0, -5.0)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 0, -height)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(length, 0, -height)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "skip_short_side",
|
||||
"texture": "\"FloorSide\"",
|
||||
"indices": [0, 2, 3, 1],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_height - uv_left_sink, 0)",
|
||||
"(uv_height - uv_right_sink, uv_length)",
|
||||
"(0, uv_length)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "skip_long_side",
|
||||
"texture": "\"LightingFloorTopBorder\"",
|
||||
"indices": [0, 2, 3, 1],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(1 - uv_left_sink, 0)",
|
||||
"(1 - uv_right_sink, uv_length)",
|
||||
"(0, uv_length)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "skip_long_side",
|
||||
"texture": "\"LightingFloorTopBorderless\"",
|
||||
"indices": [2, 4, 5, 3],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_height - 1.0, 0)",
|
||||
"(uv_height - 1.0, uv_length)",
|
||||
"(0, uv_length)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": []
|
||||
},
|
||||
{
|
||||
"identifier": "floor_4edges_bottom",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "top_left_pos",
|
||||
"data": "(0.0, 0.0)"
|
||||
},
|
||||
{
|
||||
"field": "top_right_pos",
|
||||
"data": "(0.0, 5.0)"
|
||||
},
|
||||
{
|
||||
"field": "bottom_left_pos",
|
||||
"data": "(5.0, 0.0)"
|
||||
},
|
||||
{
|
||||
"field": "bottom_right_pos",
|
||||
"data": "(5.0, 5.0)"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [
|
||||
{
|
||||
"field": "top_left_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, top_left_pos))"
|
||||
},
|
||||
{
|
||||
"field": "top_right_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, top_right_pos))"
|
||||
},
|
||||
{
|
||||
"field": "bottom_left_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, bottom_left_pos))"
|
||||
},
|
||||
{
|
||||
"field": "bottom_right_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, bottom_right_pos))"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "top_left_pos + (0, )"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "top_right_pos + (0, )"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "bottom_left_pos + (0, )"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "bottom_right_pos + (0, )"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "False",
|
||||
"texture": "\"FloorTopBorderless\"",
|
||||
"indices": [0, 1, 3, 2],
|
||||
"uvs": [
|
||||
"top_left_uv",
|
||||
"top_right_uv",
|
||||
"bottom_right_uv",
|
||||
"bottom_left_uv"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": []
|
||||
},
|
||||
{
|
||||
"identifier": "floor_3edges_bottom",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "top_pos",
|
||||
"data": "(0.0, 0.0)"
|
||||
},
|
||||
{
|
||||
"field": "bottom_pos",
|
||||
"data": "(5.0, 0.0)"
|
||||
},
|
||||
{
|
||||
"field": "tip_pos",
|
||||
"data": "(2.5, 2.5)"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [
|
||||
{
|
||||
"field": "top_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, top_pos))"
|
||||
},
|
||||
{
|
||||
"field": "bottom_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, bottom_pos))"
|
||||
},
|
||||
{
|
||||
"field": "tip_uv",
|
||||
"data": "tuple(map(lambda x: x / 5.0, tip_pos))"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "top_pos + (0, )"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "bottom_pos + (0, )"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "tip_pos + (0, )"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "False",
|
||||
"texture": "\"FloorTopBorderless\"",
|
||||
"indices": [0, 2, 1],
|
||||
"uvs": [
|
||||
"top_uv",
|
||||
"tip_uv",
|
||||
"bottom_uv"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": []
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "5.0"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0.0 or width == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "floor_4edges_bottom",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"top_left_pos": "(0, 0)",
|
||||
"top_right_pos": "(0, width)",
|
||||
"bottom_left_pos": "(length, 0)",
|
||||
"bottom_right_pos": "(length, width)"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_triangle_bottom",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "length",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "tip_offset",
|
||||
"data": "2.5"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "floor_3edges_bottom",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"top_pos": "(0, 0)",
|
||||
"bottom_pos": "(length, 0)",
|
||||
"tip_pos": "(tip_offset, width)"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,324 @@
|
||||
[
|
||||
{
|
||||
"identifier": "floor_normal_straight",
|
||||
"showcase": {
|
||||
"title": "Normal Floor",
|
||||
"category": "Floors",
|
||||
"icon": "NormalFloor",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0",
|
||||
"vars": [
|
||||
{
|
||||
"field": "length_uv",
|
||||
"data": "length / 5.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(length, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(length, 5, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 5, 0)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "\"FloorTopFlat\"",
|
||||
"indices": [0, 1, 2, 3],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(0, length_uv)",
|
||||
"(1, length_uv)",
|
||||
"(1, 0)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(length, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_straight",
|
||||
"showcase": {
|
||||
"title": "Sink Floor",
|
||||
"category": "Floors",
|
||||
"icon": "SinkFloor",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0",
|
||||
"vars": [
|
||||
{
|
||||
"field": "length_uv",
|
||||
"data": "length / 5.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(length, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(length, 2.5, -0.7)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 2.5, -0.7)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(length, 5, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"data": "(0, 5, 0)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "\"FloorTopProfil\"",
|
||||
"indices": [0, 1, 2, 3],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(0, length_uv)",
|
||||
"(0.5, length_uv)",
|
||||
"(0.5, 0)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "\"FloorTopProfil\"",
|
||||
"indices": [3, 2, 4, 5],
|
||||
"uvs": [
|
||||
"(0.5, 0)",
|
||||
"(0.5, length_uv)",
|
||||
"(1, length_uv)",
|
||||
"(1, 0)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "True"
|
||||
},
|
||||
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "True",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(0, 2.5, 0) @ rot(0, 0, 90) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "True"
|
||||
},
|
||||
"transform": "move(length, 0, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[3]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "True",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(length, 2.5, 0) @ rot(0, 0, 90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,178 @@
|
||||
[
|
||||
// The shared template prototype used by all floor terminals.
|
||||
{
|
||||
"identifier": "raw_floor_terminal",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, True, False, True, True)"
|
||||
},
|
||||
{
|
||||
"field": "is_sink",
|
||||
"data": "False"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "5.0",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], face[4], False)",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "5.0",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], face[5], False)",
|
||||
"is_sink": "is_sink",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_triangle_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"edge_length": "5",
|
||||
"tip_offset": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], None)",
|
||||
"is_sink": "is_sink"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_normal_terminal",
|
||||
"showcase": {
|
||||
"title": "Normal Floor Terminal",
|
||||
"category": "Floors",
|
||||
"icon": "NormalFloorTerminal",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_terminal",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_terminal",
|
||||
"showcase": {
|
||||
"title": "Sink Floor Terminal",
|
||||
"category": "Floors",
|
||||
"icon": "SinkFloorTerminal",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_terminal",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "face",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,289 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_trafo",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "trafo_texture",
|
||||
"data": "\"BallWood\""
|
||||
},
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "(True, False, True, True, True, True)"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [
|
||||
{
|
||||
"field": "uv_height",
|
||||
"data": "height / 5.0"
|
||||
}
|
||||
],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(5, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(5, 5, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 5, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 0, -height)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(5, 0, -height)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(5, 5, -height)"
|
||||
},
|
||||
{
|
||||
"skip": "False",
|
||||
"data": "(0, 5, -height)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face[0]",
|
||||
"texture": "trafo_texture",
|
||||
"indices": [0, 1, 2, 3],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(1, 0)",
|
||||
"(1, 1)",
|
||||
"(0, 1)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[1]) or height == 0.0",
|
||||
"texture": "trafo_texture",
|
||||
"indices": [5, 4, 7, 6],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(1, 0)",
|
||||
"(1, 1)",
|
||||
"(0, 1)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[2]) or height == 0.0",
|
||||
"texture": "trafo_texture",
|
||||
"indices": [3, 7, 4, 0],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_height, 0)",
|
||||
"(uv_height, 1)",
|
||||
"(0, 1)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[3]) or height == 0.0",
|
||||
"texture": "trafo_texture",
|
||||
"indices": [1, 5, 6, 2],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_height, 0)",
|
||||
"(uv_height, 1)",
|
||||
"(0, 1)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[4]) or height == 0.0",
|
||||
"texture": "trafo_texture",
|
||||
"indices": [0, 4, 5, 1],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_height, 0)",
|
||||
"(uv_height, 1)",
|
||||
"(0, 1)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "(not face[5]) or height == 0.0",
|
||||
"texture": "trafo_texture",
|
||||
"indices": [2, 6, 7, 3],
|
||||
"uvs": [
|
||||
"(0, 0)",
|
||||
"(uv_height, 0)",
|
||||
"(uv_height, 1)",
|
||||
"(0, 1)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": []
|
||||
},
|
||||
{
|
||||
"identifier": "wood_trafo",
|
||||
"showcase": {
|
||||
"title": "Wood Trafo",
|
||||
"category": "Trafo",
|
||||
"icon": "WoodTrafo",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_trafo",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"trafo_texture": "\"BallWood\"",
|
||||
"height": "height",
|
||||
"face": "face"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "stone_trafo",
|
||||
"showcase": {
|
||||
"title": "Stone Trafo",
|
||||
"category": "Trafo",
|
||||
"icon": "StoneTrafo",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_trafo",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"trafo_texture": "\"BallStone\"",
|
||||
"height": "height",
|
||||
"face": "face"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "paper_trafo",
|
||||
"showcase": {
|
||||
"title": "Paper Trafo",
|
||||
"category": "Trafo",
|
||||
"icon": "PaperTrafo",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, True, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_trafo",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"trafo_texture": "\"BallPaper\"",
|
||||
"height": "height",
|
||||
"face": "face"
|
||||
},
|
||||
"transform": "ident()"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,272 @@
|
||||
[
|
||||
{
|
||||
"identifier": "raw_floor_transition_part",
|
||||
"showcase": null,
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_part",
|
||||
"data": "(True, False, False)"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"data": "(0, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"data": "(5, 0, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"data": "(0, 2.5, -0.7)"
|
||||
},
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"data": "(5, 5, 0)"
|
||||
},
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"data": "(0, 5, 0)"
|
||||
}
|
||||
],
|
||||
"faces": [
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"texture": "\"FloorTopProfilFlat\"",
|
||||
"indices": [0, 1, 2],
|
||||
"uvs": [
|
||||
"(0, 1)",
|
||||
"(0, 0)",
|
||||
"(0.5, 1)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"texture": "\"FloorTopProfilFlat\"",
|
||||
"indices": [3, 2, 1],
|
||||
"uvs": [
|
||||
"(1, 0)",
|
||||
"(0.5, 1)",
|
||||
"(0, 0)"
|
||||
],
|
||||
"normals": null
|
||||
},
|
||||
{
|
||||
"skip": "not face_part[0]",
|
||||
"texture": "\"FloorTopProfilFlat\"",
|
||||
"indices": [2, 3, 4],
|
||||
"uvs": [
|
||||
"(0.5, 1)",
|
||||
"(1, 0)",
|
||||
"(1, 1)"
|
||||
],
|
||||
"normals": null
|
||||
}
|
||||
],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face_part[1]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "True"
|
||||
},
|
||||
"transform": "move(0, 5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face_part[1]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "True",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(0, 2.5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face_part[2]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(5, 0, 0) @ rot(0, 0, 90)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_transition",
|
||||
"showcase": {
|
||||
"title": "Transition",
|
||||
"category": "Miscellaneous",
|
||||
"icon": "Transition",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_transition_part",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face_part": "(face[0], face[2], face[3])"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(5, 5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_narrow_transition",
|
||||
"showcase": {
|
||||
"title": "Narrow Transition",
|
||||
"category": "Miscellaneous",
|
||||
"icon": "NarrowTransition",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "False",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "raw_floor_transition_part",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face_part": "(face[0], face[2], face[3])"
|
||||
},
|
||||
"transform": "scale(0.5, 1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[4]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "raw_floor_side",
|
||||
"skip": "not face[5]",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"is_left_sink": "False",
|
||||
"is_right_sink": "False"
|
||||
},
|
||||
"transform": "move(2.5, 5, 0) @ rot(0, 0, 180)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "2.5",
|
||||
"width": "5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,622 @@
|
||||
[
|
||||
{
|
||||
"identifier": "floor_wide_straight",
|
||||
"showcase": {
|
||||
"title": "Wide Floor",
|
||||
"category": "Wide Floors",
|
||||
"icon": "WideFloor",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "length_",
|
||||
"type": "float",
|
||||
"title": "Length",
|
||||
"desc": "The length of wide floor.",
|
||||
"default": "2.5"
|
||||
},
|
||||
{
|
||||
"field": "width_",
|
||||
"type": "float",
|
||||
"title": "Width",
|
||||
"desc": "The width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "length",
|
||||
"data": "length_"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "width_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "length == 0.0 or width == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "floor_sink_border",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, face[2], face[3], face[4], False)"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_border",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, face[2], face[3], face[5], False)"
|
||||
},
|
||||
"transform": "move(0, 5 + width, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "length",
|
||||
"width": "width",
|
||||
"face": "(face[0], False, face[2], face[3], False, False)",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(0, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "length",
|
||||
"width": "5 + width"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_wide_terminal",
|
||||
"showcase": {
|
||||
"title": "Wide Floor Terminal",
|
||||
"category": "Wide Floors",
|
||||
"icon": "WideFloorTerminal",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "width_",
|
||||
"type": "float",
|
||||
"title": "Width",
|
||||
"desc": "The width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, True)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "width",
|
||||
"data": "width_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "width == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "width + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "width",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, False, face[2], face[3])",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "5.0",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], face[4], False)",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "5.0",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], face[5], False)",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "move(0, width + 5, 0) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"width": "width",
|
||||
"face": "(face[0], False, False, face[3], False, False)",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "5",
|
||||
"width": "5 + width"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_wide_l_crossing",
|
||||
"showcase": {
|
||||
"title": "Wide Floor L Crossing",
|
||||
"category": "Wide Floors",
|
||||
"icon": "WideLCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "width_h_",
|
||||
"type": "float",
|
||||
"title": "Horizontal Width",
|
||||
"desc": "The horizontal floor width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "width_v_",
|
||||
"type": "float",
|
||||
"title": "Vertical Width",
|
||||
"desc": "The vertical floor width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, True, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "width_h",
|
||||
"data": "width_h_"
|
||||
},
|
||||
{
|
||||
"field": "width_v",
|
||||
"data": "width_v_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "width_h == 0.0 or width_v == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "width_h + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "width_h + 2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], face[4], False)",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "ident()"
|
||||
},
|
||||
{
|
||||
"identifier": "cv_trapezoid_side",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"long_edge_length": "width_v + 5",
|
||||
"short_edge_offset": "2.5",
|
||||
"short_edge_length": "width_v + 2.5",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[5], face[2], False)",
|
||||
"is_sink": "True",
|
||||
"is_ribbon": "False"
|
||||
},
|
||||
"transform": "rot(0, 0, 90) @ scale(1, -1, 1)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], False, face[5])"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5 + width_v, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "width_h + 2.5",
|
||||
"width": "width_v",
|
||||
"face": "(face[0], False, False, face[3], False, False)",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "width_h",
|
||||
"width": "2.5",
|
||||
"face": "(face[0], False, False, False, False, face[5])",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5, 2.5 + width_v, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "width_h + 5",
|
||||
"width": "width_v + 5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_wide_t_crossing",
|
||||
"showcase": {
|
||||
"title": "Wide Floor T Crossing",
|
||||
"category": "Wide Floors",
|
||||
"icon": "WideTCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "width_h_",
|
||||
"type": "float",
|
||||
"title": "Horizontal Width",
|
||||
"desc": "The horizontal floor width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "width_v_",
|
||||
"type": "float",
|
||||
"title": "Vertical Width",
|
||||
"desc": "The vertical floor width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, True, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "width_h",
|
||||
"data": "width_h_"
|
||||
},
|
||||
{
|
||||
"field": "width_v",
|
||||
"data": "width_v_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "width_h == 0.0 or width_v == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "floor_sink_border",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"length": "5 + width_v",
|
||||
"height": "height",
|
||||
"face": "(face[0], False, face[5], face[4], face[2], False)"
|
||||
},
|
||||
"transform": "move(0, 5 + width_v, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[4], False, face[3])"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], False, face[5])"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5 + width_v, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "width_h",
|
||||
"width": "5 + width_v",
|
||||
"face": "(face[0], False, False, False, face[4], face[5])",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5, 0, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"width": "width_v",
|
||||
"face": "(face[0], False, False, face[3], False, False)",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "width_h + 5",
|
||||
"width": "width_v + 5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"identifier": "floor_wide_x_crossing",
|
||||
"showcase": {
|
||||
"title": "Wide Floor X Crossing",
|
||||
"category": "Wide Floors",
|
||||
"icon": "WideXCrossing",
|
||||
"type": "floor",
|
||||
"cfgs": [
|
||||
{
|
||||
"field": "width_h_",
|
||||
"type": "float",
|
||||
"title": "Horizontal Width",
|
||||
"desc": "The horizontal floor width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "width_v_",
|
||||
"type": "float",
|
||||
"title": "Vertical Width",
|
||||
"desc": "The vertical floor width of wide floor.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "height_",
|
||||
"type": "float",
|
||||
"title": "Height",
|
||||
"desc": "The height of block.",
|
||||
"default": "5.0"
|
||||
},
|
||||
{
|
||||
"field": "face_",
|
||||
"type": "face",
|
||||
"title": "Face",
|
||||
"desc": "Whether has some faces.",
|
||||
"default": "(True, False, False, False, False, False)"
|
||||
}
|
||||
]
|
||||
},
|
||||
"params": [
|
||||
{
|
||||
"field": "height",
|
||||
"data": "height_"
|
||||
},
|
||||
{
|
||||
"field": "width_h",
|
||||
"data": "width_h_"
|
||||
},
|
||||
{
|
||||
"field": "width_v",
|
||||
"data": "width_v_"
|
||||
},
|
||||
{
|
||||
"field": "face",
|
||||
"data": "face_"
|
||||
}
|
||||
],
|
||||
"skip": "width_h == 0.0 or width_v == 0.0",
|
||||
"vars": [],
|
||||
"vertices": [],
|
||||
"faces": [],
|
||||
"instances": [
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[5], False, face[2])"
|
||||
},
|
||||
"transform": "move(2.5, 2.5 + width_v, 0) @ rot(0, 0, -270)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[2], False, face[4])"
|
||||
},
|
||||
"transform": "move(2.5, 2.5, 0) @ rot(0, 0, -180)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[4], False, face[3])"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5, 0) @ rot(0, 0, -90)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_sink_inner_corner",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"face": "(face[0], False, False, face[3], False, face[5])"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5 + width_v, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "width_h",
|
||||
"width": "5 + width_v",
|
||||
"face": "(face[0], False, False, False, face[4], face[5])",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5, 0, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"width": "width_v",
|
||||
"face": "(face[0], False, False, face[3], False, False)",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(2.5 + width_h, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_flat",
|
||||
"skip": "False",
|
||||
"params": {
|
||||
"height": "height",
|
||||
"length": "2.5",
|
||||
"width": "width_v",
|
||||
"face": "(face[0], False, face[2], False, False, False)",
|
||||
"is_sink": "True"
|
||||
},
|
||||
"transform": "move(0, 2.5, 0)"
|
||||
},
|
||||
{
|
||||
"identifier": "floor_rectangle_bottom",
|
||||
"skip": "not face[1]",
|
||||
"params": {
|
||||
"length": "width_h + 5",
|
||||
"width": "width_v + 5"
|
||||
},
|
||||
"transform": "move(0, 0, -height)"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||