fix(helpers): camera, lights and material loading error
This commit is contained in:
@ -227,7 +227,7 @@ class RCFClientAgent(object):
|
|||||||
port = int(msg.pop(0))
|
port = int(msg.pop(0))
|
||||||
|
|
||||||
if self.server is None:
|
if self.server is None:
|
||||||
if address == '127.0.0.1':
|
if address == '127.0.0.1' or 'localhost' :
|
||||||
self.admin = True
|
self.admin = True
|
||||||
self.server = RCFServer(self.ctx, address, port, self.id)
|
self.server = RCFServer(self.ctx, address, port, self.id)
|
||||||
self.publisher.connect(
|
self.publisher.connect(
|
||||||
@ -237,7 +237,7 @@ class RCFClientAgent(object):
|
|||||||
logger.error("E: too many servers (max. %i)", SERVER_MAX)
|
logger.error("E: too many servers (max. %i)", SERVER_MAX)
|
||||||
|
|
||||||
elif command == b"DISCONNECT":
|
elif command == b"DISCONNECT":
|
||||||
if not self.admin:
|
if self.admin is False:
|
||||||
uid = self.id.decode()
|
uid = self.id.decode()
|
||||||
|
|
||||||
for k,v in self.property_map.items():
|
for k,v in self.property_map.items():
|
||||||
|
82
helpers.py
82
helpers.py
@ -1,4 +1,5 @@
|
|||||||
import bpy
|
import bpy
|
||||||
|
import sys
|
||||||
import mathutils
|
import mathutils
|
||||||
from .libs import dump_anything
|
from .libs import dump_anything
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
@ -71,6 +72,8 @@ def load(key, value):
|
|||||||
load_client(key.split('/')[1], value)
|
load_client(key.split('/')[1], value)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def resolve_bpy_path(path):
|
def resolve_bpy_path(path):
|
||||||
"""
|
"""
|
||||||
Get bpy property value from path
|
Get bpy property value from path
|
||||||
@ -174,7 +177,7 @@ def load_object(target=None, data=None, create=False):
|
|||||||
target.id = data['id']
|
target.id = data['id']
|
||||||
|
|
||||||
except:
|
except:
|
||||||
print("Object {} loading error ".format(data["name"]))
|
logger.error("Object {} loading error ".format(data["name"]))
|
||||||
|
|
||||||
|
|
||||||
def load_collection(target=None, data=None, create=False):
|
def load_collection(target=None, data=None, create=False):
|
||||||
@ -201,7 +204,7 @@ def load_collection(target=None, data=None, create=False):
|
|||||||
|
|
||||||
target.id = data['id']
|
target.id = data['id']
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Collection loading error: {}".format(e))
|
logger.error("Collection loading error: {}".format(e))
|
||||||
|
|
||||||
|
|
||||||
def load_scene(target=None, data=None, create=False):
|
def load_scene(target=None, data=None, create=False):
|
||||||
@ -232,53 +235,58 @@ def load_scene(target=None, data=None, create=False):
|
|||||||
# if data["grease_pencil"]:
|
# if data["grease_pencil"]:
|
||||||
# target.grease_pencil = bpy.data.grease_pencils[data["grease_pencil"]["name"]]
|
# target.grease_pencil = bpy.data.grease_pencils[data["grease_pencil"]["name"]]
|
||||||
except:
|
except:
|
||||||
print("Scene loading error")
|
logger.error("Scene loading error")
|
||||||
|
|
||||||
|
|
||||||
def load_material(target=None, data=None, create=False):
|
def load_material(target=None, data=None, create=False):
|
||||||
try:
|
try:
|
||||||
if target is None and create:
|
if target is None:
|
||||||
target = bpy.data.materials.new(data["name"])
|
target = bpy.data.materials.new(data["name"])
|
||||||
|
|
||||||
# Load other meshes metadata
|
# Load other meshes metadata
|
||||||
dump_anything.load(target, data)
|
dump_anything.load(target, data)
|
||||||
|
|
||||||
# load nodes
|
# load nodes
|
||||||
for node in data["node_tree"]["nodes"]:
|
if data["node_tree"]:
|
||||||
index = target.node_tree.nodes.find(node)
|
for node in data["node_tree"]["nodes"]:
|
||||||
|
# fix None node tree error
|
||||||
|
if target.node_tree is None:
|
||||||
|
target.use_nodes = True
|
||||||
|
|
||||||
if index is -1:
|
index = target.node_tree.nodes.find(node)
|
||||||
node_type = data["node_tree"]["nodes"][node]["bl_idname"]
|
|
||||||
|
|
||||||
target.node_tree.nodes.new(type=node_type)
|
if index is -1:
|
||||||
|
node_type = data["node_tree"]["nodes"][node]["bl_idname"]
|
||||||
|
|
||||||
dump_anything.load(
|
target.node_tree.nodes.new(type=node_type)
|
||||||
target.node_tree.nodes[index], data["node_tree"]["nodes"][node])
|
|
||||||
|
|
||||||
for input in data["node_tree"]["nodes"][node]["inputs"]:
|
dump_anything.load(
|
||||||
|
target.node_tree.nodes[index], data["node_tree"]["nodes"][node])
|
||||||
|
|
||||||
try:
|
for input in data["node_tree"]["nodes"][node]["inputs"]:
|
||||||
target.node_tree.nodes[index].inputs[input].default_value = data[
|
|
||||||
"node_tree"]["nodes"][node]["inputs"][input]["default_value"]
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
# Load nodes links
|
try:
|
||||||
target.node_tree.links.clear()
|
target.node_tree.nodes[index].inputs[input].default_value = data[
|
||||||
|
"node_tree"]["nodes"][node]["inputs"][input]["default_value"]
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Load nodes links
|
||||||
|
target.node_tree.links.clear()
|
||||||
|
|
||||||
|
for link in data["node_tree"]["links"]:
|
||||||
|
current_link = data["node_tree"]["links"][link]
|
||||||
|
input_socket = target.node_tree.nodes[current_link['to_node']
|
||||||
|
['name']].inputs[current_link['to_socket']['name']]
|
||||||
|
output_socket = target.node_tree.nodes[current_link['from_node']
|
||||||
|
['name']].outputs[current_link['from_socket']['name']]
|
||||||
|
|
||||||
|
target.node_tree.links.new(input_socket, output_socket)
|
||||||
|
|
||||||
target.id = data['id']
|
target.id = data['id']
|
||||||
|
|
||||||
for link in data["node_tree"]["links"]:
|
except Exception as e:
|
||||||
current_link = data["node_tree"]["links"][link]
|
logger.error("Material loading error: {}".format(e))
|
||||||
input_socket = target.node_tree.nodes[current_link['to_node']
|
|
||||||
['name']].inputs[current_link['to_socket']['name']]
|
|
||||||
output_socket = target.node_tree.nodes[current_link['from_node']
|
|
||||||
['name']].outputs[current_link['from_socket']['name']]
|
|
||||||
|
|
||||||
target.node_tree.links.new(input_socket, output_socket)
|
|
||||||
|
|
||||||
except:
|
|
||||||
print("Material loading error")
|
|
||||||
|
|
||||||
|
|
||||||
def load_gpencil_layer(target=None, data=None, create=False):
|
def load_gpencil_layer(target=None, data=None, create=False):
|
||||||
@ -327,32 +335,32 @@ def load_gpencil(target=None, data=None, create=False):
|
|||||||
|
|
||||||
target.id = data['id']
|
target.id = data['id']
|
||||||
except:
|
except:
|
||||||
print("default loading error")
|
logger.error("default loading error")
|
||||||
|
|
||||||
|
|
||||||
def load_light(target=None, data=None, create=False, type=None):
|
def load_light(target=None, data=None, create=False, type=None):
|
||||||
try:
|
try:
|
||||||
if target is None and create:
|
if target is None and create:
|
||||||
bpy.data.lights.new(data["name"], data["type"])
|
target = bpy.data.lights.new(data["name"], data["type"])
|
||||||
|
|
||||||
|
|
||||||
dump_anything.load(target, data)
|
dump_anything.load(target, data)
|
||||||
|
|
||||||
target.id = data['id']
|
target.id = data['id']
|
||||||
except:
|
except Exception as e:
|
||||||
print("light loading error")
|
logger.error("light loading error: {}".format(e))
|
||||||
|
|
||||||
|
|
||||||
def load_default(target=None, data=None, create=False, type=None):
|
def load_default(target=None, data=None, create=False, type=None):
|
||||||
try:
|
try:
|
||||||
if target is None and create:
|
if target is None and create:
|
||||||
getattr(bpy.data, CORRESPONDANCE[type]).new(data["name"])
|
target = getattr(bpy.data, CORRESPONDANCE[type]).new(data["name"])
|
||||||
|
|
||||||
dump_anything.load(target, data)
|
dump_anything.load(target, data)
|
||||||
|
|
||||||
target.id = data['id']
|
target.id = data['id']
|
||||||
except:
|
except Exception as e:
|
||||||
print("default loading error")
|
logger.error("default loading error {}".format(e))
|
||||||
|
|
||||||
# DUMP HELPERS
|
# DUMP HELPERS
|
||||||
def dump(key):
|
def dump(key):
|
||||||
|
@ -28,9 +28,6 @@ class RCFMessage(object):
|
|||||||
self.body = body
|
self.body = body
|
||||||
self.id = id
|
self.id = id
|
||||||
|
|
||||||
def apply(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def store(self, dikt):
|
def store(self, dikt):
|
||||||
"""Store me in a dict if I have anything to store"""
|
"""Store me in a dict if I have anything to store"""
|
||||||
# this currently erasing old value
|
# this currently erasing old value
|
||||||
@ -41,9 +38,6 @@ class RCFMessage(object):
|
|||||||
else:
|
else:
|
||||||
dikt[self.key] = self
|
dikt[self.key] = self
|
||||||
|
|
||||||
# elif self.key in dikt:
|
|
||||||
# del dikt[self.key]
|
|
||||||
|
|
||||||
def send(self, socket):
|
def send(self, socket):
|
||||||
"""Send key-value message to socket; any empty frames are sent as such."""
|
"""Send key-value message to socket; any empty frames are sent as such."""
|
||||||
key = ''.encode() if self.key is None else self.key.encode()
|
key = ''.encode() if self.key is None else self.key.encode()
|
||||||
|
Reference in New Issue
Block a user