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