Ejemplo n.º 1
0
        /// <summary>
        /// Inserts heat map tool
        /// </summary>
        /// <param name="dropStatInfoSource">Target <see cref="StatInfo"/> to insert heat map</param>
        private void InsertHeatMap(HudGaugeIndicatorStatInfo dropStatInfoSource, Point position)
        {
            if (dropStatInfoSource.HeatMapViewModel != null)
            {
                return;
            }

            var factory = ServiceLocator.Current.GetInstance <IHudToolFactory>();

            if (tool.Tools == null)
            {
                tool.Tools = new ReactiveList <HudLayoutTool>();
            }

            var creationInfo = new HudToolCreationInfo
            {
                HudElement = Parent,
                Position   = position,
                ToolType   = HudDesignerToolType.HeatMap,
                Tools      = tool.Tools,
                Source     = dropStatInfoSource.Stat
            };

            factory.CreateTool(creationInfo);

            RefreshGroupedStats();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates heat map view model
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param>
        /// <returns>Graph view model</returns>
        private HudBaseToolViewModel CreateHeatMapTool(HudToolCreationInfo creationInfo)
        {
            Check.Require(creationInfo.Tools != null, "Layout.Tools isn't defined. Heat map has not been created.");

            var statInfo = creationInfo.Source as StatInfo;

            HudLayoutHeatMapTool layoutTool = null;

            if (statInfo == null)
            {
                return(null);
            }

            statInfo.IsSelected = false;

            layoutTool = new HudLayoutHeatMapTool
            {
                BaseStat = statInfo.Clone()
            };

            var random = new Random();

            layoutTool.BaseStat.CurrentValue = random.Next(0, 100);

            var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement);

            toolViewModel.Position = creationInfo.Position;

            creationInfo.Tools.Add(layoutTool);

            return(toolViewModel);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates gauge indicator view model
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param>
        /// <returns>Gauge indicator view model</returns>
        private HudBaseToolViewModel CreateGaugeIndicatorTool(HudToolCreationInfo creationInfo)
        {
            Check.Require(creationInfo.Layout != null, "Layout isn't defined. Gauge indicator has not been created.");

            var statInfo = creationInfo.Source as StatInfo;

            if (statInfo == null)
            {
                return(null);
            }

            statInfo.IsSelected = false;

            var layoutTool = new HudLayoutGaugeIndicator
            {
                BaseStat = statInfo.Clone(),
                Text     = statInfo.ToolTip
            };

            var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement);

            toolViewModel.Position = creationInfo.Position;

            creationInfo.Layout.LayoutTools.Add(layoutTool);

            return(toolViewModel);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates bumper stickers view model
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param>
        /// <returns>Tilt meter view model</returns>
        private HudBaseToolViewModel CreateBumperStickersTool(HudToolCreationInfo creationInfo)
        {
            Check.Require(creationInfo.Layout != null, "Layout isn't defined. Bumper stickers have not been created.");

            var layoutTool = new HudLayoutBumperStickersTool
            {
                UIPositions = GetHudUIPositions(EnumTableType.HU, EnumTableType.HU, creationInfo.Position)
            };

            layoutTool.UIPositions.ForEach(x =>
            {
                x.Width  = HudDefaultSettings.BumperStickersWidth;
                x.Height = HudDefaultSettings.BumperStickersHeight;
            });

            var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement);

            toolViewModel.InitializePositions();

            if (toolViewModel.Parent != null)
            {
                toolViewModel.Parent.Stickers = new ObservableCollection <HudBumperStickerType>(creationInfo.Layout.HudBumperStickerTypes.Select(x => x.Clone()));
            }

            creationInfo.Layout.LayoutTools.Add(layoutTool);

            return(toolViewModel);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Creates tilt meter view model
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param>
        /// <returns>Tilt meter view model</returns>
        private HudBaseToolViewModel CreateTiltMeterTool(HudToolCreationInfo creationInfo)
        {
            Check.Require(creationInfo.Layout != null, "Layout isn't defined. 4-stat box has not been created.");

            var layoutTool = new HudLayoutTiltMeterTool
            {
                UIPositions = GetHudUIPositions(EnumTableType.HU, EnumTableType.HU, creationInfo.Position)
            };

            layoutTool.UIPositions.ForEach(x =>
            {
                x.Width  = HudDefaultSettings.TiltMeterWidth;
                x.Height = HudDefaultSettings.TiltMeterHeight;
            });

            var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement);

            toolViewModel.InitializePositions();

            if (toolViewModel.Parent != null)
            {
                toolViewModel.Parent.TiltMeter = HudDefaultSettings.TiltMeterDesignerValue;
            }

            creationInfo.Layout.LayoutTools.Add(layoutTool);

            return(toolViewModel);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Creates graph view model
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param>
        /// <returns>Graph view model</returns>
        private HudBaseToolViewModel CreateGraphTool(HudToolCreationInfo creationInfo)
        {
            Check.Require(creationInfo.Layout != null, "Layout isn't defined. Graph has not been created.");

            var statInfo = creationInfo.Source as StatInfo;

            HudLayoutGraphTool layoutTool = null;

            if (statInfo != null)
            {
                statInfo.IsSelected = false;

                var initialStat = statInfo.Stat == Stat.PlayerInfoIcon ?
                                  StatsProvider.GetStat(Stat.NetWon) :
                                  statInfo.Clone();

                layoutTool = new HudLayoutGraphTool
                {
                    BaseStat = statInfo.Clone(),
                    Stats    = new ReactiveList <StatInfo> {
                        initialStat
                    }
                };
            }
            else
            {
                var parentTool = creationInfo.Source as HudBaseToolViewModel;

                if (parentTool == null)
                {
                    return(null);
                }

                layoutTool = new HudLayoutGraphTool
                {
                    ParentId = parentTool.Tool.Id
                };
            }

            var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement);

            toolViewModel.Position = creationInfo.Position;

            creationInfo.Layout.LayoutTools.Add(layoutTool);

            return(toolViewModel);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Creates <see cref="HudBaseToolViewModel"/> based on the specified <see cref="HudToolCreationInfo"/>
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/> to create new hud tool</param>
        /// <returns>Created <see cref="HudBaseToolViewModel"/></returns>
        public HudBaseToolViewModel CreateTool(HudToolCreationInfo creationInfo)
        {
            Check.ArgumentNotNull(() => creationInfo);

            switch (creationInfo.ToolType)
            {
            case HudDesignerToolType.PlainStatBox:
                return(CreatePlainStatBoxTool(creationInfo));

            case HudDesignerToolType.FourStatBox:
                return(CreateFourStatBoxTool(creationInfo));

            case HudDesignerToolType.GaugeIndicator:
                return(CreateGaugeIndicatorTool(creationInfo));

            case HudDesignerToolType.TiltMeter:
                return(CreateTiltMeterTool(creationInfo));

            case HudDesignerToolType.PlayerProfileIcon:
                return(CreatePlayerIconTool(creationInfo));

            case HudDesignerToolType.Graph:
                return(CreateGraphTool(creationInfo));

            case HudDesignerToolType.TextBox:
                return(CreateTextBoxTool(creationInfo));

            case HudDesignerToolType.BumperStickers:
                return(CreateBumperStickersTool(creationInfo));

            case HudDesignerToolType.HeatMap:
                return(CreateHeatMapTool(creationInfo));

            default:
                throw new NotSupportedException($"{creationInfo.ToolType} isn't supported");
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Creates 4-stat box view model
        /// </summary>
        /// <param name="creationInfo"><see cref="HudToolCreationInfo"/></param>
        /// <returns>4-stat box view model</returns>
        private HudBaseToolViewModel CreateFourStatBoxTool(HudToolCreationInfo creationInfo)
        {
            Check.Require(creationInfo.Layout != null, "Layout isn't defined. 4-stat box has not been created.");

            var layoutTool = new HudLayoutFourStatsBoxTool
            {
                Stats       = new ReactiveList <StatInfo>(),
                UIPositions = GetHudUIPositions(EnumTableType.HU, EnumTableType.HU, creationInfo.Position)
            };

            layoutTool.UIPositions.ForEach(x =>
            {
                x.Width  = HudDefaultSettings.FourStatBoxWidth;
                x.Height = HudDefaultSettings.FourStatBoxHeight;
            });

            var toolViewModel = layoutTool.CreateViewModel(creationInfo.HudElement);

            toolViewModel.InitializePositions();

            creationInfo.Layout.LayoutTools.Add(layoutTool);

            return(toolViewModel);
        }