Added install.lua and drawButton
This commit is contained in:
parent
d47607632c
commit
3f6060cbae
|
@ -1,3 +1,9 @@
|
||||||
# cc-simple-graphics
|
# cc-simple-graphics
|
||||||
|
|
||||||
A simple, unopinionated graphics API for Computercraft devices.
|
A simple, unopinionated graphics API for Computercraft devices. See the source
|
||||||
|
code for documentation on each function.
|
||||||
|
|
||||||
|
Installation is simple:
|
||||||
|
```shell
|
||||||
|
wget run https://raw.githubusercontent.com/andrewlalis/cc-simple-graphics/main/install.lua
|
||||||
|
```
|
|
@ -0,0 +1,15 @@
|
||||||
|
-- Quick installation script for simple-graphics.
|
||||||
|
if fs.exists("simple-graphics.lua") then
|
||||||
|
print("simple-graphics.lua already exists. Overwrite it? (y/n)")
|
||||||
|
local response = io.read()
|
||||||
|
if response == "y" or response == "Y" then
|
||||||
|
fs.delete("simple-graphics.lua")
|
||||||
|
print("Removed simple-graphics.lua.")
|
||||||
|
else
|
||||||
|
print("Quitting the installation.")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shell.execute("wget", "https://raw.githubusercontent.com/andrewlalis/cc-simple-graphics/main/simple-graphics.lua", "simple-graphics.lua")
|
||||||
|
print("Installed simple-graphics.lua.")
|
|
@ -25,6 +25,17 @@ function lib.fillRect(m, x, y, w, h, c)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Draws the outline of a rectangle from the given x and y coordinates with a
|
||||||
|
-- width and height given by w and h respectively. If c is not nil, then the
|
||||||
|
-- color of the border is set to c.
|
||||||
|
function lib.drawRect(m, x, y, w, h, c)
|
||||||
|
if c ~= nil then m.setBackgroundColor(c) end
|
||||||
|
lib.drawXLine(x, x+w-1, y, c)
|
||||||
|
lib.drawXLine(x, x+w-1, y+h-1, c)
|
||||||
|
lib.drawYLine(y+1, y+h-2, x, c)
|
||||||
|
lib.drawYLine(y+1, y+h-2, x+w-1, c)
|
||||||
|
end
|
||||||
|
|
||||||
-- Draws a horizontal line from x1 to x2 on the given y level.
|
-- Draws a horizontal line from x1 to x2 on the given y level.
|
||||||
function lib.drawXLine(m, x1, x2, y, bg, fg, char)
|
function lib.drawXLine(m, x1, x2, y, bg, fg, char)
|
||||||
char = char or " "
|
char = char or " "
|
||||||
|
@ -61,4 +72,19 @@ function lib.drawTextCenter(m, x, y, text, fg, bg)
|
||||||
lib.drawText(m, x-(#text/2)+1, y, text, fg, bg)
|
lib.drawText(m, x-(#text/2)+1, y, text, fg, bg)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Draws a button as a plain rectangle with the given background color, and
|
||||||
|
-- centered text drawn with the foreground color. Returns a table containing
|
||||||
|
-- x1, y1, x2, y2 coordinates for handling the button's event later.
|
||||||
|
function lib.drawButton(m, x, y, w, h, text, fg, bg)
|
||||||
|
local x1 = x
|
||||||
|
local y1 = y
|
||||||
|
local x2 = x+w-1
|
||||||
|
local y2 = y+h-1
|
||||||
|
local midX = x+(w/2)
|
||||||
|
local midY = y+(h/2)
|
||||||
|
lib.fillRect(m, x, y, w, h, bg)
|
||||||
|
lib.drawText(m, midX, midY, text, fg)
|
||||||
|
return {x1=x1,y1=y1,x2=x2,y2=y2}
|
||||||
|
end
|
||||||
|
|
||||||
return lib
|
return lib
|
Loading…
Reference in New Issue