Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        public async System.Threading.Tasks.Task <GamePlay.Actor.GActor> CreateActor(Editor.PlantableItemCreateActorParam param)
        {
            var rc = EngineNS.CEngine.Instance.RenderContext;

            var actor = new EngineNS.GamePlay.Actor.GActor();

            actor.ActorId = Guid.NewGuid();
            var placement = new EngineNS.GamePlay.Component.GPlacementComponent();

            actor.Placement    = placement;
            placement.Location = param.Location;

            //var init = new OctreeVolumeComponentInitializer();
            //init.SpecialName = "VolumeData";
            //await SetInitializer(rc, actor, init);

            //mOctree = new Octree();
            //mOctree.LinkedActorId = actor.ActorId;
            if (mLineMeshComponent == null)
            {
                await InitGraphLines();
            }
            mLineMeshComponent.Host = actor;
            var mat = actor.Placement.WorldMatrix;

            mLineMeshComponent.OnUpdateDrawMatrix(ref mat);

            var init = new NavLinkProxyComponentInitializer();

            init.SpecialName = " NavLinkProxy";
            await SetInitializer(rc, actor, actor, init);

            //var aabb = new BoundingBox(-0.5f, -0.5f, -0.5f, 0.5f, 0.5f, 0.5f);
            //BoundingBox.Merge(ref actor.LocalBoundingBox, ref aabb, out actor.LocalBoundingBox);

            actor.AddComponent(this);

            actor.IsNavgation = true;
            return(actor);
        }