Esempio n. 1
0
    private void PaintTile()
    {
        Undo.RegisterFullObjectHierarchyUndo(Lvl, "Painted tile");
        Vec2i tilePos = GameHelper.WorldToTilePos(GetMouseWorldPos() - (Vector2)Lvl.transform.position);
        //Debug.Log("[Level] PaintTile - tilePos: " + tilePos +", GetMouseWorldPos(): "+ GetMouseWorldPos());
        //if (Lvl.tileType != TileType.Empty) {
        //TileDefinition tileDef = new TileDefinition { type = Lvl.tileType, goalColor = Lvl.tileGoalColor, color = (Lvl.tileType == TileType.Bucket ? Lvl.tileGoalColor : Lvl.tileColor), pos = tilePos };
        TileDefinition tileDef = new TileDefinition {
            type = TileType.Normal, goalColor = TileColor.None, color = TileColor.None, pos = tilePos
        };

        if (Lvl.Map.IsValidTile(tilePos))
        {
            Undo.RecordObject(Lvl.Map.GetTile(tilePos), "Painted tile");
            Lvl.Map.SetTile(tilePos, tileDef);
        }
        else
        {
            Lvl.CreateTileAtPos(tilePos, tileDef);
            Undo.RegisterCreatedObjectUndo(Lvl.Map.GetTile(tilePos).gameObject, "Painted tile");
        }
        //} else {
        //	Lvl.Map.DeleteTileAt(tilePos);
        //}

        current.Use();
    }