Пример #1
0
        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."));
            }
        }
Пример #2
0
        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++;
            }
        }
Пример #3
0
        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);
        }