Merge branch '181-geometry-nodes-int-float-inputs-doesn-t-sync' into 'develop'

Resolve "Geometry nodes int/float inputs doesn't sync"

See merge request slumber/multi-user!116
This commit is contained in:
Swann Martinez
2021-03-31 13:42:26 +00:00
4 changed files with 12 additions and 11 deletions

View File

@ -365,10 +365,7 @@ def load_materials_slots(src_materials: list, dst_materials: bpy.types.bpy_prop_
if mat_uuid is not None:
mat_ref = get_datablock_from_uuid(mat_uuid, None)
else:
mat_ref = bpy.data.materials.get(mat_name, None)
if mat_ref is None:
raise Exception(f"Material {mat_name} doesn't exist")
mat_ref = bpy.data.materials[mat_name]
dst_materials.append(mat_ref)

View File

@ -55,7 +55,9 @@ def dump_modifier_geometry_node_inputs(modifier: bpy.types.Modifier) -> list:
dumped_input = None
if isinstance(input_value, bpy.types.ID):
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
elif hasattr(input_value, 'to_list'):
dumped_input = input_value.to_list()
@ -78,8 +80,10 @@ def load_modifier_geometry_node_inputs(dumped_modifier: dict, target_modifier: b
for input_index, input_name in enumerate(inputs_name):
dumped_value = dumped_modifier['inputs'][input_index]
input_value = target_modifier[input_name]
if type(input_value) in [int, str, float]:
input_value = dumped_value
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
elif hasattr(input_value, 'to_list'):
for index in range(len(input_value)):
input_value[index] = dumped_value[index]

View File

@ -210,8 +210,6 @@ class SessionStartOperator(bpy.types.Operator):
type_module_class,
check_common=type_module_class.bl_check_common)
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
if bpy.app.version[1] >= 91:
python_binary_path = sys.executable
else:
@ -272,6 +270,7 @@ class SessionStartOperator(bpy.types.Operator):
# Background client updates service
deleyables.append(timers.ClientUpdate())
deleyables.append(timers.DynamicRightSelectTimer())
deleyables.append(timers.ApplyTimer(timeout=settings.depsgraph_update_rate))
# deleyables.append(timers.PushTimer(
# queue=stagging,
# timeout=settings.depsgraph_update_rate

View File

@ -17,7 +17,7 @@
import logging
import sys
import traceback
import bpy
from replication.constants import (FETCHED, RP_COMMON, STATE_ACTIVE,
STATE_INITIAL, STATE_LOBBY, STATE_QUITTING,
@ -112,7 +112,8 @@ class ApplyTimer(Timer):
try:
session.apply(node)
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:
if node_ref.bl_reload_parent:
for parent in session._graph.find_parents(node):