Example #1
0
        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);
        }
Example #2
0
        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);
        }