nodebpy 0.2.0__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nodebpy/builder.py +193 -411
- nodebpy/nodes/__init__.py +352 -335
- nodebpy/nodes/attribute.py +362 -307
- nodebpy/nodes/color.py +30 -34
- nodebpy/nodes/converter.py +1987 -2978
- nodebpy/nodes/experimental.py +201 -203
- nodebpy/nodes/geometry.py +4189 -3644
- nodebpy/nodes/grid.py +932 -447
- nodebpy/nodes/group.py +7 -10
- nodebpy/nodes/input.py +1496 -1308
- nodebpy/nodes/interface.py +236 -117
- nodebpy/nodes/manual.py +2051 -0
- nodebpy/nodes/output.py +85 -0
- nodebpy/nodes/texture.py +867 -7
- nodebpy/nodes/vector.py +528 -0
- nodebpy/nodes/zone.py +88 -119
- nodebpy/{nodes/types.py → types.py} +15 -2
- {nodebpy-0.2.0.dist-info → nodebpy-0.3.0.dist-info}/METADATA +5 -5
- nodebpy-0.3.0.dist-info/RECORD +26 -0
- nodebpy/nodes/mesh.py +0 -17
- nodebpy-0.2.0.dist-info/RECORD +0 -25
- {nodebpy-0.2.0.dist-info → nodebpy-0.3.0.dist-info}/WHEEL +0 -0
- {nodebpy-0.2.0.dist-info → nodebpy-0.3.0.dist-info}/entry_points.txt +0 -0
nodebpy/nodes/experimental.py
CHANGED
|
@@ -1,85 +1,116 @@
|
|
|
1
1
|
from typing import Literal
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import bpy
|
|
4
4
|
|
|
5
|
-
from
|
|
5
|
+
from ..builder import NodeBuilder, SocketLinker
|
|
6
|
+
from ..types import (
|
|
7
|
+
TYPE_INPUT_BOOLEAN,
|
|
8
|
+
TYPE_INPUT_INT,
|
|
9
|
+
TYPE_INPUT_MENU,
|
|
10
|
+
TYPE_INPUT_ROTATION,
|
|
11
|
+
TYPE_INPUT_COLOR,
|
|
12
|
+
TYPE_INPUT_MATRIX,
|
|
13
|
+
TYPE_INPUT_VALUE,
|
|
14
|
+
TYPE_INPUT_VECTOR,
|
|
15
|
+
)
|
|
6
16
|
|
|
7
17
|
|
|
8
|
-
class
|
|
9
|
-
"""
|
|
18
|
+
class GetListItem(NodeBuilder):
|
|
19
|
+
"""Retrieve a value from a list"""
|
|
10
20
|
|
|
11
|
-
|
|
12
|
-
node: bpy.types.
|
|
21
|
+
_bl_idname = "GeometryNodeListGetItem"
|
|
22
|
+
node: bpy.types.GeometryNodeListGetItem
|
|
13
23
|
|
|
14
24
|
def __init__(
|
|
15
25
|
self,
|
|
16
|
-
|
|
17
|
-
|
|
26
|
+
list: TYPE_INPUT_VALUE = 0.0,
|
|
27
|
+
index: TYPE_INPUT_INT = 0,
|
|
28
|
+
*,
|
|
18
29
|
data_type: Literal[
|
|
19
|
-
"FLOAT",
|
|
20
|
-
"INT",
|
|
21
|
-
"BOOLEAN",
|
|
22
|
-
"VECTOR",
|
|
23
|
-
"RGBA",
|
|
24
|
-
"ROTATION",
|
|
25
|
-
"MATRIX",
|
|
26
|
-
"STRING",
|
|
27
|
-
"MENU",
|
|
28
|
-
"SHADER",
|
|
29
|
-
"OBJECT",
|
|
30
|
-
"IMAGE",
|
|
31
|
-
"GEOMETRY",
|
|
32
|
-
"COLLECTION",
|
|
33
|
-
"TEXTURE",
|
|
34
|
-
"MATERIAL",
|
|
35
|
-
"BUNDLE",
|
|
36
|
-
"CLOSURE",
|
|
30
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
37
31
|
] = "FLOAT",
|
|
38
|
-
**kwargs,
|
|
39
32
|
):
|
|
40
33
|
super().__init__()
|
|
41
|
-
key_args = {"
|
|
42
|
-
key_args.update(kwargs)
|
|
34
|
+
key_args = {"List": list, "Index": index}
|
|
43
35
|
self.data_type = data_type
|
|
44
36
|
self._establish_links(**key_args)
|
|
45
37
|
|
|
38
|
+
@classmethod
|
|
39
|
+
def float(
|
|
40
|
+
cls, list: TYPE_INPUT_VALUE = 0.0, index: TYPE_INPUT_INT = 0
|
|
41
|
+
) -> "GetListItem":
|
|
42
|
+
"""Create Get List Item with operation 'Float'."""
|
|
43
|
+
return cls(data_type="FLOAT", list=list, index=index)
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def integer(
|
|
47
|
+
cls, list: TYPE_INPUT_INT = 0, index: TYPE_INPUT_INT = 0
|
|
48
|
+
) -> "GetListItem":
|
|
49
|
+
"""Create Get List Item with operation 'Integer'."""
|
|
50
|
+
return cls(data_type="INT", list=list, index=index)
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def boolean(
|
|
54
|
+
cls, list: TYPE_INPUT_BOOLEAN = False, index: TYPE_INPUT_INT = 0
|
|
55
|
+
) -> "GetListItem":
|
|
56
|
+
"""Create Get List Item with operation 'Boolean'."""
|
|
57
|
+
return cls(data_type="BOOLEAN", list=list, index=index)
|
|
58
|
+
|
|
59
|
+
@classmethod
|
|
60
|
+
def vector(
|
|
61
|
+
cls, list: TYPE_INPUT_VECTOR = None, index: TYPE_INPUT_INT = 0
|
|
62
|
+
) -> "GetListItem":
|
|
63
|
+
"""Create Get List Item with operation 'Vector'."""
|
|
64
|
+
return cls(data_type="VECTOR", list=list, index=index)
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def color(
|
|
68
|
+
cls, list: TYPE_INPUT_COLOR = None, index: TYPE_INPUT_INT = 0
|
|
69
|
+
) -> "GetListItem":
|
|
70
|
+
"""Create Get List Item with operation 'Color'."""
|
|
71
|
+
return cls(data_type="RGBA", list=list, index=index)
|
|
72
|
+
|
|
73
|
+
@classmethod
|
|
74
|
+
def rotation(
|
|
75
|
+
cls, list: TYPE_INPUT_ROTATION = None, index: TYPE_INPUT_INT = 0
|
|
76
|
+
) -> "GetListItem":
|
|
77
|
+
"""Create Get List Item with operation 'Rotation'."""
|
|
78
|
+
return cls(data_type="ROTATION", list=list, index=index)
|
|
79
|
+
|
|
80
|
+
@classmethod
|
|
81
|
+
def matrix(
|
|
82
|
+
cls, list: TYPE_INPUT_MATRIX = None, index: TYPE_INPUT_INT = 0
|
|
83
|
+
) -> "GetListItem":
|
|
84
|
+
"""Create Get List Item with operation 'Matrix'."""
|
|
85
|
+
return cls(data_type="MATRIX", list=list, index=index)
|
|
86
|
+
|
|
87
|
+
@classmethod
|
|
88
|
+
def menu(
|
|
89
|
+
cls, list: TYPE_INPUT_MENU = "", index: TYPE_INPUT_INT = 0
|
|
90
|
+
) -> "GetListItem":
|
|
91
|
+
"""Create Get List Item with operation 'Menu'."""
|
|
92
|
+
return cls(data_type="MENU", list=list, index=index)
|
|
93
|
+
|
|
46
94
|
@property
|
|
47
|
-
def
|
|
48
|
-
"""Input socket:
|
|
49
|
-
return self._input("
|
|
95
|
+
def i_list(self) -> SocketLinker:
|
|
96
|
+
"""Input socket: List"""
|
|
97
|
+
return self._input("List")
|
|
50
98
|
|
|
51
99
|
@property
|
|
52
|
-
def
|
|
53
|
-
"""Input socket:
|
|
54
|
-
return self._input("
|
|
100
|
+
def i_index(self) -> SocketLinker:
|
|
101
|
+
"""Input socket: Index"""
|
|
102
|
+
return self._input("Index")
|
|
55
103
|
|
|
56
104
|
@property
|
|
57
|
-
def
|
|
58
|
-
"""Output socket:
|
|
59
|
-
return self._output("
|
|
105
|
+
def o_value(self) -> SocketLinker:
|
|
106
|
+
"""Output socket: Value"""
|
|
107
|
+
return self._output("Value")
|
|
60
108
|
|
|
61
109
|
@property
|
|
62
110
|
def data_type(
|
|
63
111
|
self,
|
|
64
112
|
) -> Literal[
|
|
65
|
-
"FLOAT",
|
|
66
|
-
"INT",
|
|
67
|
-
"BOOLEAN",
|
|
68
|
-
"VECTOR",
|
|
69
|
-
"RGBA",
|
|
70
|
-
"ROTATION",
|
|
71
|
-
"MATRIX",
|
|
72
|
-
"STRING",
|
|
73
|
-
"MENU",
|
|
74
|
-
"SHADER",
|
|
75
|
-
"OBJECT",
|
|
76
|
-
"IMAGE",
|
|
77
|
-
"GEOMETRY",
|
|
78
|
-
"COLLECTION",
|
|
79
|
-
"TEXTURE",
|
|
80
|
-
"MATERIAL",
|
|
81
|
-
"BUNDLE",
|
|
82
|
-
"CLOSURE",
|
|
113
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
83
114
|
]:
|
|
84
115
|
return self.node.data_type
|
|
85
116
|
|
|
@@ -87,104 +118,100 @@ class List(NodeBuilder):
|
|
|
87
118
|
def data_type(
|
|
88
119
|
self,
|
|
89
120
|
value: Literal[
|
|
90
|
-
"FLOAT",
|
|
91
|
-
"INT",
|
|
92
|
-
"BOOLEAN",
|
|
93
|
-
"VECTOR",
|
|
94
|
-
"RGBA",
|
|
95
|
-
"ROTATION",
|
|
96
|
-
"MATRIX",
|
|
97
|
-
"STRING",
|
|
98
|
-
"MENU",
|
|
99
|
-
"SHADER",
|
|
100
|
-
"OBJECT",
|
|
101
|
-
"IMAGE",
|
|
102
|
-
"GEOMETRY",
|
|
103
|
-
"COLLECTION",
|
|
104
|
-
"TEXTURE",
|
|
105
|
-
"MATERIAL",
|
|
106
|
-
"BUNDLE",
|
|
107
|
-
"CLOSURE",
|
|
121
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
108
122
|
],
|
|
109
123
|
):
|
|
110
124
|
self.node.data_type = value
|
|
111
125
|
|
|
112
126
|
|
|
113
|
-
class
|
|
114
|
-
"""
|
|
127
|
+
class List(NodeBuilder):
|
|
128
|
+
"""Create a list of values"""
|
|
115
129
|
|
|
116
|
-
|
|
117
|
-
node: bpy.types.
|
|
130
|
+
_bl_idname = "GeometryNodeList"
|
|
131
|
+
node: bpy.types.GeometryNodeList
|
|
118
132
|
|
|
119
133
|
def __init__(
|
|
120
134
|
self,
|
|
121
|
-
|
|
122
|
-
|
|
135
|
+
count: TYPE_INPUT_INT = 1,
|
|
136
|
+
value: TYPE_INPUT_VALUE = 0.0,
|
|
137
|
+
*,
|
|
123
138
|
data_type: Literal[
|
|
124
|
-
"FLOAT",
|
|
125
|
-
"INT",
|
|
126
|
-
"BOOLEAN",
|
|
127
|
-
"VECTOR",
|
|
128
|
-
"RGBA",
|
|
129
|
-
"ROTATION",
|
|
130
|
-
"MATRIX",
|
|
131
|
-
"STRING",
|
|
132
|
-
"MENU",
|
|
133
|
-
"SHADER",
|
|
134
|
-
"OBJECT",
|
|
135
|
-
"IMAGE",
|
|
136
|
-
"GEOMETRY",
|
|
137
|
-
"COLLECTION",
|
|
138
|
-
"TEXTURE",
|
|
139
|
-
"MATERIAL",
|
|
140
|
-
"BUNDLE",
|
|
141
|
-
"CLOSURE",
|
|
139
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
142
140
|
] = "FLOAT",
|
|
143
|
-
**kwargs,
|
|
144
141
|
):
|
|
145
142
|
super().__init__()
|
|
146
|
-
key_args = {"
|
|
147
|
-
key_args.update(kwargs)
|
|
143
|
+
key_args = {"Count": count, "Value": value}
|
|
148
144
|
self.data_type = data_type
|
|
149
145
|
self._establish_links(**key_args)
|
|
150
146
|
|
|
147
|
+
@classmethod
|
|
148
|
+
def float(cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_VALUE = 0.0) -> "List":
|
|
149
|
+
"""Create List with operation 'Float'."""
|
|
150
|
+
return cls(data_type="FLOAT", count=count, value=value)
|
|
151
|
+
|
|
152
|
+
@classmethod
|
|
153
|
+
def integer(cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_INT = 0) -> "List":
|
|
154
|
+
"""Create List with operation 'Integer'."""
|
|
155
|
+
return cls(data_type="INT", count=count, value=value)
|
|
156
|
+
|
|
157
|
+
@classmethod
|
|
158
|
+
def boolean(
|
|
159
|
+
cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_BOOLEAN = False
|
|
160
|
+
) -> "List":
|
|
161
|
+
"""Create List with operation 'Boolean'."""
|
|
162
|
+
return cls(data_type="BOOLEAN", count=count, value=value)
|
|
163
|
+
|
|
164
|
+
@classmethod
|
|
165
|
+
def vector(
|
|
166
|
+
cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_VECTOR = None
|
|
167
|
+
) -> "List":
|
|
168
|
+
"""Create List with operation 'Vector'."""
|
|
169
|
+
return cls(data_type="VECTOR", count=count, value=value)
|
|
170
|
+
|
|
171
|
+
@classmethod
|
|
172
|
+
def color(cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_COLOR = None) -> "List":
|
|
173
|
+
"""Create List with operation 'Color'."""
|
|
174
|
+
return cls(data_type="RGBA", count=count, value=value)
|
|
175
|
+
|
|
176
|
+
@classmethod
|
|
177
|
+
def rotation(
|
|
178
|
+
cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_ROTATION = None
|
|
179
|
+
) -> "List":
|
|
180
|
+
"""Create List with operation 'Rotation'."""
|
|
181
|
+
return cls(data_type="ROTATION", count=count, value=value)
|
|
182
|
+
|
|
183
|
+
@classmethod
|
|
184
|
+
def matrix(
|
|
185
|
+
cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_MATRIX = None
|
|
186
|
+
) -> "List":
|
|
187
|
+
"""Create List with operation 'Matrix'."""
|
|
188
|
+
return cls(data_type="MATRIX", count=count, value=value)
|
|
189
|
+
|
|
190
|
+
@classmethod
|
|
191
|
+
def menu(cls, count: TYPE_INPUT_INT = 1, value: TYPE_INPUT_MENU = "") -> "List":
|
|
192
|
+
"""Create List with operation 'Menu'."""
|
|
193
|
+
return cls(data_type="MENU", count=count, value=value)
|
|
194
|
+
|
|
151
195
|
@property
|
|
152
|
-
def
|
|
153
|
-
"""Input socket:
|
|
154
|
-
return self._input("
|
|
196
|
+
def i_count(self) -> SocketLinker:
|
|
197
|
+
"""Input socket: Count"""
|
|
198
|
+
return self._input("Count")
|
|
155
199
|
|
|
156
200
|
@property
|
|
157
|
-
def
|
|
158
|
-
"""Input socket:
|
|
159
|
-
return self._input("
|
|
201
|
+
def i_value(self) -> SocketLinker:
|
|
202
|
+
"""Input socket: Value"""
|
|
203
|
+
return self._input("Value")
|
|
160
204
|
|
|
161
205
|
@property
|
|
162
|
-
def
|
|
163
|
-
"""Output socket:
|
|
164
|
-
return self._output("
|
|
206
|
+
def o_list(self) -> SocketLinker:
|
|
207
|
+
"""Output socket: List"""
|
|
208
|
+
return self._output("List")
|
|
165
209
|
|
|
166
210
|
@property
|
|
167
211
|
def data_type(
|
|
168
212
|
self,
|
|
169
213
|
) -> Literal[
|
|
170
|
-
"FLOAT",
|
|
171
|
-
"INT",
|
|
172
|
-
"BOOLEAN",
|
|
173
|
-
"VECTOR",
|
|
174
|
-
"RGBA",
|
|
175
|
-
"ROTATION",
|
|
176
|
-
"MATRIX",
|
|
177
|
-
"STRING",
|
|
178
|
-
"MENU",
|
|
179
|
-
"SHADER",
|
|
180
|
-
"OBJECT",
|
|
181
|
-
"IMAGE",
|
|
182
|
-
"GEOMETRY",
|
|
183
|
-
"COLLECTION",
|
|
184
|
-
"TEXTURE",
|
|
185
|
-
"MATERIAL",
|
|
186
|
-
"BUNDLE",
|
|
187
|
-
"CLOSURE",
|
|
214
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
188
215
|
]:
|
|
189
216
|
return self.node.data_type
|
|
190
217
|
|
|
@@ -192,24 +219,7 @@ class GetListItem(NodeBuilder):
|
|
|
192
219
|
def data_type(
|
|
193
220
|
self,
|
|
194
221
|
value: Literal[
|
|
195
|
-
"FLOAT",
|
|
196
|
-
"INT",
|
|
197
|
-
"BOOLEAN",
|
|
198
|
-
"VECTOR",
|
|
199
|
-
"RGBA",
|
|
200
|
-
"ROTATION",
|
|
201
|
-
"MATRIX",
|
|
202
|
-
"STRING",
|
|
203
|
-
"MENU",
|
|
204
|
-
"SHADER",
|
|
205
|
-
"OBJECT",
|
|
206
|
-
"IMAGE",
|
|
207
|
-
"GEOMETRY",
|
|
208
|
-
"COLLECTION",
|
|
209
|
-
"TEXTURE",
|
|
210
|
-
"MATERIAL",
|
|
211
|
-
"BUNDLE",
|
|
212
|
-
"CLOSURE",
|
|
222
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
213
223
|
],
|
|
214
224
|
):
|
|
215
225
|
self.node.data_type = value
|
|
@@ -218,40 +228,62 @@ class GetListItem(NodeBuilder):
|
|
|
218
228
|
class ListLength(NodeBuilder):
|
|
219
229
|
"""Count how many items are in a given list"""
|
|
220
230
|
|
|
221
|
-
|
|
231
|
+
_bl_idname = "GeometryNodeListLength"
|
|
222
232
|
node: bpy.types.GeometryNodeListLength
|
|
223
233
|
|
|
224
234
|
def __init__(
|
|
225
235
|
self,
|
|
226
236
|
list: TYPE_INPUT_VALUE = 0.0,
|
|
237
|
+
*,
|
|
227
238
|
data_type: Literal[
|
|
228
|
-
"FLOAT",
|
|
229
|
-
"INT",
|
|
230
|
-
"BOOLEAN",
|
|
231
|
-
"VECTOR",
|
|
232
|
-
"RGBA",
|
|
233
|
-
"ROTATION",
|
|
234
|
-
"MATRIX",
|
|
235
|
-
"STRING",
|
|
236
|
-
"MENU",
|
|
237
|
-
"SHADER",
|
|
238
|
-
"OBJECT",
|
|
239
|
-
"IMAGE",
|
|
240
|
-
"GEOMETRY",
|
|
241
|
-
"COLLECTION",
|
|
242
|
-
"TEXTURE",
|
|
243
|
-
"MATERIAL",
|
|
244
|
-
"BUNDLE",
|
|
245
|
-
"CLOSURE",
|
|
239
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
246
240
|
] = "FLOAT",
|
|
247
|
-
**kwargs,
|
|
248
241
|
):
|
|
249
242
|
super().__init__()
|
|
250
243
|
key_args = {"List": list}
|
|
251
|
-
key_args.update(kwargs)
|
|
252
244
|
self.data_type = data_type
|
|
253
245
|
self._establish_links(**key_args)
|
|
254
246
|
|
|
247
|
+
@classmethod
|
|
248
|
+
def float(cls, list: TYPE_INPUT_VALUE = 0.0) -> "ListLength":
|
|
249
|
+
"""Create List Length with operation 'Float'."""
|
|
250
|
+
return cls(data_type="FLOAT", list=list)
|
|
251
|
+
|
|
252
|
+
@classmethod
|
|
253
|
+
def integer(cls, list: TYPE_INPUT_INT = 0) -> "ListLength":
|
|
254
|
+
"""Create List Length with operation 'Integer'."""
|
|
255
|
+
return cls(data_type="INT", list=list)
|
|
256
|
+
|
|
257
|
+
@classmethod
|
|
258
|
+
def boolean(cls, list: TYPE_INPUT_BOOLEAN = False) -> "ListLength":
|
|
259
|
+
"""Create List Length with operation 'Boolean'."""
|
|
260
|
+
return cls(data_type="BOOLEAN", list=list)
|
|
261
|
+
|
|
262
|
+
@classmethod
|
|
263
|
+
def vector(cls, list: TYPE_INPUT_VECTOR = None) -> "ListLength":
|
|
264
|
+
"""Create List Length with operation 'Vector'."""
|
|
265
|
+
return cls(data_type="VECTOR", list=list)
|
|
266
|
+
|
|
267
|
+
@classmethod
|
|
268
|
+
def color(cls, list: TYPE_INPUT_COLOR = None) -> "ListLength":
|
|
269
|
+
"""Create List Length with operation 'Color'."""
|
|
270
|
+
return cls(data_type="RGBA", list=list)
|
|
271
|
+
|
|
272
|
+
@classmethod
|
|
273
|
+
def rotation(cls, list: TYPE_INPUT_ROTATION = None) -> "ListLength":
|
|
274
|
+
"""Create List Length with operation 'Rotation'."""
|
|
275
|
+
return cls(data_type="ROTATION", list=list)
|
|
276
|
+
|
|
277
|
+
@classmethod
|
|
278
|
+
def matrix(cls, list: TYPE_INPUT_MATRIX = None) -> "ListLength":
|
|
279
|
+
"""Create List Length with operation 'Matrix'."""
|
|
280
|
+
return cls(data_type="MATRIX", list=list)
|
|
281
|
+
|
|
282
|
+
@classmethod
|
|
283
|
+
def menu(cls, list: TYPE_INPUT_MENU = "") -> "ListLength":
|
|
284
|
+
"""Create List Length with operation 'Menu'."""
|
|
285
|
+
return cls(data_type="MENU", list=list)
|
|
286
|
+
|
|
255
287
|
@property
|
|
256
288
|
def i_list(self) -> SocketLinker:
|
|
257
289
|
"""Input socket: List"""
|
|
@@ -266,24 +298,7 @@ class ListLength(NodeBuilder):
|
|
|
266
298
|
def data_type(
|
|
267
299
|
self,
|
|
268
300
|
) -> Literal[
|
|
269
|
-
"FLOAT",
|
|
270
|
-
"INT",
|
|
271
|
-
"BOOLEAN",
|
|
272
|
-
"VECTOR",
|
|
273
|
-
"RGBA",
|
|
274
|
-
"ROTATION",
|
|
275
|
-
"MATRIX",
|
|
276
|
-
"STRING",
|
|
277
|
-
"MENU",
|
|
278
|
-
"SHADER",
|
|
279
|
-
"OBJECT",
|
|
280
|
-
"IMAGE",
|
|
281
|
-
"GEOMETRY",
|
|
282
|
-
"COLLECTION",
|
|
283
|
-
"TEXTURE",
|
|
284
|
-
"MATERIAL",
|
|
285
|
-
"BUNDLE",
|
|
286
|
-
"CLOSURE",
|
|
301
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
287
302
|
]:
|
|
288
303
|
return self.node.data_type
|
|
289
304
|
|
|
@@ -291,24 +306,7 @@ class ListLength(NodeBuilder):
|
|
|
291
306
|
def data_type(
|
|
292
307
|
self,
|
|
293
308
|
value: Literal[
|
|
294
|
-
"FLOAT",
|
|
295
|
-
"INT",
|
|
296
|
-
"BOOLEAN",
|
|
297
|
-
"VECTOR",
|
|
298
|
-
"RGBA",
|
|
299
|
-
"ROTATION",
|
|
300
|
-
"MATRIX",
|
|
301
|
-
"STRING",
|
|
302
|
-
"MENU",
|
|
303
|
-
"SHADER",
|
|
304
|
-
"OBJECT",
|
|
305
|
-
"IMAGE",
|
|
306
|
-
"GEOMETRY",
|
|
307
|
-
"COLLECTION",
|
|
308
|
-
"TEXTURE",
|
|
309
|
-
"MATERIAL",
|
|
310
|
-
"BUNDLE",
|
|
311
|
-
"CLOSURE",
|
|
309
|
+
"FLOAT", "INT", "BOOLEAN", "VECTOR", "RGBA", "ROTATION", "MATRIX", "MENU"
|
|
312
310
|
],
|
|
313
311
|
):
|
|
314
312
|
self.node.data_type = value
|