Skip to content

Commit 649930b

Browse files
author
Liam Sherwin
committed
Added full support for LTP layers
1 parent 3938e53 commit 649930b

File tree

1 file changed

+33
-23
lines changed

1 file changed

+33
-23
lines changed

core/components/fixtures/DMXFixture.gd

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -138,31 +138,30 @@ func set_parameter(p_parameter: String, p_function: String, p_value: float, p_la
138138
var mapped_layer: Dictionary = _mapped_layers.get_or_add(p_zone, {}).get_or_add(p_parameter, {})
139139
mapped_layer[p_layer_id] = mapped_value
140140

141-
var new_value: int = mapped_layer.values().max()
141+
var new_value: int
142142

143-
# if has_ltp_layer(p_layer_id):
144-
# if uuid == "7dcf43e3-34f4-4564-aee2-68eb788abf38": print("Using LTP, Current")
145-
# new_value = mapped_value
146-
# if not _active_ltp_parameters.get_or_add(p_zone, {}).get_or_add(p_parameter, {}).has(p_layer_id):
147-
# _active_ltp_parameters[p_zone][p_parameter][p_layer_id] = null
148-
149-
# elif _active_ltp_parameters.get(p_zone, {}).get(p_parameter, []) and _current.get(p_zone, {}).has(p_parameter):
150-
# if uuid == "7dcf43e3-34f4-4564-aee2-68eb788abf38": print("Using LTP, Pre existing")
151-
# new_value = _current[p_zone][p_parameter]
143+
if has_ltp_layer(p_layer_id):
144+
if uuid == "7dcf43e3-34f4-4564-aee2-68eb788abf38": print("Using LTP, Current")
145+
_active_ltp_parameters.get_or_add(p_zone, {}).get_or_add(p_parameter, {})[p_layer_id] = mapped_value
146+
147+
if _active_ltp_parameters.get(p_zone, {}).get(p_parameter, {}):
148+
if uuid == "7dcf43e3-34f4-4564-aee2-68eb788abf38": print("Using LTP, Pre existing HTP")
149+
new_value = _active_ltp_parameters[p_zone][p_parameter].values().max()
152150

153-
# else:
154-
# if uuid == "7dcf43e3-34f4-4564-aee2-68eb788abf38": print("Using HTP")
155-
# new_value = mapped_layer.values().max()
151+
else:
152+
if uuid == "7dcf43e3-34f4-4564-aee2-68eb788abf38": print("Using HTP")
153+
new_value = mapped_layer.values().max()
156154

157155
if new_value != _current.get(p_zone, {}).get(p_parameter, null):
158-
_current.get_or_add(p_zone, {})[p_parameter] = mapped_value
156+
var remapped_value: float = remap(new_value, dmx_range[0], dmx_range[1], 0.0, 1.0)
157+
_current.get_or_add(p_zone, {})[p_parameter] = new_value
159158
_active_values.get_or_add(p_zone, {})[p_parameter] = {
160-
"value": p_value,
159+
"value": remapped_value,
161160
"function": p_function
162161
}
163162

164163
if not p_disable_output:
165-
on_parameter_changed.emit(p_parameter, p_function, p_value, p_zone)
164+
on_parameter_changed.emit(p_parameter, p_function, remapped_value, p_zone)
166165
_queue_compilation()
167166
else:
168167
var zones: Array = _parameters.keys()
@@ -190,18 +189,32 @@ func erase_parameter(p_parameter: String, p_layer_id: String, p_zone: String = "
190189

191190
mapped_layer.erase(p_layer_id)
192191
raw_layer.erase(p_layer_id)
193-
var max: int = type_convert(mapped_layer.values().max(), TYPE_INT)
192+
193+
var new_value: int
194+
195+
if has_ltp_layer(p_layer_id):
196+
_active_ltp_parameters[p_zone][p_parameter].erase(p_layer_id)
197+
198+
if not _active_ltp_parameters[p_zone][p_parameter]:
199+
_active_ltp_parameters[p_zone].erase(p_parameter)
200+
201+
if _active_ltp_parameters[p_zone].get(p_parameter, {}):
202+
new_value = _active_ltp_parameters[p_zone][p_parameter].values().max()
203+
204+
else:
205+
new_value = type_convert(mapped_layer.values().max(), TYPE_INT)
206+
194207

195208
if mapped_layer:
196-
_current[p_zone][p_parameter] = max
209+
_current[p_zone][p_parameter] = new_value
197210

198211
else:
199212
_current[p_zone].erase(p_parameter)
200213
_active_values.get_or_add(p_zone, {}).erase(p_parameter)
201214

202215
if not p_disable_output:
203216
on_parameter_erased.emit(p_parameter, p_zone)
204-
_find_and_output_parameter_function(p_parameter, p_zone, max)
217+
_find_and_output_parameter_function(p_parameter, p_zone, new_value)
205218
_queue_compilation()
206219

207220
else:
@@ -219,9 +232,6 @@ func erase_parameter(p_parameter: String, p_layer_id: String, p_zone: String = "
219232

220233
## Findes a function from a parameter using the current dmx value. and outputs it via on_parameter_changed
221234
func _find_and_output_parameter_function(p_parameter: String, p_zone: String, p_dmx_value: int) -> void:
222-
if not p_dmx_value:
223-
return
224-
225235
for function: String in _parameters[p_zone][p_parameter].functions:
226236
var dmx_range: Array = _parameters[p_zone][p_parameter].functions[function].dmx_range
227237

@@ -235,7 +245,7 @@ func _find_and_output_parameter_function(p_parameter: String, p_zone: String, p_
235245
}
236246

237247
return
238-
248+
239249

240250
## Sets a parameter override to a float value
241251
func set_override(p_parameter: String, p_function: String, p_value: float, p_zone: String = "root", p_disable_output: bool = false) -> bool:

0 commit comments

Comments
 (0)