@@ -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
221234func _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
241251func set_override (p_parameter : String , p_function : String , p_value : float , p_zone : String = "root" , p_disable_output : bool = false ) -> bool :
0 commit comments