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(); }