Ejemplo n.º 1
0
 public void Eval(TileLogicScript logic, LogicEvalInfo info, bool u, bool d, bool l, bool r, bool ul, bool ur, bool dl, bool dr)
 {
     info.Adjust(tname, x, y);
 }
Ejemplo n.º 2
0
    //Function called when painting with logic tile
    public void Eval(TileLogicScript logic, LogicEvalInfo info, bool u, bool d, bool l, bool r, bool ul, bool ur, bool dl, bool dr)
    {
        info.Adjust(tname, x + 1, y + 1);

        if (!u)
        {
            if (!l)
            {
                info.Adjust(tname, x, y);
            }
            else if (!r)
            {
                info.Adjust(tname, x + 2, y);
            }
            else
            {
                info.Adjust(tname, x + 1, y + (dl ? 0 : ul ? 2 : 0));
            }
        }
        else if (!d)
        {
            if (!l)
            {
                info.Adjust(tname, x, y + 2);
            }
            else if (!r)
            {
                info.Adjust(tname, x + 2, y + 2);
            }
            else
            {
                info.Adjust(tname, x + 1, y + 2);
            }
        }
        else if (u)
        {
            if (!l)
            {
                info.Adjust(tname, x, y + 1);
            }
            else if (!r)
            {
                info.Adjust(tname, x + 2, y + 1);
            }
        }

        if (u && d && l && r)
        {
            if (!ul)
            {
                info.Adjust(tname, x + 3, y);
            }
            else if (!ur)
            {
                info.Adjust(tname, x + 4, y);
            }
            else if (!dl)
            {
                info.Adjust(tname, x + 3, y + 1);
            }
            else if (!dr)
            {
                info.Adjust(tname, x + 4, y + 1);
            }
        }

        if (u && d && l && r && ul && ur && dl && dr)
        {
            info.Adjust(tname, x + 1, y + 1);             //middle!
        }
    }