void OnEnable() { ConditionalEvent conditionalEvent = EventEditorPanel.eventToEdit; if (conditionalEvent == null) { conditionalEvent = CharacterEditor.Instance.CurrentEvent(); } switch (eventType) { case EventType.typeSubject: parameterBuilder = SubjectParameterBuilder.Instance; parameters = conditionalEvent.subjects; break; case EventType.typeCondition: parameterBuilder = ConditionParameterBuilder.Instance; parameters = conditionalEvent.conditions; break; case EventType.typeEvent: parameterBuilder = EventParameterBuilder.Instance; parameters = conditionalEvent.events; break; } UpdateParamsList(); UpdateTypesDropdown(); CheckParameterChanges(); UpdateParameter(); }
// Add frame based events public void AddKeyframeEvent(uint keyframe, ConditionalEvent <GameEntityModel> e) { List <ConditionalEvent <GameEntityModel> > frameEvents; if (!keyframeEvents.TryGetValue(keyframe, out frameEvents)) { frameEvents = new List <ConditionalEvent <GameEntityModel> >(1); keyframeEvents.Add(keyframe, frameEvents); } frameEvents.Add(e); }
// void OnDropdownAnimationSelected(int itemId){ // // } // void OnListAnimationSelected(int itemId){ // // } public void OnAddButton() { // Find selected anim CharacterAnimation selectedAnim = GetAnimationFromDropdown(); // Find selected event ConditionalEvent selectedEvent = allEventsSorted[_eventsList.SelectedItem]; // Clone event and add to animation selectedAnim.events.Add(selectedEvent.Clone()); allEvents[selectedEvent].Add(selectedAnim); // Refresh UI RefreshAnimationsList(); RefreshAnimationsDropdown(); }
// void OnDropdownObjectSelected(int itemId){ // // } // void OnListObjectSelected(int itemId){ // // } public void OnAddButton() { // Find selected anim HUDObject selectedAnim = GetObjectFromDropdown(); // Find selected event ConditionalEvent selectedEvent = allEventsSorted[_eventsList.SelectedItem]; // Clone event and add to object selectedAnim.events.Add(selectedEvent.Clone()); allEvents[selectedEvent].Add(selectedAnim); // Refresh UI RefreshObjectsList(); RefreshObjectsDropdown(); }
void ApplyEventModifications() { // replace old event with new event on all animations containing it ConditionalEvent oldEvent = allEventsSorted[_eventsList.SelectedItem]; ConditionalEventComparer comparer = new ConditionalEventComparer(); foreach (CharacterAnimation anim in allEvents[oldEvent]) { for (int i = 0; i < anim.events.Count; ++i) { if (comparer.Equals(oldEvent, anim.events[i])) { anim.events[i] = EventEditorPanel.eventToEdit.Clone(); break; } } } EventEditorPanel.eventToEdit = null; CharacterEditor.Instance.RefreshEvents(); }
void RefreshAnimationsList() { if (allEventsSorted.Count == 0) { _removeButton.interactable = false; return; } ConditionalEvent selectedEvent = allEventsSorted[_eventsList.SelectedItem]; List <string> newOptions = new List <string>(); List <CharacterAnimation> eventAnims; if (allEvents.TryGetValue(selectedEvent, out eventAnims)) { foreach (CharacterAnimation anim in eventAnims) { newOptions.Add(anim.name); } _animationsList.Options = newOptions; } _removeButton.interactable = _animationsList.OptionsCount > 0; }
void OnEnable() { ConditionalEvent conditionalEvent = EventEditorPanel.eventToEdit; if (conditionalEvent == null) { conditionalEvent = HUDEditor.Instance.CurrentEvent(); } if (isCondition) { parameterBuilder = ConditionParameterBuilder.Instance; parameters = conditionalEvent.conditions; } else { parameterBuilder = EventParameterBuilder.Instance; parameters = conditionalEvent.events; } UpdateParamsList(); UpdateTypesDropdown(); }
void RefreshAnimationsDropdown() { Character character = CharacterEditor.Instance.character; if (character == null || allEventsSorted.Count == 0) { return; } ConditionalEvent selectedEvent = allEventsSorted[_eventsList.SelectedItem]; _animationsDropdown.ClearOptions(); List <CharacterAnimation> eventAnims = allEvents[selectedEvent]; foreach (CharacterAnimation anim in character.animations) { if (!eventAnims.Contains(anim)) { _animationsDropdown.options.Add(new Dropdown.OptionData(anim.name)); } } _addButton.interactable = _animationsDropdown.options.Count > 0; _animationsDropdown.RefreshShownValue(); }
void RefreshObjectsDropdown() { HUD hud = HUDEditor.Instance.hud; if (hud == null || allEventsSorted.Count == 0) { return; } ConditionalEvent selectedEvent = allEventsSorted[_eventsList.SelectedItem]; _objectsDropdown.ClearOptions(); List <HUDObject> eventAnims = allEvents[selectedEvent]; foreach (HUDObject anim in hud.objects) { if (!eventAnims.Contains(anim)) { _objectsDropdown.options.Add(new Dropdown.OptionData(anim.name)); } } _addButton.interactable = _objectsDropdown.options.Count > 0; _objectsDropdown.RefreshShownValue(); }
// TODO: pass a maxCount to avoid previous subjects to referenciate later subjects public string[] AvailableSubjects(int maxCount = -1) { ConditionalEvent eventToEdit = EventEditorPanel.eventToEdit; if (eventToEdit == null) { eventToEdit = CurrentEvent(); } if (eventToEdit == null) { return(null); } string[] defaultSubjects = SubjectParameterBuilder.predefinedSubjectsList; string[] extraSubjects = eventToEdit.SubjectsToString(maxCount); string[] res = defaultSubjects; if (extraSubjects != null && extraSubjects.Length > 0) { res = new string[defaultSubjects.Length + extraSubjects.Length]; defaultSubjects.CopyTo(res, 0); extraSubjects.CopyTo(res, defaultSubjects.Length); } return(res); }
public void OnRemoveButton() { // Find selected anim CharacterAnimation selectedAnim = GetAnimationFromList(); // Find selected event ConditionalEvent selectedEvent = allEventsSorted[_eventsList.SelectedItem]; // Find the event on the anim and remove it ConditionalEventComparer comparer = new ConditionalEventComparer(); for (int i = 0; i < selectedAnim.events.Count; ++i) { if (comparer.Equals(selectedEvent, selectedAnim.events[i])) { selectedAnim.events.RemoveAt(i); break; } } allEvents[selectedEvent].Remove(selectedAnim); // Refresh UI RefreshAnimationsList(); RefreshAnimationsDropdown(); }
// Add general event public void AddGeneralEvent(ConditionalEvent <GameEntityModel> e) { generalEvents.Add(e); }