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); }
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); }