mirror of
https://github.com/LDDestroier/CC/
synced 2025-06-08 05:44:05 +00:00
Finalized palette number indicator
Also improved modifier keys, so right CTRL or Shift or Alt will always work in the stead of left. I need to work on the mouse input bug, though.
This commit is contained in:
parent
ab5075b347
commit
eedab81142
138
pain2.lua
138
pain2.lua
@ -7,7 +7,7 @@ local miceDown = {} -- list of all clicked mice buttons
|
|||||||
local dragPoses = {{{},{}}, {{},{}}, {{},{}}} -- records initial and current mouse position per button while scrolling
|
local dragPoses = {{{},{}}, {{},{}}, {{},{}}} -- records initial and current mouse position per button while scrolling
|
||||||
|
|
||||||
local TICKNO = 0 -- iterates every time main() loops
|
local TICKNO = 0 -- iterates every time main() loops
|
||||||
local flashPaletteOnBar = false -- whether or not to flash the dot palette numbers on the bottom bar
|
local flashPaletteOnBar = 0 -- whether or not to flash the dot palette numbers on the bottom bar, 0 is false, greater than 0 is true
|
||||||
|
|
||||||
-- debug renderer is slower, but the normal one isn't functional yet
|
-- debug renderer is slower, but the normal one isn't functional yet
|
||||||
local useDebugRenderer = false
|
local useDebugRenderer = false
|
||||||
@ -132,12 +132,32 @@ local control = {
|
|||||||
switchNextFrame = {
|
switchNextFrame = {
|
||||||
key = keys.rightBracket,
|
key = keys.rightBracket,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {},
|
modifiers = {
|
||||||
|
[keys.leftShift] = true
|
||||||
|
},
|
||||||
},
|
},
|
||||||
switchPrevFrame = {
|
switchPrevFrame = {
|
||||||
key = keys.leftBracket,
|
key = keys.leftBracket,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {},
|
modifiers = {
|
||||||
|
[keys.leftShift] = true
|
||||||
|
},
|
||||||
|
},
|
||||||
|
swapNextFrame = {
|
||||||
|
key = keys.rightBracket,
|
||||||
|
holdDownn = false,
|
||||||
|
modifiers = {
|
||||||
|
[keys.leftShift] = true,
|
||||||
|
[keys.leftAlt] = true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
swapPrevFrame = {
|
||||||
|
key = keys.leftBracket,
|
||||||
|
holdDownn = false,
|
||||||
|
modifiers = {
|
||||||
|
[keys.leftShift] = true,
|
||||||
|
[keys.leftAlt] = true,
|
||||||
|
}
|
||||||
},
|
},
|
||||||
increaseBrushSize = {
|
increaseBrushSize = {
|
||||||
key = keys.equals,
|
key = keys.equals,
|
||||||
@ -211,83 +231,73 @@ local control = {
|
|||||||
selectPalette_0 = {
|
selectPalette_0 = {
|
||||||
key = keys.zero,
|
key = keys.zero,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_1 = {
|
selectPalette_1 = {
|
||||||
key = keys.one,
|
key = keys.one,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_2 = {
|
selectPalette_2 = {
|
||||||
key = keys.two,
|
key = keys.two,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_3 = {
|
selectPalette_3 = {
|
||||||
key = keys.three,
|
key = keys.three,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_4 = {
|
selectPalette_4 = {
|
||||||
key = keys.four,
|
key = keys.four,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_5 = {
|
selectPalette_5 = {
|
||||||
key = keys.five,
|
key = keys.five,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_6 = {
|
selectPalette_6 = {
|
||||||
key = keys.six,
|
key = keys.six,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_7 = {
|
selectPalette_7 = {
|
||||||
key = keys.seven,
|
key = keys.seven,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_8 = {
|
selectPalette_8 = {
|
||||||
key = keys.eight,
|
key = keys.eight,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
selectPalette_9 = {
|
selectPalette_9 = {
|
||||||
key = keys.nine,
|
key = keys.nine,
|
||||||
holdDown = false,
|
holdDown = false,
|
||||||
modifiers = {
|
modifiers = {},
|
||||||
[keys.leftShift] = true
|
|
||||||
},
|
},
|
||||||
|
selectNextPalette = {
|
||||||
|
key = keys.rightBracket,
|
||||||
|
holdDown = false,
|
||||||
|
modifiers = {},
|
||||||
|
},
|
||||||
|
selectPrevPalette = {
|
||||||
|
key = keys.leftBracket,
|
||||||
|
holdDown = false,
|
||||||
|
modifiers = {},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
local checkControl = function(name)
|
local checkControl = function(name)
|
||||||
local modlist = {
|
local modlist = {
|
||||||
keys.leftCtrl,
|
keys.leftCtrl,
|
||||||
keys.rightCtrl,
|
-- keys.rightCtrl,
|
||||||
keys.leftShift,
|
keys.leftShift,
|
||||||
keys.rightShift,
|
-- keys.rightShift,
|
||||||
keys.leftAlt,
|
keys.leftAlt,
|
||||||
keys.rightAlt,
|
-- keys.rightAlt,
|
||||||
}
|
}
|
||||||
for i = 1, #modlist do
|
for i = 1, #modlist do
|
||||||
if control[name].modifiers[modlist[i]] then
|
if control[name].modifiers[modlist[i]] then
|
||||||
@ -473,11 +483,15 @@ local render = function(x, y, width, height)
|
|||||||
term.setCursorPos(pain.size.x, -1 + pain.size.y + pain.size.height)
|
term.setCursorPos(pain.size.x, -1 + pain.size.y + pain.size.height)
|
||||||
term.write("[" .. pain.scrollX .. "," .. pain.scrollY .. "] ")
|
term.write("[" .. pain.scrollX .. "," .. pain.scrollY .. "] ")
|
||||||
for i = 1, #pain.dots do
|
for i = 1, #pain.dots do
|
||||||
if flashPaletteOnBar then
|
if flashPaletteOnBar > 0 then
|
||||||
term.blit(table.unpack(pain.dots[i]))
|
if i == dot then
|
||||||
|
term.blit(tostring(i), "0", pain.dots[i][3])
|
||||||
else
|
else
|
||||||
term.blit(tostring(i), "7", pain.dots[i][3])
|
term.blit(tostring(i), "7", pain.dots[i][3])
|
||||||
end
|
end
|
||||||
|
else
|
||||||
|
term.blit(table.unpack(pain.dots[i]))
|
||||||
|
end
|
||||||
end
|
end
|
||||||
if pain.barlife > 0 then
|
if pain.barlife > 0 then
|
||||||
term.write(" " .. pain.barmsg)
|
term.write(" " .. pain.barmsg)
|
||||||
@ -629,6 +643,7 @@ local tools = {
|
|||||||
run = function(arg)
|
run = function(arg)
|
||||||
local dots
|
local dots
|
||||||
while miceDown[arg.button] do
|
while miceDown[arg.button] do
|
||||||
|
arg.size = pain.brushSize
|
||||||
dots = getDotsInLine(
|
dots = getDotsInLine(
|
||||||
dragPoses[arg.button][1].x + (arg.scrollX - pain.scrollX),
|
dragPoses[arg.button][1].x + (arg.scrollX - pain.scrollX),
|
||||||
dragPoses[arg.button][1].y + (arg.scrollY - pain.scrollY),
|
dragPoses[arg.button][1].y + (arg.scrollY - pain.scrollY),
|
||||||
@ -706,6 +721,11 @@ end
|
|||||||
|
|
||||||
local getInput = function()
|
local getInput = function()
|
||||||
local evt, adjX, adjY, paletteListX
|
local evt, adjX, adjY, paletteListX
|
||||||
|
local keySwapList = {
|
||||||
|
[keys.rightShift] = keys.leftShift,
|
||||||
|
[keys.rightAlt] = keys.leftAlt,
|
||||||
|
[keys.rightCtrl] = keys.leftCtrl,
|
||||||
|
}
|
||||||
while true do
|
while true do
|
||||||
evt = {os.pullEvent()}
|
evt = {os.pullEvent()}
|
||||||
if evt[1] == "mouse_click" or evt[1] == "mouse_drag" then
|
if evt[1] == "mouse_click" or evt[1] == "mouse_drag" then
|
||||||
@ -741,22 +761,26 @@ local getInput = function()
|
|||||||
y = evt[4]
|
y = evt[4]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if evt[1] == "mouse_click" or miceDown[evt[2]] then
|
||||||
miceDown[evt[2]] = {
|
miceDown[evt[2]] = {
|
||||||
event = evt[1],
|
event = evt[1],
|
||||||
button = evt[2],
|
button = evt[2],
|
||||||
x = evt[3],
|
x = evt[3],
|
||||||
y = evt[4],
|
y = evt[4],
|
||||||
}
|
}
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif evt[1] == "key" then
|
elseif evt[1] == "key" then
|
||||||
keysDown[evt[2]] = true
|
keysDown[evt[2]] = true
|
||||||
|
keysDown[keySwapList[evt[2]] or evt[2]] = true
|
||||||
elseif evt[1] == "mouse_up" then
|
elseif evt[1] == "mouse_up" then
|
||||||
dragPoses[evt[2]] = {{},{}}, {{},{}}, {{},{}}
|
dragPoses[evt[2]] = {{},{}}, {{},{}}, {{},{}}
|
||||||
miceDown[evt[2]] = false
|
miceDown[evt[2]] = false
|
||||||
elseif evt[1] == "key_up" then
|
elseif evt[1] == "key_up" then
|
||||||
keysDown[evt[2]] = false
|
keysDown[evt[2]] = false
|
||||||
|
keysDown[keySwapList[evt[2]] or evt[2]] = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -767,14 +791,6 @@ main = function()
|
|||||||
|
|
||||||
if not pain.paused then
|
if not pain.paused then
|
||||||
|
|
||||||
if TICKNO % 30 <= 20 then
|
|
||||||
flashPaletteOnBar = true
|
|
||||||
pain.doRender = true
|
|
||||||
elseif (TICKNO + 3) % 30 <= 20 then
|
|
||||||
flashPaletteOnBar = false
|
|
||||||
pain.doRender = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if pain.doRender then
|
if pain.doRender then
|
||||||
render()
|
render()
|
||||||
pain.doRender = false
|
pain.doRender = false
|
||||||
@ -813,10 +829,29 @@ main = function()
|
|||||||
pain.doRender = true
|
pain.doRender = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if checkControl("selectNextPalette") then
|
||||||
|
if dot < #pain.dots then
|
||||||
|
dot = dot + 1
|
||||||
|
flashPaletteOnBar = 6
|
||||||
|
setBarMsg("Switched to next palette " .. dot .. ".")
|
||||||
|
else
|
||||||
|
setBarMsg("Reached end of palette list.")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if checkControl("selectPrevPalette") then
|
||||||
|
if dot > 1 then
|
||||||
|
dot = dot - 1
|
||||||
|
flashPaletteOnBar = 6
|
||||||
|
setBarMsg("Switched to previous palette " .. dot .. ".")
|
||||||
|
else
|
||||||
|
setBarMsg("Reached beginning of palette list.")
|
||||||
|
end
|
||||||
|
end
|
||||||
for i = 0, 9 do
|
for i = 0, 9 do
|
||||||
if checkControl("selectPalette_" .. i) then
|
if checkControl("selectPalette_" .. i) then
|
||||||
if pain.dots[i] then
|
if pain.dots[i] then
|
||||||
dot = i
|
dot = i
|
||||||
|
flashPaletteOnBar = 6
|
||||||
setBarMsg("Selected palette " .. dot .. ".")
|
setBarMsg("Selected palette " .. dot .. ".")
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
@ -839,11 +874,18 @@ main = function()
|
|||||||
setBarMsg("Selected line tool.")
|
setBarMsg("Selected line tool.")
|
||||||
end
|
end
|
||||||
|
|
||||||
pain.barlife = math.max(pain.barlife - 1, 0)
|
-- decrement bar life and palette number indicator
|
||||||
if pain.barlife == 0 and pain.barmsg ~= "" then
|
-- if it's gonna hit zero, make sure it re-renders
|
||||||
pain.barmsg = ""
|
|
||||||
|
if pain.barlife == 1 then
|
||||||
pain.doRender = true
|
pain.doRender = true
|
||||||
end
|
end
|
||||||
|
pain.barlife = math.max(pain.barlife - 1, 0)
|
||||||
|
|
||||||
|
if flashPaletteOnBar == 1 then
|
||||||
|
pain.doRender = true
|
||||||
|
end
|
||||||
|
flashPaletteOnBar = math.max(flashPaletteOnBar - 1, 0)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user