Browse Source

Simplified call to create world material, which is just one method now that takes surface flags. The implementation will figure out which template material to use.

console
Nico de Poel 5 years ago
parent
commit
722c79ab8b
  1. 4
      Assets/Scripts/Game/GameState.cs
  2. 13
      Assets/Scripts/VisualStyle.cs

4
Assets/Scripts/Game/GameState.cs

@ -50,9 +50,7 @@ public class GameState
// TODO FIXME This is wrong for brush model entities
uq.CurrentStyle.SetupWorldRenderer(mr);
mr.material = surfaceMesh.Flags.HasFlag(QSurfaceFlags.DrawTurbulence)
? uq.CurrentStyle.CreateLiquidMaterial(surfaceMesh.Flags)
: uq.CurrentStyle.CreateWorldMaterial(); // TODO FIXME this currently leaks Materials
mr.material = uq.CurrentStyle.CreateWorldMaterial(surfaceMesh.Flags); // TODO FIXME this currently leaks Materials
uint texNum = surfaceMesh.TextureNum;
if (uq.GameAssets.TryGetTexture(texNum, out var texture))

13
Assets/Scripts/VisualStyle.cs

@ -27,16 +27,10 @@ public class VisualStyle : ScriptableObject
return new Material(entityMaterial);
}
public virtual Material CreateWorldMaterial()
public virtual Material CreateWorldMaterial(QSurfaceFlags surfaceFlags)
{
return new Material(worldMaterial);
}
public virtual Material CreateLiquidMaterial(QSurfaceFlags surfaceFlags)
if (surfaceFlags.HasFlag(QSurfaceFlags.DrawTurbulence) && liquidMaterial != null)
{
if (liquidMaterial == null)
return CreateWorldMaterial();
float alpha = 1f;
if (surfaceFlags.HasFlag(QSurfaceFlags.DrawWater))
alpha = liquidProperties.waterAlpha;
@ -52,6 +46,9 @@ public class VisualStyle : ScriptableObject
return material;
}
return new Material(worldMaterial);
}
public virtual void SetupEntityRenderer(MeshRenderer meshRenderer)
{
meshRenderer.shadowCastingMode = ShadowCastingMode.Off;

Loading…
Cancel
Save