Skip to content

Commit 6193886

Browse files
Added LTP layers functions to Fixture
1 parent b0ee53c commit 6193886

File tree

2 files changed

+55
-28
lines changed

2 files changed

+55
-28
lines changed

core/components/fixtures/DMXFixture.gd

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func set_parameter(p_parameter: String, p_function: String, p_value: float, p_la
126126
# print(p_parameter, ": ", p_value)
127127

128128
if _parameters.has(p_zone) and _parameters[p_zone].has(p_parameter) and _parameters[p_zone][p_parameter].functions.has(p_function):
129-
129+
130130
var offsets: Array = _parameters[p_zone][p_parameter].offsets
131131
_raw_layers.get_or_add(p_zone, {}).get_or_add(p_parameter, {})[p_layer_id] = {"value": p_value, "function": p_function}
132132

@@ -137,7 +137,7 @@ func set_parameter(p_parameter: String, p_function: String, p_value: float, p_la
137137
mapped_layer[p_layer_id] = mapped_value
138138

139139
var max: int = mapped_layer.values().max()
140-
140+
141141
if max != _current.get(p_zone, {}).get(p_parameter, null):
142142
_current.get_or_add(p_zone, {})[p_parameter] = mapped_value
143143
_active_values.get_or_add(p_zone, {})[p_parameter] = {
@@ -151,15 +151,15 @@ func set_parameter(p_parameter: String, p_function: String, p_value: float, p_la
151151
else:
152152
var zones: Array = _parameters.keys()
153153
zones.erase(p_zone)
154-
154+
155155
for zone: String in zones:
156156
set_parameter(p_parameter, p_function, p_value, p_layer_id, zone, true)
157-
157+
158158
on_parameter_changed.emit(p_parameter, p_function, p_value, p_zone)
159159
_queue_compilation()
160-
160+
161161
return true
162-
162+
163163
return false
164164

165165

@@ -187,14 +187,14 @@ func erase_parameter(p_parameter: String, p_layer_id: String, p_zone: String = "
187187
on_parameter_erased.emit(p_parameter, p_zone)
188188
_find_and_output_parameter_function(p_parameter, p_zone, max)
189189
_queue_compilation()
190-
190+
191191
else:
192192
var zones: Array = _parameters.keys()
193193
zones.erase(p_zone)
194-
194+
195195
for zone: String in zones:
196196
erase_parameter(p_parameter, p_layer_id, zone, true)
197-
197+
198198
on_parameter_erased.emit(p_parameter, p_zone)
199199
_find_and_output_parameter_function(p_parameter, p_zone, _current[p_zone][p_parameter])
200200

@@ -205,7 +205,7 @@ func erase_parameter(p_parameter: String, p_layer_id: String, p_zone: String = "
205205
func _find_and_output_parameter_function(p_parameter: String, p_zone: String, p_dmx_value: int) -> void:
206206
if not p_dmx_value:
207207
return
208-
208+
209209
for function: String in _parameters[p_zone][p_parameter].functions:
210210
var dmx_range: Array = _parameters[p_zone][p_parameter].functions[function].dmx_range
211211

@@ -243,23 +243,23 @@ func set_override(p_parameter: String, p_function: String, p_value: float, p_zon
243243
if not p_disable_output:
244244
on_override_changed.emit(p_parameter, p_function, p_value, p_zone)
245245
_queue_compilation()
246-
246+
247247
else:
248248
var zones: Array = _parameters.keys()
249249
zones.erase(p_zone)
250-
250+
251251
for zone: String in zones:
252252
set_override(p_parameter, p_function, p_value, zone, true)
253-
253+
254254
on_override_changed.emit(p_parameter, p_function, p_value, p_zone)
255255
_queue_compilation()
256-
256+
257257
return true
258-
258+
259259
return false
260260

261261

262-
## Erases the parameter override
262+
## Erases the parameter override
263263
func erase_override(p_parameter: String, p_zone: String = "root", p_disable_output: bool = false) -> void:
264264
if _raw_override_layers.has(p_zone) and _raw_override_layers[p_zone].has(p_parameter):
265265
var offsets: Array = _parameters[p_zone][p_parameter].offsets
@@ -274,18 +274,18 @@ func erase_override(p_parameter: String, p_zone: String = "root", p_disable_outp
274274
_current_override[p_zone].erase(p_parameter)
275275
if not _current_override[p_zone]:
276276
_current_override.erase(p_zone)
277-
277+
278278
if not p_disable_output:
279279
on_override_erased.emit(p_parameter, p_zone)
280280
_queue_compilation()
281-
281+
282282
else:
283283
var zones: Array = _parameters.keys()
284284
zones.erase(p_zone)
285-
285+
286286
for zone: String in zones:
287287
erase_override(p_parameter, zone, true)
288-
288+
289289
on_override_erased.emit(p_parameter, p_zone)
290290
_queue_compilation()
291291

@@ -329,7 +329,7 @@ func get_parameter_functions(p_zone: String, p_parameter: String) -> Array:
329329
func get_default(p_zone: String, p_parameter: String, p_function: String = "", p_raw_dmx: bool = false) -> float:
330330
if p_function == "":
331331
p_function = get_default_function(p_zone, p_parameter)
332-
332+
333333
var dmx_value: int = _parameters[p_zone][p_parameter].functions[p_function].default
334334
var range: Array = _parameters[p_zone][p_parameter].functions[p_function].dmx_range
335335

@@ -343,7 +343,7 @@ func get_default(p_zone: String, p_parameter: String, p_function: String = "", p
343343
func get_force_default(p_zone: String, p_parameter: String, p_function: String = "", p_raw_dmx: bool = false) -> float:
344344
if has_force_default(p_function):
345345
return get_default(p_zone, p_parameter)
346-
346+
347347
else:
348348
return 0.0
349349

@@ -367,7 +367,7 @@ func get_current_value(p_zone: String, p_parameter: String, p_allow_default: boo
367367
## Gets the current value, or the default
368368
func get_current_value_or_force_default(p_zone: String, p_parameter: String) -> float:
369369
var value: float = _active_values.get(p_zone, {}).get(p_parameter, {}).get("value", -1)
370-
370+
371371
if value == -1:
372372
if has_force_default(p_parameter):
373373
return get_default(p_zone, p_parameter)
@@ -429,7 +429,7 @@ func zero_channels() -> void:
429429
for attribute: String in _parameters[zone].keys():
430430
if len(_parameters[zone][attribute].offsets):
431431
_current.get_or_add(zone, {})[attribute] = 0
432-
432+
433433
_current_dmx.clear()
434434
_compile_output()
435435
_current.clear()
@@ -440,7 +440,7 @@ func zero_channels() -> void:
440440
func _queue_compilation() -> void:
441441
if _compilation_queued:
442442
return
443-
443+
444444
_compilation_queued = true
445445
_compile_output.call_deferred()
446446

@@ -458,7 +458,7 @@ func _compile_output() -> void:
458458
var shift_amount = (offset.size() - 1 - i) * 8
459459
var channel_value = (value >> shift_amount) & 0xFF
460460
_current_dmx[offset[i] + _channel - 1] = channel_value
461-
461+
462462
var final_dmx: Dictionary = _current_dmx.merged(_current_override_dmx, true)
463463
dmx_data_updated.emit(final_dmx)
464464
_compilation_queued = false

core/components/fixtures/Fixture.gd

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ signal on_all_override_removed()
2525
static var RootZone: String = "root"
2626

2727

28+
## Enables layer based LTP on layers
29+
var _ltp_layers: Array[String]
30+
31+
2832
## Called when this EngineComponent is ready
2933
func _init(p_uuid: String = UUID_Util.v4(), p_name: String = name) -> void:
3034
set_self_class("Fixture")
@@ -47,7 +51,7 @@ func set_override(p_parameter: String, p_function: String, p_value: float, p_zon
4751
return false
4852

4953

50-
## Erases the parameter override
54+
## Erases the parameter override
5155
func erase_override(p_parameter: String, zone: String = "root") -> void:
5256
pass
5357

@@ -139,4 +143,27 @@ func has_force_default(p_parameter: String) -> bool:
139143

140144
## Checks if this Fixture has a function that can fade
141145
func function_can_fade(p_zone: String, p_parameter: String, p_function: String) -> bool:
142-
return false
146+
return false
147+
148+
149+
## Enabled LTP on a layer
150+
func add_ltp_layer(p_layer_id: String) -> bool:
151+
if p_layer_id in _ltp_layers:
152+
return false
153+
154+
_ltp_layers.append(p_layer_id)
155+
return true
156+
157+
158+
## Enabled LTP on a layer
159+
func remove_ltp_layer(p_layer_id: String) -> bool:
160+
if p_layer_id not in _ltp_layers:
161+
return false
162+
163+
_ltp_layers.erase(p_layer_id)
164+
return true
165+
166+
167+
## Enabled LTP on a layer
168+
func has_ltp_layer(p_layer_id: String) -> bool:
169+
return p_layer_id in _ltp_layers

0 commit comments

Comments
 (0)