public virtual void Initialize( DrumSequence firstSequence, int selfIndex, OnSequenceComplete sequenceCallback, List <Color> colorMap) { }
public override void Initialize(DrumSequence firstSequence, int selfIndex, OnSequenceComplete sequenceCallback, List <Color> colorMap) { this.selfIndex = selfIndex; sequenceCompleteCallback = sequenceCallback; uiParent = transform.GetChild(0).gameObject; mainCamera = Camera.main; originalCameraPosition = mainCamera.transform.localPosition; segmentHighlighter.Initialize(); prompts = new List <DrumGamePrompt>(); promptPrefab.SetActive(false); this.colorMap = colorMap; reactiveSequence = new ReactiveProperty <DrumSequence>(firstSequence); sequenceIndex = new IntReactiveProperty(0); isVisible = new BoolReactiveProperty(); isActive = new BoolReactiveProperty(); isActive.Subscribe(active => ToggleActivePromptHighlight(active)); isActive.Subscribe(active => firstFrameActive = active); isActive.Subscribe(active => SetCamToOriginOnDisable(active)); isVisible.Subscribe(visible => SetVisibility(visible)); reactiveSequence.Subscribe(sequence => SetHiddenState(sequence)); reactiveSequence.Subscribe(sequence => SpawnAndArrangePrompts(sequence)); reactiveSequence.Subscribe(sequence => LabelDrumPrompts(sequence)); reactiveSequence.Subscribe(sequence => ColorDrumPrompts(sequence)); reactiveSequence.Subscribe(sequence => SetRepeatsValue(sequence)); reactiveSequence.Subscribe(delegate { if (cameraZoomingOutCoroutine != null) { StopCoroutine(cameraZoomingOutCoroutine); } }); if (lineEditor != null) { reactiveSequence.Subscribe(sequence => lineEditor.SetSequence(sequence)); } sequenceIndex.Subscribe(index => SetPromptHighlight(index)); sequenceIndex.Subscribe(index => AnimateCameraFollow(index)); var toggleEditStream = Observable.EveryUpdate().Where(_ => Input.GetKeyDown(toggleEditingKey)); toggleEditStream.Subscribe(_ => editing = !editing); toggleEditStream.Subscribe(_ => lineEditor.isEditing.Value = editing); toggleEditStream.Subscribe(_ => Debug.Log($"Line mode Editing set to {editing}")); if (lineEditor != null) { lineEditor.SetPromptsRef(prompts); } }
private IntReactiveProperty repeatsRemaining; //iterations left before advancing levelIndex public override void Initialize(DrumSequence firstSequence, int selfIndex, OnSequenceComplete sequenceCallback, List <Color> colorMap) { this.selfIndex = selfIndex; sequenceCompleteCallback = sequenceCallback; uiParent = transform.GetChild(0).gameObject; prompts = new List <DrumGamePrompt>(); promptPrefab.SetActive(false); this.colorMap = colorMap; arcHighlighter.Initialize(); reactiveSequence = new ReactiveProperty <DrumSequence>(firstSequence); repeatsRemaining = new IntReactiveProperty(reactiveSequence.Value.repetitions); sequenceIndex = new IntReactiveProperty(0); isVisible = new BoolReactiveProperty(); isActive = new BoolReactiveProperty(); isActive.Subscribe(active => ToggleActivePromptHighlight(active)); isActive.Subscribe(active => firstFrameActive = active); isVisible.Subscribe(visible => SetVisibility(visible)); reactiveSequence.Subscribe(sequence => SetHiddenState(sequence)); reactiveSequence.Subscribe(sequence => SpawnAndArrangePrompts(sequence)); reactiveSequence.Subscribe(sequence => LabelDrumPrompts(sequence)); reactiveSequence.Subscribe(sequence => ColorDrumPrompts(sequence)); reactiveSequence.Subscribe(sequence => SetRepeatsValue(sequence)); reactiveSequence.Subscribe(sequence => arcHighlighter.DrawArcs(sequence.keys.Count)); sequenceIndex.Subscribe(index => SetPromptHighlight(index)); repeatsRemaining.Subscribe(remaining => SetRepeatsText(remaining)); baseX = highlightPivotT.rotation.eulerAngles.x; baseY = highlightPivotT.rotation.eulerAngles.y; }