/// <summary> /// Gets a shader for the provided PaintingItem. Possible results are the GSPainted and PaintedNegative shaders. /// </summary> /// <param name="item"></param> /// <param name="player"></param> /// <returns></returns> public static MiscShaderData getShader(PaintingItem item, Player player) { if (player == null) { return(null); } if (item == null) { return(null); } WoMDPlayer modPlayer = player.GetModPlayer <WoMDPlayer>(); if (modPlayer == null) { return(null); } PaintData data = modPlayer.paintData.clone(); data.paintMethod = item.overridePaintMethod(modPlayer); if (data.paintMethod == PaintMethods.RemovePaint) { return(null); } if (data.PaintColor == PaintID.Negative || data.CustomPaint is NegativeSprayPaint) { return(getNegativeShader()); } return(getGSShader(data.RenderColor)); }
/// <summary> /// Applies a shader for the provided PaintingItem. Possible results are the GSPainted and PaintedNegative shader. /// </summary> /// <param name="item"></param> /// <param name="player"></param> /// <returns></returns> public static MiscShaderData applyShader(PaintingItem item, Player player) { MiscShaderData shader = getShader(item, player); if (shader != null) { shader.Apply(); } return(shader); }