|
1 | 1 | import bpy |
2 | 2 | from bpy.types import Context, Operator |
3 | | -from bpy.types import Node, NodeTree, NodeSocketInterface |
| 3 | +from bpy.types import Node, NodeTree |
| 4 | + |
| 5 | +if bpy.app.version < (4, 0, 0): |
| 6 | + from bpy.types import NodeSocketInterface |
4 | 7 |
|
5 | 8 | import os |
6 | 9 | from typing import TextIO |
@@ -255,37 +258,38 @@ def _set_settings_defaults(self, node: Node, inner: str, node_var: str |
255 | 258 | self._load_image(attr, inner, f"{node_var}.{attr_name}") |
256 | 259 | elif type == ST.IMAGE_USER: |
257 | 260 | self._image_user_settings(attr, inner, f"{node_var}.{attr_name}") |
| 261 | + |
| 262 | + if bpy.app.version < (4, 0, 0): |
| 263 | + def _set_group_socket_default_v3(self, socket_interface: NodeSocketInterface, |
| 264 | + inner: str, socket_var: str) -> None: |
| 265 | + """ |
| 266 | + Set a node group input/output's default properties if they exist |
258 | 267 |
|
259 | | - def _set_group_socket_default(self, socket_interface: NodeSocketInterface, |
260 | | - inner: str, socket_var: str) -> None: |
261 | | - """ |
262 | | - Set a node group input/output's default properties if they exist |
263 | | -
|
264 | | - Parameters: |
265 | | - socket_interface (NodeSocketInterface): socket interface associated |
266 | | - with the input/output |
267 | | - inner (str): indentation string |
268 | | - socket_var (str): variable name for the socket |
269 | | - """ |
270 | | - if socket_interface.type not in default_sockets: |
271 | | - return |
| 268 | + Parameters: |
| 269 | + socket_interface (NodeSocketInterface): socket interface associated |
| 270 | + with the input/output |
| 271 | + inner (str): indentation string |
| 272 | + socket_var (str): variable name for the socket |
| 273 | + """ |
| 274 | + if socket_interface.type not in default_sockets: |
| 275 | + return |
272 | 276 |
|
273 | | - if socket_interface.type == 'RGBA': |
274 | | - dv = vec4_to_py_str(socket_interface.default_value) |
275 | | - elif socket_interface.type == 'VECTOR': |
276 | | - dv = vec3_to_py_str(socket_interface.default_value) |
277 | | - else: |
278 | | - dv = socket_interface.default_value |
279 | | - self._write(f"{inner}{socket_var}.default_value = {dv}\n") |
280 | | - |
281 | | - #min value |
282 | | - if hasattr(socket_interface, "min_value"): |
283 | | - min_val = socket_interface.min_value |
284 | | - self._write(f"{inner}{socket_var}.min_value = {min_val}\n") |
285 | | - #max value |
286 | | - if hasattr(socket_interface, "min_value"): |
287 | | - max_val = socket_interface.max_value |
288 | | - self._write((f"{inner}{socket_var}.max_value = {max_val}\n")) |
| 277 | + if socket_interface.type == 'RGBA': |
| 278 | + dv = vec4_to_py_str(socket_interface.default_value) |
| 279 | + elif socket_interface.type == 'VECTOR': |
| 280 | + dv = vec3_to_py_str(socket_interface.default_value) |
| 281 | + else: |
| 282 | + dv = socket_interface.default_value |
| 283 | + self._write(f"{inner}{socket_var}.default_value = {dv}\n") |
| 284 | + |
| 285 | + #min value |
| 286 | + if hasattr(socket_interface, "min_value"): |
| 287 | + min_val = socket_interface.min_value |
| 288 | + self._write(f"{inner}{socket_var}.min_value = {min_val}\n") |
| 289 | + #max value |
| 290 | + if hasattr(socket_interface, "min_value"): |
| 291 | + max_val = socket_interface.max_value |
| 292 | + self._write((f"{inner}{socket_var}.max_value = {max_val}\n")) |
289 | 293 |
|
290 | 294 | def _group_io_settings(self, node: bpy.types.Node, inner: str, |
291 | 295 | io: str, #TODO: convert to enum |
@@ -322,7 +326,8 @@ def _group_io_settings(self, node: bpy.types.Node, inner: str, |
322 | 326 | socket_interface = io_socket_interfaces[i] |
323 | 327 | socket_var = f"{node_tree_var}.{io}s[{i}]" |
324 | 328 |
|
325 | | - self._set_group_socket_default(socket_interface, inner, socket_var) |
| 329 | + if bpy.app.version < (4, 0, 0): |
| 330 | + self._set_group_socket_default_v3(socket_interface, inner, socket_var) |
326 | 331 |
|
327 | 332 | #default attribute name |
328 | 333 | if hasattr(socket_interface, "default_attribute_name"): |
|
0 commit comments