public cfirework(string name, FWType t, SceneManager sm) { mName = name; mType = t; mSceneManager = sm; if ((mType == FWType.Fountain01) || (mType == FWType.Fountain02)) { mPS = mSceneManager.CreateParticleSystem(mName, "Fireworks/Fountain01"); mNode = mSceneManager.GetRootSceneNode().CreateChildSceneNode(mName); mNode.AttachObject(mPS); } else if ((mType == FWType.Rocket01) || (mType == FWType.Rocket02)) { mPS = mSceneManager.CreateParticleSystem(mName, "Fireworks/RocketTrail"); mNode = mSceneManager.GetRootSceneNode().CreateChildSceneNode(mName); mNode.AttachObject(mPS); float pn = 1.0f; if (OgreDotNet.OgreMath.RangeRandom(0.0f, 1.0f) > 0.5f) { pn = -1.0f; } mArcXRate = OgreDotNet.OgreMath.RangeRandom(cfirework.RocketArcXMin * pn, cfirework.RocketArcXMax * pn); if (OgreDotNet.OgreMath.RangeRandom(0.0f, 1.0f) > 0.5f) { pn = -1.0f; } mArcZRate = OgreDotNet.OgreMath.RangeRandom(cfirework.RocketArcZMin * pn, cfirework.RocketArcZMax * pn); this.mSpeedY = OgreDotNet.OgreMath.RangeRandom(cfirework.RocketSpeedYMin, cfirework.RocketSpeedYMax); } }
public void ExplodeIt(FWType et) { mExplodeType = et; mExploded = true; OgreDotNet.ParticleEmitter pe = null; if ((mType == FWType.Fountain01) || (mType == FWType.Fountain02)) { //make the fountain stop pe = mPS.GetEmitter(0); pe.EmissionRate = 0; pe.TimeToLive = 1; this.isDead = true; } else if ((mType == FWType.Rocket01) || (mType == FWType.Rocket02)) { //let the smoke trail live pe = mPS.GetEmitter(0); pe.EmissionRate = 0; pe.TimeToLive = 5000; mMoveable = false; mTimeToLive = OgreDotNet.OgreMath.RangeRandom(1.0f, 4.0f); mTimeAlive = 0; } float r = 0; switch (mExplodeType) { case FWType.None: break; case FWType.Explode01: mPS2 = mSceneManager.CreateParticleSystem(mName + "ps2", "Fireworks/RocketExplode01"); pe = mPS2.GetEmitter(0); r = OgreDotNet.OgreMath.RangeRandom(0.1f, 4.0f); pe.SetMinTimeToLive(r); pe.SetMaxTimeToLive(r + 2.0f); pe.SetParticleVelocity(r * 100.0f); pe.SetColour(Converter.GetColor( OgreDotNet.OgreMath.RangeRandom(0.001f, 1.0f), OgreDotNet.OgreMath.RangeRandom(0.001f, 1.0f), OgreDotNet.OgreMath.RangeRandom(0.001f, 1.0f))); mNode.AttachObject(mPS2); break; case FWType.Explode02: mPS2 = mSceneManager.CreateParticleSystem(mName + "ps2", "Fireworks/RocketExplode01"); mNode.AttachObject(mPS2); break; case FWType.Explode03: mPS2 = mSceneManager.CreateParticleSystem(mName + "ps2", "Fireworks/RocketExplode01"); mNode.AttachObject(mPS2); break; case FWType.Explode04: mPS2 = mSceneManager.CreateParticleSystem(mName + "ps2", "Fireworks/RocketExplode01"); mNode.AttachObject(mPS2); break; } }
public void TestMethod1() { using (MyDB mydb = new MyDB()) { FWType type1 = new FWType { ID = Guid.NewGuid().ToString(), Name = "发文类别一", FWPrefixes = "1A发,1B发,1C发", FWTemplates = new[] { new FWTemplate { ID = Guid.NewGuid().ToString(), Name = "发文模板1A", TemplateFile = mydb.Files.First() }, new FWTemplate { ID = Guid.NewGuid().ToString(), Name = "发文模板1B", TemplateFile = mydb.Files.First() } } }; FWType type2 = new FWType { ID = Guid.NewGuid().ToString(), Name = "发文类别二", FWPrefixes = "2A发,2B发,2C发", FWTemplates = new[] { new FWTemplate { ID = Guid.NewGuid().ToString(), Name = "发文模板2A", TemplateFile = mydb.Files.First() }, new FWTemplate { ID = Guid.NewGuid().ToString(), Name = "发文模板2B", TemplateFile = mydb.Files.First() } } }; FWInfo fw = new FWInfo { ID = Guid.NewGuid().ToString(), FWType = type1, FWTemplate = type1.FWTemplates.First(), FWPrefix = "1B发", FWYear = DateTime.Now.Year, FWNO = 10, Urgency = "普通", Secrecy = "保密", Title = "关于****项目实施的通知", Keywords = "项目,实施,通知", Summary = @"****项目已于某年某月某日测试完成,现已进入实施阶段,请各部门在信息部领导下积极参与实施.", Recipient = "各部门", Participator = "信息部", Drafter = mydb.Users.First(u => u.Code == "chw"), DraftTime = DateTime.Now, CopyAmount = 10, FWInfoFiles = new [] { new FWInfoFile { ID = Guid.NewGuid().ToString(), FileName = "test.ddd", UploadDate = DateTime.Now, File = mydb.Files.First() } }, WFTemplate = mydb.WFTemplates.First(), // 参与流程后,创建业务实例一定要有流程模板 Creator = mydb.Users.First() }; mydb.FWTypes.Add(type1); mydb.FWTypes.Add(type2); //mydb.SaveChanges(); mydb.FWInfos.Add(fw); mydb.SaveChanges(); } }