View difference between Paste ID: FyAYSUG2 and UfY1nNRV
SHOW: | | - or go back to the newest paste.
1
function character.ValidTiles(start, mapModel, range)
2-
	local found, following, current = {}, {[start] = 0}
2+
    local found, following, current = {}, {[start] = 0}
3-
	for step=1,range do
3+
    for step = 1, range do
4-
		current, following = following, {}
4+
        current, following = following, {}
5-
		for space in pairs(current) do
5+
        for space in pairs(current) do
6-
			if space.isTraversable then
6+
            if space.isTraversable and (not space.Character or space == start) then
7-
				for neighbor in neighborsInMap(space) do
7+
                for neighbor in neighborsInMap(space) do
8-
					found[neighbor.yTile] = found[neighbor.yTile] or {}
8+
                    found[neighbor.yTile] = found[neighbor.yTile] or {}
9-
					if not found[neighbor.yTile][neighbor.xTile] then
9+
                    if not found[neighbor.yTile][neighbor.xTile] then
10
						found[neighbor.yTile][neighbor.xTile] = neighbor
11
						following[neighbor] = step
12-
					end
12+
                    end
13-
				end
13+
                end
14-
			end
14+
            end
15-
		end
15+
        end
16-
	end
16+
    end
17-
	return found
17+
    found[start] = nil
18
    return found
19
end