public DBCommandResult LoadGalaxy(Galaxy g) { if (g != null) return LoadGalaxy(g._id); else return new DBCommandResult() { ResultCode = -1, ResultMsg = "Null Galaxy specified as parameter." }; }
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(); }
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; }
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. }
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; }
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; }
public Star(Galaxy g) : base() { this.GalaxyId = g._id; InitStar (); }
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; }
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; }
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; }