public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { var init = v as GParticleComponentInitializer; if (init == null) { return(false); } mParticleModifier = new Particle.CGfxParticleModifier(); var sys = mParticleModifier.ParticleSys; sys.Effector = CEngine.Instance.MacrossDataManager.NewObjectGetter <McParticleEffector>(init.MacrossName); if (sys.Effector != null) { await sys.Effector.Get(false).InitSystem(sys, host as GamePlay.Actor.GActor, this, init); } //default.. if (init.MeshName == null) { init.MeshName = RName.GetRName("ParticleResource/models/sphere.gms"); } if (false == await base.SetInitializer(rc, host, hostContainer, v)) { return(false); } sys.HostActor = Host; if (sys.UseMaterialRName != null) { await SetMaterialInstance(rc, 0, sys.UseMaterialRName, null); } if (this.SceneMesh != null && this.SceneMesh.MdfQueue != null) { this.SceneMesh.MdfQueue.AddModifier(mParticleModifier); } //Box { BoundingBox.Merge(ref Host.LocalBoundingBox, ref sys.AABB.Box, out Host.LocalBoundingBox); OnUpdateDrawMatrix(ref Host.Placement.mDrawTransform); } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { var result = await base.SetInitializer(rc, host, hostContainer, v); if (result == false) { return(false); } if (CCInitializer != null) { Location = CCInitializer.Location; Rotation = CCInitializer.Rotation; Direction = CCInitializer.Direction; } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, GamePlay.Component.IComponentContainer hostContainer, GComponentInitializer v) { if (!await base.SetInitializer(rc, host, hostContainer, v)) { return(false); } Host.IsNavgation = true; return(true); }
public override async System.Threading.Tasks.Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { await base.SetInitializer(rc, host, hostContainer, v); mPlacementData = v as GPlacementComponentInitializer; var iPlacement = mHostContainer as IPlaceable; if (iPlacement != null) { mPlaceableHost = iPlacement; iPlacement.Placement = this; } mOrientation = Rotation * -Vector3.UnitZ; mWorldOrientation = WorldRotation * -Vector3.UnitZ; UpdateData(); return(true); }
public override async System.Threading.Tasks.Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { await base.SetInitializer(rc, host, hostContainer, v); DirLightInitializer = v as GDirLightComponentInitializer; return(true); }
//private NavLinkProxyComponentInitializer Initializer; public override async System.Threading.Tasks.Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, GamePlay.Component.IComponentContainer hostContainer, GComponentInitializer v) { if (!await base.SetInitializer(rc, host, hostContainer, v)) { return(false); } if (mLineMeshComponent == null) { await InitGraphLines(); } if (mLineMeshComponent != null) { mLineMeshComponent.Entity = host; Host.PlacementChange -= PlacementChange; Host.PlacementChange += PlacementChange; var mat = this.Host.Placement.WorldMatrix; mLineMeshComponent.OnUpdateDrawMatrix(ref mat); } var initializer = v as NavLinkProxyComponentInitializer; Radius = initializer.Radius; Direction = initializer.Direction; Initializer = initializer; return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { await base.SetInitializer(rc, host, hostContainer, v); var nvInit = v as CNavMeshComponentInitializer; if (nvInit.NavName != null) { await CEngine.Instance.EventPoster.Post(() => { using (var xnd = IO.XndHolder.SyncLoadXND(nvInit.NavName.Address)) { NavMesh = new CNavMesh(); NavMesh.LoadXnd(xnd.Node); } return(true); }, Thread.Async.EAsyncTarget.AsyncIO); } if (NavMesh != null) { var meshComp = Host.FindComponentBySpecialName("NavMeshDebugger") as GamePlay.Component.GMeshComponent; if (meshComp == null) { //meshComp = new GamePlay.Component.GMeshComponent(); //var renderMesh = CEngine.Instance.MeshManager.CreateMesh(rc, NavMesh.CreateRenderMesh(rc)); //var mtl = await CEngine.Instance.MaterialInstanceManager.GetMaterialInstanceAsync(rc, RName.GetRName("Material/RecastDebugger.instmtl")); //await renderMesh.SetMaterial(rc, 0, mtl, null); //meshComp.SetSceneMesh(rc, renderMesh); //host.AddComponent(meshComp); //meshComp.SpecialName = "NavMeshDebugger"; } } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, GamePlay.Component.IComponentContainer hostContainer, GComponentInitializer v) { if (!await base.SetInitializer(rc, host, hostContainer, v)) { return(false); } if (mLineMeshComponent == null) { await base.InitDrawMesh(); mLineMeshComponent.Entity = host; var mat = Host.Placement.WorldMatrix; mLineMeshComponent.OnUpdateDrawMatrix(ref mat); } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GActor host, GComponentInitializer v) { if (!await base.SetInitializer(rc, host, v)) { return(false); } host.IsNavgation = true; return(true); }
public override async System.Threading.Tasks.Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { await base.SetInitializer(rc, host, hostContainer, v); PointLightInitializer.Host = this; PointLightInitializer.Radius = PointLightInitializer.Radius; if (PointLightInitializer.PlacementComponentInitializer != null) { await Placement.SetInitializer(rc, host, null, PointLightInitializer.PlacementComponentInitializer); Placement.PlaceableHost = this; } PointLightInitializer.Position = Placement.WorldLocation; return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { var mesh = host.GetComponent <GMeshComponent>(); if (mesh == null) { mesh = hostContainer as GMeshComponent; } if (mesh != null) { var skinModifier = mesh.SceneMesh.MdfQueue.FindModifier <EngineNS.Graphics.Mesh.CGfxSkinModifier>(); Pose = skinModifier.AnimationPose; } else { return(false); } return(await base.SetInitializer(rc, host, hostContainer, v)); }
public override async Task<bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { var result = await base.SetInitializer(rc, host, hostContainer, v); await Placement.SetInitializer(rc, host, null, CameraComponentInitializer.PlacementInitializer); Placement.PlaceableHost = this; ChangingControlStartety(); if (result == false) return false; return true; }
public override async System.Threading.Tasks.Task <bool> SetInitializer(CRenderContext rc, EngineNS.GamePlay.Actor.GActor host, GComponentInitializer v) { if (!await base.SetInitializer(rc, host, v)) { return(false); } if (mLineMeshComponent == null) { await InitGraphLines(); } if (mLineMeshComponent != null) { mLineMeshComponent.Host = host; Host.PlacementChange -= PlacementChange; Host.PlacementChange += PlacementChange; var mat = host.Placement.WorldMatrix; mLineMeshComponent.OnUpdateDrawMatrix(ref mat); } Initializer = v as NavLinkProxyComponentInitializer; Radius = Initializer.Radius; Direction = Initializer.Direction; return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { var result = await base.SetInitializer(rc, host, hostContainer, v); if (result == false) { return(false); } if (FCCInitializer != null) { UpLimitAngleInRad = FCCInitializer.UpLimitAngleInRad; DownLimitAngleInRad = FCCInitializer.DownLimitAngleInRad; } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { await base.SetInitializer(rc, host, hostContainer, v); var actor = CreateCPhyActor(Host, hostContainer, v); var init = v as GPhysicsCapsuleCollisionInitializer; mRadius = init.Radius; mHalfHeight = init.HalfHeight; RefreshShape(); return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GActor host, GComponentInitializer v) { if (await base.SetInitializer(rc, host, v) == false) { return(false); } mMeshComponent = new GamePlay.Component.GMeshComponent(); var meshCompInit = new GamePlay.Component.GMeshComponent.GMeshComponentInitializer(); meshCompInit.SpecialName = "VisualMesh"; meshCompInit.MeshName = RName.GetRName("editor/icon/icon_3D/mesh/play_start.gms", RName.enRNameType.Game); await mMeshComponent.SetInitializer(rc, Host, meshCompInit); //var mat = host.Placement.WorldMatrix; //mMeshComponent.OnUpdateDrawMatrix(ref mat); Initializer = v as AgentGeomBoxComponentInitializer; if (Initializer != null) { AgentGridSize = Initializer.AgentGridSize; StartPos = Initializer.StartPos; } else { Initializer = new AgentGeomBoxComponentInitializer(); } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, GamePlay.Component.IComponentContainer hostContainer, GComponentInitializer v) { if (await base.SetInitializer(rc, host, hostContainer, v) == false) { return(false); } mMeshComponent = new GamePlay.Component.GMeshComponent(); var meshCompInit = new GamePlay.Component.GMeshComponent.GMeshComponentInitializer(); meshCompInit.SpecialName = "VisualMesh"; meshCompInit.MeshName = CEngineDesc.PlayerStartMesh; await mMeshComponent.SetInitializer(rc, Host, Host, meshCompInit); //var mat = host.Placement.WorldMatrix; //mMeshComponent.OnUpdateDrawMatrix(ref mat); AgentGeomBoxInitializer = v as AgentGeomBoxComponentInitializer; if (AgentGeomBoxInitializer != null) { AgentGridSize = AgentGeomBoxInitializer.AgentGridSize; StartPos = AgentGeomBoxInitializer.StartPos; } else { AgentGeomBoxInitializer = new AgentGeomBoxComponentInitializer(); } return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { await base.SetInitializer(rc, host, hostContainer, v); return(true); }
public override async Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { if (await base.SetInitializer(rc, host, hostContainer, v) == false) { return(false); } return(true); }
public override async System.Threading.Tasks.Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { if (rc == null) { rc = CEngine.Instance.RenderContext; } await base.SetInitializer(rc, host, hostContainer, v); var init = v as GSubSkinComponentInitializer; if (init == null) { return(false); } Visible = init.Visible; init.HostMeshComp = this; EngineNS.Graphics.Mesh.CGfxMesh mesh; if (init.MeshName != null) { if (init.MeshName.Name.Equals("@createplane")) { var meshpri = CEngine.Instance.MeshPrimitivesManager.CreateMeshPrimitives(rc, 1); Graphics.Mesh.CGfxMeshCooker.MakeRect3D(rc, meshpri); mesh = CEngine.Instance.MeshManager.CreateMesh(rc, meshpri); } else { mesh = await CEngine.Instance.MeshManager.CreateMeshAsync(rc, init.MeshName); } await init.UpdateMtlInst(); } else { var meshpri = CEngine.Instance.MeshPrimitivesManager.NewMeshPrimitives(rc, EngineNS.Graphics.Mesh.CGfxMeshCooker.CookBoxName, 1); Graphics.Mesh.CGfxMeshCooker.MakeBox(rc, meshpri, -0.5f, -0.5f, -0.5f, 1, 1, 1); mesh = CEngine.Instance.MeshManager.CreateMesh(rc, meshpri); } if (mesh != null) { SetSceneMesh(rc, mesh); if (init.MtlList != null) { for (int i = 0; i < init.MtlList.Count; i++) { var mtl = init.MtlList[i]; if (mtl == null) { continue; } mtl.MeshComp = this; if (mtl.Name == null) { continue; } var mtlInst = await CEngine.Instance.MaterialInstanceManager.GetMaterialInstanceAsync(rc, mtl.Name); if (mtlInst == null) { continue; } //await this.SetMaterial(rc, (UInt32)i, mtlInst, null); this.SetMaterialInstance(rc, (UInt32)i, mtlInst, null); } } } else { Profiler.Log.WriteLine(Profiler.ELogTag.Warning, "IO", $"MeshComponent Init failed: {init.MeshName}"); } if (init.SocketName != null) { SocketName = init.SocketName; } if (init.PlacementComponentInitializer != null) { await Placement.SetInitializer(rc, host, this, init.PlacementComponentInitializer); } return(true); }
public override Task <bool> SetInitializer(CRenderContext rc, IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { return(base.SetInitializer(rc, host, hostContainer, v)); }
//public override void Tick(GPlacementComponent placement) //{ // base.Tick(placement); //} public override async Task <bool> SetInitializer(CRenderContext rc, GamePlay.IEntity host, IComponentContainer hostContainer, GComponentInitializer v) { var init = v as GMeshComponentInitializer; if (init == null) { return(false); } if (ParticleModifier != null) { if (ParticleModifier.ParticleSys.IsBillBoard && ParticleModifier.ParticleSys.BillBoardType != CGfxParticleSystem.BILLBOARDTYPE.BILLBOARD_DISABLE) { init.MeshName = RName.GetRName("@createplane"); } else { init.MeshName = ParticleModifier.ParticleSys.UseMeshRName; } } //设置默认值 if (init.MeshName == null) { init.MeshName = RName.GetRName("ParticleResource/models/sphere.gms"); } if (false == await base.SetInitializer(rc, host, hostContainer, v)) { return(false); } Host = host as GActor; if (ParticleModifier != null && ParticleModifier.ParticleSys.UseMaterialRName != null) { if (mSceneMesh != null && mSceneMesh.MtlMeshArray != null) { //await SetMaterialInstance(rc, 0, ParticleModifier.ParticleSys.UseMaterialRName, null); var mtl = await CEngine.Instance.MaterialInstanceManager.GetMaterialInstanceAsync(rc, ParticleModifier.ParticleSys.UseMaterialRName); base.SetMaterialInstance(rc, 0, mtl, null); } } if (ParticleModifier != null && this.SceneMesh != null) { this.SceneMesh.MdfQueue.AddModifier(ParticleModifier); this.AddDefaultColorBuff(rc, this.SceneMesh.MeshPrimitives); } return(true); }