public List <Material> MatsBodyBaseAt(Rot4 facing, ConditionDrawMode bodyCondition = ConditionDrawMode.Pristine) { var num = facing.AsInt + 1000 * (int)bodyCondition; if (num != cachedMatsBodyBaseHash) { cachedMatsBodyBase.Clear(); cachedMatsBodyBaseHash = num; switch (bodyCondition) { case ConditionDrawMode.Pristine: cachedMatsBodyBase.Add(bodyGraphic.MatAt(facing, null)); break; case ConditionDrawMode.Weathered: cachedMatsBodyBase.Add(bodyGraphic.MatAt(facing)); break; case ConditionDrawMode.Damaged: cachedMatsBodyBase.Add(bodyGraphic.MatAt(facing)); break; case ConditionDrawMode.Destroyed: cachedMatsBodyBase.Add(bodyGraphic.MatAt(facing)); break; default: cachedMatsBodyBase.Add(bodyGraphic.MatAt(facing)); break; } } return(cachedMatsBodyBase); }
public void RenderActorAt(Vector3 drawLoc, ConditionDrawMode bodyDrawType) { if (!graphics.AllResolved) { graphics.ResolveAllGraphics(); } Quaternion quaternion = Quaternion.AngleAxis(Rot4.South.AsAngle, Vector3.up); var graphic = graphics.bodyGraphic.GetCopy(new Vector2(4, 8)); var mesh1 = graphic.MeshAt(Rot4.South); GenDraw.DrawMeshNowOrLater(mesh1, drawLoc, quaternion, graphic.MatSouth, false); }