Exemplo n.º 1
0
 public void CenterCamera(CityCameraCenter center)
 {
     if (Zoomed == TerrainZoomMode.Far)
     {
         m_WheelZoom = 0.10f / (2 - center.Dist);
     }
     CenterCam = center;
 }
Exemplo n.º 2
0
        public void CenterNHood(int nhoodDBID)
        {
            var nhoodID = ToID(nhoodDBID);
            var nhood   = Data[nhoodID];

            if (Cells.Count == 0)
            {
                return;
            }
            var cell    = Cells[NHoodToCell[nhoodID]];
            var camSize = 2 - (float)Math.Sqrt(cell.Size) / 7;
            var center  = new CityCameraCenter()
            {
                Center = cell.Center + new Vector2(0.5f, 0.5f),
                YAngle = 0,
                Dist   = camSize,
                ID     = nhoodID
            };

            MyCenter = center;
            City.Camera.CenterCamera(center);
        }
Exemplo n.º 3
0
 public void CenterCamera(CityCameraCenter center)
 {
     center.RotAngle = RotationX;
     CenterCam       = center;
 }
Exemplo n.º 4
0
        public void Update(UpdateState state)
        {
            if (City.m_Zoomed == TerrainZoomMode.Far)
            {
                //find the nhood we're hovering
                var pos = City.EstTileAtPosWithScroll(state.MouseState.Position.ToVector2() / FSOEnvironment.DPIScaleFactor, null);

                if (City.HandleMouse)
                {
                    HoverNHood = NhoodNearest(pos);
                    if (HoverNHood > -1 && !HoverPct.ContainsKey(HoverNHood))
                    {
                        HoverPct.Add(HoverNHood, 0f);
                    }
                }
                else
                {
                    HoverNHood = -1;
                }
            }
            else
            {
                HoverNHood = -1;
            }

            if (MyCenter != null)
            {
                if (City.Camera.CenterCam == null)
                {
                    MyCenter = null;
                    //if gizmo is present, we need to alert it that we've left center cam.
                }
                else
                {
                    HoverNHood = MyCenter.ID;
                    if (HoverNHood > -1 && !HoverPct.ContainsKey(HoverNHood))
                    {
                        HoverPct.Add(HoverNHood, 0f);
                    }
                }
            }

            if (City.m_Zoomed <= TerrainZoomMode.Near)
            {
                var list  = HoverPct.ToList();
                var speed = 3f / FSOEnvironment.RefreshRate;
                foreach (var hover in list)
                {
                    var value = hover.Value + ((hover.Key == HoverNHood) ? speed : -speed);
                    if (value > 1)
                    {
                        value = 1;
                    }
                    else if (value < 0)
                    {
                        HoverPct.Remove(hover.Key);
                        continue;
                    }
                    HoverPct[hover.Key] = value;
                }

                if (BannerPct != TargetBannerPct)
                {
                    var vel = ((TargetBannerPct > BannerPct) ? speed : -speed);
                    BannerPct = BannerPct + vel;
                    if (BannerPct > TargetBannerPct && vel > 0)
                    {
                        BannerPct = TargetBannerPct;
                    }
                    else if (BannerPct < TargetBannerPct && vel < 0)
                    {
                        BannerPct = TargetBannerPct;
                    }
                }

                var zoomBannerPct = City.Camera.FarUIFade;
                if (BannerPct > 1 - zoomBannerPct)
                {
                    BannerPct = 1 - zoomBannerPct;
                }
            }
        }