|
16 | 16 |
|
17 | 17 | // ReSharper disable UnusedType.Global |
18 | 18 |
|
19 | | -using System; |
20 | 19 | using System.Collections.Generic; |
21 | 20 | using System.Linq; |
22 | 21 | using Unity.VisualScripting; |
23 | 22 |
|
24 | 23 | namespace VisualPinball.Unity.VisualScripting.Editor |
25 | 24 | { |
26 | 25 | [Widget(typeof(LampSequenceUnit))] |
27 | | - public sealed class LampSequenceUnitWidget : GleUnitWidget<LampSequenceUnit> |
| 26 | + public sealed class LampSequenceUnitWidget : GleMultiUnitWidget<LampSequenceUnit> |
28 | 27 | { |
29 | | - private readonly List<Func<Metadata, VariableNameInspector>> _lampIdInspectorConstructorList; |
30 | | - |
31 | 28 | public LampSequenceUnitWidget(FlowCanvas canvas, LampSequenceUnit unit) : base(canvas, unit) |
32 | 29 | { |
33 | | - _lampIdInspectorConstructorList = new List<Func<Metadata, VariableNameInspector>>(); |
34 | 30 | } |
35 | 31 |
|
36 | | - public override Inspector GetPortInspector(IUnitPort port, Metadata meta) |
37 | | - { |
38 | | - if (_lampIdInspectorConstructorList.Count() < unit.inputCount) { |
39 | | - for (var index = 0; index < unit.inputCount - _lampIdInspectorConstructorList.Count(); index++) { |
40 | | - _lampIdInspectorConstructorList.Add(meta => new VariableNameInspector(meta, GetNameSuggestions)); |
41 | | - } |
42 | | - } |
43 | | - |
44 | | - for (var index = 0; index < unit.inputCount; index++) { |
45 | | - if (unit.multiInputs[index] == port) { |
46 | | - VariableNameInspector lampIdInspector = new VariableNameInspector(meta, GetNameSuggestions); |
47 | | - InspectorProvider.instance.Renew(ref lampIdInspector, meta, _lampIdInspectorConstructorList[index]); |
48 | | - |
49 | | - return lampIdInspector; |
50 | | - } |
51 | | - } |
52 | | - |
53 | | - return base.GetPortInspector(port, meta); |
54 | | - } |
55 | | - |
56 | | - private IEnumerable<string> GetNameSuggestions() |
57 | | - { |
58 | | - return !GleAvailable |
59 | | - ? new List<string>() |
60 | | - : Gle.RequestedLamps.Select(lamp => lamp.Id).ToList(); |
61 | | - } |
| 32 | + protected override IEnumerable<string> IdSuggestions(IGamelogicEngine gle) => gle.RequestedLamps.Select(lamp => lamp.Id); |
62 | 33 | } |
63 | 34 | } |
0 commit comments