void OnMouseClick(MouseEventArgs args)
    {
        if (acceptInput && args.button == 0)
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit,10000.0f, 1 << celestialObjectLayer))
            {
                if (hit.collider.GetComponent<CelestialObject>().ID == ID)
                {
                    if (currSelectedObject != null)
                    {
                        currSelectedObject.renderer.material = blankMaterial;
                    }

                    currSelectedObject = hit.collider.GetComponent<CelestialObject>();
                    objectSelected = true;
                    DisplayInfo();
                    acceptInput = false;

                    texture = renderer.material.mainTexture;
                    renderer.material = glowMaterial;
                    renderer.material.mainTexture = texture;
                }

                StartCoroutine(WaitBeforeInput(0.5f));
            }

            if (Physics.Raycast(ray, out hit, 10000.0f, 1 << fogLayer))
            {
                Debug.Log(hit.collider.name);
            }
        }
    }
Beispiel #2
0
        public static ObjectCommonDataViewModel CommonDataFromResult(CelestialObject celestialObject)
        {
            if (celestialObject == null || celestialObject.ObjectData == null || celestialObject.ObjectData.Count == 0)
                return null;

            ObjectCommonDataViewModel commonData = new ObjectCommonDataViewModel();

            commonData.Constellation = celestialObject.ObjectData.Where(it => it.Name.Equals("Constellation")).First().Values.First().Value.ToString();
            commonData.ObjectType = celestialObject.ObjectData.Where(it => it.Name.Equals("ObjectType")).First().Values.First().Value.ToString();
            commonData.ObjectIdentifier = celestialObject.ObjectData.Where(it => it.Name.Equals("ObjectName")).First().Values.First().Value.ToString();
            commonData.OtherIdentifiers = celestialObject.ObjectData.Where(it => it.Name.Equals("OtherIdentifiers")).First().Values.Select(it => it.Value.ToString());

            return commonData;
        }
        public StarIcon(CelestialObject star, MapTab mapTab)
        {
            this.mapTab = mapTab;
            if (star.CelestialObjectType != CelestialObjectType.Star) throw new Exception("body not star");

            InitializeComponent();
            Body = star;
            Label.Text = star.Name;
            Canvas.SetZIndex(this, 30);
            X = Body.X*MapTab.MapScale;
            Y = Body.Y*MapTab.MapScale;
            Ellipse.Fill = Body.Brush;
            Ellipse.Width = Body.Size;
            Ellipse.Height = Body.Size;
            Update();
        }
Beispiel #4
0
        public IActionResult Update(int id, [FromBody] CelestialObject obj)
        {
            var celestialObject = _context.CelestialObjects.FirstOrDefault(o => o.Id == id);

            if (celestialObject == null)
            {
                return(NotFound());
            }
            if (obj != null)
            {
                celestialObject.Name            = obj.Name;
                celestialObject.OrbitalPeriod   = obj.OrbitalPeriod;
                celestialObject.OrbitedObjectId = obj.OrbitedObjectId;
                _context.Update(celestialObject);
                _context.SaveChanges();
            }
            return(NoContent());
        }
        public IActionResult Update(int id, [FromBody] CelestialObject co)
        {
            var dbCO = _context.CelestialObjects.Where(x => x.Id == id).FirstOrDefault();

            if (dbCO == null)
            {
                return(NotFound());
            }
            else
            {
                dbCO.Name            = co.Name;
                dbCO.OrbitalPeriod   = co.OrbitalPeriod;
                dbCO.OrbitedObjectId = co.OrbitedObjectId;
                _context.CelestialObjects.Update(dbCO);
                _context.SaveChanges();
                return(NoContent());
            }
        }
        public IActionResult Update(int id, CelestialObject objToUpdate)
        {
            var orgObject = _context.CelestialObjects.Find(id);

            if (orgObject == null)
            {
                return(NotFound());
            }

            orgObject.Name            = objToUpdate.Name;
            orgObject.OrbitedObjectId = objToUpdate.OrbitedObjectId;
            orgObject.OrbitalPeriod   = objToUpdate.OrbitalPeriod;

            _context.Update(orgObject);
            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, CelestialObject celestial)
        {
            var oldObject = _context.CelestialObjects.FirstOrDefault(o => o.Id == id);

            if (oldObject is null)
            {
                return(NotFound());
            }

            oldObject.Name            = celestial.Name;
            oldObject.OrbitalPeriod   = celestial.OrbitalPeriod;
            oldObject.OrbitedObjectId = celestial.OrbitedObjectId;

            _context.Update(oldObject);
            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var oldData = _context.CelestialObjects.Find(id);

            if (oldData == null)
            {
                return(NotFound());
            }

            oldData.Name            = celestialObject.Name;
            oldData.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            oldData.OrbitedObjectId = celestialObject.OrbitedObjectId;

            _context.CelestialObjects.Update(oldData);
            _context.SaveChanges();

            return(NoContent());
        }
Beispiel #9
0
        public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            CelestialObject body = value as CelestialObject;

            if (body != null)
            {
                string key = new[] { body.GetType() }
                .Concat(body.GetType().GetInterfaces())
                .Select(inf => $"Icon{inf.Name}")
                .FirstOrDefault(k => Application.Current.Resources.Contains(k));

                if (key != null)
                {
                    return(Application.Current.Resources[key]);
                }
            }
            return(null);
        }
        public IActionResult Update(int id, CelestialObject inputCelestialObject)
        {
            var dbCelestialObject = _context.CelestialObjects.FirstOrDefault(o => o.Id == id);

            if (dbCelestialObject == null)
            {
                return(NotFound());
            }

            dbCelestialObject.Name            = inputCelestialObject.Name;
            dbCelestialObject.OrbitalPeriod   = inputCelestialObject.OrbitalPeriod;
            dbCelestialObject.OrbitedObjectId = inputCelestialObject.OrbitedObjectId;

            _context.CelestialObjects.Update(dbCelestialObject);
            _context.SaveChanges();

            return(NoContent());
        }
        [HttpPut("{id}")] //What this paraketer does?
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var co = _context.CelestialObjects.FirstOrDefault(i => i.Id == id);

            if (co == null)
            {
                return(NotFound());
            }

            co.Name            = celestialObject.Name;
            co.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            co.OrbitedObjectId = celestialObject.OrbitedObjectId;

            _context.CelestialObjects.Update(co);
            _context.SaveChanges();

            return(NoContent()); //Whit this? and not the new object?
        }
Beispiel #12
0
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var item = _context.CelestialObjects.FirstOrDefault(e => e.Id == id);

            if (item == null)
            {
                return(NotFound());
            }

            item.Name            = celestialObject.Name;
            item.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            item.OrbitedObjectId = celestialObject.OrbitedObjectId;

            _context.Update(item);
            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, CelestialObject co)
        {
            var currObj = _context.CelestialObjects.FirstOrDefault(x => x.Id == id);

            if (currObj == null)
            {
                return(NotFound());
            }

            currObj.Name            = co.Name;
            currObj.OrbitalPeriod   = co.OrbitalPeriod;
            currObj.OrbitedObjectId = co.OrbitedObjectId;

            _context.Update(currObj);
            _context.SaveChanges();

            return(NoContent());
        }
        /// <summary>
        /// Metodo responsável por inserir um objeto celestia na base de dados.
        /// </summary>
        /// <param name="user">Objeto celestia a ser inserido.</param>
        /// <returns></returns>
        public bool Inserir(CelestialObject celestialObject)
        {
            var optionsBuilder = new DbContextOptions <EmployeeDbContext>();

            try
            {
                using (var context = new EmployeeDbContext(optionsBuilder))
                {
                    context.Add(celestialObject);
                    context.SaveChanges();
                }
                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
        public IActionResult Update(int id, CelestialObject newObj)
        {
            var obj = _context.CelestialObjects.Where(x => x.Id == id).FirstOrDefault();

            if (obj != null)
            {
                obj.Name            = newObj.Name;
                obj.OrbitalPeriod   = newObj.OrbitalPeriod;
                obj.OrbitedObjectId = newObj.OrbitedObjectId;

                _context.CelestialObjects.Update(obj);

                _context.SaveChanges();

                return(this.NoContent());
            }
            return(this.NotFound());
        }
Beispiel #16
0
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var bob = _context.CelestialObjects.Find(id);

            if (bob == null)
            {
                return(NotFound());
            }
            else
            {
                bob.Name            = celestialObject.Name;
                bob.OrbitalPeriod   = celestialObject.OrbitalPeriod;
                bob.OrbitedObjectId = celestialObject.OrbitedObjectId;
                _context.Update(bob);
                _context.SaveChanges();
                return(NoContent());
            }
        }
Beispiel #17
0
        public IActionResult RenameObject(int id, string name)
        {
            CelestialObject selectedObject = _context.CelestialObjects.Find(id);

            if (selectedObject == null)
            {
                return(NotFound());
            }
            else
            {
                selectedObject.Name = name;

                _context.Update(selectedObject);
                _context.SaveChanges();

                return(NoContent());
            }
        }
Beispiel #18
0
        public IActionResult Update(int id, CelestialObject currentObj)
        {
            var updatedObject = _context.CelestialObjects.Find(id);

            if (updatedObject == null)
            {
                return(NotFound());
            }
            else
            {
                updatedObject.Name            = currentObj.Name;
                updatedObject.OrbitalPeriod   = currentObj.OrbitalPeriod;
                updatedObject.OrbitedObjectId = currentObj.OrbitedObjectId;
                _context.CelestialObjects.Update(updatedObject);
                _context.SaveChanges();
                return(NoContent());
            }
        }
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var celestialObjectToUpdate = _context.CelestialObjects.Find(id);

            if (celestialObjectToUpdate == null)
            {
                return(NotFound());
            }

            celestialObjectToUpdate.Name            = celestialObject.Name;
            celestialObjectToUpdate.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            celestialObjectToUpdate.OrbitedObjectId = celestialObject.OrbitedObjectId;

            _context.CelestialObjects.Update(celestialObjectToUpdate);
            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var existingObject = _context.CelestialObjects
                                 .Find(id);

            if (existingObject == null)
            {
                return(NotFound());
            }

            existingObject.Name            = celestialObject.Name;
            existingObject.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            existingObject.OrbitedObjectId = celestialObject.OrbitedObjectId;
            _context.CelestialObjects.Update(existingObject);
            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, CelestialObject obj)
        {
            var itm = _context.CelestialObjects.Find(id);

            if (itm == null)
            {
                return(NotFound());
            }

            itm.Name            = obj.Name;
            itm.OrbitalPeriod   = obj.OrbitalPeriod;
            itm.OrbitedObjectId = obj.OrbitedObjectId;

            _context.CelestialObjects.Update(itm);
            _context.SaveChanges();

            return(NoContent());
        }
Beispiel #22
0
    // Start is called before the first frame update
    void Start()
    {
        rb = this.GetComponent <Rigidbody>();
        Moon m = this.GetComponent <Moon>();

        if (m)
        {
            //Component is valid AND stored for later use, preventing any further GetComponent calls
            m.velocity = initialvelocity * Mathf.Sqrt(2.0f / rb.mass);;
        }
        else
        {
            CelestialObject ob = (CelestialObject)gameObject.GetComponent <CelestialObject>();
            ob.velocity += initialvelocity * Mathf.Sqrt(2.0f / rb.mass);
        }

        //rb.velocity += initialvelocity;
    }
        public PlanetIcon(CelestialObject planet, IMapIcon parentIcon, MapTab mapTab)
        {
            this.mapTab = mapTab;
            InitializeComponent();
            ParentIcon = parentIcon;
            Body       = planet;
            Canvas.SetZIndex(this, planet.Size);
            Label.Text     = planet.Name;
            Ellipse.Width  = Body.Size;
            Ellipse.Height = Body.Size;
            Ellipse.Fill   = Body.Brush;

            for (var i = 0; i < Body.MetalDensity * 3; i++)
            {
                MetalPanel.Children.Add(new Ellipse {
                    Width = 5, Height = 5, Fill = new SolidColorBrush(Colors.Gray), Margin = new Thickness(1)
                });
            }
            for (var i = 0; i < Body.FoodDensity * 3; i++)
            {
                FoodPanel.Children.Add(new Ellipse {
                    Width = 5, Height = 5, Fill = new SolidColorBrush(Colors.Green), Margin = new Thickness(1)
                });
            }
            for (var i = 0; i < Body.DarkMatterDensity * 3; i++)
            {
                DarkMatterPanel.Children.Add(new Ellipse
                {
                    Width = 5, Height = 5, Fill = new SolidColorBrush(Colors.Brown), Margin = new Thickness(1)
                });
            }
            for (var i = 0; i < Body.QuantiumDensity * 3; i++)
            {
                QuantumPanel.Children.Add(new Ellipse {
                    Width = 5, Height = 5, Fill = new SolidColorBrush(Colors.Purple), Margin = new Thickness(1)
                });
            }
            InfoText.Text = MakeDescription();
            if (App.Player != null && Body.OwnerID != App.Player.PlayerID)
            {
                Structures.IsEnabled = false;
                Ships.IsEnabled      = false;
            }
        }
Beispiel #24
0
        public IActionResult Update(int id, CelestialObject spaceObject)
        {
            CelestialObject foundSpaceThing = _context.CelestialObjects.FirstOrDefault(c => c.Id == id);

            if (foundSpaceThing == null)
            {
                return(NotFound());
            }

            foundSpaceThing.Name            = spaceObject.Name;
            foundSpaceThing.OrbitalPeriod   = spaceObject.OrbitalPeriod;
            foundSpaceThing.OrbitedObjectId = spaceObject.OrbitedObjectId;

            _context.CelestialObjects.Update(foundSpaceThing);

            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, CelestialObject objCele)
        {
            var obj = _context.CelestialObjects.Find(id);

            if (obj == null)
            {
                return(NotFound());
            }

            obj.Name            = objCele.Name;
            obj.OrbitalPeriod   = objCele.OrbitalPeriod;
            obj.OrbitedObjectId = objCele.OrbitedObjectId;

            var f = _context.CelestialObjects.Update(obj);

            _context.SaveChanges();

            return(NoContent());
        }
        public LinkIcon(CelestialObject starA, CelestialObject starB, MapTab mapTab)
        {
            this.mapTab = mapTab;
            InitializeComponent();

            var left = Math.Min(starA.X, starB.X) * MapTab.MapScale;
            var top  = Math.Min(starB.Y, starA.Y) * MapTab.MapScale;

            Line.X1 = starA.X * MapTab.MapScale - left;
            Line.Y1 = starA.Y * MapTab.MapScale - top;
            Line.X2 = starB.X * MapTab.MapScale - left;
            Line.Y2 = starB.Y * MapTab.MapScale - top;

            Canvas.SetLeft(this, left);
            Canvas.SetTop(this, top);
            Canvas.SetZIndex(this, -10);

            Update();
        }
        public IActionResult Update(int id, CelestialObject celestialObject)
        {
            var celestialObjectToUpdate = _context.CelestialObjects.Where(x => x.Id == id).FirstOrDefault();

            if (celestialObjectToUpdate is null)
            {
                return(NotFound());
            }

            celestialObjectToUpdate.Name            = celestialObject.Name;
            celestialObjectToUpdate.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            celestialObjectToUpdate.OrbitedObjectId = celestialObject.OrbitedObjectId;

            _context.Update(celestialObjectToUpdate);

            _context.SaveChanges();

            return(NoContent());
        }
Beispiel #28
0
        public IActionResult Update(int id, CelestialObject o)
        {
            var match =
                _context.CelestialObjects.FirstOrDefault <CelestialObject>(v => v.Id == id);

            if (match == null)
            {
                return(NotFound());
            }

            match.Name            = o.Name;
            match.OrbitalPeriod   = o.OrbitalPeriod;
            match.OrbitedObjectId = o.OrbitedObjectId;

            _context.Update <CelestialObject>(match);
            _context.SaveChanges();

            return(NoContent());
        }
        public IActionResult Update(int id, [FromBody] CelestialObject celestialObject)
        {
            var co = _context.CelestialObjects.Find(id);

            if (co is null)
            {
                return(NotFound());
            }

            co.Name            = celestialObject.Name;
            co.OrbitalPeriod   = celestialObject.OrbitalPeriod;
            co.OrbitedObjectId = celestialObject.OrbitedObjectId;

            _context.CelestialObjects.Update(co);

            _context.SaveChanges();

            return(NoContent());
        }
Beispiel #30
0
        public CelestialObject CreateHomeworld(CelestialObject star)
        {
            CelestialObject o   = new CelestialObject();
            var             cnt = o.ChildCelestialObjects.Count;

            o.CelestialObjectType = CelestialObjectType.Planet;
            o.MetalDensity        = 1;
            o.FoodDensity         = 1;
            o.Size = 5;
            o.Name = string.Format("{0} {1}", star.Name, ToRoman(cnt + 1));

            o.OrbitInitialAngle = random.NextDouble() * 2 * Math.PI;

            o.OrbitDistance = o.ChildCelestialObjects.Max(x => (double?)x.OrbitDistance) ?? 0 + GaussianRandom(5, 15);
            o.OrbitSpeed    = 1 / o.OrbitDistance / 100;
            o.OrbitSpeed    = o.OrbitSpeed * (1 + GaussianRandom(-30, 30) / 100);
            star.ChildCelestialObjects.Add(o);
            return(o);
        }
        public IActionResult Update(int id, CelestialObject request)
        {
            var celestialObject = _context.CelestialObjects
                                  .SingleOrDefault(co => co.Id == id);

            if (celestialObject == null)
            {
                return(NotFound());
            }

            celestialObject.Name            = request.Name;
            celestialObject.OrbitalPeriod   = request.OrbitalPeriod;
            celestialObject.OrbitedObjectId = request.OrbitedObjectId;

            _context.CelestialObjects.Update(celestialObject);
            _context.SaveChanges();

            return(NoContent());
        }
        public StarIcon(CelestialObject star, MapTab mapTab)
        {
            this.mapTab = mapTab;
            if (star.CelestialObjectType != CelestialObjectType.Star)
            {
                throw new Exception("body not star");
            }

            InitializeComponent();
            Body       = star;
            Label.Text = star.Name;
            Canvas.SetZIndex(this, 30);
            X              = Body.X * MapTab.MapScale;
            Y              = Body.Y * MapTab.MapScale;
            Ellipse.Fill   = Body.Brush;
            Ellipse.Width  = Body.Size;
            Ellipse.Height = Body.Size;
            Update();
        }
        public LinkIcon(CelestialObject starA, CelestialObject starB, MapTab mapTab)
        {
            this.mapTab = mapTab;
            InitializeComponent();

            var left = Math.Min(starA.X, starB.X)*MapTab.MapScale;
            var top = Math.Min(starB.Y, starA.Y)*MapTab.MapScale;

            Line.X1 = starA.X*MapTab.MapScale - left;
            Line.Y1 = starA.Y*MapTab.MapScale - top;
            Line.X2 = starB.X*MapTab.MapScale - left;
            Line.Y2 = starB.Y*MapTab.MapScale - top;

            Canvas.SetLeft(this, left);
            Canvas.SetTop(this, top);
            Canvas.SetZIndex(this, -10);

            Update();
        }
Beispiel #34
0
        private void Map_SelectedObjectChanged(CelestialObject body)
        {
            if (body != null)
            {
                SelectedObjectName = body.Names.First();

                if (!SelectedObjectsMenuItems.Any())
                {
                    SelectedObjectsMenuItems.Add(new MenuItemVM()
                    {
                        Header  = "Clear all",
                        Command = ClearObjectsHistoryCommand
                    });
                    SelectedObjectsMenuItems.Add(null);
                }

                var existingItem = SelectedObjectsMenuItems.FirstOrDefault(i => body.Equals(i?.CommandParameter));
                if (existingItem != null)
                {
                    SelectedObjectsMenuItems.Remove(existingItem);
                }

                SelectedObjectsMenuItems.Insert(2, new MenuItemVM()
                {
                    Command          = CenterOnObjectCommand,
                    CommandParameter = body,
                    Header           = SelectedObjectName
                });

                // 10 items of history + "clear all" + separator
                if (SelectedObjectsMenuItems.Count > 13)
                {
                    SelectedObjectsMenuItems.RemoveAt(0);
                }
            }
            else
            {
                SelectedObjectName = "<No object>";
            }

            NotifyPropertyChanged(nameof(SelectedObjectName));
        }
Beispiel #35
0
        public static List<ObjectDetailsItemViewModel> DetailsFromResult(CelestialObject celestialObject)
        {
            if (celestialObject == null || celestialObject.ObjectData == null || celestialObject.ObjectData.Count == 0)
                return null;

            List<ObjectDetailsItemViewModel> details = new List<ObjectDetailsItemViewModel>();
            List<string> itemsToSkip = new List<string>() { "Constellation", "ObjectType", "ObjectName", "OtherIdentifiers" };

            foreach (DataItemBase item in celestialObject.ObjectData)
            {
                if (itemsToSkip.Contains(item.Name))
                    continue;

                ObjectDetailsItemViewModel detailsItem = new ObjectDetailsItemViewModel();

                List<ObservationValue> values = new List<ObservationValue>();
                ObservationValue value = new ObservationValue();

                detailsItem.Name = item.Name;

                foreach (var val in item.Values)
                {
                    if (val is ValueBase)
                    {
                        value.AddPrimitive(val.Value.ToString());
                        detailsItem.AddValue(val.Value.ToString(), null);
                    }
                    else if (val is ComplexValue)
                    {
                        ComplexValue complexValue = val as ComplexValue;
                        detailsItem.AddValue(complexValue.ToString(), null);
                    }

                    values.Add(value);
                }

                details.Add(detailsItem);
            }

            return details;
        }
Beispiel #36
0
        private void InstantiateEasterEggs()
        {
            var configDict = new Dictionary<string, string>
                             {
                                 {"Hubs/Static/KerbTown/EE01/EE01", "MushroomCave"},
                                 {"Hubs/Static/KerbTown/EE02/EE02", "PurplePathway"}
                             };

            _eeInstancedList = new Dictionary<string, List<StaticObject>>(configDict.Count);

            foreach (var configItem in configDict)
            {
                ConfigNode staticUrlConfig = GameDatabase.Instance.GetConfigNode(configItem.Key);

                if (staticUrlConfig == null)
                    continue;

                string model = staticUrlConfig.GetValue("mesh");
                if (string.IsNullOrEmpty(model))
                {
                    Extensions.LogError("Missing 'mesh' parameter for " + configItem);
                    continue;
                }

                model = model.Substring(0, model.LastIndexOf('.'));
                string modelUrl = configItem.Key.Substring(0, configItem.Key.SecondLastIndex('/')) + "/" + model;

                // TODO: Instantiate through code rather than config.
                foreach (ConfigNode ins in staticUrlConfig.GetNodes("Instances"))
                {
                    Vector3 radPosition = ConfigNode.ParseVector3(ins.GetValue("RadialPosition"));
                    float rotAngle = float.Parse(ins.GetValue("RotationAngle"));
                    float radOffset = float.Parse(ins.GetValue("RadiusOffset"));
                    Vector3 orientation = ConfigNode.ParseVector3(ins.GetValue("Orientation"));
                    float visRange = float.Parse(ins.GetValue("VisibilityRange"));
                    string celestialBodyName = ins.GetValue("CelestialBody");

                    //string scaleStr = "";//ins.GetValue("Scale");
                    //Vector3 scale = ConfigNode.ParseVector3(string.IsNullOrEmpty(scaleStr) ? "1,1,1" : scaleStr);

                    //var staticObject = new StaticObject(radPosition, rotAngle, radOffset, orientation,
                    //    visRange, modelUrl, configItem.Key, celestialBodyName, scale, configItem.Value);
                    var staticObject = new StaticObject(radPosition, rotAngle, radOffset, orientation,
                        visRange, modelUrl, configItem.Key, celestialBodyName, configItem.Value);

                    if (_eeInstancedList.ContainsKey(modelUrl))
                        _instancedList[modelUrl].Add(staticObject);
                    else
                        _eeInstancedList.Add(modelUrl, new List<StaticObject> {staticObject});

                    InstantiateStatic(
                        (_currentCelestialObj = GetCelestialObject(staticObject.CelestialBodyName)).PQSComponent,
                        staticObject);
                }
            }
        }
Beispiel #37
0
 private void starSystem_Changed(CelestialObject sender)
 {
     splitContainer.Panel1.Refresh();
 }
Beispiel #38
0
        // Load Global Instances
        private void InstantiateStaticsFromInstanceList()
        {
            Stopwatch stopWatch = Stopwatch.StartNew();

            foreach (StaticObject instance in _instancedList.Keys.SelectMany(instList => _instancedList[instList]))
            {
                InstantiateStatic((_currentCelestialObj = GetCelestialObject(instance.CelestialBodyName)).PQSComponent,
                    instance);
            }

            stopWatch.Stop();
            Extensions.LogInfo(string.Format("Loaded static objects. ({0}ms)", stopWatch.ElapsedMilliseconds));
        }
Beispiel #39
0
        // Load Save Instances
        private void InstantiateStaticsFromSave()
        {
            string saveConfigPath;

            if (HighLogic.CurrentGame.Mode == Game.Modes.SANDBOX)
            {
                saveConfigPath = string.Format("{0}saves/{1}/KTInstances.cfg", KSPUtil.ApplicationRootPath,
                    HighLogic.SaveFolder);
            }
            else // Career / Scenario
            {
                saveConfigPath = string.Format("{0}saves/scenarios/KT_{1}.cfg", KSPUtil.ApplicationRootPath,
                    HighLogic.CurrentGame.Title);
            }

            if (!File.Exists(saveConfigPath)) return;

            ConfigNode rootNode = ConfigNode.Load(saveConfigPath);
            _ssInstancedList = new Dictionary<string, List<StaticObject>>();

            foreach (ConfigNode ins in rootNode.GetNodes("Instances"))
            {
                Vector3 radPosition = ConfigNode.ParseVector3(ins.GetValue("RadialPosition"));
                float rotAngle = float.Parse(ins.GetValue("RotationAngle"));
                float radOffset = float.Parse(ins.GetValue("RadiusOffset"));
                Vector3 orientation = ConfigNode.ParseVector3(ins.GetValue("Orientation"));
                float visRange = float.Parse(ins.GetValue("VisibilityRange"));
                string celestialBodyName = ins.GetValue("CelestialBody");
                string launchSiteName = ins.GetValue("LaunchSiteName") ?? "";

                string modelUrl = ins.GetValue("ModelURL");
                string configUrl = ins.GetValue("ConfigURL");

                if (string.IsNullOrEmpty(modelUrl) || string.IsNullOrEmpty(configUrl)) continue;

                if (_ssInstancedList.ContainsKey(modelUrl))
                {
                    _ssInstancedList[modelUrl].Add(
                        new StaticObject(radPosition, rotAngle, radOffset, orientation,
                            visRange, modelUrl, configUrl, celestialBodyName, "", launchSiteName));
                }
                else
                {
                    _ssInstancedList.Add(modelUrl,
                        new List<StaticObject>
                        {
                            new StaticObject(radPosition, rotAngle, radOffset, orientation,
                                visRange, modelUrl, configUrl, celestialBodyName, "",
                                launchSiteName)
                        });
                }
            }

            //_ssInstancedList = new Dictionary<string, List<StaticObject>>();
            Stopwatch stopWatch = Stopwatch.StartNew();

            foreach (StaticObject instance in _ssInstancedList.Keys.SelectMany(instList => _ssInstancedList[instList]))
            {
                InstantiateStatic((_currentCelestialObj = GetCelestialObject(instance.CelestialBodyName)).PQSComponent,
                    instance);
            }

            stopWatch.Stop();
            Extensions.LogInfo(string.Format("Loaded save specific static objects. ({0}ms)",
                stopWatch.ElapsedMilliseconds));
        }
 void Start()
 {
     ID = ++numCelestialObjs;
     myDistanceToShip = 1000000000.0f;
     SystemLog.addMessage("Celestial Object " + ID + ":" + name + " has been initialized");
     cam = Camera.main;
     playerShipLocation = GameObject.Find("PlayerShip").transform;
     objectSelected = false;
     InputManager.Instance.OnMouseClick += OnMouseClick;
     thisScript = gameObject.GetComponent<CelestialObject>();
 }