diff --git a/ballance_blender_plugin/OBJS_add_floors.py b/ballance_blender_plugin/OBJS_add_floors.py index 2ff52fe..6b34d26 100644 --- a/ballance_blender_plugin/OBJS_add_floors.py +++ b/ballance_blender_plugin/OBJS_add_floors.py @@ -1,9 +1,10 @@ import bpy,mathutils import os, math +import ast from bpy_extras import io_utils,node_shader_utils # from bpy_extras.io_utils import unpack_list from bpy_extras.image_utils import load_image -from . import UTILS_constants, UTILS_functions +from . import UTILS_constants, UTILS_functions, UTILS_safe_eval class BALLANCE_OT_add_floors(bpy.types.Operator): """Add Ballance floor""" @@ -85,7 +86,7 @@ class BALLANCE_OT_add_floors(bpy.types.Operator): self.use_2d_left, self.use_3d_top, self.use_3d_bottom), - (0.0, 0.0), + (0.0, 0.0, 0.0), prefs_externalTexture) elif self.floor_type in UTILS_constants.floor_derivedBlockList: _load_derived_floor( @@ -228,30 +229,27 @@ def _create_or_get_material(material_name, prefs_externalTexture): # return mtl return mtl -def _solve_vec_data(str_data, d1, d2, d3, unit, unit_height): - sp = str_data.split(';') - sp_point = sp[0].split(',') - vec = [float(sp_point[0]), float(sp_point[1]), float(sp_point[2])] +def _solve_vec_data(str_data, d1, d2, d3, unit): + (cmd_x, cmd_y, cmd_z) = map(lambda x: x.strip(), str_data.split(',')) - for i in range(3): - symbol = sp[i+1] - if symbol == '': - continue + # calc raw expand data + raw_d1 = d1 * unit + raw_d2 = d2 * unit + raw_d3 = (d3 - 1) * 5.0 # the 3d heigh unit of ballance floor is always 5.0 - factor = 1.0 if symbol[0] == '+' else -1.0 - p = symbol[1:] - if p == 'd1': - vec[i] += d1 * unit * factor - elif p == 'd2': - vec[i] += d2 * unit * factor - elif p == 'd3': - vec[i] += (d3 - 1) * unit_height * factor + # do safe eval + return ( + UTILS_safe_eval.do_vec_calc(cmd_x, raw_d1, raw_d2, raw_d3), + UTILS_safe_eval.do_vec_calc(cmd_y, raw_d1, raw_d2, raw_d3), + UTILS_safe_eval.do_vec_calc(cmd_z, raw_d1, raw_d2, raw_d3) + ) - return vec - -def _rotate_translate_vec(vec, rotation, unit, extra_translate): - vec[0] -= unit / 2 - vec[1] -= unit / 2 +def _rotate_translate_vec(_vec, rotation, unit, extra_translate): + vec = ( + _vec[0] - unit / 2, + _vec[1] - unit / 2, + _vec[2] + ) if rotation == 'R0': coso=1 @@ -269,74 +267,49 @@ def _rotate_translate_vec(vec, rotation, unit, extra_translate): return ( coso * vec[0] - sino * vec[1] + unit / 2 + extra_translate[0], sino * vec[0] + coso * vec[1] + unit / 2 + extra_translate[1], - vec[2] + vec[2] + extra_translate[2] ) def _solve_uv_data(str_data, d1, d2, d3, unit): - sp = str_data.split(';') - sp_point = sp[0].split(',') - vec = [float(sp_point[0]), float(sp_point[1])] + (cmd_u, cmd_v) = map(lambda x: x.strip(), str_data.split(',')) - for i in range(2): - symbol = sp[i+1] - if symbol == '': - continue + # calc raw expand data + raw_d1 = d1 * unit + raw_d2 = d2 * unit + raw_d3 = float(d3 - 1) # the uv heigh unit of ballance floor is always 1.0 - factor = 1.0 if symbol[0] == '+' else -1.0 - p = symbol[1:] - if p == 'd1': - vec[i] += d1 * unit * factor - elif p == 'd2': - vec[i] += d2 * unit * factor - elif p == 'd3': - vec[i] += (d3 - 1) * unit * factor - - return tuple(vec) + # do safe eval + return ( + UTILS_safe_eval.do_vec_calc(cmd_u, raw_d1, raw_d2, raw_d3), + UTILS_safe_eval.do_vec_calc(cmd_v, raw_d1, raw_d2, raw_d3) + ) def _solve_normal_data(point1, point2, point3): - vector1 = ( - point2[0] - point1[0], - point2[1] - point1[1], - point2[2] - point1[2] - ) - vector2 = ( - point3[0] - point2[0], - point3[1] - point2[1], - point3[2] - point2[2] - ) + p1 = mathutils.Vector(point1) + p2 = mathutils.Vector(point2) + p3 = mathutils.Vector(point3) + + vector1 = p2 - p1 + vector2 = p3 - p2 # do vector x mutiply # vector1 x vector2 - nor = [ - vector1[1] * vector2[2] - vector1[2] * vector2[1], - vector1[2] * vector2[0] - vector1[0] * vector2[2], - vector1[0] * vector2[1] - vector1[1] * vector2[0] - ] + corss_mul = vector1.cross(vector2) # do a normalization - length = math.sqrt(nor[0] ** 2 + nor[1] ** 2 + nor[2] ** 2) - nor[0] /= length - nor[1] /= length - nor[2] /= length + corss_mul.normalize() - return tuple(nor) + return (corss_mul[0], corss_mul[1], corss_mul[2]) -def _solve_smashed_position(str_data, d1, d2): - sp=str_data.split(';') - sp_pos = sp[0].split(',') - sp_sync = sp[1].split(',') +def _solve_expand_param(str_data, d1, d2): + (cmd_d1, cmd_d2) = map(lambda x: x.strip(), str_data.split(',')) - vec = [int(sp_pos[0]), int(sp_pos[1])] - - for i in range(2): - offset = 0 if sp_sync[i * 2] == '' else int(sp_sync[i * 2]) - if sp_sync[i*2+1] == 'd1': - vec[i] += d1 + offset - elif sp_sync[i*2+1] == 'd2': - vec[i] += d2 + offset - - return tuple(vec) + # do safe eval + return ( + UTILS_safe_eval.do_expand_calc(cmd_d1, d1, d2), + UTILS_safe_eval.do_expand_calc(cmd_d2, d1, d2) + ) def _virtual_foreach_set(collection, field, base_num, data): counter = 0 @@ -362,7 +335,6 @@ def _load_basic_floor(mesh, floor_type, rotation, height_multiplier, d1, d2, sid floor_prototype = UTILS_constants.floor_blockDict[floor_type] # set some unit - height_unit = 5.0 if floor_prototype['UnitSize'] == 'Small': block_3dworld_unit = 2.5 block_uvworld_unit = 0.5 @@ -420,27 +392,17 @@ def _load_basic_floor(mesh, floor_type, rotation, height_multiplier, d1, d2, sid base_indices = len(vecList) for vec in face_define['Vertices']: vecList.append(_rotate_translate_vec( - _solve_vec_data(vec, d1, d2, height_multiplier, block_3dworld_unit, height_unit), + _solve_vec_data(vec, d1, d2, height_multiplier, block_3dworld_unit), rotation, block_3dworld_unit, extra_translate)) - for uv in face_define['UVs']: - uvList.append(_solve_uv_data(uv, d1, d2, height_multiplier, block_uvworld_unit)) - for face in face_define['Faces']: if face['Type'] == 'RECTANGLE': # rectangle - vec_indices = ( - face['P1'] + base_indices, - face['P2'] + base_indices, - face['P3'] + base_indices, - face['P4'] + base_indices) + vec_indices = tuple(map(lambda x: x + base_indices, face['Indices'])) indCount = 4 elif face['Type'] == 'TRIANGLE': # triangle - vec_indices = ( - face['P1'] + base_indices, - face['P2'] + base_indices, - face['P3'] + base_indices) + vec_indices = tuple(map(lambda x: x + base_indices, face['Indices'])) indCount = 3 # we need calc normal and push it into list @@ -452,6 +414,10 @@ def _load_basic_floor(mesh, floor_type, rotation, height_multiplier, d1, d2, sid for i in range(indCount): faceList.append(vec_indices[i] + global_offset_vec) + # push uvs into list + for i in range(indCount): + uvList.append(_solve_uv_data(face['UVs'][i], d1, d2, height_multiplier, block_uvworld_unit)) + # push material into list faceMatList.append(materialDict[face['Textures']]) @@ -505,8 +471,8 @@ def _load_derived_floor(mesh, floor_type, height_multiplier, d1, d2, sides_struc # iterate smahsed blocks for blk in floor_prototype['SmashedBlocks']: - start_pos = _solve_smashed_position(blk['StartPosition'], d1, d2) - expand_pos = _solve_smashed_position(blk['ExpandPosition'], d1, d2) + start_pos = _solve_vec_data(blk['StartPosition'], d1, d2, height_multiplier, block_3dworld_unit) + expand_param = _solve_expand_param(blk['ExpandParam'], d1, d2) sides_data = tuple(sides_dict[x] for x in blk['SideSync'].split(';')) @@ -516,10 +482,10 @@ def _load_derived_floor(mesh, floor_type, height_multiplier, d1, d2, sides_struc blk['Type'], blk['Rotation'], height_multiplier, - expand_pos[0], - expand_pos[1], + expand_param[0], + expand_param[1], sides_data, - (start_pos[0] * block_3dworld_unit, start_pos[1] * block_3dworld_unit), + start_pos, prefs_externalTexture ) diff --git a/ballance_blender_plugin/UTILS_constants.py b/ballance_blender_plugin/UTILS_constants.py index f7a736c..4df54b9 100644 --- a/ballance_blender_plugin/UTILS_constants.py +++ b/ballance_blender_plugin/UTILS_constants.py @@ -190,6 +190,7 @@ floor_materialStatistic = [ "FloorTopBorder", "FloorTopBorderless", "FloorTopFlat", + "FloorTopProfil", "FloorTopProfilFlat" ], "data": { diff --git a/ballance_blender_plugin/UTILS_safe_eval.py b/ballance_blender_plugin/UTILS_safe_eval.py new file mode 100644 index 0000000..616c772 --- /dev/null +++ b/ballance_blender_plugin/UTILS_safe_eval.py @@ -0,0 +1,68 @@ +import ast + +class SimpleCalcEnsurance(ast.NodeVisitor): + def __init__(self): + self.is_illegal_syntax: bool = False + self.allow_float: bool = True + self.param_name: tuple = tuple() + + def wrapper_visit(self, node: ast.AST, allow_float: bool, param_name: tuple) -> bool: + self.is_illegal_syntax = False + self.allow_float = allow_float + self.param_name = param_name + + self.visit(node) + return self.is_illegal_syntax + + def generic_visit(node): + self.is_illegal_syntax = True + + def visit_Expression(self, node: ast.Expression): + self.visit(node.body) + + def visit_BinOp(self, node: ast.BinOp): + if isinstance(node.op, ast.Add) or isinstance(node.op, ast.Sub) or isinstance(node.op, ast.Mult) or isinstance(node.op, ast.Div): + self.visit(node.left) + self.visit(node.right) + else: + self.is_illegal_syntax = True + + def visit_UnaryOp(self, node: ast.UnaryOp): + if isinstance(node.op, ast.USub): + self.visit(node.operand) + else: + self.is_illegal_syntax = True + + def visit_Constant(self, node: ast.Constant): + if (self.allow_float and isinstance(node.value, float)) or isinstance(node.value, int): + pass + else: + self.is_illegal_syntax = True + + + def visit_Name(self, node: ast.Name): + if node.id in self.param_name and isinstance(node.ctx, ast.Load): + pass + else: + self.is_illegal_syntax = True + +def _do_calc(szEval: str, allow_float: bool, d: dict): + ast_tree = ast.parse(szEval, mode='eval') + walker = SimpleCalcEnsurance() + if walker.wrapper_visit(ast_tree, allow_float, d.keys()): + raise Exception("Illegal AST Tree. Tree contain illegal syntax. Please check BMERevenge.") + + return eval(compile(ast_tree, '', mode='eval'), {}, d) + +def do_vec_calc(szEval: str, raw_d1: float, raw_d2: float, raw_d3: float) -> float: + return float(_do_calc(szEval, True, { + "d1": raw_d1, + "d2": raw_d2, + "d3": raw_d3 + })) + +def do_expand_calc(szEval: str, d1: int, d2: int) -> int: + return int(_do_calc(szEval, False, { + "d1": d1, + "d2": d2 + })) diff --git a/ballance_blender_plugin/__init__.py b/ballance_blender_plugin/__init__.py index 271db16..e29738a 100644 --- a/ballance_blender_plugin/__init__.py +++ b/ballance_blender_plugin/__init__.py @@ -31,6 +31,8 @@ if "bpy" in locals(): importlib.reload(UTILS_zip_helper) if "UTILS_virtools_prop" in locals(): importlib.reload(UTILS_virtools_prop) + if "UTILS_safe_eval" in locals(): + importlib.reload(UTILS_safe_eval) if "BMFILE_export" in locals(): importlib.reload(BMFILE_export) @@ -61,7 +63,7 @@ if "bpy" in locals(): if "PROPS_virtools_material" in locals(): importlib.reload(PROPS_virtools_material) -from . import UTILS_constants, UTILS_functions, UTILS_preferences, UTILS_virtools_prop +from . import UTILS_constants, UTILS_functions, UTILS_preferences, UTILS_virtools_prop, UTILS_safe_eval from . import BMFILE_export, BMFILE_import from . import MODS_3dsmax_align, MODS_flatten_uv, MODS_rail_uv from . import OBJS_add_components, OBJS_add_floors, OBJS_add_rails, OBJS_group_opers diff --git a/ballance_blender_plugin/json/BasicBlock.json b/ballance_blender_plugin/json/BasicBlock.json index 6042c55..aba200f 100644 --- a/ballance_blender_plugin/json/BasicBlock.json +++ b/ballance_blender_plugin/json/BasicBlock.json @@ -15,145 +15,157 @@ }, "ThreeDTopFace": { "Vertices": [ - "2.5,0,0;+d1;;", - "2.5,2.5,-0.7;+d1;;", - "0,2.5,-0.7;;;", - "0,0,0;;;" - ], - "UVs": [ - "0,0;;-d1", - "0.5,0;;-d1", - "0.5,0.5;;", - "0,0.5;;" + "2.5+d1, 0.0, 0.0", + "2.5+d1, 2.5, -0.7", + "0.0, 2.5, -0.7", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopProfil" + "Textures": "FloorTopProfil", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d1", + "0.5, 0.0-d1", + "0.5, 0.5", + "0.0, 0.5" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "2.5,0,-5;+d1;;-d3", - "2.5,2.5,-5;+d1;;-d3", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.5,0.5;;", - "0.5,0;;-d1", - "0,0;;-d1" + "2.5+d1, 0.0, -5.0-d3", + "2.5+d1, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.5, 0.5", + "0.5, 0.0-d1", + "0.0, 0.0-d1" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,2.5,-0.7;;;", - "0,2.5,-5;;;-d3" - ], - "UVs": [ - "1,0;+d3;", - "0,0;;", - "0.14,0.5;;", - "1,0.5;+d3;" + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 2.5, -0.7", + "0.0, 2.5, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "0.0, 0.0", + "0.14, 0.5", + "1.0+d3, 0.5" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,-0.7;+d1;;", - "2.5,2.5,-5;+d1;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,-0.7;;;" - ], - "UVs": [ - "0.14,0;;-d1", - "1,0;+d3;-d1", - "1,0.5;+d3;", - "0.14,0.5;;" + "2.5+d1, 2.5, -0.7", + "2.5+d1, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, -0.7" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.14, 0.0-d1", + "1.0+d3, 0.0-d1", + "1.0+d3, 0.5", + "0.14, 0.5" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,0,0;+d1;;", - "2.5,0,-5;+d1;;-d3", - "2.5,2.5,-5;+d1;;-d3", - "2.5,2.5,-0.7;+d1;;" - ], - "UVs": [ - "0,0;;", - "1,0;+d3;", - "1,0.5;+d3;", - "0.14,0.5;;" + "2.5+d1, 0.0, 0.0", + "2.5+d1, 0.0, -5.0-d3", + "2.5+d1, 2.5, -5.0-d3", + "2.5+d1, 2.5, -0.7" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.14, 0.5" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "2.5,0,0;+d1;;", - "2.5,0,-5;+d1;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;" - ], - "UVs": [ - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;-d1", - "0,0;;-d1" + "2.5+d1, 0.0, 0.0", + "2.5+d1, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0-d1", + "0.0, 0.0-d1" + ] } ] }, @@ -162,39 +174,45 @@ "TwoDBottomSideExpand": null, "TwoDLeftSideExpand": { "Vertices": [ - "2.5,0,-5;+d1;;-d3", - "0,0,-5;;;-d3", - "0,0,-2.5;;;", - "2.5,0,-2.5;+d1;;", - "2.5,0,0;+d1;;", - "0,0,0;;;" - ], - "UVs": [ - "0.5,0.5;;", - "0.5,0;;-d1", - "0,0;;-d1", - "0,0.5;;", - "0,0;;-d1", - "0,0.5;;", - "0.5,0.5;+d3;", - "0.5,0;+d3;-d1" + "2.5+d1, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, -2.5", + "2.5+d1, 0.0, -2.5", + "2.5+d1, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0.0-d1", + "0.0, 0.0-d1", + "0.0, 0.5" + ] }, { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.0-d1", + "0.0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0.0-d1" + ] } ] } @@ -215,145 +233,157 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,0,0;;;", - "2.5,0,0;+d1;;", - "2.5,2.5,0;+d1;;", - "0,2.5,0;;;" - ], - "UVs": [ - "0,0.5;;", - "0,0;;-d1", - "0.5,0;;-d1", - "0.5,0.5;;" + "0.0, 0.0, 0.0", + "2.5+d1, 0.0, 0.0", + "2.5+d1, 2.5, 0.0", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopFlat" + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 0.0-d1", + "0.5, 0.0-d1", + "0.5, 0.5" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "2.5,0,-5;+d1;;-d3", - "2.5,2.5,-5;+d1;;-d3", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.5,0.5;;", - "0.5,0;;-d1", - "0,0;;-d1" + "2.5+d1, 0.0, -5.0-d3", + "2.5+d1, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.5, 0.5", + "0.5, 0.0-d1", + "0.0, 0.0-d1" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "0,0.5;;", - "0,0;;", - "1,0;+d3;", - "1,0.5;+d3;" + "0.0, 0.0, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,0;+d1;;", - "2.5,2.5,-5;+d1;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,0;;;" - ], - "UVs": [ - "0,0;;-d1", - "1,0;+d3;-d1", - "1,0.5;+d3;", - "0,0.5;;" + "2.5+d1, 2.5, 0.0", + "2.5+d1, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d1", + "1.0+d3, 0.0-d1", + "1.0+d3, 0.5", + "0.0, 0.5" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,0,-5;+d1;;-d3", - "2.5,2.5,-5;+d1;;-d3", - "2.5,2.5,0;+d1;;", - "2.5,0,0;+d1;;" - ], - "UVs": [ - "1,0.5;+d3;", - "1,0;+d3;", - "0,0;;", - "0,0.5;;" + "2.5+d1, 0.0, -5.0-d3", + "2.5+d1, 2.5, -5.0-d3", + "2.5+d1, 2.5, 0.0", + "2.5+d1, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.5", + "1.0+d3, 0.0", + "0.0, 0.0", + "0.0, 0.5" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "2.5,0,0;+d1;;", - "2.5,0,-5;+d1;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;" - ], - "UVs": [ - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;-d1", - "0,0;;-d1" + "2.5+d1, 0.0, 0.0", + "2.5+d1, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0-d1", + "0.0, 0.0-d1" + ] } ] }, @@ -362,39 +392,45 @@ "TwoDBottomSideExpand": null, "TwoDLeftSideExpand": { "Vertices": [ - "2.5,0,-5;+d1;;-d3", - "0,0,-5;;;-d3", - "0,0,-2.5;;;", - "2.5,0,-2.5;+d1;;", - "2.5,0,0;+d1;;", - "0,0,0;;;" - ], - "UVs": [ - "0.5,0.5;;", - "0.5,0;;-d1", - "0,0;;-d1", - "0,0.5;;", - "0,0;;-d1", - "0,0.5;;", - "0.5,0.5;+d3;", - "0.5,0;+d3;-d1" + "2.5+d1, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, -2.5", + "2.5+d1, 0.0, -2.5", + "2.5+d1, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0.0-d1", + "0.0, 0.0-d1", + "0.0, 0.5" + ] }, { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.0-d1", + "0.0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0.0-d1" + ] } ] } @@ -415,191 +451,213 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,0,0;;;", - "2.5,0,0;;;", - "2.5,2.5,-0.7;;;", - "0,2.5,0;;;" - ], - "UVs": [ - "0,0.5;;", - "0,1;;", - "0.5,1;;", - "1,0.5;;", - "0.5,1;;", - "1,1;;" + "0.0, 0.0, 0.0", + "2.5, 0.0, 0.0", + "2.5, 2.5, -0.7", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "TRIANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "Textures": "FloorTopProfil" + "Textures": "FloorTopProfil", + "Indices": [ + 0, + 1, + 2 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 1.0", + "0.5, 1.0" + ] }, { "Type": "TRIANGLE", - "P1": 0, - "P2": 2, - "P3": 3, - "Textures": "FloorTopProfil" + "Textures": "FloorTopProfil", + "Indices": [ + 0, + 2, + 3 + ], + "UVs": [ + "1.0, 0.5", + "0.5, 1.0", + "1.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.5,0.5;;", - "0.5,0;;", - "0,0;;" + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,2.5,0;;;", - "0,2.5,-5;;;-d3" - ], - "UVs": [ - "1,0;+d3;", - "0,0;;", - "0,0.5;;", - "1,0.5;+d3;" + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 2.5, 0.0", + "0.0, 2.5, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "0.0, 0.0", + "0.0, 0.5", + "1.0+d3, 0.5" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,0;;;", - "2.5,2.5,-0.7;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,0.5;+d3;", - "0,0.5;;", - "0.14,0;;" + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, 0.0", + "2.5, 2.5, -0.7" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.0, 0.5", + "0.14, 0.0" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3", - "2.5,2.5,-0.7;;;", - "2.5,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,0.5;+d3;", - "0.14,0.5;;", - "0,0;;" + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3", + "2.5, 2.5, -0.7", + "2.5, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.14, 0.5", + "0.0, 0.0" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "2.5,0,0;;;", - "2.5,0,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;" - ], - "UVs": [ - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;", - "0,0;;" + "2.5, 0.0, 0.0", + "2.5, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSideExpand": { "Vertices": [ - "0,0,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,-2.5;;;", - "0,0,-2.5;;;", - "0,0,0;;;", - "0,2.5,0;;;" - ], - "UVs": [ - "0.5,0.5;;", - "0.5,0;;", - "0,0;;", - "0,0.5;;", - "0,0;;", - "0,0.5;;", - "0.5,0.5;+d3;", - "0.5,0;+d3;" + "0.0, 0.0, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, -2.5", + "0.0, 0.0, -2.5", + "0.0, 0.0, 0.0", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0", + "0.0, 0.5" + ] }, { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0.0" + ] } ] }, @@ -607,39 +665,45 @@ "TwoDBottomSideExpand": null, "TwoDLeftSideExpand": { "Vertices": [ - "2.5,0,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,-2.5;;;", - "2.5,0,-2.5;;;", - "2.5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "0.5,0.5;;", - "0.5,0;;", - "0,0;;", - "0,0.5;;", - "0,0;;", - "0,0.5;;", - "0.5,0.5;+d3;", - "0.5,0;+d3;" + "2.5, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, -2.5", + "2.5, 0.0, -2.5", + "2.5, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0", + "0.0, 0.5" + ] }, { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0.0" + ] } ] } @@ -660,191 +724,213 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,0,0;;;", - "2.5,0,0;;;", - "2.5,2.5,0;;;", - "0,2.5,0;;;" - ], - "UVs": [ - "0,0.5;;", - "0,1;;", - "0.5,1;;", - "1,0.5;;", - "0.5,1;;", - "1,1;;" + "0.0, 0.0, 0.0", + "2.5, 0.0, 0.0", + "2.5, 2.5, 0.0", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "TRIANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "Textures": "FloorTopFlat" + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 1, + 2 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 1.0", + "0.5, 1.0" + ] }, { "Type": "TRIANGLE", - "P1": 0, - "P2": 2, - "P3": 3, - "Textures": "FloorTopFlat" + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 2, + 3 + ], + "UVs": [ + "1.0, 0.5", + "0.5, 1.0", + "1.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.5,0.5;;", - "0.5,0;;", - "0,0;;" + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,2.5,0;;;", - "0,2.5,-5;;;-d3" - ], - "UVs": [ - "1,0;+d3;", - "0,0;;", - "0,0.5;;", - "1,0.5;+d3;" + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 2.5, 0.0", + "0.0, 2.5, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "0.0, 0.0", + "0.0, 0.5", + "1.0+d3, 0.5" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,0;;;", - "2.5,2.5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,0.5;+d3;", - "0,0.5;;", - "0,0;;" + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, 0.0", + "2.5, 2.5, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.0, 0.5", + "0.0, 0.0" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3", - "2.5,2.5,0;;;", - "2.5,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,0.5;+d3;", - "0,0.5;;", - "0,0;;" + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3", + "2.5, 2.5, 0.0", + "2.5, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.0, 0.5", + "0.0, 0.0" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "2.5,0,0;;;", - "2.5,0,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;" - ], - "UVs": [ - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;", - "0,0;;" + "2.5, 0.0, 0.0", + "2.5, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSideExpand": { "Vertices": [ - "0,0,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,-2.5;;;", - "0,0,-2.5;;;", - "0,0,0;;;", - "0,2.5,0;;;" - ], - "UVs": [ - "0.5,0.5;;", - "0.5,0;;", - "0,0;;", - "0,0.5;;", - "0,0;;", - "0,0.5;;", - "0.5,0.5;+d3;", - "0.5,0;+d3;" + "0.0, 0.0, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, -2.5", + "0.0, 0.0, -2.5", + "0.0, 0.0, 0.0", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0", + "0.0, 0.5" + ] }, { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0.0" + ] } ] }, @@ -852,39 +938,45 @@ "TwoDBottomSideExpand": null, "TwoDLeftSideExpand": { "Vertices": [ - "2.5,0,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,-2.5;;;", - "2.5,0,-2.5;;;", - "2.5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "0.5,0.5;;", - "0.5,0;;", - "0,0;;", - "0,0.5;;", - "0,0;;", - "0,0.5;;", - "0.5,0.5;+d3;", - "0.5,0;+d3;" + "2.5, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, -2.5", + "2.5, 0.0, -2.5", + "2.5, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0", + "0.0, 0.5" + ] }, { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0.0" + ] } ] } @@ -905,153 +997,169 @@ }, "ThreeDTopFace": { "Vertices": [ - "2.5,0,-0.7;;;", - "2.5,2.5,0;;;", - "0,0,-0.7;;;", - "0,2.5,-0.7;;;" - ], - "UVs": [ - "0.5,1;;", - "0,1;;", - "0.5,0.5;;", - "0.5,1;;", - "0.5,0.5;;", - "1,1;;" + "2.5, 0.0, -0.7", + "2.5, 2.5, 0.0", + "0.0, 0.0, -0.7", + "0.0, 2.5, -0.7" ], "Faces": [ { "Type": "TRIANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "Textures": "FloorTopProfil" + "Textures": "FloorTopProfil", + "Indices": [ + 0, + 1, + 2 + ], + "UVs": [ + "0.5, 1.0", + "0.0, 1.0", + "0.5, 0.5" + ] }, { "Type": "TRIANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "Textures": "FloorTopProfil" + "Textures": "FloorTopProfil", + "Indices": [ + 3, + 2, + 1 + ], + "UVs": [ + "0.5, 1.0", + "0.5, 0.5", + "1.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.5,0.5;;", - "0.5,0;;", - "0,0;;" + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,-0.7;;;", - "0,2.5,-0.7;;;", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0.14,0;;", - "0.14,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;" + "0.0, 0.0, -0.7", + "0.0, 2.5, -0.7", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.14, 0.0", + "0.14, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,0;;;", - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,-0.7;;;" - ], - "UVs": [ - "0,0;;", - "1,0;+d3;", - "1,0.5;+d3;", - "0.14,0.5;;" + "2.5, 2.5, 0.0", + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, -0.7" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.14, 0.5" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,2.5,0;;;", - "2.5,0,-0.7;;;", - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.14,0;;", - "1,0;+d3;", - "1,0.5;+d3;" + "2.5, 2.5, 0.0", + "2.5, 0.0, -0.7", + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5", + "0.14, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "0,0,-0.7;;;", - "0,0,-5;;;-d3", - "2.5,0,-5;;;-d3", - "2.5,0,-0.7;;;" - ], - "UVs": [ - "0.14,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;", - "0.14,0;;" + "0.0, 0.0, -0.7", + "0.0, 0.0, -5.0-d3", + "2.5, 0.0, -5.0-d3", + "2.5, 0.0, -0.7" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.14, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0", + "0.14, 0.0" + ] } ] }, @@ -1076,153 +1184,169 @@ }, "ThreeDTopFace": { "Vertices": [ - "2.5,0,0;;;", - "2.5,2.5,0;;;", - "0,0,0;;;", - "0,2.5,0;;;" - ], - "UVs": [ - "0.5,1;;", - "0,1;;", - "0.5,0.5;;", - "0.5,1;;", - "0.5,0.5;;", - "1,1;;" + "2.5, 0.0, 0.0", + "2.5, 2.5, 0.0", + "0.0, 0.0, 0.0", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "TRIANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "Textures": "FloorTopFlat" + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 1, + 2 + ], + "UVs": [ + "0.5, 1.0", + "0.0, 1.0", + "0.5, 0.5" + ] }, { "Type": "TRIANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "Textures": "FloorTopFlat" + "Textures": "FloorTopFlat", + "Indices": [ + 3, + 2, + 1 + ], + "UVs": [ + "0.5, 1.0", + "0.5, 0.5", + "1.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0.5,0.5;;", - "0.5,0;;", - "0,0;;" + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.5, 0.5", + "0.5, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,0;;;", - "0,2.5,0;;;", - "0,2.5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0;;", - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;" + "0.0, 0.0, 0.0", + "0.0, 2.5, 0.0", + "0.0, 2.5, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,0;;;", - "2.5,2.5,-5;;;-d3", - "0,2.5,-5;;;-d3", - "0,2.5,0;;;" - ], - "UVs": [ - "0,0;;", - "1,0;+d3;", - "1,0.5;+d3;", - "0,0.5;;" + "2.5, 2.5, 0.0", + "2.5, 2.5, -5.0-d3", + "0.0, 2.5, -5.0-d3", + "0.0, 2.5, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5", + "0.0, 0.5" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,2.5,0;;;", - "2.5,0,0;;;", - "2.5,0,-5;;;-d3", - "2.5,2.5,-5;;;-d3" - ], - "UVs": [ - "0,0.5;;", - "0,0;;", - "1,0;+d3;", - "1,0.5;+d3;" + "2.5, 2.5, 0.0", + "2.5, 0.0, 0.0", + "2.5, 0.0, -5.0-d3", + "2.5, 2.5, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "0,0,0;;;", - "0,0,-5;;;-d3", - "2.5,0,-5;;;-d3", - "2.5,0,0;;;" - ], - "UVs": [ - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;", - "0,0;;" + "0.0, 0.0, 0.0", + "0.0, 0.0, -5.0-d3", + "2.5, 0.0, -5.0-d3", + "2.5, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0", + "0.0, 0.0" + ] } ] }, @@ -1247,145 +1371,157 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,0,0;;;", - "2.5,0,0;+d2;;", - "2.5,2.5,0;+d2;+d1;", - "0,2.5,0;;+d1;" - ], - "UVs": [ - "0,0.5;;", - "0,0;;-d2", - "0.5,0;+d1;-d2", - "0.5,0.5;+d1;" + "0.0, 0.0, 0.0", + "2.5+d2, 0.0, 0.0", + "2.5+d2, 2.5+d1, 0.0", + "0.0, 2.5+d1, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless" + "Textures": "FloorTopBorderless", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 0.0-d2", + "0.5+d1, 0.0-d2", + "0.5+d1, 0.5" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "0,0,-5;;;-d3", - "2.5,0,-5;+d2;;-d3", - "2.5,2.5,-5;+d2;+d1;-d3", - "0,2.5,-5;;+d1;-d3" - ], - "UVs": [ - "0,0.5;;", - "0,0;;-d2", - "0.5,0;+d1;-d2", - "0.5,0.5;+d1;" + "0.0, 0.0, -5.0-d3", + "2.5+d2, 0.0, -5.0-d3", + "2.5+d2, 2.5+d1, -5.0-d3", + "0.0, 2.5+d1, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 0.5", + "0.0, 0.0-d2", + "0.5+d1, 0.0-d2", + "0.5+d1, 0.5" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,0;;;", - "0,2.5,0;;+d1;", - "0,2.5,-5;;+d1;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,0;;", - "0,0.5;;+d1", - "1,0.5;+d3;+d1", - "1,0;+d3;" + "0.0, 0.0, 0.0", + "0.0, 2.5+d1, 0.0", + "0.0, 2.5+d1, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 0.5+d1", + "1.0+d3, 0.5+d1", + "1.0+d3, 0.0" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "2.5,2.5,0;+d2;+d1;", - "2.5,2.5,-5;+d2;+d1;-d3", - "0,2.5,-5;;+d1;-d3", - "0,2.5,0;;+d1;" - ], - "UVs": [ - "0,0;;-d2", - "1,0;+d3;-d2", - "1,0.5;+d3;", - "0,0.5;;" + "2.5+d2, 2.5+d1, 0.0", + "2.5+d2, 2.5+d1, -5.0-d3", + "0.0, 2.5+d1, -5.0-d3", + "0.0, 2.5+d1, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d2", + "1.0+d3, 0.0-d2", + "1.0+d3, 0.5", + "0.0, 0.5" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "2.5,2.5,0;+d2;+d1;", - "2.5,0,0;+d2;;", - "2.5,0,-5;+d2;;-d3", - "2.5,2.5,-5;+d2;+d1;-d3" - ], - "UVs": [ - "0,0.5;;+d1", - "0,0;;", - "1,0;+d3;", - "1,0.5;+d3;+d1" + "2.5+d2, 2.5+d1, 0.0", + "2.5+d2, 0.0, 0.0", + "2.5+d2, 0.0, -5.0-d3", + "2.5+d2, 2.5+d1, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5+d1", + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 0.5+d1" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "0,0,0;;;", - "0,0,-5;;;-d3", - "2.5,0,-5;+d2;;-d3", - "2.5,0,0;+d2;;" - ], - "UVs": [ - "0,0.5;;", - "1,0.5;+d3;", - "1,0;+d3;-d2", - "0,0;;-d2" + "0.0, 0.0, 0.0", + "0.0, 0.0, -5.0-d3", + "2.5+d2, 0.0, -5.0-d3", + "2.5+d2, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.5", + "1.0+d3, 0.5", + "1.0+d3, 0.0-d2", + "0.0, 0.0-d2" + ] } ] }, @@ -1410,241 +1546,261 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,5,0;;;", - "0,0,0;;;", - "5,0,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "0,0;;", - "1,0;;", - "1,1;;", - "0,1;;" + "0.0, 5.0, 0.0", + "0.0, 0.0, 0.0", + "5.0, 0.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0, 0.0", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "0,0,-5;;;-d3", - "0,5,-5;;;-d3", - "5,5,-5;;;-d3", - "5,0,-5;;;-d3" - ], - "UVs": [ - "0,0;;", - "1,0;;", - "1,1;;", - "0,1;;" + "0.0, 0.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0, 0.0", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,5,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "5,5,0;;;", - "5,0,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "0,0,-5;;;-d3", - "5,0,-5;;;-d3", - "5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3", + "5.0, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDTopSideExpand": { "Vertices": [ - "0,5,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDRightSideExpand": { "Vertices": [ - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDBottomSideExpand": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "5,5,0;;;", - "5,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDLeftSideExpand": { "Vertices": [ - "0,0,-5;;;-d3", - "5,0,-5;;;-d3", - "5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3", + "5.0, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallWood" + "Textures": "BallWood", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] } @@ -1665,241 +1821,261 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,5,0;;;", - "0,0,0;;;", - "5,0,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "0,0;;", - "1,0;;", - "1,1;;", - "0,1;;" + "0.0, 5.0, 0.0", + "0.0, 0.0, 0.0", + "5.0, 0.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0, 0.0", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "0,0,-5;;;-d3", - "0,5,-5;;;-d3", - "5,5,-5;;;-d3", - "5,0,-5;;;-d3" - ], - "UVs": [ - "0,0;;", - "1,0;;", - "1,1;;", - "0,1;;" + "0.0, 0.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0, 0.0", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,5,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "5,5,0;;;", - "5,0,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "0,0,-5;;;-d3", - "5,0,-5;;;-d3", - "5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3", + "5.0, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDTopSideExpand": { "Vertices": [ - "0,5,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDRightSideExpand": { "Vertices": [ - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDBottomSideExpand": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "5,5,0;;;", - "5,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDLeftSideExpand": { "Vertices": [ - "0,0,-5;;;-d3", - "5,0,-5;;;-d3", - "5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3", + "5.0, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallStone" + "Textures": "BallStone", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] } @@ -1920,241 +2096,261 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,5,0;;;", - "0,0,0;;;", - "5,0,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "0,0;;", - "1,0;;", - "1,1;;", - "0,1;;" + "0.0, 5.0, 0.0", + "0.0, 0.0, 0.0", + "5.0, 0.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0, 0.0", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "0,0,-5;;;-d3", - "0,5,-5;;;-d3", - "5,5,-5;;;-d3", - "5,0,-5;;;-d3" - ], - "UVs": [ - "0,0;;", - "1,0;;", - "1,1;;", - "0,1;;" + "0.0, 0.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0, 0.0", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,5,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "5,5,0;;;", - "5,0,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "0,0,-5;;;-d3", - "5,0,-5;;;-d3", - "5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "1,0;;-d3", - "1,1;;", - "0,1;;" + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3", + "5.0, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "1.0, 0.0-d3", + "1.0, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDTopSideExpand": { "Vertices": [ - "0,5,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDRightSideExpand": { "Vertices": [ - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;", - "5,5,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDBottomSideExpand": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "5,5,0;;;", - "5,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDLeftSideExpand": { "Vertices": [ - "0,0,-5;;;-d3", - "5,0,-5;;;-d3", - "5,0,0;;;", - "0,0,0;;;" - ], - "UVs": [ - "1,0;+d3;", - "1,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3", + "5.0, 0.0, 0.0", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "BallPaper" + "Textures": "BallPaper", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] } @@ -2175,256 +2371,292 @@ }, "ThreeDTopFace": { "Vertices": [ - "0,0,0;;;", - "5,0,0;;;", - "0,2.5,-0.7;;;", - "5,5,0;;;", - "0,5,0;;;" - ], - "UVs": [ - "0,1;;", - "0,0;;", - "0.5,1;;", - "1,0;;", - "0.5,1;;", - "0,0;;", - "0.5,1;;", - "1,0;;", - "1,1;;" + "0.0, 0.0, 0.0", + "5.0, 0.0, 0.0", + "0.0, 2.5, -0.7", + "5.0, 5.0, 0.0", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "TRIANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "Textures": "FloorTopProfilFlat" + "Textures": "FloorTopProfilFlat", + "Indices": [ + 0, + 1, + 2 + ], + "UVs": [ + "0.0, 1.0", + "0.0, 0.0", + "0.5, 1.0" + ] }, { "Type": "TRIANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "Textures": "FloorTopProfilFlat" + "Textures": "FloorTopProfilFlat", + "Indices": [ + 3, + 2, + 1 + ], + "UVs": [ + "1.0, 0.0", + "0.5, 1.0", + "0.0, 0.0" + ] }, { "Type": "TRIANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "Textures": "FloorTopProfilFlat" + "Textures": "FloorTopProfilFlat", + "Indices": [ + 2, + 3, + 4 + ], + "UVs": [ + "0.5, 1.0", + "1.0, 0.0", + "1.0, 1.0" + ] } ] }, "ThreeDBottomFace": { "Vertices": [ - "5,0,-5;;;-d3", - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,0,-5;;;-d3" - ], - "UVs": [ - "0,1;;", - "1,1;;", - "1,0;;", - "0,0;;" + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 1.0", + "1.0, 1.0", + "1.0, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSide": { "Vertices": [ - "0,0,-5;;;-d3", - "0,0,0;;;", - "0,2.5,-0.7;;;", - "0,2.5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;" - ], - "UVs": [ - "0,0;;-d3", - "0,1;;", - "0.5,0.86;;", - "0.5,0;;-d3", - "1,1;;", - "1,0;;-d3", - "0.5,0;;-d3", - "0.5,0.86;;" + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0", + "0.0, 2.5, -0.7", + "0.0, 2.5, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0-d3", + "0.0, 1.0", + "0.5, 0.86", + "0.5, 0.0-d3" + ] }, { "Type": "RECTANGLE", - "P1": 5, - "P2": 4, - "P3": 3, - "P4": 2, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 5, + 4, + 3, + 2 + ], + "UVs": [ + "1.0, 1.0", + "1.0, 0.0-d3", + "0.5, 0.0-d3", + "0.5, 0.86" + ] } ] }, "TwoDRightSide": { "Vertices": [ - "5,5,0;;;", - "5,5,-5;;;-d3", - "0,5,-5;;;-d3", - "0,5,0;;;" - ], - "UVs": [ - "0,0;;", - "1,0;+d3;", - "1,1;+d3;", - "0,1;;" + "5.0, 5.0, 0.0", + "5.0, 5.0, -5.0-d3", + "0.0, 5.0, -5.0-d3", + "0.0, 5.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 1.0", + "0.0, 1.0" + ] } ] }, "TwoDBottomSide": { "Vertices": [ - "5,5,0;;;", - "5,0,0;;;", - "5,0,-5;;;-d3", - "5,5,-5;;;-d3" - ], - "UVs": [ - "0,1;;", - "0,0;;", - "1,0;+d3;", - "1,1;+d3;" + "5.0, 5.0, 0.0", + "5.0, 0.0, 0.0", + "5.0, 0.0, -5.0-d3", + "5.0, 5.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 1.0", + "0.0, 0.0", + "1.0+d3, 0.0", + "1.0+d3, 1.0" + ] } ] }, "TwoDLeftSide": { "Vertices": [ - "5,0,0;;;", - "5,0,-5;;;-d3", - "0,0,-5;;;-d3", - "0,0,0;;;" - ], - "UVs": [ - "0,1;;", - "1,1;+d3;", - "1,0;+d3;", - "0,0;;" + "5.0, 0.0, 0.0", + "5.0, 0.0, -5.0-d3", + "0.0, 0.0, -5.0-d3", + "0.0, 0.0, 0.0" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorSide" + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.0, 1.0", + "1.0+d3, 1.0", + "1.0+d3, 0.0", + "0.0, 0.0" + ] } ] }, "TwoDTopSideExpand": null, "TwoDRightSideExpand": { "Vertices": [ - "0,5,0;;;", - "5,5,0;;;", - "5,5,-2.5;;;", - "0,5,-2.5;;;", - "0,5,-5;;;-d3", - "5,5,-5;;;-d3" - ], - "UVs": [ - "0,1;;", - "0,0;;", - "0.5,0;;", - "0.5,1;;", - "0.5,0;+d3;", - "0.5,1;+d3;", - "0,1;;", - "0,0;;" + "0.0, 5.0, 0.0", + "5.0, 5.0, 0.0", + "5.0, 5.0, -2.5", + "0.0, 5.0, -2.5", + "0.0, 5.0, -5.0-d3", + "5.0, 5.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 0, - "P2": 1, - "P3": 2, - "P4": 3, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.0, 1.0", + "0.0, 0.0", + "0.5, 0.0", + "0.5, 1.0" + ] }, { "Type": "RECTANGLE", - "P1": 5, - "P2": 4, - "P3": 3, - "P4": 2, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 5, + 4, + 3, + 2 + ], + "UVs": [ + "0.5+d3, 0.0", + "0.5+d3, 1.0", + "0.0, 1.0", + "0.0, 0.0" + ] } ] }, "TwoDBottomSideExpand": null, "TwoDLeftSideExpand": { "Vertices": [ - "0,0,0;;;", - "5,0,0;;;", - "5,0,-2.5;;;", - "0,0,-2.5;;;", - "0,0,-5;;;-d3", - "5,0,-5;;;-d3" - ], - "UVs": [ - "0.5,1;;", - "0.5,0;;", - "0,0;;", - "0,1;;", - "0,0;;", - "0,1;;", - "0.5,1;+d3;", - "0.5,0;+d3;" + "0.0, 0.0, 0.0", + "5.0, 0.0, 0.0", + "5.0, 0.0, -2.5", + "0.0, 0.0, -2.5", + "0.0, 0.0, -5.0-d3", + "5.0, 0.0, -5.0-d3" ], "Faces": [ { "Type": "RECTANGLE", - "P1": 3, - "P2": 2, - "P3": 1, - "P4": 0, - "Textures": "FloorTopBorder_ForSide" + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0.5, 1.0", + "0.5, 0.0", + "0.0, 0.0", + "0.0, 1.0" + ] }, { "Type": "RECTANGLE", - "P1": 2, - "P2": 3, - "P3": 4, - "P4": 5, - "Textures": "FloorTopBorderless_ForSide" + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.0, 0.0", + "0.0, 1.0", + "0.5+d3, 1.0", + "0.5+d3, 0.0" + ] } ] } diff --git a/ballance_blender_plugin/json/DerivedBlock.json b/ballance_blender_plugin/json/DerivedBlock.json index 9b23e4c..35bb06d 100644 --- a/ballance_blender_plugin/json/DerivedBlock.json +++ b/ballance_blender_plugin/json/DerivedBlock.json @@ -16,17 +16,17 @@ "SmashedBlocks": [ { "Type": "SinkBorder", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R0", - "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "SinkBorder", - "StartPosition": "0,1;,d1,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R180", - "SideSync": "2dBottom;False;2dTop;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;2dTop;2dRight;3dTop;3dBottom", + "StartPosition": "0 +d1, (2.5*1), 0.0", + "ExpandParam": "0 +d1, 0" } ] }, @@ -47,17 +47,17 @@ "SmashedBlocks": [ { "Type": "NormalBorder", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R0", - "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "NormalBorder", - "StartPosition": "0,1;,d1,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R180", - "SideSync": "2dBottom;False;2dTop;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;2dTop;2dRight;3dTop;3dBottom", + "StartPosition": "0 +d1, (2.5*1), 0.0", + "ExpandParam": "0 +d1, 0" } ] }, @@ -78,45 +78,45 @@ "SmashedBlocks": [ { "Type": "NormalBorder", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R0", - "SideSync": "False;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "NormalBorder", - "StartPosition": "1,1;,d1,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R180", - "SideSync": "False;False;False;2dRight;3dTop;3dBottom" + "SideSync": "False;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1) +d1, (2.5*1), 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,0;2,d1,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom" + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d1, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,1;2,d1,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d1, (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" } ] }, @@ -137,45 +137,45 @@ "SmashedBlocks": [ { "Type": "SinkBorder", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R0", - "SideSync": "False;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "SinkBorder", - "StartPosition": "1,1;,d1,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R180", - "SideSync": "False;False;False;2dRight;3dTop;3dBottom" + "SideSync": "False;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1) +d1, (2.5*1), 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "0,0;2,d1,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom" + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d1, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "0,1;2,d1,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d1, (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" } ] }, @@ -196,31 +196,31 @@ "SmashedBlocks": [ { "Type": "SinkOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom" + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkOutterCorner", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" } ] }, @@ -241,31 +241,31 @@ "SmashedBlocks": [ { "Type": "NormalOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom" + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" } ] }, @@ -286,66 +286,66 @@ "SmashedBlocks": [ { "Type": "Flat", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,d1,,d2", "Rotation": "R0", - "SideSync": "False;False;False;False;3dTop;3dBottom" + "SideSync": "False;False;False;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0 +d1, 0 +d2" }, { "Type": "NormalBorder", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,d2,,", "Rotation": "R0", - "SideSync": "False;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0 +d2, 0" }, { "Type": "NormalBorder", - "StartPosition": "0,1;2,d2,,", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R90", - "SideSync": "False;False;False;2dBottom;3dTop;3dBottom" + "SideSync": "False;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, (2.5*1), 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "NormalBorder", - "StartPosition": "0,0;1,d2,2,d1", - "ExpandPosition": "0,0;,d2,,", "Rotation": "R180", - "SideSync": "False;False;False;2dRight;3dTop;3dBottom" + "SideSync": "False;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1) +d2, (2.5*2) +d1, 0.0", + "ExpandParam": "0 +d2, 0" }, { "Type": "NormalBorder", - "StartPosition": "0,0;,,1,d1", - "ExpandPosition": "0,0;,d1,,", "Rotation": "R270", - "SideSync": "False;False;False;2dTop;3dTop;3dBottom" + "SideSync": "False;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1) +d1, 0.0", + "ExpandParam": "0 +d1, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,0;2,d2,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom" + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,0;2,d2,2,d1", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom" + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, (2.5*2) +d1, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalOutterCorner", - "StartPosition": "0,0;,,2,d1", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*2) +d1, 0.0", + "ExpandParam": "0, 0" } ] }, @@ -366,31 +366,31 @@ "SmashedBlocks": [ { "Type": "NormalOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalBorder", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;False;2dBottom;2dLeft;3dTop;3dBottom" + "SideSync": "False;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalInnerCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom" + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalBorder", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" } ] }, @@ -411,24 +411,24 @@ "SmashedBlocks": [ { "Type": "NormalInnerCorner", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom" + "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalInnerCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom" + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalBorder", - "StartPosition": "0,1;,,,", - "ExpandPosition": "1,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;2dLeft;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;2dLeft;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "1, 0" } ] }, @@ -449,31 +449,31 @@ "SmashedBlocks": [ { "Type": "NormalInnerCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom" + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalInnerCorner", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "False;2dTop;2dRight;False;3dTop;3dBottom" + "SideSync": "False;2dTop;2dRight;False;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalInnerCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "False;2dLeft;2dTop;False;3dTop;3dBottom" + "SideSync": "False;2dLeft;2dTop;False;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "NormalInnerCorner", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom" + "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" } ] }, @@ -494,31 +494,31 @@ "SmashedBlocks": [ { "Type": "SinkOutterCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom" + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkBorder", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;False;2dBottom;2dLeft;3dTop;3dBottom" + "SideSync": "False;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkInnerCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom" + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkBorder", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" } ] }, @@ -539,24 +539,24 @@ "SmashedBlocks": [ { "Type": "SinkInnerCorner", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom" + "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkInnerCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom" + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkBorder", - "StartPosition": "0,1;,,,", - "ExpandPosition": "1,0;,,,", "Rotation": "R270", - "SideSync": "2dRight;False;2dLeft;2dTop;3dTop;3dBottom" + "SideSync": "2dRight;False;2dLeft;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "1, 0" } ] }, @@ -577,31 +577,31 @@ "SmashedBlocks": [ { "Type": "SinkInnerCorner", - "StartPosition": "1,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R0", - "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom" + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkInnerCorner", - "StartPosition": "0,1;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R90", - "SideSync": "False;2dTop;2dRight;False;3dTop;3dBottom" + "SideSync": "False;2dTop;2dRight;False;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkInnerCorner", - "StartPosition": "0,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R180", - "SideSync": "False;2dLeft;2dTop;False;3dTop;3dBottom" + "SideSync": "False;2dLeft;2dTop;False;3dTop;3dBottom", + "StartPosition": "0, 0, 0.0", + "ExpandParam": "0, 0" }, { "Type": "SinkInnerCorner", - "StartPosition": "1,0;,,,", - "ExpandPosition": "0,0;,,,", "Rotation": "R270", - "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom" + "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0.0", + "ExpandParam": "0, 0" } ] }