Esempio n. 1
0
        public ModelView(DiagnosticViewContext context, Model model)
            : base(context)
        {
            _modelInstance = AddDisposable(model.CreateInstance(context.Game.AssetStore.LoadContext));
            _modelInstance.Update(TimeInterval.Zero);

            var enclosingBoundingBox = GetEnclosingBoundingBox(_modelInstance);

            _renderedView = AddDisposable(new RenderedView(
                                              context,
                                              enclosingBoundingBox.GetCenter(),
                                              Vector3.Distance(enclosingBoundingBox.Min, enclosingBoundingBox.Max)));

            void OnBuildingRenderList(object sender, BuildingRenderListEventArgs e)
            {
                _modelInstance.SetWorldMatrix(Matrix4x4.Identity);
                _modelInstance.BuildRenderList(
                    e.RenderList,
                    e.Camera,
                    true,
                    new MeshShaderResources.RenderItemConstantsPS
                {
                    HouseColor = Vector3.One,
                    Opacity    = 1.0f
                });
            }

            _renderedView.RenderPipeline.BuildingRenderList += OnBuildingRenderList;
            AddDisposeAction(() => _renderedView.RenderPipeline.BuildingRenderList -= OnBuildingRenderList);
        }
Esempio n. 2
0
 internal override void BuildRenderList(RenderList renderList, Camera camera, bool castsShadow, MeshShaderResources.RenderItemConstantsPS renderItemConstantsPS)
 {
     _modelInstance.BuildRenderList(
         renderList,
         camera,
         castsShadow,
         renderItemConstantsPS);
 }
Esempio n. 3
0
 internal override void BuildRenderList(
     RenderList renderList,
     Camera camera,
     bool castsShadow,
     MeshShaderResources.RenderItemConstantsPS renderItemConstantsPS,
     List <string> hiddenSubObjects = null)
 {
     _modelInstance.BuildRenderList(
         renderList,
         camera,
         castsShadow,
         renderItemConstantsPS,
         hiddenSubObjects);
 }
Esempio n. 4
0
        internal override void BuildRenderList(RenderList renderList, Camera camera, bool castsShadow, MeshShaderResources.RenderItemConstantsPS renderItemConstantsPS)
        {
            foreach (var hideFlag in _moduleData.HideIfModelConditions)
            {
                if (_gameObject.ModelConditionFlags.Get(hideFlag))
                {
                    return;
                }
            }

            _modelInstance.BuildRenderList(
                renderList,
                camera,
                castsShadow,
                renderItemConstantsPS);
        }
Esempio n. 5
0
        public ModelView(DiagnosticViewContext context, Model model)
            : base(context)
        {
            _modelInstance = AddDisposable(model.CreateInstance(context.Game.ContentManager));
            _modelInstance.Update(TimeInterval.Zero);

            var enclosingBoundingBox = GetEnclosingBoundingBox(_modelInstance);

            _renderedView = AddDisposable(new RenderedView(
                                              context,
                                              enclosingBoundingBox.GetCenter(),
                                              Vector3.Distance(enclosingBoundingBox.Min, enclosingBoundingBox.Max)));

            void OnBuildingRenderList(object sender, BuildingRenderListEventArgs e)
            {
                _modelInstance.SetWorldMatrix(Matrix4x4.Identity);
                _modelInstance.BuildRenderList(e.RenderList, e.Camera, true, context.Game.CivilianPlayer);
            }

            _renderedView.RenderPipeline.BuildingRenderList += OnBuildingRenderList;
            AddDisposeAction(() => _renderedView.RenderPipeline.BuildingRenderList -= OnBuildingRenderList);
        }
Esempio n. 6
0
        internal override void BuildRenderList(
            RenderList renderList,
            Camera camera,
            bool castsShadow,
            MeshShaderResources.RenderItemConstantsPS renderItemConstantsPS,
            Dictionary <string, bool> shownSubObjects  = null,
            Dictionary <string, bool> hiddenSubObjects = null)
        {
            foreach (var hideFlag in _moduleData.HideIfModelConditions)
            {
                if (_gameObject.ModelConditionFlags.Get(hideFlag))
                {
                    return;
                }
            }

            _modelInstance.BuildRenderList(
                renderList,
                camera,
                castsShadow,
                renderItemConstantsPS,
                shownSubObjects,
                hiddenSubObjects);
        }