Merge branch 'Current' into Alpha-3
This commit is contained in:
@@ -23,11 +23,11 @@ If you like what we do and want to help support the development of cats you can
|
|||||||
|
|
||||||
## Blender version support policies.
|
## Blender version support policies.
|
||||||
|
|
||||||
You can find them on the wiki here [HERE](https://avatartoolkit.xyz/wiki.html?version=0.2.0#what-is-avatar-toolkits-version-support-policy)
|
You can find them on the wiki here [HERE](https://avatartoolkit.xyz/legacywiki.html?version=0.2.1#what-is-avatar-toolkits-version-support-policy)
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
See everything Avatar Toolkit has ot offer [here](https://avatartoolkit.xyz/wiki.html)
|
See everything Avatar Toolkit has ot offer [here](https://avatartoolkit.xyz/legacywiki.html)
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ See everything Avatar Toolkit has ot offer [here](https://avatartoolkit.xyz/wiki
|
|||||||
Currently None.
|
Currently None.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
You can find out how to install Avatar Toolkit [here](https://avatartoolkit.xyz/wiki.html?version=0.2.0#how-to-install-avatar-toolkit)
|
You can find out how to install Avatar Toolkit [here](https://avatartoolkit.xyz/legacywiki.html?version=0.2.0#how-to-install-avatar-toolkit)
|
||||||
|
|
||||||
## Help
|
## Help
|
||||||
|
|
||||||
|
|||||||
+4
-3
@@ -16,9 +16,10 @@ from bpy.types import (Context, Object, Modifier, EditBone, Operator, Material,
|
|||||||
from functools import lru_cache
|
from functools import lru_cache
|
||||||
from bpy.props import PointerProperty, IntProperty, StringProperty
|
from bpy.props import PointerProperty, IntProperty, StringProperty
|
||||||
from bpy.utils import register_class
|
from bpy.utils import register_class
|
||||||
from .logging_setup import logger
|
from ..core.logging_setup import logger
|
||||||
from .translations import t
|
from ..core.translations import t
|
||||||
from .dictionaries import reverse_bone_lookup, simplify_bonename
|
from ..core.dictionaries import bone_names
|
||||||
|
from .dictionaries import reverse_bone_lookup, bone_names, simplify_bonename
|
||||||
|
|
||||||
class SceneMatClass(PropertyGroup):
|
class SceneMatClass(PropertyGroup):
|
||||||
mat: PointerProperty(type=Material)
|
mat: PointerProperty(type=Material)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ logger: logging.Logger = logging.getLogger(__name__)
|
|||||||
import importlib.util
|
import importlib.util
|
||||||
|
|
||||||
if importlib.util.find_spec("io_scene_valvesource") is not None:
|
if importlib.util.find_spec("io_scene_valvesource") is not None:
|
||||||
from io_scene_valvesource.import_smd import SmdImporter
|
from io_scene_valvesource.import_smd import SmdImporter # type: ignore
|
||||||
|
|
||||||
class ImportProgress:
|
class ImportProgress:
|
||||||
"""Tracks and logs the progress of multi-file imports"""
|
"""Tracks and logs the progress of multi-file imports"""
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ def configure_logging(enabled: bool = False, level: str = "WARNING") -> None:
|
|||||||
logger.addHandler(handler)
|
logger.addHandler(handler)
|
||||||
|
|
||||||
def error_with_traceback(msg, *args, **kwargs):
|
def error_with_traceback(msg, *args, **kwargs):
|
||||||
if kwargs.get('exc_info', False) or isinstance(msg, Exception):
|
if isinstance(kwargs.get('exception', None), Exception):
|
||||||
full_msg = f"{msg}\n{traceback.format_exc()}"
|
full_msg = f"{msg}\n{traceback.format_exc()}"
|
||||||
_original_error(full_msg, *args, **{**kwargs, 'exc_info': False})
|
_original_error(full_msg, *args, **{**kwargs, 'exc_info': False})
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
from types import FrameType
|
from types import FrameType
|
||||||
import bpy
|
import bpy
|
||||||
import bpy_extras
|
import bpy_extras
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from typing import List, Optional, Dict, Set, Tuple, Any
|
from typing import List, Optional, Dict, Set, Tuple, Any
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from bpy.types import Operator, Context, Object, ArmatureModifier, VertexGroup
|
from bpy.types import Operator, Context, Object, ArmatureModifier, VertexGroup
|
||||||
from mathutils import Vector
|
from mathutils import Vector
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
import re
|
import re
|
||||||
from typing import Set, Dict, List, Optional, Tuple
|
from typing import Set, Dict, List, Optional, Tuple
|
||||||
@@ -121,6 +122,7 @@ class AvatarToolkit_OT_CombineMaterials(Operator):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
num_cleaned = self.clean_material_slots(meshes)
|
num_cleaned = self.clean_material_slots(meshes)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.error(f"Material slot cleanup failed: {traceback.format_exc()}")
|
logger.error(f"Material slot cleanup failed: {traceback.format_exc()}")
|
||||||
self.report({'ERROR'}, t("Optimization.error.slot_cleanup"))
|
self.report({'ERROR'}, t("Optimization.error.slot_cleanup"))
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from typing import Set, List, Tuple, ClassVar
|
from typing import Set, List, Tuple, ClassVar
|
||||||
from bpy.types import Operator, Context, Object
|
from bpy.types import Operator, Context, Object
|
||||||
|
|||||||
@@ -122,7 +122,6 @@ class AvatarToolkit_OT_RemoveDoubles(Operator):
|
|||||||
except Exception:
|
except Exception:
|
||||||
logger.error(f"Error in execute: {traceback.format_exc()}")
|
logger.error(f"Error in execute: {traceback.format_exc()}")
|
||||||
return {'CANCELLED'}
|
return {'CANCELLED'}
|
||||||
|
|
||||||
def modal(self, context: Context, event: Event) -> set[ModalReturnType]:
|
def modal(self, context: Context, event: Event) -> set[ModalReturnType]:
|
||||||
"""Modal operator execution"""
|
"""Modal operator execution"""
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from typing import Set, Dict, List, Tuple, Optional, Any
|
from typing import Set, Dict, List, Tuple, Optional, Any
|
||||||
from bpy.props import StringProperty
|
from bpy.props import StringProperty
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from bpy.types import Operator, Context
|
from bpy.types import Operator, Context
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
import re
|
import re
|
||||||
from bpy.types import Operator, Context, EditBone, Object, Armature, Mesh
|
from bpy.types import Operator, Context, EditBone, Object, Armature, Mesh
|
||||||
@@ -86,7 +87,6 @@ class AvatarToolKit_OT_CreateDigitigradeLegs(Operator):
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.report({'ERROR'}, t("Tools.digitigrade_error", error=traceback.format_exc()))
|
self.report({'ERROR'}, t("Tools.digitigrade_error", error=traceback.format_exc()))
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def execute(self, context: Context) -> set[str]:
|
def execute(self, context: Context) -> set[str]:
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
import math
|
import math
|
||||||
from typing import Set, List
|
from typing import Set, List
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from bpy.types import Operator, Context
|
from bpy.types import Operator, Context
|
||||||
from ...core.translations import t
|
from ...core.translations import t
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from typing import Dict, List, Set, Optional, Tuple, Any
|
from typing import Dict, List, Set, Optional, Tuple, Any
|
||||||
from bpy.types import Operator, Context, Object, PoseBone, EditBone, Bone, Constraint
|
from bpy.types import Operator, Context, Object, PoseBone, EditBone, Bone, Constraint
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# This code was taken from Cats Blender Plugin Unoffical, some of this code is by the original developers, however was improved by myself.
|
# This code was taken from Cats Blender Plugin Unoffical, some of this code is by the original developers, however was improved by myself.
|
||||||
# Didn't think it was necessary to re-make something that works well.
|
# Didn't think it was necessary to re-make something that works well.
|
||||||
|
|
||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from typing import Dict, List, Optional, Tuple, Any, Set, Union
|
from typing import Dict, List, Optional, Tuple, Any, Set, Union
|
||||||
from bpy.types import Operator, Context, Object, ShapeKey
|
from bpy.types import Operator, Context, Object, ShapeKey
|
||||||
|
|||||||
Reference in New Issue
Block a user