diff --git a/ballance_blender_plugin/OBJS_add_floors.py b/ballance_blender_plugin/OBJS_add_floors.py index 6b34d26..0b00f66 100644 --- a/ballance_blender_plugin/OBJS_add_floors.py +++ b/ballance_blender_plugin/OBJS_add_floors.py @@ -471,9 +471,19 @@ def _load_derived_floor(mesh, floor_type, height_multiplier, d1, d2, sides_struc # iterate smahsed blocks for blk in floor_prototype['SmashedBlocks']: + # calc basic parameter start_pos = _solve_vec_data(blk['StartPosition'], d1, d2, height_multiplier, block_3dworld_unit) expand_param = _solve_expand_param(blk['ExpandParam'], d1, d2) + # re-calc height multiply for this block. + # if the translation of Z is not zero + if start_pos[2] != 0.0: + raw_height = (height_multiplier - 1) * 5.0 + start_pos[2] # test height + blk_height = max(0, (raw_height / 5.0) + 1) # prevent minus height + else: + blk_height = height_multiplier + + # get face data sides_data = tuple(sides_dict[x] for x in blk['SideSync'].split(';')) # call basic floor creator @@ -481,7 +491,7 @@ def _load_derived_floor(mesh, floor_type, height_multiplier, d1, d2, sides_struc mesh, blk['Type'], blk['Rotation'], - height_multiplier, + blk_height, expand_param[0], expand_param[1], sides_data, diff --git a/ballance_blender_plugin/icons/floor/NormalFloorHead.png b/ballance_blender_plugin/icons/floor/NormalFloorHead.png deleted file mode 100644 index 0a34c4f..0000000 Binary files a/ballance_blender_plugin/icons/floor/NormalFloorHead.png and /dev/null differ diff --git a/ballance_blender_plugin/icons/floor/NormalFloorTerminal.png b/ballance_blender_plugin/icons/floor/NormalFloorTerminal.png new file mode 100644 index 0000000..c846388 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/NormalFloorTerminal.png differ diff --git a/ballance_blender_plugin/icons/floor/RibbonOutterCorner.png b/ballance_blender_plugin/icons/floor/RibbonOutterCorner.png new file mode 100644 index 0000000..25dc741 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/RibbonOutterCorner.png differ diff --git a/ballance_blender_plugin/icons/floor/RibbonPlatform.png b/ballance_blender_plugin/icons/floor/RibbonPlatform.png new file mode 100644 index 0000000..09145ca Binary files /dev/null and b/ballance_blender_plugin/icons/floor/RibbonPlatform.png differ diff --git a/ballance_blender_plugin/icons/floor/SinkFloorHead.png b/ballance_blender_plugin/icons/floor/SinkFloorHead.png deleted file mode 100644 index 871420f..0000000 Binary files a/ballance_blender_plugin/icons/floor/SinkFloorHead.png and /dev/null differ diff --git a/ballance_blender_plugin/icons/floor/SinkFloorTerminal.png b/ballance_blender_plugin/icons/floor/SinkFloorTerminal.png new file mode 100644 index 0000000..f554bcb Binary files /dev/null and b/ballance_blender_plugin/icons/floor/SinkFloorTerminal.png differ diff --git a/ballance_blender_plugin/icons/floor/SinkPlatform.png b/ballance_blender_plugin/icons/floor/SinkPlatform.png new file mode 100644 index 0000000..a6da996 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/SinkPlatform.png differ diff --git a/ballance_blender_plugin/icons/floor/WideCrossroad.png b/ballance_blender_plugin/icons/floor/WideCrossroad.png new file mode 100644 index 0000000..24e7fef Binary files /dev/null and b/ballance_blender_plugin/icons/floor/WideCrossroad.png differ diff --git a/ballance_blender_plugin/icons/floor/WideFloor.png b/ballance_blender_plugin/icons/floor/WideFloor.png new file mode 100644 index 0000000..32cad74 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/WideFloor.png differ diff --git a/ballance_blender_plugin/icons/floor/WideFloorTerminal.png b/ballance_blender_plugin/icons/floor/WideFloorTerminal.png new file mode 100644 index 0000000..baa19a4 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/WideFloorTerminal.png differ diff --git a/ballance_blender_plugin/icons/floor/WideLConnector.png b/ballance_blender_plugin/icons/floor/WideLConnector.png new file mode 100644 index 0000000..e559e88 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/WideLConnector.png differ diff --git a/ballance_blender_plugin/icons/floor/WideTConnector.png b/ballance_blender_plugin/icons/floor/WideTConnector.png new file mode 100644 index 0000000..ef1d4c5 Binary files /dev/null and b/ballance_blender_plugin/icons/floor/WideTConnector.png differ diff --git a/ballance_blender_plugin/json/basic_blocks/ribbon_blocks.json b/ballance_blender_plugin/json/basic_blocks/ribbon_blocks.json new file mode 100644 index 0000000..4feef80 --- /dev/null +++ b/ballance_blender_plugin/json/basic_blocks/ribbon_blocks.json @@ -0,0 +1,493 @@ +[ + { + "Type": "RibbonBorder", + "BindingDisplayTexture": "RibbonBorder.png", + "UnitSize": "Small", + "ExpandType": "Column", + "InitColumnDirection": "PositiveX", + "DefaultSideConfig": { + "UseTwoDTop": false, + "UseTwoDRight": false, + "UseTwoDBottom": false, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "ThreeDTopFace": { + "Vertices": [ + "2.5+d1, 0, 0", + "2.5+d1, 2.5, -0.7", + "0, 2.5, -0.7", + "0, 0, 0" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0, -d1", + "1, -d1", + "1, 0.5", + "0, 0.5" + ] + } + ] + }, + "ThreeDBottomFace": { + "Vertices": [ + "2.5+d1, 0, -5-d3", + "2.5+d1, 2.5, -5-d3", + "0, 2.5, -5-d3", + "0, 0, -5-d3" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, 0.5", + "0.5, 0.5", + "0.5, -d1", + "0, -d1" + ] + } + ] + }, + "TwoDTopSide": { + "Vertices": [ + "0, 0, -5-d3", + "0, 0, 0", + "0, 2.5, -0.7", + "0, 2.5, -5-d3" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1+d3, 0", + "0, 0", + "0.14, 0.5", + "1+d3, 0.5" + ] + } + ] + }, + "TwoDRightSide": { + "Vertices": [ + "2.5+d1, 2.5, -0.7", + "2.5+d1, 2.5, -5-d3", + "0, 2.5, -5-d3", + "0, 2.5, -0.7" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0.14, -d1", + "1+d3, -d1", + "1+d3, 0.5", + "0.14, 0.5" + ] + } + ] + }, + "TwoDBottomSide": { + "Vertices": [ + "2.5+d1, 0, 0", + "2.5+d1, 0, -5-d3", + "2.5+d1, 2.5, -5-d3", + "2.5+d1, 2.5, -0.7" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "0, 0", + "1+d3, 0", + "1+d3, 0.5", + "0.14, 0.5" + ] + } + ] + }, + "TwoDLeftSide": { + "Vertices": [ + "2.5+d1, 0, 0", + "2.5+d1, 0, -5-d3", + "0, 0, -5-d3", + "0, 0, 0" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, 0.5", + "1+d3, 0.5", + "1+d3, -d1", + "0, -d1" + ] + } + ] + }, + "TwoDTopSideExpand": null, + "TwoDRightSideExpand": null, + "TwoDBottomSideExpand": null, + "TwoDLeftSideExpand": { + "Vertices": [ + "2.5+d1, 0, -5-d3", + "0, 0, -5-d3", + "0, 0, -2.5", + "2.5+d1, 0, -2.5", + "2.5+d1, 0, 0", + "0, 0, 0" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, -d1", + "0, -d1", + "0, 0.5" + ] + }, + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, -d1", + "0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, -d1" + ] + } + ] + } + }, + { + "Type": "RibbonOutterCorner", + "BindingDisplayTexture": "RibbonOutterCorner.png", + "UnitSize": "Small", + "ExpandType": "Static", + "InitColumnDirection": "PositiveX", + "DefaultSideConfig": { + "UseTwoDTop": true, + "UseTwoDRight": false, + "UseTwoDBottom": false, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "ThreeDTopFace": { + "Vertices": [ + "0, 0, 0", + "2.5, 0, 0", + "2.5, 2.5, -0.7", + "0, 2.5, 0" + ], + "Faces": [ + { + "Type": "TRIANGLE", + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 1, + 2 + ], + "UVs": [ + "0, 0", + "0, 1", + "1, 1" + ] + }, + { + "Type": "TRIANGLE", + "Textures": "FloorTopFlat", + "Indices": [ + 0, + 2, + 3 + ], + "UVs": [ + "1, 0", + "0, 1", + "1, 1" + ] + } + ] + }, + "ThreeDBottomFace": { + "Vertices": [ + "2.5, 0, -5-d3", + "2.5, 2.5, -5-d3", + "0, 2.5, -5-d3", + "0, 0, -5-d3" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, 0.5", + "0.5, 0.5", + "0.5, 0", + "0, 0" + ] + } + ] + }, + "TwoDTopSide": { + "Vertices": [ + "0, 0, -5-d3", + "0, 0, 0", + "0, 2.5, 0", + "0, 2.5, -5-d3" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1+d3, 0", + "0, 0", + "0, 0.5", + "1+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" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1+d3, 0", + "1+d3, 0.5", + "0, 0.5", + "0.14, 0" + ] + } + ] + }, + "TwoDBottomSide": { + "Vertices": [ + "2.5, 0, -5-d3", + "2.5, 2.5, -5-d3", + "2.5, 2.5, -0.7", + "2.5, 0, 0" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 0, + 1, + 2, + 3 + ], + "UVs": [ + "1+d3, 0", + "1+d3, 0.5", + "0.14, 0.5", + "0, 0" + ] + } + ] + }, + "TwoDLeftSide": { + "Vertices": [ + "2.5, 0, 0", + "2.5, 0, -5-d3", + "0, 0, -5-d3", + "0, 0, 0" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, 0.5", + "1+d3, 0.5", + "1+d3, 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" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0", + "0, 0", + "0, 0.5" + ] + }, + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, 0", + "0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0" + ] + } + ] + }, + "TwoDRightSideExpand": null, + "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" + ], + "Faces": [ + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorder_ForSide", + "Indices": [ + 2, + 3, + 4, + 5 + ], + "UVs": [ + "0.5, 0.5", + "0.5, 0", + "0, 0", + "0, 0.5" + ] + }, + { + "Type": "RECTANGLE", + "Textures": "FloorTopBorderless_ForSide", + "Indices": [ + 3, + 2, + 1, + 0 + ], + "UVs": [ + "0, 0", + "0, 0.5", + "0.5+d3, 0.5", + "0.5+d3, 0" + ] + } + ] + } + } +] \ No newline at end of file diff --git a/ballance_blender_plugin/json/derived_blocks/normal_blocks.json b/ballance_blender_plugin/json/derived_blocks/normal_blocks.json index 166b1ab..ded579e 100644 --- a/ballance_blender_plugin/json/derived_blocks/normal_blocks.json +++ b/ballance_blender_plugin/json/derived_blocks/normal_blocks.json @@ -31,59 +31,31 @@ ] }, { - "Type": "NormalFloorHead", - "BindingDisplayTexture": "NormalFloorHead.png", + "Type": "NormalFloorTerminal", + "BindingDisplayTexture": "NormalFloorTerminal.png", "UnitSize": "Small", - "ExpandType": "Column", + "ExpandType": "Static", "InitColumnDirection": "PositiveX", "DefaultSideConfig": { "UseTwoDTop": true, "UseTwoDRight": true, - "UseTwoDBottom": true, + "UseTwoDBottom": false, "UseTwoDLeft": true, "UseThreeDTop": true, "UseThreeDBottom": false }, "SmashedBlocks": [ - { - "Type": "NormalBorder", - "Rotation": "R0", - "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", - "StartPosition": "(2.5*1), 0, 0", - "ExpandParam": "d1, 0" - }, - { - "Type": "NormalBorder", - "Rotation": "R180", - "SideSync": "False;False;False;2dRight;3dTop;3dBottom", - "StartPosition": "(2.5*1) +d1, (2.5*1), 0", - "ExpandParam": "d1, 0" - }, { "Type": "NormalOutterCorner", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom", "StartPosition": "0, 0, 0", "ExpandParam": "0, 0" }, - { - "Type": "NormalOutterCorner", - "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", - "StartPosition": "(2.5*2) +d1, 0, 0", - "ExpandParam": "0, 0" - }, - { - "Type": "NormalOutterCorner", - "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", - "StartPosition": "(2.5*2) +d1, (2.5*1), 0", - "ExpandParam": "0, 0" - }, { "Type": "NormalOutterCorner", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "SideSync": "2dRight;2dBottom;False;2dTop;3dTop;3dBottom", "StartPosition": "0, (2.5*1), 0", "ExpandParam": "0, 0" } diff --git a/ballance_blender_plugin/json/derived_blocks/sink_blocks.json b/ballance_blender_plugin/json/derived_blocks/sink_blocks.json index f32e5b8..f7ca115 100644 --- a/ballance_blender_plugin/json/derived_blocks/sink_blocks.json +++ b/ballance_blender_plugin/json/derived_blocks/sink_blocks.json @@ -31,59 +31,31 @@ ] }, { - "Type": "SinkFloorHead", - "BindingDisplayTexture": "SinkFloorHead.png", + "Type": "SinkFloorTerminal", + "BindingDisplayTexture": "SinkFloorTerminal.png", "UnitSize": "Small", - "ExpandType": "Column", + "ExpandType": "Static", "InitColumnDirection": "PositiveX", "DefaultSideConfig": { "UseTwoDTop": true, "UseTwoDRight": true, - "UseTwoDBottom": true, + "UseTwoDBottom": false, "UseTwoDLeft": true, "UseThreeDTop": true, "UseThreeDBottom": false }, "SmashedBlocks": [ - { - "Type": "SinkBorder", - "Rotation": "R0", - "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", - "StartPosition": "(2.5*1), 0, 0", - "ExpandParam": "d1, 0" - }, - { - "Type": "SinkBorder", - "Rotation": "R180", - "SideSync": "False;False;False;2dRight;3dTop;3dBottom", - "StartPosition": "(2.5*1) +d1, (2.5*1), 0", - "ExpandParam": "d1, 0" - }, { "Type": "SinkOutterCorner", "Rotation": "R0", - "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom", "StartPosition": "0, 0, 0", "ExpandParam": "0, 0" }, - { - "Type": "SinkOutterCorner", - "Rotation": "R90", - "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", - "StartPosition": "(2.5*2) +d1, 0, 0", - "ExpandParam": "0, 0" - }, - { - "Type": "SinkOutterCorner", - "Rotation": "R180", - "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", - "StartPosition": "(2.5*2) +d1, (2.5*1), 0", - "ExpandParam": "0, 0" - }, { "Type": "SinkOutterCorner", "Rotation": "R270", - "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "SideSync": "2dRight;2dBottom;False;2dTop;3dTop;3dBottom", "StartPosition": "0, (2.5*1), 0", "ExpandParam": "0, 0" } @@ -134,6 +106,166 @@ } ] }, + { + "Type": "SinkPlatform", + "BindingDisplayTexture": "SinkPlatform.png", + "UnitSize": "Small", + "ExpandType": "Freedom", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": true, + "UseTwoDRight": true, + "UseTwoDBottom": true, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;False;False;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), -0.7", + "ExpandParam": "d1, d2" + }, + { + "Type": "SinkBorder", + "Rotation": "R0", + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0", + "ExpandParam": "d2, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R90", + "SideSync": "False;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, (2.5*1), 0", + "ExpandParam": "d1, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R180", + "SideSync": "False;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1) +d2, (2.5*2) +d1, 0", + "ExpandParam": "d2, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R270", + "SideSync": "False;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1) +d1, 0", + "ExpandParam": "d1, 0" + }, + { + "Type": "SinkOutterCorner", + "Rotation": "R0", + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkOutterCorner", + "Rotation": "R90", + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkOutterCorner", + "Rotation": "R180", + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, (2.5*2) +d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkOutterCorner", + "Rotation": "R270", + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*2) +d1, 0", + "ExpandParam": "0, 0" + } + ] + }, + { + "Type": "RibbonPlatform", + "BindingDisplayTexture": "RibbonPlatform.png", + "UnitSize": "Small", + "ExpandType": "Freedom", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": true, + "UseTwoDRight": true, + "UseTwoDBottom": true, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;False;False;False;3dTop;3dBottom", + "StartPosition": "(2.5*1), (2.5*1), -0.7", + "ExpandParam": "d1, d2" + }, + { + "Type": "RibbonBorder", + "Rotation": "R0", + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0", + "ExpandParam": "d2, 0" + }, + { + "Type": "RibbonBorder", + "Rotation": "R90", + "SideSync": "False;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, (2.5*1), 0", + "ExpandParam": "d1, 0" + }, + { + "Type": "RibbonBorder", + "Rotation": "R180", + "SideSync": "False;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*1) +d2, (2.5*2) +d1, 0", + "ExpandParam": "d2, 0" + }, + { + "Type": "RibbonBorder", + "Rotation": "R270", + "SideSync": "False;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1) +d1, 0", + "ExpandParam": "d1, 0" + }, + { + "Type": "RibbonOutterCorner", + "Rotation": "R0", + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "RibbonOutterCorner", + "Rotation": "R90", + "SideSync": "2dLeft;False;False;2dBottom;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "RibbonOutterCorner", + "Rotation": "R180", + "SideSync": "2dBottom;False;False;2dRight;3dTop;3dBottom", + "StartPosition": "(2.5*2) +d2, (2.5*2) +d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "RibbonOutterCorner", + "Rotation": "R270", + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*2) +d1, 0", + "ExpandParam": "0, 0" + } + ] + }, { "Type": "SinkLConnector", "BindingDisplayTexture": "SinkLConnector.png", diff --git a/ballance_blender_plugin/json/derived_blocks/wide_blocks.json b/ballance_blender_plugin/json/derived_blocks/wide_blocks.json new file mode 100644 index 0000000..65bfa58 --- /dev/null +++ b/ballance_blender_plugin/json/derived_blocks/wide_blocks.json @@ -0,0 +1,262 @@ +[ + { + "Type": "WideFloor", + "BindingDisplayTexture": "WideFloor.png", + "UnitSize": "Small", + "ExpandType": "Freedom", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": false, + "UseTwoDRight": true, + "UseTwoDBottom": false, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "SinkBorder", + "Rotation": "R0", + "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0", + "ExpandParam": "d2, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R180", + "SideSync": "2dBottom;False;2dTop;2dRight;3dTop;3dBottom", + "StartPosition": "d2, (2.5*2)+d1, 0", + "ExpandParam": "d2, 0" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "2dTop;False;2dBottom;False;3dTop;3dBottom", + "StartPosition": "0, (2.5*1), -0.7", + "ExpandParam": "d1, d2" + } + ] + }, + { + "Type": "WideFloorTerminal", + "BindingDisplayTexture": "WideFloorTerminal.png", + "UnitSize": "Small", + "ExpandType": "Column", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": true, + "UseTwoDRight": true, + "UseTwoDBottom": false, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "SinkOutterCorner", + "Rotation": "R0", + "SideSync": "2dTop;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkOutterCorner", + "Rotation": "R270", + "SideSync": "2dRight;2dBottom;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*2)+d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R270", + "SideSync": "False;2dBottom;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*1) +d1, 0", + "ExpandParam": "d1, 0" + } + ] + }, + { + "Type": "WideLConnector", + "BindingDisplayTexture": "WideLConnector.png", + "UnitSize": "Small", + "ExpandType": "Column", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": true, + "UseTwoDRight": false, + "UseTwoDBottom": false, + "UseTwoDLeft": true, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "SinkOutterCorner", + "Rotation": "R0", + "SideSync": "2dTop;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "0, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R0", + "SideSync": "False;False;2dBottom;2dLeft;3dTop;3dBottom", + "StartPosition": "(2.5*1), 0, 0", + "ExpandParam": "d1 + 1, 0" + }, + { + "Type": "SinkInnerCorner", + "Rotation": "R0", + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*2) + d1, (2.5*2) + d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R270", + "SideSync": "2dRight;False;False;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*2)+d1, 0", + "ExpandParam": "d1 + 1, 0" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;False;2dBottom;False;3dTop;3dBottom", + "StartPosition": "2.5, 2.5, -0.7", + "ExpandParam": "d1, d1 + 1" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;2dRight;False;False;3dTop;3dBottom", + "StartPosition": "2.5, (2.5 * 2) + d1, -0.7", + "ExpandParam": "0, d1" + } + ] + }, + { + "Type": "WideTConnector", + "BindingDisplayTexture": "WideTConnector.png", + "UnitSize": "Small", + "ExpandType": "Column", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": true, + "UseTwoDRight": false, + "UseTwoDBottom": false, + "UseTwoDLeft": false, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "SinkInnerCorner", + "Rotation": "R270", + "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom", + "StartPosition": "(2.5*2) + d1, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkInnerCorner", + "Rotation": "R0", + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*2) + d1, (2.5*2) + d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkBorder", + "Rotation": "R270", + "SideSync": "2dRight;False;2dLeft;2dTop;3dTop;3dBottom", + "StartPosition": "0, (2.5*2) + d1, 0", + "ExpandParam": "d1 + 2, 0" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;False;2dBottom;False;3dTop;3dBottom", + "StartPosition": "2.5, 2.5, -0.7", + "ExpandParam": "d1, d1+1" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "2.5, 0, -0.7", + "ExpandParam": "0, d1" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;2dRight;False;False;3dTop;3dBottom", + "StartPosition": "2.5, (2.5*2)+d1, -0.7", + "ExpandParam": "0, d1" + } + ] + }, + { + "Type": "WideCrossroad", + "BindingDisplayTexture": "WideCrossroad.png", + "UnitSize": "Small", + "ExpandType": "Column", + "InitColumnDirection": "PositiveY", + "DefaultSideConfig": { + "UseTwoDTop": false, + "UseTwoDRight": false, + "UseTwoDBottom": false, + "UseTwoDLeft": false, + "UseThreeDTop": true, + "UseThreeDBottom": false + }, + "SmashedBlocks": [ + { + "Type": "SinkInnerCorner", + "Rotation": "R0", + "SideSync": "False;2dRight;2dBottom;False;3dTop;3dBottom", + "StartPosition": "(2.5*2)+d1, (2.5*2)+d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkInnerCorner", + "Rotation": "R90", + "SideSync": "False;2dTop;2dRight;False;3dTop;3dBottom", + "StartPosition": "0, (2.5*2)+d1, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkInnerCorner", + "Rotation": "R180", + "SideSync": "False;2dLeft;2dTop;False;3dTop;3dBottom", + "StartPosition": "0, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "SinkInnerCorner", + "Rotation": "R270", + "SideSync": "False;2dBottom;2dLeft;False;3dTop;3dBottom", + "StartPosition": "(2.5*2)+d1, 0, 0", + "ExpandParam": "0, 0" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "2dTop;False;2dBottom;False;3dTop;3dBottom", + "StartPosition": "0, 2.5, -0.7", + "ExpandParam": "d1, d1+2" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;False;False;2dLeft;3dTop;3dBottom", + "StartPosition": "2.5, 0, -0.7", + "ExpandParam": "0, d1" + }, + { + "Type": "Flat", + "Rotation": "R0", + "SideSync": "False;2dRight;False;False;3dTop;3dBottom", + "StartPosition": "2.5, (2.5*2)+d1, -0.7", + "ExpandParam": "0, d1" + } + ] + } +] \ No newline at end of file