Пример #1
0
        public static Vec2 MapToWidget(this IMiniMap miniMap, Vec2 p)
        {
            var config = BattleMiniMapConfig.Get();
            var scale  = (float)config.WidgetWidth / miniMap.BitmapWidth;

            return(new Vec2((p.X * scale), (p.Y * scale)));
        }
Пример #2
0
        public static Vec2 WidgetToMap(this IMiniMap miniMap, Vec2 p)
        {
            var config = BattleMiniMapConfig.Get();
            var scale  = (float)config.WidgetWidth / miniMap.BitmapWidth;

            return(new Vec2(p.X / scale, p.Y / scale));
        }
Пример #3
0
        public static float MapFToWidget(this IMiniMap miniMap, float f)
        {
            var config = BattleMiniMapConfig.Get();
            var scale  = (float)config.WidgetWidth / miniMap.BitmapWidth;

            return(f * scale);
        }
Пример #4
0
        protected override void OnUpdate(float dt)
        {
            base.OnUpdate(dt);
            if (MiniMap.Instance != null)
            {
                var width = BattleMiniMapConfig.Get().WidgetWidth;

                SuggestedWidth  = Math.Max(width * 0.1f, 1);
                SuggestedHeight = Math.Max(width * 0.1f, 1);
                IsEnabled       = MiniMap.Instance.IsValid;
            }
            else
            {
                IsEnabled = false;
            }
        }
        protected override void OnUpdate(float dt)
        {
            base.OnUpdate(dt);

            if (MiniMap.Instance != null)
            {
                var width  = MiniMap.Instance.BitmapWidth;
                var height = MiniMap.Instance.BitmapHeight;
                var config = BattleMiniMapConfig.Get();
                SuggestedWidth  = config.WidgetWidth;
                SuggestedHeight = height / (float)width * SuggestedWidth;
                //var size = Utility.WorldToMapF(10, MiniMap.Instance.Resolution, 0);
                //_agentMarkerSize = Math.Max(MiniMap.Instance.MapFToWidget(size) * config.AgentMarkerScale, 1);
                var size = Widgets.Utility.GetSize(this);
                _agentMarkerSize = Math.Max(size.x * 0.01f * config.AgentMarkerScale, 1);
            }
        }
Пример #6
0
        protected override void OnUpdate(float dt)
        {
            base.OnUpdate(dt);
            if (MiniMap.Instance != null)
            {
                var width  = MiniMap.Instance.BitmapWidth;
                var height = MiniMap.Instance.BitmapHeight;

                SuggestedWidth  = BattleMiniMapConfig.Get().WidgetWidth;
                SuggestedHeight = height / (float)width * SuggestedWidth;
                IsEnabled       = MiniMap.Instance.IsValid;
            }
            else
            {
                IsEnabled = false;
            }
        }
Пример #7
0
        private void UpdateMarker()
        {
            AgentMarkerType = _agent.GetAgentMarkerType();
            if (AgentMarkerType == AgentMarkerType.Inactive)
            {
                MakeDead();
                return;
            }

            var miniMap = MiniMap.Instance;

            if (!miniMap.IsValid && !BattleMiniMapConfig.Get().ShowMap)
            {
                return;
            }
            PositionInMap    = miniMap.WorldToMapF(_agent.Position.AsVec2);
            PositionInWidget = miniMap.MapToWidget(PositionInMap);
        }
Пример #8
0
        public void UpdateMapSize(Mission mission, bool updateMap = false)
        {
            Resolution = BattleMiniMapConfig.Get().Resolution;
            if (Resolution == 0)
            {
                Resolution = 1;
            }
            var mapWidth  = (int)Math.Abs((MapBoundMax.y - MapBoundMin.y) / Resolution) + 1;
            var mapHeight = (int)Math.Abs((MapBoundMax.x - MapBoundMin.x) / Resolution) + 1;

            BitmapWidth  = mapWidth;
            BitmapHeight = mapHeight;

            if (updateMap)
            {
                UpdateMapImage(mission);
            }
        }
Пример #9
0
        protected override void OnUpdate(float dt)
        {
            base.OnUpdate(dt);
            if (MiniMap.Instance != null)
            {
                var width  = MiniMap.Instance.BitmapWidth;
                var height = MiniMap.Instance.BitmapHeight;

                var config = BattleMiniMapConfig.Get();
                SuggestedWidth  = config.WidgetWidth;
                SuggestedHeight = height / (float)width * SuggestedWidth;
                IsEnabled       = MiniMap.Instance.IsValid;

                HorizontalAlignment = config.HorizontalAlignment;
                VerticalAlignment   = config.VerticalAlignment;
                if (HorizontalAlignment == HorizontalAlignment.Left ||
                    HorizontalAlignment == HorizontalAlignment.Center)
                {
                    MarginLeft  = config.PositionX;
                    MarginRight = 0;
                }
                else
                {
                    MarginLeft  = 0;
                    MarginRight = config.PositionX;
                }

                if (VerticalAlignment == VerticalAlignment.Top || VerticalAlignment == VerticalAlignment.Center)
                {
                    MarginTop    = config.PositionY;
                    MarginBottom = 0;
                }
                else
                {
                    MarginTop    = 0;
                    MarginBottom = config.PositionY;
                }
            }
            else
            {
                IsEnabled = false;
            }
        }
Пример #10
0
        public override void OnMissionScreenTick(float dt)
        {
            base.OnMissionScreenTick(dt);

            if (_boundaryChanged)
            {
                _boundaryChanged = false;
                if (!MiniMap.Instance.IsValid)
                {
                    MiniMap.Instance.InitializeMapRange(Mission.Current, true);
                }
            }

            bool toggleMapKeyDown      = false;
            var  toggleMapLongPressKey = BattleMiniMapGameKeyCategory.GetKey(GameKeyEnum.ToggleMapLongPress);
            var  toggleMapKey          = BattleMiniMapGameKeyCategory.GetKey(GameKeyEnum.ToggleMap);

            if (BattleMiniMapConfig.Get().EnableToggleMapLongPressKey&& toggleMapLongPressKey.IsKeyDown(Input))
            {
                toggleMapKeyDown = true;
            }
            else if (toggleMapKey.IsKeyPressed(Input))
            {
                BattleMiniMapConfig.Get().ShowMap = !BattleMiniMapConfig.Get().ShowMap;
            }

            _dataSource.UpdateEnabled(dt, MiniMap.Instance.IsValid &&
                                      ((BattleMiniMapConfig.Get().ShowMap ^ toggleMapKeyDown) ||
                                       _isOrderViewOpened && BattleMiniMapConfig.Get().ShowMapWhenCommanding));

            _dataSource.UpdateCamera();

            if (_timer.Check(true))
            {
                _dataSource.UpdateData();
            }
        }