171 lines
5.2 KiB
JSON
171 lines
5.2 KiB
JSON
|
[
|
||
|
{
|
||
|
"identifier": "floor_flat",
|
||
|
"showcase": {
|
||
|
"title": "Flat",
|
||
|
"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": "float",
|
||
|
"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_bottom",
|
||
|
"skip": "not face[1]",
|
||
|
"params": {
|
||
|
"length": "length",
|
||
|
"width": "width"
|
||
|
},
|
||
|
"transform": "move(0, 0, -height)"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
]
|