fix: Timer not unregistered error
fix: handle correctly unsupported float parameter for geometry nodes fix: Material loading
This commit is contained in:
@ -365,10 +365,7 @@ def load_materials_slots(src_materials: list, dst_materials: bpy.types.bpy_prop_
|
|||||||
if mat_uuid is not None:
|
if mat_uuid is not None:
|
||||||
mat_ref = get_datablock_from_uuid(mat_uuid, None)
|
mat_ref = get_datablock_from_uuid(mat_uuid, None)
|
||||||
else:
|
else:
|
||||||
mat_ref = bpy.data.materials.get(mat_name, None)
|
mat_ref = bpy.data.materials[mat_name]
|
||||||
|
|
||||||
if mat_ref is None:
|
|
||||||
raise Exception(f"Material {mat_name} doesn't exist")
|
|
||||||
|
|
||||||
dst_materials.append(mat_ref)
|
dst_materials.append(mat_ref)
|
||||||
|
|
||||||
|
@ -55,7 +55,9 @@ def dump_modifier_geometry_node_inputs(modifier: bpy.types.Modifier) -> list:
|
|||||||
dumped_input = None
|
dumped_input = None
|
||||||
if isinstance(input_value, bpy.types.ID):
|
if isinstance(input_value, bpy.types.ID):
|
||||||
dumped_input = input_value.uuid
|
dumped_input = input_value.uuid
|
||||||
elif type(input_value) in [int, str, float]:
|
elif isinstance(input_value, float):
|
||||||
|
logging.warning("Float parameter not supported in blender 2.92, skipping it")
|
||||||
|
elif isinstance(input_value,(int, str)):
|
||||||
dumped_input = input_value
|
dumped_input = input_value
|
||||||
elif hasattr(input_value, 'to_list'):
|
elif hasattr(input_value, 'to_list'):
|
||||||
dumped_input = input_value.to_list()
|
dumped_input = input_value.to_list()
|
||||||
@ -78,7 +80,9 @@ def load_modifier_geometry_node_inputs(dumped_modifier: dict, target_modifier: b
|
|||||||
for input_index, input_name in enumerate(inputs_name):
|
for input_index, input_name in enumerate(inputs_name):
|
||||||
dumped_value = dumped_modifier['inputs'][input_index]
|
dumped_value = dumped_modifier['inputs'][input_index]
|
||||||
input_value = target_modifier[input_name]
|
input_value = target_modifier[input_name]
|
||||||
if type(input_value) in [int, str, float]:
|
if isinstance(input_value, float):
|
||||||
|
logging.warning("Float parameter not supported in blender 2.92, skipping it")
|
||||||
|
elif isinstance(input_value,(int, str)):
|
||||||
target_modifier[input_name] = dumped_value
|
target_modifier[input_name] = dumped_value
|
||||||
elif hasattr(input_value, 'to_list'):
|
elif hasattr(input_value, 'to_list'):
|
||||||
for index in range(len(input_value)):
|
for index in range(len(input_value)):
|
||||||
|
@ -210,8 +210,6 @@ class SessionStartOperator(bpy.types.Operator):
|
|||||||
type_module_class,
|
type_module_class,
|
||||||
check_common=type_module_class.bl_check_common)
|
check_common=type_module_class.bl_check_common)
|
||||||
|
|
||||||
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
|
|
||||||
|
|
||||||
if bpy.app.version[1] >= 91:
|
if bpy.app.version[1] >= 91:
|
||||||
python_binary_path = sys.executable
|
python_binary_path = sys.executable
|
||||||
else:
|
else:
|
||||||
@ -272,6 +270,7 @@ class SessionStartOperator(bpy.types.Operator):
|
|||||||
# Background client updates service
|
# Background client updates service
|
||||||
deleyables.append(timers.ClientUpdate())
|
deleyables.append(timers.ClientUpdate())
|
||||||
deleyables.append(timers.DynamicRightSelectTimer())
|
deleyables.append(timers.DynamicRightSelectTimer())
|
||||||
|
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
|
||||||
# deleyables.append(timers.PushTimer(
|
# deleyables.append(timers.PushTimer(
|
||||||
# queue=stagging,
|
# queue=stagging,
|
||||||
# timeout=settings.depsgraph_update_rate
|
# timeout=settings.depsgraph_update_rate
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
|
import traceback
|
||||||
import bpy
|
import bpy
|
||||||
from replication.constants import (FETCHED, RP_COMMON, STATE_ACTIVE,
|
from replication.constants import (FETCHED, RP_COMMON, STATE_ACTIVE,
|
||||||
STATE_INITIAL, STATE_LOBBY, STATE_QUITTING,
|
STATE_INITIAL, STATE_LOBBY, STATE_QUITTING,
|
||||||
@ -112,7 +112,8 @@ class ApplyTimer(Timer):
|
|||||||
try:
|
try:
|
||||||
session.apply(node)
|
session.apply(node)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(f"Fail to apply {node_ref.uuid}: {e}")
|
logging.error(f"Fail to apply {node_ref.uuid}")
|
||||||
|
traceback.print_exc()
|
||||||
else:
|
else:
|
||||||
if node_ref.bl_reload_parent:
|
if node_ref.bl_reload_parent:
|
||||||
for parent in session._graph.find_parents(node):
|
for parent in session._graph.find_parents(node):
|
||||||
|
Reference in New Issue
Block a user