public static void Draw(Light2D light) { ShadowEngine.Prepare(light); LayerSetting[] layerSettings = light.GetLayerSettings(); if (layerSettings == null) { return; } if (layerSettings.Length < 1) { return; } for (int layerID = 0; layerID < layerSettings.Length; layerID++) { LayerSetting layerSetting = layerSettings[layerID]; if (layerSetting == null) { continue; } if (pass.Setup(light, layerSetting) == false) { continue; } ShadowEngine.SetPass(light, layerSetting); if (layerSetting.sorting == LightLayerSorting.None) { NoSort.Draw(pass); } else { pass.sortPass.SortObjects(); Sorted.Draw(pass); } } LightSource.Main.Draw(light); }
public bool DrawOrNot(Light2D id) { LayerSetting[] layerSetting = id.GetLayerSettings(); if (layerSetting == null) { return(false); } for (int i = 0; i < layerSetting.Length; i++) { if (layerSetting[i] == null) { continue; } int layerID = layerSetting[i].layerID; switch (layerSetting[i].type) { case LightLayerType.ShadowAndMask: if (layerID == shadowLayer || layerID == maskLayer) { return(true); } break; case LightLayerType.MaskOnly: if (layerID == maskLayer) { return(true); } break; case LightLayerType.ShadowOnly: if (layerID == shadowLayer) { return(true); } break; } } return(false); }
public static void DrawCollisions(Light2D light) { ShadowEngine.Prepare(light); LayerSetting[] layerSettings = light.GetLayerSettings(); if (layerSettings == null) { return; } if (layerSettings.Length < 1) { return; } for (int layerID = 0; layerID < layerSettings.Length; layerID++) { LayerSetting layerSetting = layerSettings[layerID]; if (layerSetting == null) { continue; } if (pass.Setup(light, layerSetting) == false) { continue; } ShadowEngine.SetPass(light, layerSetting); NoSort.Shadows.Draw(pass); } // LightSource.Main.Draw(light); }