# coding=utf8
# the above tag defines encoding for this document and is for Python 2.x compatibility
import re
regex = r"(\s\{\s*\"\$name\": \"use_specular_aa\",\s*\"\$type\": \"::bool\",\s*\"\$value\": )true(\s*\})"
test_str = (" \"$name\": \"Materials\",\n"
" \"$type\": \"tdb::Folder\",\n"
" \"$children\": [\n"
" {\n"
" \"$name\": \"Official_colours\",\n"
" \"$type\": \"tdb::Folder\",\n"
" \"$children\": [\n"
" {\n"
" \"$name\": \"car_Dodge_Viper_ACR_carpaint_silver\",\n"
" \"$type\": \"@tts::editor::MaterialEntity\",\n"
" \"$params\": {\n"
" \"lightmapSpecificParams\": {\n"
" \"shadowColor\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"transparencyMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseMapOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseColorOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMapUVChannelIdx\": 1,\n"
" \"diffuseMapUVChannelIdx\": 1,\n"
" \"emissiveMultiplier\": 1.0,\n"
" \"singleSided\": false\n"
" },\n"
" \"metashaderRef\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/shaders/carpaint.jshader\"\n"
" },\n"
" \"features\": [\n"
" {\n"
" \"$name\": \"albedo_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"roughness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"occlusion_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"metalness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"tint_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"emissive_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map_no_occlusion\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"damage_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_diffuse\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map_uv2\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"specular_dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"always_use_transparency\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_paint_flakes\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"use_diffuse_reflection\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_material_texture_mask\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_LOD_alpha_switch\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_floor_ao\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_specular_aa\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" }\n"
" ],\n"
" \"constants\": [\n"
" {\n"
" \"$name\": \"albedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBAf\",\n"
" \"$value\": [\n"
" 0.03235999867320061,\n"
" 0.03824000060558319,\n"
" 0.04236000031232834,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"metalness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.10000000149011612\n"
" },\n"
" {\n"
" \"$name\": \"reflectionExponent\",\n"
" \"$type\": \"::ReflectionFresnelExponent\",\n"
" \"$value\": 5.0\n"
" },\n"
" {\n"
" \"$name\": \"reflectionScale\",\n"
" \"$type\": \"::ReflectionScale\",\n"
" \"$value\": 1.5\n"
" },\n"
" {\n"
" \"$name\": \"flakesTilingMultiplier\",\n"
" \"$type\": \"::NoiseTilingMultiplier\",\n"
" \"$value\": [\n"
" 30.0,\n"
" 30.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.25308001041412356,\n"
" 0.29142001271247866,\n"
" 0.3487899899482727\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualTonePower\",\n"
" \"$type\": \"::MaterialExponent\",\n"
" \"$value\": 10.0\n"
" },\n"
" {\n"
" \"$name\": \"dirtFactor\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"damageFactorPerSideLRFB\",\n"
" \"$type\": \"::DamageFactorPerSideLRFB\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.0,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"roughness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.10000000149011612\n"
" },\n"
" {\n"
" \"$name\": \"generalFlakesScale\",\n"
" \"$type\": \"::CarpaintFlakesScale\",\n"
" \"$value\": 1.0\n"
" },\n"
" {\n"
" \"$name\": \"directionalFlakesScale\",\n"
" \"$type\": \"::CarpaintFlakesScale\",\n"
" \"$value\": 1.0\n"
" },\n"
" {\n"
" \"$name\": \"specularAAAmount\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 1.0\n"
" }\n"
" ],\n"
" \"textures\": [\n"
" {\n"
" \"$name\": \"attributes\",\n"
" \"$type\": \"::AttributesMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_carpaint_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"damage\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_damage_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"dirt\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_dirt_mud_dfa.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"flakes\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_flake05_noise.tga\"\n"
" }\n"
" }\n"
" ],\n"
" \"renderState\": {\n"
" \"blendingMode\": \"Opaque\",\n"
" \"depthWrite\": \"Auto\",\n"
" \"twoSided\": false,\n"
" \"renderLayer\": 0,\n"
" \"renderPass\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" }\n"
" },\n"
" \"materialComponent\": {}\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"car_Dodge_Viper_ACR_carpaint_red\",\n"
" \"$type\": \"@tts::editor::MaterialEntity\",\n"
" \"$params\": {\n"
" \"lightmapSpecificParams\": {\n"
" \"shadowColor\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"transparencyMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseMapOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseColorOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMapUVChannelIdx\": 1,\n"
" \"diffuseMapUVChannelIdx\": 1,\n"
" \"emissiveMultiplier\": 1.0,\n"
" \"singleSided\": false\n"
" },\n"
" \"metashaderRef\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/shaders/carpaint.jshader\"\n"
" },\n"
" \"features\": [\n"
" {\n"
" \"$name\": \"albedo_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"roughness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"occlusion_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"metalness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"tint_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"emissive_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map_no_occlusion\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"damage_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_diffuse\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map_uv2\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"specular_dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"always_use_transparency\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_paint_flakes\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"use_diffuse_reflection\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_material_texture_mask\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_LOD_alpha_switch\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_floor_ao\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_specular_aa\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" }\n"
" ],\n"
" \"constants\": [\n"
" {\n"
" \"$name\": \"albedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBAf\",\n"
" \"$value\": [\n"
" 0.21041999757289887,\n"
" 0.0,\n"
" 0.0,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"metalness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.10000000149011612\n"
" },\n"
" {\n"
" \"$name\": \"reflectionExponent\",\n"
" \"$type\": \"::ReflectionFresnelExponent\",\n"
" \"$value\": 5.0\n"
" },\n"
" {\n"
" \"$name\": \"reflectionScale\",\n"
" \"$type\": \"::ReflectionScale\",\n"
" \"$value\": 1.5\n"
" },\n"
" {\n"
" \"$name\": \"flakesTilingMultiplier\",\n"
" \"$type\": \"::NoiseTilingMultiplier\",\n"
" \"$value\": [\n"
" 30.0,\n"
" 30.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.6226800084114075,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualTonePower\",\n"
" \"$type\": \"::MaterialExponent\",\n"
" \"$value\": 30.0\n"
" },\n"
" {\n"
" \"$name\": \"dirtFactor\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"damageFactorPerSideLRFB\",\n"
" \"$type\": \"::DamageFactorPerSideLRFB\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.0,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"roughness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"generalFlakesScale\",\n"
" \"$type\": \"::CarpaintFlakesScale\",\n"
" \"$value\": 1.0\n"
" },\n"
" {\n"
" \"$name\": \"directionalFlakesScale\",\n"
" \"$type\": \"::CarpaintFlakesScale\",\n"
" \"$value\": 1.0\n"
" },\n"
" {\n"
" \"$name\": \"specularAAAmount\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 1.0\n"
" }\n"
" ],\n"
" \"textures\": [\n"
" {\n"
" \"$name\": \"damage\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_damage_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"dirt\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_dirt_mud_dfa.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"flakes\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_flake05_noise.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"attributes\",\n"
" \"$type\": \"::AttributesMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_carpaint_mk.tga\"\n"
" }\n"
" }\n"
" ],\n"
" \"renderState\": {\n"
" \"blendingMode\": \"Opaque\",\n"
" \"depthWrite\": \"Auto\",\n"
" \"twoSided\": false,\n"
" \"renderLayer\": 0,\n"
" \"renderPass\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" }\n"
" },\n"
" \"materialComponent\": {}\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"car_Dodge_Viper_ACR_carpaint_blue\",\n"
" \"$type\": \"@tts::editor::MaterialEntity\",\n"
" \"$params\": {\n"
" \"lightmapSpecificParams\": {\n"
" \"shadowColor\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"transparencyMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseMapOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseColorOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMapUVChannelIdx\": 1,\n"
" \"diffuseMapUVChannelIdx\": 1,\n"
" \"emissiveMultiplier\": 1.0,\n"
" \"singleSided\": false\n"
" },\n"
" \"metashaderRef\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/shaders/carpaint.jshader\"\n"
" },\n"
" \"features\": [\n"
" {\n"
" \"$name\": \"albedo_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"roughness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"occlusion_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"metalness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"tint_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"emissive_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map_no_occlusion\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"damage_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_diffuse\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map_uv2\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"specular_dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"always_use_transparency\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_paint_flakes\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"use_diffuse_reflection\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_material_texture_mask\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_LOD_alpha_switch\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_floor_ao\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_specular_aa\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" }\n"
" ],\n"
" \"constants\": [\n"
" {\n"
" \"$name\": \"albedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBAf\",\n"
" \"$value\": [\n"
" 0.00022000000171829015,\n"
" 0.0294599998742342,\n"
" 0.19374999403953553,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"metalness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.10000000149011612\n"
" },\n"
" {\n"
" \"$name\": \"reflectionExponent\",\n"
" \"$type\": \"::ReflectionFresnelExponent\",\n"
" \"$value\": 5.0\n"
" },\n"
" {\n"
" \"$name\": \"reflectionScale\",\n"
" \"$type\": \"::ReflectionScale\",\n"
" \"$value\": 1.5\n"
" },\n"
" {\n"
" \"$name\": \"flakesTilingMultiplier\",\n"
" \"$type\": \"::NoiseTilingMultiplier\",\n"
" \"$value\": [\n"
" 30.0,\n"
" 30.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.028839999809861184,\n"
" 0.3259499967098236\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualTonePower\",\n"
" \"$type\": \"::MaterialExponent\",\n"
" \"$value\": 15.0\n"
" },\n"
" {\n"
" \"$name\": \"dirtFactor\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"damageFactorPerSideLRFB\",\n"
" \"$type\": \"::DamageFactorPerSideLRFB\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.0,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"roughness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"generalFlakesScale\",\n"
" \"$type\": \"::CarpaintFlakesScale\",\n"
" \"$value\": 1.0\n"
" },\n"
" {\n"
" \"$name\": \"directionalFlakesScale\",\n"
" \"$type\": \"::CarpaintFlakesScale\",\n"
" \"$value\": 1.0\n"
" },\n"
" {\n"
" \"$name\": \"specularAAAmount\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 1.0\n"
" }\n"
" ],\n"
" \"textures\": [\n"
" {\n"
" \"$name\": \"damage\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_damage_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"dirt\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_dirt_mud_dfa.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"flakes\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_flake05_noise.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"attributes\",\n"
" \"$type\": \"::AttributesMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_carpaint_mk.tga\"\n"
" }\n"
" }\n"
" ],\n"
" \"renderState\": {\n"
" \"blendingMode\": \"Opaque\",\n"
" \"depthWrite\": \"Auto\",\n"
" \"twoSided\": false,\n"
" \"renderLayer\": 0,\n"
" \"renderPass\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" }\n"
" },\n"
" \"materialComponent\": {}\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"car_Dodge_Viper_ACR_LOD_red\",\n"
" \"$type\": \"@tts::editor::MaterialEntity\",\n"
" \"$params\": {\n"
" \"lightmapSpecificParams\": {\n"
" \"shadowColor\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"transparencyMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseMapOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseColorOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMapUVChannelIdx\": 1,\n"
" \"diffuseMapUVChannelIdx\": 1,\n"
" \"emissiveMultiplier\": 1.0,\n"
" \"singleSided\": false\n"
" },\n"
" \"metashaderRef\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/shaders/carpaint.jshader\"\n"
" },\n"
" \"features\": [\n"
" {\n"
" \"$name\": \"albedo_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"normal_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"roughness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"occlusion_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"metalness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"tint_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map_no_occlusion\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"damage_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_diffuse\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map_uv2\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"specular_dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"always_use_transparency\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_paint_flakes\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_diffuse_reflection\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_material_texture_mask\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"use_LOD_alpha_switch\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_floor_ao\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_specular_aa\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" }\n"
" ],\n"
" \"constants\": [\n"
" {\n"
" \"$name\": \"albedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBAf\",\n"
" \"$value\": [\n"
" 1.0,\n"
" 1.0,\n"
" 1.0,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"metalness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.10000000149011612\n"
" },\n"
" {\n"
" \"$name\": \"reflectionExponent\",\n"
" \"$type\": \"::ReflectionFresnelExponent\",\n"
" \"$value\": 5.0\n"
" },\n"
" {\n"
" \"$name\": \"reflectionScale\",\n"
" \"$type\": \"::ReflectionScale\",\n"
" \"$value\": 1.5\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 1.0,\n"
" 1.0,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualTonePower\",\n"
" \"$type\": \"::MaterialExponent\",\n"
" \"$value\": 30.0\n"
" },\n"
" {\n"
" \"$name\": \"dirtFactor\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"damageFactorPerSideLRFB\",\n"
" \"$type\": \"::DamageFactorPerSideLRFB\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.0,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"roughness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"albedoColor2\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.21041999757289887,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor2\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.6226800084114075,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"specularAAAmount\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 1.0\n"
" }\n"
" ],\n"
" \"textures\": [\n"
" {\n"
" \"$name\": \"albedo\",\n"
" \"$type\": \"::AnyDiffuseOrAlbedoMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_LOD_al.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"attributes\",\n"
" \"$type\": \"::AttributesMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_LOD_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"dirt\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_dirt_mud_dfa.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"damage\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_damage_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"tintEmissive\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_LOD_tem.tga\"\n"
" }\n"
" }\n"
" ],\n"
" \"renderState\": {\n"
" \"blendingMode\": \"Opaque\",\n"
" \"depthWrite\": \"Auto\",\n"
" \"twoSided\": false,\n"
" \"renderLayer\": 0,\n"
" \"renderPass\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" }\n"
" },\n"
" \"materialComponent\": {}\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"car_Dodge_Viper_ACR_LOD_blue\",\n"
" \"$type\": \"@tts::editor::MaterialEntity\",\n"
" \"$params\": {\n"
" \"lightmapSpecificParams\": {\n"
" \"shadowColor\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"transparencyMap\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseMapOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"diffuseColorOverride\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" },\n"
" \"normalMapUVChannelIdx\": 1,\n"
" \"diffuseMapUVChannelIdx\": 1,\n"
" \"emissiveMultiplier\": 1.0,\n"
" \"singleSided\": false\n"
" },\n"
" \"metashaderRef\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/shaders/carpaint.jshader\"\n"
" },\n"
" \"features\": [\n"
" {\n"
" \"$name\": \"albedo_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"normal_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"roughness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"occlusion_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"metalness_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"tint_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"dirt_map_no_occlusion\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"damage_map\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"emissive_diffuse\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"normal_map_uv2\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"specular_dual_tone\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"always_use_transparency\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_paint_flakes\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_diffuse_reflection\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_material_texture_mask\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": true\n"
" },\n"
" {\n"
" \"$name\": \"use_LOD_alpha_switch\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_floor_ao\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" },\n"
" {\n"
" \"$name\": \"use_specular_aa\",\n"
" \"$type\": \"::bool\",\n"
" \"$value\": false\n"
" }\n"
" ],\n"
" \"constants\": [\n"
" {\n"
" \"$name\": \"albedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBAf\",\n"
" \"$value\": [\n"
" 1.0,\n"
" 1.0,\n"
" 1.0,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"metalness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.10000000149011612\n"
" },\n"
" {\n"
" \"$name\": \"reflectionExponent\",\n"
" \"$type\": \"::ReflectionFresnelExponent\",\n"
" \"$value\": 5.0\n"
" },\n"
" {\n"
" \"$name\": \"reflectionScale\",\n"
" \"$type\": \"::ReflectionScale\",\n"
" \"$value\": 1.5\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 1.0,\n"
" 1.0,\n"
" 1.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualTonePower\",\n"
" \"$type\": \"::MaterialExponent\",\n"
" \"$value\": 15.0\n"
" },\n"
" {\n"
" \"$name\": \"dirtFactor\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"damageFactorPerSideLRFB\",\n"
" \"$type\": \"::DamageFactorPerSideLRFB\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.0,\n"
" 0.0,\n"
" 0.0\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"roughness\",\n"
" \"$type\": \"::editor::material::UNorm\",\n"
" \"$value\": 0.0\n"
" },\n"
" {\n"
" \"$name\": \"albedoColor2\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.00022000000171829015,\n"
" 0.0294599998742342,\n"
" 0.19374999403953553\n"
" ]\n"
" },\n"
" {\n"
" \"$name\": \"dualToneAlbedoColor2\",\n"
" \"$type\": \"::editor::material::LinearRGBf\",\n"
" \"$value\": [\n"
" 0.0,\n"
" 0.028839999809861184,\n"
" 0.3259499967098236\n"
" ]\n"
" }\n"
" ],\n"
" \"textures\": [\n"
" {\n"
" \"$name\": \"albedo\",\n"
" \"$type\": \"::AnyDiffuseOrAlbedoMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_LOD_al.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"attributes\",\n"
" \"$type\": \"::AttributesMapReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_LOD_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"dirt\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_dirt_mud_dfa.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"damage\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_damage_mk.tga\"\n"
" }\n"
" },\n"
" {\n"
" \"$name\": \"tintEmissive\",\n"
" \"$type\": \"::editor::TextureReference\",\n"
" \"$value\": {\n"
" \"is_initialized\": true,\n"
" \"value\": \"resources/gfx3D/cars/textures/car_Dodge_Viper_ACR_2016_LOD_tem.tga\"\n"
" }\n"
" }\n"
" ],\n"
" \"renderState\": {\n"
" \"blendingMode\": \"Opaque\",\n"
" \"depthWrite\": \"Auto\",\n"
" \"twoSided\": false,\n"
" \"renderLayer\": 0,\n"
" \"renderPass\": {\n"
" \"$isSet\": false,\n"
" \"$hasValue\": false\n"
" }\n"
" },\n"
" \"materialComponent\": {}\n"
" }\n"
" },")
matches = re.finditer(regex, test_str, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group()))
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum)))
# Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html