public void Update() { if (HighLogic.LoadedScene != GameScenes.FLIGHT && HighLogic.LoadedScene != GameScenes.TRACKSTATION) { Destroy(gameObject); return; } if (!MapView.MapIsEnabled || !ShowOverlay || MapView.MapCamera == null || KethaneData.Current == null) { overlayRenderer.IsVisible = false; return; } overlayRenderer.IsVisible = true; var target = MapView.MapCamera.target; var newBody = getTargetBody(target); var bodyChanged = (newBody != null) && (newBody != body); if (bodyChanged) { body = newBody; heightAt = getHeightRatioMap(); bounds = new BoundsMap(heightAt, KethaneData.GridLevel); overlayRenderer.SetHeightMap(heightAt); var radius = bodyRadii.ContainsKey(body) ? bodyRadii[body] : 1.025; var parent = ScaledSpace.Instance.scaledSpaceTransforms.FirstOrDefault(t => t.name == body.name); overlayRenderer.SetRadiusMultiplier((float)radius); overlayRenderer.SetTarget(parent); } if (bodyChanged || resource == null || resource.Resource != SelectedResource) { resource = KethaneController.ResourceDefinitions.Where(r => r.Resource == SelectedResource).Single(); refreshCellColors(); } var ray = MapView.MapCamera.camera.ScreenPointToRay(Input.mousePosition); hoverCell = Cell.Raycast(ray, KethaneData.GridLevel, bounds, heightAt, gameObject.transform); }