Example #1
0
 public DBCommandResult LoadGalaxy(Galaxy g)
 {
     if (g != null)
         return LoadGalaxy(g._id);
     else
         return new DBCommandResult() { ResultCode = -1, ResultMsg = "Null Galaxy specified as parameter." };
 }
Example #2
0
        private void btnCreate_Click(object sender, EventArgs e)
        {
            u = new Universe();
            u.Name = "Test universe";
            u.Descrip = "For testing purposes only...";
            for (int i = 0; i < nudGal.Value; i++)
            {
                Galaxy g = new Galaxy((int)nudGalX.Value, (int)nudGalY.Value, (int)nudGalZ.Value);
                g.Name = "Test Milky Way";
                int j = (int)nudStars.Value;
                while (j > 0)
                {
                    Star s = new Star(g);
                    s.StarSystemName = "Alpha Test";
                    if (g.AddStar(s, ConstantParameters.MinDistanceBetweenStars))
                    {
                        int orbits = MrRandom.rnd.Next(ConstantParameters.MaxOrbitalBodiesForStar);
                        List<int> freeOrbits = new List<int>();
                        freeOrbits.AddRange(Orbits);
                        for (int k = 0; k < orbits; k++)
                        {
                            int bodyType = MrRandom.rnd.Next(3);

                            switch (bodyType)
                            {
                                case 0:
                                    Planet p = new Planet(s._id);
                                    p.Size = (PlanetSize)MrRandom.rnd.Next((int)PlanetSize.MrRandom);
                                    p.Type = (PlanetType)MrRandom.rnd.Next((int)PlanetType.MrRandom);
                                    p.OrbitNo = freeOrbits[MrRandom.rnd.Next(freeOrbits.Count)];
                                    freeOrbits.Remove(p.OrbitNo);
                                    s.OrbitalBodies.Add(p);
                                    break;
                            case 1:
                                GasGiant gg = new GasGiant (s._id);
                                    gg.Class = (GasGiantClass)MrRandom.rnd.Next ((int)GasGiantClass.MrRandom);
                                    gg.Size = (GasGiantSize)MrRandom.rnd.Next ((int)GasGiantSize.MrRandom);
                                    gg.OrbitNo = freeOrbits[MrRandom.rnd.Next(freeOrbits.Count)];
                                    freeOrbits.Remove(gg.OrbitNo);
                                    s.OrbitalBodies.Add(gg);
                                    break;
                                case 2:
                                    AsteroidBelt a = new AsteroidBelt(s._id);
                                    a.Density = (AsteroidDensity)MrRandom.rnd.Next((int)AsteroidDensity.MrRandom);
                                    a.Type = (AsteroidType)MrRandom.rnd.Next((int)AsteroidType.MrRandom);
                                    a.OrbitNo = freeOrbits[MrRandom.rnd.Next(freeOrbits.Count)];
                                    freeOrbits.Remove(a.OrbitNo);
                                    s.OrbitalBodies.Add(a);
                                    break;
                            }
                        }
                        j = j - 1;
                    }
                }
                u.Galaxies.Add(g);
            }
            ShowStats();
        }
Example #3
0
        public DBCommandResult LoadGalaxy(Galaxy g)
        {
            DBCommandResult res = new DBCommandResult ();

            MySqlCommand com = new MySqlCommand ("ADM_GetGalaxyById", _dg.Connection);
            com.CommandType = CommandType.StoredProcedure;
            MySqlParameter spGalID = new MySqlParameter("pGalId", g.OBID);
            com.Parameters.Add(spGalID);

            try
            {
                DataSet ds = _dg.GetDataSet(com);
                DataRow dr = ds.Tables[0].Rows[0];
                g.OBID = Convert.ToInt32(dr["OBID"]);
                g.Name = Convert.ToString(dr["Name"]);
                g.DimensionX = Convert.ToInt32(dr["DimX"]);
                g.DimensionY = Convert.ToInt32(dr["DimY"]);
                g.DimensionZ = Convert.ToInt32(dr["DimZ"]);

                g.Attributes = new List<OAttribute>();
                //g.Attributes.ParentObject = g;
                //g.Attributes.Load(LoadAttributes(ds.Tables[1]));

                foreach (DataRow sRow in ds.Tables[2].Rows)
                {
                    Star s = new Star();
                    s.GalaxyId = g._id;
                    s.OBID = Convert.ToInt32(sRow["OBID"]);
                    s.Coordinates= new HOO.Core.Model.Configuration.Point3D();
                    s.Class = ((StarClass)Convert.ToInt32(sRow["Class"]));
                    s.TemperatureLevel = Convert.ToInt32(sRow["TempLvl"]);
                    s.Size = ((StarSize)Convert.ToInt32(sRow["Size"]));
                    s.StarSystemName = Convert.ToString(sRow["SystemName"]);
                    s.Coordinates.X = Convert.ToInt32(sRow["X"]);
                    s.Coordinates.Y = Convert.ToInt32(sRow["Y"]);
                    s.Coordinates.Z = Convert.ToInt32(sRow["Z"]);

                    g.Stars.Add(s);
                }

                res.Tag = g;
                res.ResultCode = 0;
                res.ResultMsg = "Ok";
            }
            catch (Exception ex) {
                res.ResultCode = -2;
                res.ResultMsg = String.Format ("{0} ----> {1}", ex.Message, (ex.InnerException != null) ? ex.InnerException.Message : "");
            }
            return res;
        }
Example #4
0
        public void Load()
        {
            log.Entry.MethodName = "Load";
            DBCommandResult res = _mdh.LoadGalaxy(Galaxy);
            if (res.ResultCode == 0 && res.Tag is Galaxy)
                Galaxy = (Galaxy)res.Tag;
            else
                log.Error(new Exception(res.ResultMsg));

            StarHelper sh = new StarHelper();
            for (int i = 0; i < Galaxy.Stars.Count; i++)
            {
                sh.Star = Galaxy.Stars[i];
                sh.LoadStar(sh.Star);
                Galaxy.Stars[i] = sh.Star;
            }

            this.Galaxy.IsLoaded = this.Galaxy.IsSaved = true;
            if (this.Galaxy.Attributes.Count == 0)
                InitDefaultParameters();
            //ELSE add missing attributes, if any exists.
        }
Example #5
0
        public DBCommandResult AddGalaxy(Galaxy gal)
        {
            DBCommandResult res = new DBCommandResult();

            MySqlCommand com = new MySqlCommand("ADM_AddGalaxy", _dg.Connection);
            com.CommandType = CommandType.StoredProcedure;

            MySqlParameter spUniverseId = new MySqlParameter("pUniverseId", gal.UniverseId);
            MySqlParameter spName = new MySqlParameter("pName", gal.Name);
            MySqlParameter spDimX = new MySqlParameter("pDimX", gal.DimensionX);
            MySqlParameter spDimY = new MySqlParameter("pDimY", gal.DimensionY);
            MySqlParameter spDimZ = new MySqlParameter("pDimZ", gal.DimensionZ);

            com.Parameters.AddRange(new MySqlParameter[] { spUniverseId, spName, spDimX, spDimY, spDimZ});

            try
            {
                DataSet ds = _dg.GetDataSet(com);
                DataRow dr = ds.Tables[0].Rows[0];
                Galaxy rg = new Galaxy();
                rg.OBID = Convert.ToInt32(dr["OBID"]);
                rg.UniverseId = gal.UniverseId;
                rg.Name = Convert.ToString(dr["Name"]);
                rg.DimensionX = Convert.ToInt32(dr["DimX"]);
                rg.DimensionY = Convert.ToInt32(dr["DimY"]);
                rg.DimensionZ = Convert.ToInt32(dr["DimZ"]);
                res.Tag = rg;
                res.ResultCode = 0;
                res.ResultMsg = "Ok";
            }
            catch (Exception ex)
            {
                res.ResultCode = -2;
                res.ResultMsg = String.Format("{0} ----> {1}", ex.Message, (ex.InnerException != null)?ex.InnerException.Message:"");
            }

            return res;
        }
Example #6
0
        public DBCommandResult SaveGalaxy(Galaxy g)
        {
            DBCommandResult res = new DBCommandResult();
            try
            {
                var us = db.GetCollection<Galaxy>("Galaxies");
                if (g.IsLoaded)
                    res.Tag = us.ReplaceOne(new BsonDocument("_id", g._id), g, new UpdateOptions { IsUpsert = true });
                else
                {
                    us.InsertOne(g, new InsertOneOptions { BypassDocumentValidation = false });
                    res.Tag = g;
                }

                res.ResultCode = 0;
                res.ResultMsg = "Ok";
            }
            catch (Exception ex)
            {
                res.ResultCode = -2;
                res.ResultMsg = String.Format("{0} ----> {1}", ex.Message, (ex.InnerException != null) ? ex.InnerException.Message : "");
            }
            return res;
        }
Example #7
0
 public Star(Galaxy g)
     : base()
 {
     this.GalaxyId = g._id;
     InitStar ();
 }
Example #8
0
        public DBCommandResult GetAllGalaxies(int uId)
        {
            DBCommandResult res = new DBCommandResult ();

            MySqlCommand com = new MySqlCommand ("ADM_GetAllGalaxies", _dg.Connection);
            com.CommandType = CommandType.StoredProcedure;
            MySqlParameter spUID = new MySqlParameter("pUId", uId);
            com.Parameters.Add(spUID);

            try
            {
                DataSet ds = _dg.GetDataSet(com);
                List<Galaxy> gals = new List<Galaxy>();
                foreach (DataRow dr in ds.Tables[0].Rows)
                {
                    Galaxy g = new Galaxy();
                    g.OBID = Convert.ToInt32(dr["OBID"]);
                    g.Name = Convert.ToString(dr["Name"]);
                    g.DimensionX = Convert.ToInt32(dr["DimX"]);
                    g.DimensionY = Convert.ToInt32(dr["DimY"]);
                    g.DimensionZ = Convert.ToInt32(dr["DimZ"]);

                    gals.Add(g);
                }
                res.Tag = gals;
                res.ResultCode = 0;
                res.ResultMsg = "Ok";
            }
            catch (Exception ex) {
                res.ResultCode = -2;
                res.ResultMsg = String.Format ("{0} ----> {1}", ex.Message, (ex.InnerException != null) ? ex.InnerException.Message : "");
            }
            return res;
        }
Example #9
0
        public DBCommandResult LoadUniverse(Universe u)
        {
            DBCommandResult res = new DBCommandResult();

            MySqlCommand com = new MySqlCommand("ADM_GetUniverseById", _dg.Connection);
            com.CommandType = CommandType.StoredProcedure;
            MySqlParameter spUID = new MySqlParameter("pId", u.OBID);
            com.Parameters.Add(spUID);
            try
            {
                DataSet ds = _dg.GetDataSet(com);
                DataRow dr = ds.Tables[0].Rows[0];
                Universe resU = new Universe();
                resU.OBID = Convert.ToInt32(dr["OBID"]);
                resU.Name = Convert.ToString(dr["Name"]);
                resU.Descrip = Convert.ToString(dr["Description"]);
                resU.CurrentTick = Convert.ToInt32(dr["CurrentTick"]);
                resU.CurrentTurn = Convert.ToInt32(dr["CurrentTurn"]);
                resU.CurrentPeriod = Convert.ToInt32(dr["CurrentPeriod"]);

                resU.Attributes = new List<OAttribute>();
                //resU.Attributes.ParentObject = resU;
                //resU.Attributes.Load(LoadAttributes(ds.Tables[1]));

                foreach (DataRow gRow in ds.Tables[2].Rows)
                {
                    Galaxy g = new Galaxy();
                    g.UniverseId = resU._id;
                    g.OBID = Convert.ToInt32(gRow["OBID"]);
                    g.Name = Convert.ToString(gRow["Name"]);
                    g.DimensionX = Convert.ToInt32(gRow["DimX"]);
                    g.DimensionY = Convert.ToInt32(gRow["DimY"]);
                    g.DimensionZ = Convert.ToInt32(gRow["DimZ"]);
                    resU.Galaxies.Add(g);
                }

                res.Tag = resU;
                res.ResultCode = 0;
                res.ResultMsg = "Ok";
            }
            catch (Exception ex)
            {
                res.ResultCode = -2;
                res.ResultMsg = String.Format("{0} ----> {1}", ex.Message, (ex.InnerException != null)?ex.InnerException.Message:"");
            }
            return res;
        }
Example #10
0
        public Star GenerateNewStar(Galaxy g)
        {
            Star s = new Star();
            s._id = g.Stars.Count;

            while (!g.AddStar(s, ConstantParameters.MinDistanceBetweenStars))
            {

            }

            s.StarSystemName = this.GenerateStarName();
            StarOrbitalBodyHelper sobHelper = new StarOrbitalBodyHelper();

            //s.Coordinates = new Point3D() { X = MrRandom.rnd.Next(1000), Y = MrRandom.rnd.Next(800), Z = MrRandom.rnd.Next(600) };
            int orbits = MrRandom.rnd.Next(ConstantParameters.MaxOrbitalBodiesForStar);
            s.OrbitalIDs = new long[orbits];
            List<int> freeOrbits = new List<int>();
            freeOrbits.AddRange(new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 });
            for (int k = 0; k < orbits; k++)
            {
                int bodyType = MrRandom.rnd.Next(3);

                switch (bodyType)
                {
                    case 0:
                        Planet p = new Planet(s._id);
                        p._id = 10 * s._id + s.OrbitalBodies.Count;
                        s.OrbitalIDs[k] = p._id;
                        p.Size = (PlanetSize)MrRandom.rnd.Next((int)PlanetSize.MrRandom);
                        p.Type = (PlanetType)MrRandom.rnd.Next((int)PlanetType.MrRandom);
                        p.OrbitNo = freeOrbits[MrRandom.rnd.Next(freeOrbits.Count)];
                        p.StarSystemName = s.StarSystemName;
                        freeOrbits.Remove(p.OrbitNo);
                        s.OrbitalBodies.Add(p);
                        sobHelper.OrbitalBody = p;
                        break;
                    case 1:
                        GasGiant gg = new GasGiant(s._id);
                        gg._id = 10 * s._id + s.OrbitalBodies.Count;
                        s.OrbitalIDs[k] = gg._id;
                        gg.Class = (GasGiantClass)MrRandom.rnd.Next((int)GasGiantClass.MrRandom);
                        gg.Size = (GasGiantSize)MrRandom.rnd.Next((int)GasGiantSize.MrRandom);
                        gg.OrbitNo = freeOrbits[MrRandom.rnd.Next(freeOrbits.Count)];
                        gg.StarSystemName = s.StarSystemName;
                        freeOrbits.Remove(gg.OrbitNo);
                        s.OrbitalBodies.Add(gg);
                        sobHelper.OrbitalBody = gg;
                        break;
                    case 2:
                        AsteroidBelt a = new AsteroidBelt(s._id);
                        a._id = 10 * s._id + s.OrbitalBodies.Count;
                        s.OrbitalIDs[k] = a._id;
                        a.Density = (AsteroidDensity)MrRandom.rnd.Next((int)AsteroidDensity.MrRandom);
                        a.Type = (AsteroidType)MrRandom.rnd.Next((int)AsteroidType.MrRandom);
                        a.OrbitNo = freeOrbits[MrRandom.rnd.Next(freeOrbits.Count)];
                        a.StarSystemName = s.StarSystemName;
                        freeOrbits.Remove(a.OrbitNo);
                        s.OrbitalBodies.Add(a);
                        sobHelper.OrbitalBody = a;
                        break;
                }
                sobHelper.Save();
            }

            SaveStar(s);
            this.Star = s;
            return s;
        }