public static void GetSpecifities(this InnerShineItem ISI, Pawn p, out Vector3 offset, out float scale) { offset = Vector3.zero; scale = 1; if (p.story?.bodyType == null || !ISI.HasBodyTypeDrawRules) { if (ISI.HasDefaultDrawRules) { offset = ISI.defaultDrawRules.GetRotationOffset(p); scale = ISI.defaultDrawRules.randomScale.RandomInRange; } return; } BodyTypeSpecificities BTS = ISI.bodyTypeDrawRules.Where(b => b.bodyTypeDef == p.story.bodyType).FirstOrFallback(); if (BTS == null) { if (ISI.HasDefaultDrawRules) { offset = ISI.defaultDrawRules.GetRotationOffset(p); scale = ISI.defaultDrawRules.randomScale.RandomInRange; } return; } offset = BTS.drawRules.GetRotationOffset(p); scale = BTS.drawRules.randomScale.RandomInRange; }
public static Vector3 GetDrawOffset(this InnerShineItem ISI, Pawn p) { if (p.story?.bodyType == null || !ISI.HasBodyTypeDrawRules) { if (ISI.HasDefaultDrawRules) { return(ISI.defaultDrawRules.GetRotationOffset(p)); } else { return(Vector3.zero); } } BodyTypeSpecificities BTS = ISI.bodyTypeDrawRules.Where(b => b.bodyTypeDef == p.story.bodyType).FirstOrFallback(); if (BTS == null) { return(ISI.HasDefaultDrawRules ? ISI.defaultDrawRules.GetRotationOffset(p) : Vector3.zero); } return(BTS.drawRules.GetRotationOffset(p)); }