Add ModelAnimation.IsVisible property.

This commit is contained in:
Paul Chote
2017-12-05 17:34:46 +00:00
committed by reaperrr
parent 041431d966
commit 506b677527
2 changed files with 11 additions and 3 deletions

View File

@@ -32,5 +32,13 @@ namespace OpenRA.Graphics
FrameFunc = frame; FrameFunc = frame;
ShowShadow = showshadow; ShowShadow = showshadow;
} }
public bool IsVisible
{
get
{
return DisableFunc == null || !DisableFunc();
}
}
} }
} }

View File

@@ -96,7 +96,7 @@ namespace OpenRA.Mods.Common.Graphics
public FinalizedModelRenderable(WorldRenderer wr, ModelRenderable model) public FinalizedModelRenderable(WorldRenderer wr, ModelRenderable model)
{ {
this.model = model; this.model = model;
var draw = model.models.Where(v => v.DisableFunc == null || !v.DisableFunc()); var draw = model.models.Where(v => v.IsVisible);
renderProxy = Game.Renderer.WorldModelRenderer.RenderAsync( renderProxy = Game.Renderer.WorldModelRenderer.RenderAsync(
wr, draw, model.camera, model.scale, GroundNormal, model.lightSource, wr, draw, model.camera, model.scale, GroundNormal, model.lightSource,
@@ -152,7 +152,7 @@ namespace OpenRA.Mods.Common.Graphics
}, iz, c); }, iz, c);
// Draw bounding box // Draw bounding box
var draw = model.models.Where(v => v.DisableFunc == null || !v.DisableFunc()); var draw = model.models.Where(v => v.IsVisible);
var scaleTransform = OpenRA.Graphics.Util.ScaleMatrix(model.scale, model.scale, model.scale); var scaleTransform = OpenRA.Graphics.Util.ScaleMatrix(model.scale, model.scale, model.scale);
var cameraTransform = OpenRA.Graphics.Util.MakeFloatMatrix(model.camera.AsMatrix()); var cameraTransform = OpenRA.Graphics.Util.MakeFloatMatrix(model.camera.AsMatrix());
@@ -203,7 +203,7 @@ namespace OpenRA.Mods.Common.Graphics
Pair<Rectangle, float2> Screen3DBounds(WorldRenderer wr) Pair<Rectangle, float2> Screen3DBounds(WorldRenderer wr)
{ {
var pxOrigin = wr.ScreenPosition(model.pos); var pxOrigin = wr.ScreenPosition(model.pos);
var draw = model.models.Where(v => v.DisableFunc == null || !v.DisableFunc()); var draw = model.models.Where(v => v.IsVisible);
var scaleTransform = OpenRA.Graphics.Util.ScaleMatrix(model.scale, model.scale, model.scale); var scaleTransform = OpenRA.Graphics.Util.ScaleMatrix(model.scale, model.scale, model.scale);
var cameraTransform = OpenRA.Graphics.Util.MakeFloatMatrix(model.camera.AsMatrix()); var cameraTransform = OpenRA.Graphics.Util.MakeFloatMatrix(model.camera.AsMatrix());