public void CenterCamera(CityCameraCenter center) { if (Zoomed == TerrainZoomMode.Far) { m_WheelZoom = 0.10f / (2 - center.Dist); } CenterCam = center; }
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); }
public void CenterCamera(CityCameraCenter center) { center.RotAngle = RotationX; CenterCam = center; }
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; } } }