protected virtual void LoadMorphs(IMorphSet morphSet) { Ensure.That(morphSet, nameof(morphSet)).IsNotNull(); ClearMorphs(); var index = 0; foreach (var group in morphSet.Groups) { var node = GroupPanelScene.Instance(); node.OfType <MorphGroupPanelFactory>().HeadOrNone().Match( tab => { tab.Group = Some(group); tab.Morphs = Some(morphSet); TabContainer.AddChild(node); TabContainer.SetTabTitle(index, group.DisplayName); index++; }, () => Logger.LogWarning("Invalid group panel scene.")); } }
protected virtual void LoadMorphs(IMorphSet morphSet) { var index = 0; foreach (var group in morphSet.Groups) { var tab = (MorphGroupPanel)_groupPanelScene.Instance(); tab.LoadGroup(group, morphSet.Values.Where(m => m.Definition.Group == group)); TabContainer.AddChild(tab); TabContainer.SetTabTitle(index, group.DisplayName); index++; } }
public Humanoid( string key, string displayName, MorphableRace race, Sex sex, IEnumerable <IAttribute> attributes, IPairedEyeSight vision, ILocomotion locomotion, Skeleton skeleton, IAnimationManager animationManager, IActionSet actions, IEnumerable <Marker> markers, KinematicBody node, ILoggerFactory loggerFactory) : base( key, displayName, race, sex, attributes, vision, locomotion, skeleton, animationManager, actions, markers, node, loggerFactory) { var groups = Race.MorphGroups.Find(Sex).Flatten().Freeze(); var morphs = groups.Flatten().Map(d => d.CreateMorph(this, LoggerFactory)).Freeze(); if (Logger.IsEnabled(LogLevel.Debug)) { morphs.Iter(m => this.LogDebug("Found morph '{}'.", m)); } Morphs = new MorphSet(groups, morphs); }