Skip to content

Commit 832801e

Browse files
Merge pull request #136 from BrendanParmer/Blender-4.3
Blender 4.3
2 parents 5adb353 + c128afa commit 832801e

File tree

12 files changed

+311
-56
lines changed

12 files changed

+311
-56
lines changed

CONTRIBUTORS.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
* [Brendan Parmer](https://github.com/BrendanParmer)
2+
* [Carlsu](https://github.com/carls3d)
3+
* [atticus-lv](https://github.com/atticus-lv)

NodeToPython/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "Node to Python",
33
"description": "Convert Blender node groups to a Python add-on!",
44
"author": "Brendan Parmer",
5-
"version": (3, 2, 1),
5+
"version": (3, 3, 0),
66
"blender": (3, 0, 0),
77
"location": "Node",
88
"category": "Node",

NodeToPython/blender_manifest.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
schema_version = "1.0.0"
22

33
id = "node_to_python"
4-
version = "3.2.1"
4+
version = "3.3.0"
55
name = "Node To Python"
66
tagline = "Turn node groups into Python code"
77
maintainer = "Brendan Parmer <[email protected]>"
@@ -12,7 +12,7 @@ website = "https://github.com/BrendanParmer/NodeToPython"
1212
tags = ["Development", "Compositing", "Geometry Nodes", "Material", "Node"]
1313

1414
blender_version_min = "4.2.0"
15-
blender_version_max = "4.3.0"
15+
blender_version_max = "4.4.0"
1616

1717
license = [
1818
"SPDX:MIT",

NodeToPython/compositor/operator.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ def _set_color_balance_settings(self, node: CompositorNodeColorBalance
107107
NTPNodeSetting("gamma", ST.COLOR, min_version_=(3, 5, 0)),
108108
NTPNodeSetting("lift", ST.VEC3, max_version_=(3, 5, 0)),
109109
NTPNodeSetting("lift", ST.COLOR, min_version_=(3, 5, 0))]
110-
else:
110+
elif node.correction_method == 'OFFSET_POWER_SLOPE':
111111
lst = [NTPNodeSetting("correction_method", ST.ENUM),
112112
NTPNodeSetting("offset", ST.VEC3, max_version_=(3, 5, 0)),
113113
NTPNodeSetting("offset", ST.COLOR, min_version_=(3, 5, 0)),
@@ -116,6 +116,17 @@ def _set_color_balance_settings(self, node: CompositorNodeColorBalance
116116
NTPNodeSetting("power", ST.COLOR, min_version_=(3, 5, 0)),
117117
NTPNodeSetting("slope", ST.VEC3, max_version_=(3, 5, 0)),
118118
NTPNodeSetting("slope", ST.COLOR, min_version_=(3, 5, 0))]
119+
elif node.correction_method == 'WHITEPOINT':
120+
lst = [NTPNodeSetting("correction_method", ST.ENUM),
121+
NTPNodeSetting("input_temperature", ST.FLOAT),
122+
NTPNodeSetting("input_tint", ST.FLOAT),
123+
NTPNodeSetting("output_temperature", ST.FLOAT),
124+
NTPNodeSetting("output_tint", ST.FLOAT)]
125+
else:
126+
self.report({'ERROR'},
127+
f"Unknown color balance correction method "
128+
f"{enum_to_py_str(node.correction_method)}")
129+
return
119130

120131
color_balance_info = self._node_infos['CompositorNodeColorBalance']
121132
self._node_infos['CompositorNodeColorBalance'] = color_balance_info._replace(attributes_ = lst)

NodeToPython/geometry/node_tree.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
11
import bpy
2-
from bpy.types import GeometryNodeTree
2+
from bpy.types import GeometryNodeTree, GeometryNode
33

44
if bpy.app.version >= (3, 6, 0):
55
from bpy.types import GeometryNodeSimulationInput
66

7-
if bpy.app.version > (4, 0, 0):
7+
if bpy.app.version >= (4, 0, 0):
88
from bpy.types import GeometryNodeRepeatInput
99

10+
if bpy.app.version >= (4, 3, 0):
11+
from bpy.types import GeometryNodeForeachGeometryElementInput
12+
1013
from ..ntp_node_tree import NTP_NodeTree
1114

1215
class NTP_GeoNodeTree(NTP_NodeTree):
1316
def __init__(self, node_tree: GeometryNodeTree, var: str):
1417
super().__init__(node_tree, var)
18+
self.zone_inputs: dict[list[GeometryNode]] = {}
1519
if bpy.app.version >= (3, 6, 0):
16-
self.sim_inputs: list[GeometryNodeSimulationInput] = []
20+
self.zone_inputs["GeometryNodeSimulationInput"] = []
1721
if bpy.app.version >= (4, 0, 0):
18-
self.repeat_inputs: list[GeometryNodeRepeatInput] = []
22+
self.zone_inputs["GeometryNodeRepeatInput"] = []
23+
if bpy.app.version >= (4, 3, 0):
24+
self.zone_inputs["GeometryNodeForeachGeometryElementInput"] = []

NodeToPython/geometry/operator.py

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,12 @@ def _process_node(self, node: Node, ntp_nt: NTP_GeoNodeTree) -> None:
4949
self._group_io_settings(node, "output", ntp_nt)
5050
ntp_nt.outputs_set = True
5151

52-
if node.bl_idname == 'GeometryNodeSimulationInput':
53-
ntp_nt.sim_inputs.append(node)
54-
55-
elif node.bl_idname == 'GeometryNodeRepeatInput':
56-
ntp_nt.repeat_inputs.append(node)
52+
if node.bl_idname in ntp_nt.zone_inputs:
53+
ntp_nt.zone_inputs[node.bl_idname].append(node)
5754

5855
self._hide_hidden_sockets(node)
5956

60-
if node.bl_idname not in {'GeometryNodeSimulationInput',
61-
'GeometryNodeRepeatInput'}:
57+
if node.bl_idname not in ntp_nt.zone_inputs:
6258
self._set_socket_defaults(node)
6359

6460
if bpy.app.version >= (3, 6, 0):
@@ -139,10 +135,8 @@ def _process_node_tree(self, node_tree: GeometryNodeTree) -> None:
139135
for node in node_tree.nodes:
140136
self._process_node(node, ntp_nt)
141137

142-
if bpy.app.version >= (3, 6, 0):
143-
self._process_zones(ntp_nt.sim_inputs)
144-
if bpy.app.version >= (4, 0, 0):
145-
self._process_zones(ntp_nt.repeat_inputs)
138+
for zone_list in ntp_nt.zone_inputs.values():
139+
self._process_zones(zone_list)
146140

147141
#set look of nodes
148142
self._set_parents(node_tree)

0 commit comments

Comments
 (0)