mirror of
https://github.com/IgorTimofeev/MineOS.git
synced 2025-12-20 02:59:20 +01:00
48 lines
1.9 KiB
Lua
48 lines
1.9 KiB
Lua
|
|
local image = require("Image")
|
|
|
|
------------------------------------------------------
|
|
|
|
local workspace, window, menu = select(1, ...), select(2, ...), select(3, ...)
|
|
local tool = {}
|
|
local locale = select(4, ...)
|
|
|
|
tool.shortcut = "Fil"
|
|
tool.keyCode = 34
|
|
tool.about = locale.tool8
|
|
|
|
local function check(x, y, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS)
|
|
if x >= 1 and x <= picture[1] and y >= 1 and y <= picture[2] then
|
|
local currentB, currentF, currentA, currentS = image.get(picture, x, y)
|
|
if
|
|
currentB == sourceB
|
|
and
|
|
currentB ~= newB
|
|
then
|
|
image.set(picture, x, y, newB, newF, newA, newS)
|
|
return true
|
|
end
|
|
end
|
|
end
|
|
|
|
local function pizda(x, y, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS)
|
|
if check(x, y - 1, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) then pizda(x, y - 1, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) end
|
|
if check(x + 1, y, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) then pizda(x + 1, y, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) end
|
|
if check(x, y + 1, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) then pizda(x, y + 1, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) end
|
|
if check(x - 1, y, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) then pizda(x - 1, y, picture, sourceB, sourceF, sourceA, sourceS, newB, newF, newA, newS) end
|
|
end
|
|
|
|
tool.eventHandler = function(workspace, object, e1, e2, e3, e4)
|
|
if e1 == "touch" then
|
|
local x, y = math.ceil(e3) - window.image.x + 1, math.ceil(e4) - window.image.y + 1
|
|
local sourceB, sourceF, sourceA, sourceS = image.get(window.image.data, x, y)
|
|
pizda(x, y, window.image.data, sourceB, sourceF, sourceA, sourceS, window.primaryColorSelector.color, 0x0, 0, " ")
|
|
|
|
workspace:draw()
|
|
end
|
|
end
|
|
|
|
------------------------------------------------------
|
|
|
|
return tool
|