This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Topics - ElementCoder
32
« on: September 27, 2012, 02:32:29 pm »
Lately I've been running into some trouble with my lua programs on startup. When running the script from the editor in the TINCS, it runs fine. But on startup the screen is all messed up and not how its supposed to be. The code (also in attachment) and screenshots are included below. I don't know what's causing this problem, so any help would be appreciated Code:-- BetterLuaAPI for TI-Nspire -- Version 2.2 (Aug 28th 2011) -- Adriweb 2011 -- Thanks to Jim Bauwens and Levak -- [email protected] -- Put all this or some of this (be careful, though, some functions use each other) in your code and thank me ;) -- Remember to put "myGC = gc" in the on.paint(gc) function.
-- See the use of that device table in the on.paint function local function drawPoint(x, y) myGC:fillRect(x, y, 1, 1) end
local function drawCircle(x, y, diameter) myGC:drawArc(x - diameter/2, y - diameter/2, diameter,diameter,0,360) end
local function drawCenteredString(str) myGC:drawString(str, (pww() - myGC:getStringWidth(str)) / 2, pwh() / 2, "middle") end
local function pww() return platform.window:width() end
local function drawXCenteredString(str,y) myGC:drawString(str, (pww() - myGC:getStringWidth(str)) / 2, y, "top") end
local function verticalBar(x) myGC:fillRect(x,0,1,platform.window:height()) end
local function horizontalBar(y) myGC:fillRect(0,y,platform.window:width(),1) end
local function drawSquare(x,y,l) myGC:drawPolyLine({(x-l/2),(y-l/2), (x+l/2),(y-l/2), (x+l/2),(y+l/2), (x-l/2),(y+l/2), (x-l/2),(y-l/2)}) end
local function drawRoundRect(x,y,wd,ht,rd) -- wd = width, ht = height, rd = radius of the rounded corner x = x-wd/2 -- let the center of the square be the origin (x coord) y = y-ht/2 -- same for y coord if rd > ht/2 then rd = ht/2 end -- avoid drawing cool but unexpected shapes. This will draw a circle (max rd) myGC:drawLine(x + rd, y, x + wd - (rd), y); myGC:drawArc(x + wd - (rd*2), y + ht - (rd*2), rd*2, rd*2, 270, 90); myGC:drawLine(x + wd, y + rd, x + wd, y + ht - (rd)); myGC:drawArc(x + wd - (rd*2), y, rd*2, rd*2,0,90); myGC:drawLine(x + wd - (rd), y + ht, x + rd, y + ht); myGC:drawArc(x, y, rd*2, rd*2, 90, 90); myGC:drawLine(x, y + ht - (rd), x, y + rd); myGC:drawArc(x, y + ht - (rd*2), rd*2, rd*2, 180, 90); end
local function fillRoundRect(x,y,wd,ht,radius) -- wd = width and ht = height -- renders badly when transparency (alpha) is not at maximum >< will re-code later if radius > ht/2 then radius = ht/2 end -- avoid drawing cool but unexpected shapes. This will draw a circle (max radius) myGC:fillPolygon({(x-wd/2),(y-ht/2+radius), (x+wd/2),(y-ht/2+radius), (x+wd/2),(y+ht/2-radius), (x-wd/2),(y+ht/2-radius), (x-wd/2),(y-ht/2+radius)}) myGC:fillPolygon({(x-wd/2-radius+1),(y-ht/2), (x+wd/2-radius+1),(y-ht/2), (x+wd/2-radius+1),(y+ht/2), (x-wd/2+radius),(y+ht/2), (x-wd/2+radius),(y-ht/2)}) x = x-wd/2 -- let the center of the square be the origin (x coord) y = y-ht/2 -- same myGC:fillArc(x + wd - (radius*2), y + ht - (radius*2), radius*2, radius*2, 1, -91); myGC:fillArc(x + wd - (radius*2), y, radius*2, radius*2,-2,91); myGC:fillArc(x, y, radius*2, radius*2, 85, 95); myGC:fillArc(x, y + ht - (radius*2), radius*2, radius*2, 180, 95); end
local function drawLinearGradient(color1,color2) -- syntax would be : color1 and color2 as {r,g,b}. -- don't really know how to do that. probably converting to hue/saturation/light mode and change the hue. -- todo with unpack(color1) and unpack(color2) end --------------- End of BetterLuaAPI
--------------- Start of application
--Variables used throughout the application --Set api level platform.apilevel = '1.0' --'System' variables width = platform.window:width() height = platform.window:height() --Define the various screens and set the main screen main, blocks, items, mobs, terrain, title = 0, 1 ,2, 3, 4, 5 screen = main --Array of paint, which will hold all the paint functions for different screens paint = {} --All images used in the application SectionBlocks = image.new("&\000\000\000&\000\000\000\000\000\000\000L\000\000\000\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\174)\174)\174\204\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\165J\178)\174\009\170j\178\139\182\009\174\232\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\174J\178\232\165\232\165\009\170\232\169\009\170*\174\009\170\232\169\232\169\233\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\165\200\165\009\174*\174\233\169\009\174\009\174\009\170\232\169\232\169\009\174\009\170\232\169\009\170\200\165\200\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000J\178J\178\009\170\232\169)\174*\174\232\169)\174\009\174\009\174*\174\009\174\009\170\232\169\009\170\009\174\232\165\009\170)\174*\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\174)\174)\174)\174)\174*\174*\174)\174\009\174)\174\009\170\009\174j\178J\178\232\169\232\165\009\170\009\170\232\169\232\169J\174)\174\009\170\232\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\172\182J\178\232\169J\174*\174\009\174k\178k\178j\178J\174\009\170\009\170\232\169\232\169\009\174\009\174*\174j\178)\174\232\165\009\170J\174j\178J\178\009\170\232\169\232\169\232\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000J\178\009\170\009\170k\178*\174*\174\009\170)\174J\178\009\170\009\170*\174\009\170\232\169)\174)\174\232\165\232\169\009\170)\174*\174\200\165\232\165\009\170J\178j\178*\174\139\182)\174J\174\009\170\135\161\000\000\000\000\000\000\000\000\000\000\200\165\009\170J\174J\178J\178\200\165\232\169\009\170*\174)\174\232\169J\178J\178J\178J\178J\178)\174\009\174\009\174\009\170\009\170)\174\232\169\232\169J\178*\174\009\170\232\169\200\165\232\169\232\169\200\165\232\165\167\161\000\000\000\000\000\000\000\000f\157\200\165\009\170)\174j\178\232\169\009\174\232\169\009\174\009\174\232\169\009\174\009\170\009\174\009\170\232\169*\174k\178j\178*\174)\174k\178J\174\232\169\232\169*\174\232\169\233\169)\174\233\169J\178\232\169%\153\228\144\000\000\000\000\000\000\000\000f\157\167\161\135\161\135\161\232\169J\174k\182J\178*\174\232\169\233\169\200\165\232\169\009\174k\178)\174\232\169)\174\009\170\233\169\233\169\232\169\009\174)\174)\174\009\170\233\169\233\169\009\170\167\161F\157\004\149\195\144\228\144\000\000\000\000\000\000\000\000\134\157E\157f\157f\157E\153\167\161\009\170)\174)\174\009\174\139\182J\178\009\170\009\170\009\174\009\170)\174)\174)\174J\174\009\170\009\170)\174)\174\009\170)\174\009\170\232\169E\153\228\144\228\148\228\144\195\144\131\144\000\000\000\000\000\000\000\000F\157\196\156%\157f\157f\157E\157E\153\135\161\232\169\009\170\232\169\009\170)\174*\174\009\174\232\169\200\165\009\170*\174\009\170)\174j\178)\174)\174\232\169\009\174f\157\228\148\228\144\004\149\005\149\195\144\163\144b\148\000\000\000\000\000\000\000\000\163\156\230\156\005\153E\153F\157\228\156\005\157F\153f\157\167\165k\178)\174\009\170\009\174)\174)\174)\174J\178)\174\200\165\232\169\009\174\009\170\167\161%\153\228\148\228\148\004\149\004\149\228\148\130\144\163\144\130\144\131\152\000\000\000\000\000\000\000\000\005\173\230\164\164\156\195\152%\153\228\156\005\157F\157E\153f\157f\157\134\157)\174\009\174*\174J\178\009\170)\174\009\174\200\165\232\169\200\165E\153\195\144\195\144\195\144\228\148\004\149\004\149\195\148b\148b\144b\148\131\152\000\000\000\000\000\000\000\000\229\168\196\164\229\168\228\168%\157\228\156\228\156\004\157\004\153f\157\135\161f\157F\153\135\161\232\169\009\170\009\170\009\170J\178)\174F\157\228\144\163\144\195\144\195\144\195\144\228\148\228\148\195\144b\148\131\152\131\152b\148\196\160\000\000\000\000\000\000\000\000\005\173\163\156\229\168&\181\228\164\196\160\163\156\163\156\228\156f\157\135\161\135\161f\157\135\161\135\161f\157\009\170\232\165f\157\228\148\228\144\228\148\130\144\195\144\130\144\163\144\163\144\130\144\163\144\164\148\131\152\131\152\131\152\196\164\000\000\000\000\000\000\000\000G\185\228\168\229\168\005\173\196\164\228\168\229\168\163\160\228\152%\153F\157\135\161\135\161\167\165F\157%\153F\157\228\148\005\149\004\149\228\148\228\144\130\144\131\144b\144\130\144\130\144b\144c\148\131\148\131\152\131\152\131\152\163\156\000\000\000\000\000\000\000\000\196\164\196\164\196\164\196\164\229\168\229\168\196\164\196\164\196\160\195\152\196\156F\157%\161\163\152%\153E\153F\157\228\144\195\144\228\144\195\144\228\144\130\144b\144b\148b\148b\144\130\148\130\148\131\152\131\152\163\156\163\156\163\156\000\000\000\000\000\000\000\000\005\173\196\164&\181\006\177(\169\007\169\196\164\131\156\163\156\131\156\163\156\228\156\163\156\196\160\004\153%\153\228\156\004\149b\144\163\144b\144\195\144\163\152\131\152\130\148b\148b\148\163\156\196\164\164\160\131\152\131\152\163\152\131\152\000\000\000\000\000\000\000\000\229\168\228\164\229\168&\181&\177\005\173\196\164\229\172\228\168\163\160\196\160\196\156\007\161\196\164\163\156\163\156\163\156\195\148\164\148b\144\131\156b\148\163\152\130\148b\144\131\152\163\156\163\156\196\160\163\156\131\152\130\148b\148\163\156\000\000\000\000\000\000\000\000\196\164\005\173\196\164\229\168\229\168\005\173\229\168\229\168&\181\006\177\196\164\196\164\164\156\228\164\229\172\131\156\196\164b\144\132\148\163\156\196\164\131\152\163\156\130\152\163\160\196\164\131\152\131\152\163\156\131\152\131\152\163\156\131\152\163\156\000\000\000\000\000\000\000\000\196\164\005\173\196\160\196\160\196\164\229\168\229\168\196\164\229\168\229\172\229\168&\181\229\168\196\164\228\168\163\156\196\164\163\156\130\152\163\156\163\156\164\152\163\152\131\152\131\152\163\156\131\152\163\156\163\156\163\156\196\164\196\160\165\152\131\152\000\000\000\000\000\000\000\000\005\173\229\168\228\168\005\173\229\168\163\160\164\160\163\160\196\160\196\164\196\160&\177&\181\196\164\229\168\196\164&\181\131\152b\144\131\152\131\152\197\156\164\156\131\152\130\148\130\148\131\152\163\156\131\152\163\156\196\160\164\156\164\152b\144\000\000\000\000\000\000\000\000\229\168\196\164\196\164\006\177G\185\229\168\163\160\163\160\196\164\229\168\005\173\005\173\005\173\196\164\005\173\196\164&\181\163\156\131\152\131\152\164\160\164\160\163\156\131\152b\148\130\148\131\152\163\156\131\156b\148\163\156\163\156\131\152\163\156\000\000\000\000\000\000\000\000\196\164\163\156\228\168\005\173\005\177\005\173\006\177\006\177\196\164\196\164\229\168\229\172\196\164\196\164\196\164\229\172\005\173\196\164\131\152\196\164\196\164\131\152\163\156\130\148\130\148\130\152\163\156\196\164\163\156b\148b\148\163\156\196\164\196\164\000\000\000\000\000\000\000\000\196\164\229\168\229\168\228\168\005\173&\181\006\177\005\173\196\164\196\164\229\168\196\164\196\164\228\168\196\164\229\168\005\173\131\152\131\152\131\152\163\156\131\152b\148\130\148\163\156\131\152\163\152\164\160\163\156\131\152\131\152\163\156\164\160\163\156\000\000\000\000\000\000\000\000\005\173\229\168\196\164\196\164\229\168\005\173\006\177\005\173\006\169\006\169G\185\005\177\196\164G\185\005\173\163\156\228\168\163\156\131\152b\148\130\152\163\156\131\152\164\160\164\160\164\152\164\152\131\152\131\152\130\152\163\156\196\164\163\156\163\156\000\000\000\000\000\000\000\000\005\173\228\168\163\156\229\168\229\164\229\164\006\177\005\177\229\164\006\165\005\177\005\173\163\160&\177&\181\196\164\229\168\163\156\163\156b\148\164\160\196\164\164\160\163\156\163\156\131\152\131\152\131\152\163\156b\148\131\152\131\152\163\156b\148\000\000\000\000\000\000\000\000\005\173\196\164\005\173&\177\005\173\196\160\229\168\005\173\228\168\196\164\228\168\229\168\196\164\228\164\006\173(\169\005\173\131\152\163\156\131\152\196\160\164\160\196\160\196\160\163\156\131\152b\148\131\152\163\156\163\156\131\152\163\156\130\152b\144\000\000\000\000\000\000\000\000\000\000\196\164&\181&\177\005\173\196\160\164\160\228\168\229\168\196\160\196\164\196\164\196\164\163\160\005\173\007\169\196\164\131\152\163\156\131\152\163\156\163\156\163\156\196\160\163\156\163\156\163\160\163\156\131\152\163\156\163\156\163\156\131\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\173\005\173\229\168\006\165\197\160\228\168\005\173\229\168\006\177\196\160\196\164\229\168\228\168\163\156\163\156\130\152\163\156\131\152\163\152\131\152\163\156\131\152\163\156\196\164\163\156\131\152\131\152\163\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\164(\169\007\169\229\168&\181&\181\229\168\163\160\228\168\005\173G\185\005\173\131\152b\144\163\156\131\152\131\152b\148\130\148\130\148\163\156\163\156\163\156\131\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\164\229\168\005\173\005\173\228\168\005\173\228\168&\181\006\177&\181\131\152\163\156\131\152\163\156\131\152b\148\165\152\164\152\131\152\163\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\173\229\168\196\164\228\168\228\168\228\164\005\173\005\173\131\152\131\152b\144\196\160\163\156\131\152\165\152\198\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\164\228\168\005\173\005\173\005\173\005\173\163\156\131\152\196\160\164\160\163\156\163\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\173\005\173\196\164\163\160\163\156\131\152\196\164\196\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\160\131\156\163\156\131\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") SectionItemsTemp = image.new("<\000\000\000<\000\000\000\000\000\000\000x\000\000\000\016\000\001\000\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\128\000\128\000\128\031|\031|\031|\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\2278\2278\2279\2278\2279\2279\2279\227\025\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\025\227\025\2279\2279\2239\2239\2239\2239\2239\2239\2239\2239\2239\2238\2278\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\231\024\227\024\2278\2279\223\230\140\230\136\230\136\230\136\230\136\230\136\230\136\230\136\230\136\230\1409\2239\227\024\227\024\227\024\227\024\227\024\227\024\227\008\161\008\161\008\161\008\161\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231\023\231\023\231\023\231\023\2278\223Y\215\007\133\007\129'\129'\129'\129'\129'\129'\129'\129\007\129Y\2159\2239\227\024\227\024\227\024\227\024\227\024\227\008\161\008\161\008\161\008\161\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231'\173'\173\228\156\229\152\229\140\006\129\212\174\212\170\146\162\146\162\146\162\146\162\212\166\212\166X\1837\191\007\133\230\1409\223\024\227\024\227\024\227\008\161\008\161\255\255\255\255\255\255\255\255\024\227\024\227\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231'\173&\173\227\160\004\153\004\137&\129\244\166\244\166\178\158\146\162\146\162\146\162\212\170\212\166W\1837\191\007\133\230\1409\223\024\227\024\227\024\227\008\161\008\161\255\255\255\255\255\255\255\255\023\227\024\227\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231\129\144\128\144\169\181\234\169o\174\145\162\178\158\178\158'\129'\129'\129'\129'\129'\129'\129\007\129Y\2159\2239\227\024\227\008\161\008\161\255\255\255\255{\239{\239\024\227\023\227\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\2278\227\130\140\129\136\235\169\011\158\144\166\177\162\145\162q\170\006\133\230\132\230\136\230\136\230\136\230\132\230\136\230\1409\2239\227\024\227\024\227\008\161\008\161\255\255\255\255{\239{\239\024\227\024\227\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\2278\2278\223\229\140\005\133p\174\144\166\210\170\210\174F\133\006\1417\2198\2239\2239\2239\2239\2239\2239\2239\227\024\227\008\161\008\161\255\255\255\255z\239{\239\024\227\024\227{\239{\239\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\2279\223Y\215\006\129'\129\145\162\177\162\211\174\177\182\005\145\228\152\022\2317\227\024\227\024\2278\2279\2278\227\024\227\024\227\024\227\008\161\007\161\255\255\255\255z\239z\239\024\227\024\227{\239{\239\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\2279\223\230\140\007\133\212\174\244\166\178\158\146\162\196\128\162\132G\165F\173\195\160\196\160\023\231\024\231\024\227\024\227\024\227\024\227\024\227\024\227\024\231\023\231\229\156\197\156\022\227\023\227z\239{\239\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136\007\129\212\170\244\166\178\158q\170\163\128\130\140F\173%\173\194\164\195\160\021\235\023\231\024\231\024\227\024\227\024\227\024\227\024\231\023\231\021\235\195\160\195\160\021\231\023\227z\239z\239\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129\146\162\178\158'\129\006\1298\2197\227`\148`\148\168\189\136\189\195\160\196\160\023\231\024\231\024\227\024\227\024\231\023\231\228\160\194\160\168\189\169\189a\148b\144\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129\146\162\146\162'\129\230\1328\2238\227b\144`\148\169\189\168\189\194\164\195\160\022\235\023\231\023\231\024\231\023\231\022\235\195\160\194\164\168\189\169\189a\148b\144\255\255\255\255\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129\146\162\146\162'\129\230\1369\2238\227\023\231\022\231`\148`\152%\177%\177\195\160\196\160\023\231\023\231\196\160\195\160%\177%\177`\148`\148\022\231\023\231\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129\146\162\146\162'\129\230\1369\2238\227\024\227\023\231b\144a\148&\173%\177\194\164\195\160\021\235\021\235\195\160\194\164%\177&\173a\148b\144\023\231\024\231\008\161\008\161\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129\212\170\212\170'\129\230\1369\2239\227\024\227\024\227\023\231\023\231a\148`\148\168\189\136\189\194\164\194\164\168\189\168\189`\152a\148\023\231\023\231\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129\212\166\212\166'\129\230\1369\2239\227\024\227\024\227\024\227\023\231b\144`\148\169\189\168\189\193\164\193\164\167\189\168\189`\148b\144\023\231\024\227\024\2278\227\024\227\023\227\023\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2279\223\230\136'\129W\183W\183'\129\230\1369\223\025\227\024\227\024\227\024\227\024\231\023\231\022\235`\148`\152$\177$\177\193\164\194\164\021\235\023\231\024\227\024\227\024\227\023\227\229\156\228\156\228\156\229\1567\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\2278\223\230\140\007\1297\1917\191\007\129\230\1409\223\025\227\024\227\024\227\024\227\024\231\023\231\022\235`\148`\152%\177$\177\193\164\194\164\021\235\023\231\023\231\024\227\023\2275\231\002\157\000\161\000\157\002\1575\2317\227\024\227\024\227\024\227\025\227\025\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\2278\2278\2279\223Y\211\007\133\007\133Y\2159\2239\227\024\227\024\227\024\227\024\227\023\231\196\160\195\160&\173&\173`\148`\152\168\189\168\189\195\160\196\160\023\231\023\231\228\156\226\156\148\243\145\243\145\243\147\243\001\157\227\156\023\227\024\227\024\227\024\227\025\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\2279\2279\223\230\140\230\1409\2239\227\024\227\024\227\024\227\024\231\023\231\021\235\195\160\194\164%\177&\173`\148`\148\169\189\136\189\194\164\195\160\021\231\022\231\227\160\000\161\146\243\175\243\174\243\176\243\000\161\001\1615\2317\227\024\227\024\227\024\227\025\227\025\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\2279\2279\2239\2279\227\024\227\024\227\024\227\024\231\023\231\196\160\195\160\168\189\168\189`\148a\148\022\235\022\235`\148`\152%\177%\177\195\160\195\160\226\160\000\161-\231K\231\008\223\009\223\176\243\146\243\001\161\227\1567\227\024\227\024\227\024\227\025\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\2278\227\024\227\024\227\024\227\024\227\024\227\024\231\023\231\022\235\195\160\194\164\168\189\169\189`\148b\144\023\231\023\231b\144a\148&\173%\177\194\164\194\160\225\160\000\161.\231,\231\008\223\008\223\174\243\176\243\000\161\001\1575\2317\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\231\023\231\228\160\195\160%\173%\177`\152`\148\022\231\023\231\024\227\024\231\023\231\023\231a\148`\148\168\189\167\189\224\160\224\160\236\222\234\222\233\222\009\223\008\223\009\223\176\243\147\243\002\157\229\156\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\231\023\231\021\235\195\160\194\160%\177&\173a\148b\144\023\231\024\227\024\227\024\227\024\227\023\231b\144`\148\168\189\167\189\224\160\224\160\236\222\234\222\234\222\233\222\008\223\008\223\174\243\145\243\000\161\228\156\023\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227(\165(\165\197\156\195\160\169\189\168\189`\148a\148\023\231\023\231\024\227\024\227\024\227\024\227\024\227\024\231\023\231\021\231\128\148\128\148\205\222\236\222h\206g\210\234\222\234\222,\231K\231\175\243\145\243\000\161\228\156\023\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227(\165(\165\197\156\195\160\169\189\169\189`\148b\144\023\231\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\2315\231\128\144\128\148\236\222\235\222g\206h\210\236\222\236\222.\231-\231\146\243\148\243\002\157\229\156\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227(\165(\165\239\193\238\193/\202.\202a\148a\148\022\231\023\231\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\229\156\227\156\207\222\237\222h\206h\206\235\222\236\222\224\160\224\160\000\161\000\161\000\161\226\1565\231\023\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227(\165'\165\237\193\237\193/\202/\198b\144b\144\023\231\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\227\228\156\001\161\238\222\235\222g\206h\206\237\222\206\226\224\160\225\160\227\160\227\156\228\156\229\156\023\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231b\144a\148\170\185\170\185\237\193\239\193\239\193\239\193(\165)\165\025\227\024\227\024\227\024\227\024\227\024\227\024\227\023\227\228\156\001\161\238\222\236\222\236\222\237\222\128\148\128\148E\173F\173\022\231\023\231\023\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231a\148`\148\169\189\169\185\237\193\015\194\239\189\239\189(\165)\165\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\229\156\226\156\239\218\238\222\238\222\207\222\128\144\128\148'\173'\173\023\231\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231'\173&\173\194\160\195\160'\169(\1651\1981\198\239\189\239\189)\165)\165)\165)\165\024\227\024\227\024\227\024\227\023\2275\231\227\156\225\160\225\160\227\1565\231\022\231\023\231\023\231\023\231\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231'\173'\173\196\160\229\156'\165(\1651\1981\198\239\189\239\189)\165)\165)\165)\165\024\227\024\227\024\227\024\227\024\2277\227\229\156\228\156\228\156\229\156\023\227\023\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\023\231\023\231\023\231\023\231\023\231\024\231\024\227)\165)\1651\1981\1981\1981\198s\206s\206)\165)\165\024\227\024\227\024\227\024\227\024\2278\231\023\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\231\024\227\024\227\024\227\024\227)\165)\1651\1981\1981\1981\198s\206s\206)\165)\165\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227)\165)\165)\165)\165)\165)\165\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227)\165)\165)\165)\165)\165)\165\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\000\128\000\128\000\128\255\255\255\255\255\255\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227\024\227J\169J\169J\169\000\128\000\128\000\128\031|\031|\031|\000\128\000\128\000\128J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169J\169\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\031|\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\031|\031|\031|\031|\031|\031|") SectionItems = image.copy(SectionItemsTemp, SectionItemsTemp:width()*0.6, SectionItemsTemp:height()*0.6) SectionItemsTemp = nil -- --Some functions that make life easier -- --[[ function on.create() screen = main end ]]--
local function refresh() platform.window:invalidate() end function on.timer() refresh() end -- --Classes used throughout the app with their belonging functions -- HitBoxSquare = class() function HitBoxSquare:init(xIn, yIn, width, height) self.x = xIn self.y = yIn self.width = width self.height = height end
function HitBoxSquare:contains(xMouse, yMouse) local sw = self.width local sh = self.height return (xMouse>=(self.x)) and xMouse<=(self.x+sw) and yMouse>=(self.y) and yMouse<=(self.y+sh) end -- --Actual application starting point hitBoxBlocks = HitBoxSquare(width*0.20, height*0.30, SectionBlocks:width(), SectionBlocks:height()) hitBoxItems = HitBoxSquare(width*0.40, height*0.30, SectionItems:width(), SectionBlocks:height())
function checkSelection() if(screen == main) then if hitBoxBlocks:contains(mouseX, mouseY) then screen = blocks end if hitBoxItems:contains(mouseX, mouseY) then screen = items end end if (screen == blocks) then end if (screen == items) then end if (screen == mobs) then end if (screen == terrain) then end end
function on.paint(gc) myGC = gc paint[screen](gc) timer.start(1) end
function on.mouseDown(x, y) mouseX = x mouseY= y checkSelection() end
--Screen painting function on.escapeKey() if (screen == main) then screen = title elseif (screen ~= title) then screen = main end end function on.enterKey() if (screen == title) then screen = main end end --Title screen. paint[title] = function(gc) gc:setFont("serif", "bi", 12) drawXCenteredString("Minecraft Encyclopedia", height*0.05) end --Main screen. paint[main] = function(gc) gc:setFont("serif", "bi", 12) drawXCenteredString("Minecraft Encyclopedia", height*0.05) imgX=width*0.20 imgY=height*0.30 gc:drawImage(SectionBlocks,imgX, imgY) imgX=width*0.40 gc:drawImage(SectionItems, imgX, imgY) timer.start(1) end --Blocks screen paint[blocks] = function(gc) gc:setFont("serif", "bi", 12) drawXCenteredString("Blocks Section", height*0.01, "top") gc:drawRect(0,0, width, height*0.1) timer.start(1) end --Items screen paint[items] = function(gc) gc:setFont("serif", "bi", 12) drawXCenteredString("Items Section", height*0.01, "top") gc:drawRect(0,0, width, height*0.1) refresh() end Screenshots:How it's supposed to be:http://imgur.com/WB3ahHow it looks on startup:http://imgur.com/GR4pC
33
« on: September 24, 2012, 01:50:13 pm »
While working on a project I found myself in need of detecting whether the mouse was clicked inside a certain area or not. I thought it would be pretty simple since I only needed square 'hitboxes'. I wrote some simple code and figured to share it in case it might be useful to others.
Hitbox code: Code for the hitbox:
HitBoxSquare = class() function HitBoxSquare:init(xIn, yIn, width, height) self.x = xIn self.y = yIn self.width = width self.height = height end
function HitBoxSquare:contains(xMouse, yMouse) local sw = self.width local sh = self.height return (xMouse>=(self.x)) and xMouse<=(self.x+sw) and yMouse>=(self.y) and yMouse<=(self.y+sh) end Mandatory code: To track mousepresses:
function on.mouseDown(x, y) mouseX = x mouseY = y --Other code here end To track mousemovement:
function on.mouseMove(x, y) mouseX = x mouseY = y --Other code here end How to use: Create the hitbox:
hitBox = HitBoxSquare(x, y, width, height) Check if the mouse is clicked inside the hitbox:
if hitBox:contains(mouseX, mouseY) then --Do something here end Using multiple hitboxes: If you want to use more then one hitbox, checking them by hand is a little too much work. Here's where tables come in handy!
----------------------------------------------- -- Checking multiple hitboxes, the fast way. -- -- ElementCoder, 2012 -- ----------------------------------------------- HitBoxSquare = class() function HitBoxSquare:init(xIn, yIn, width, height) self.x = xIn self.y = yIn self.width = width self.height = height end
function HitBoxSquare:contains(xMouse, yMouse) local sw = self.width local sh = self.height return (xMouse>=(self.x)) and xMouse<=(self.x+sw) and yMouse>=(self.y) and yMouse<=(self.y+sh) end
hb1 = HitBoxSquare(10, 10, 10, 10) hb2 = HitBoxSquare(10, 25, 10, 10) hb3 = HitBoxSquare(10, 40, 10, 10) hitbox = {hb1, hb2, hb3} hitboxname = {"Hitbox 1", "Hitbox 2", "Hitbox 3"}
function on.paint(gc) gc:drawRect(10, 10, 10, 10) gc:drawRect(10, 25, 10, 10) gc:drawRect(10, 40, 10, 10) end
function on.mouseMove(x, y) mouseX, mouseY = x, y for i = 1, 3 do if hitbox[i]:contains(mouseX, mouseY) then print(hitboxname[i].." contains the mouse!") end end end
35
« on: August 15, 2012, 11:15:30 am »
I'm working on a project with a lot of tabs and was wondering if is there a faster way then this (I'm pretty sure there is):
JTabbedPane tabPane = new JTabbedPane();
tabPane.add(panel1); tabPane.add(panel2); ..... tabPane.add(panelX);
36
« on: June 08, 2012, 09:49:34 am »
I'm having some trouble with getting which index of the list is selected. The list (JList) is in a scrollpane, I added a ListSelectionListener and in the listener I gave it the task to return the selected index. But it always returns -1. The code is below. What am I doing wrong?
List:
DefaultListModel kubesN = new DefaultListModel(); final String kubes[] = { "Bedrock", "Water", "Dirt", "Grassy Dirt", "Rock", "Wood", "Green Leaves", "Old Citronox", "Short Grass", "Tall Grass", "Wood Rose", "Mushlite", "Stellar Sand", "Creeping Vines", "Hanging Grass", "Cactus", "Citronox", "ESCorp Box", "Cracked Rock", "HardRoq", "Pyrite", "Cactus Root", "Cactus Flower", "Blue Mineral", "Blue Crystal", "Copper", "Hangar Ceiling Lighting", "Copper Arrow", "Bound Copper", "Copper Wire Mesh", "Hangar Lighting", "Purple Leaves", "Pink Leaves", "Moon Earth", "Grassy Moon Earth", "Moon Rock", "Moon Dust", "Lumen Rock", "Dead Lumen Rock", "Lumen Rock Column", "Moon Water", "Moon Rock Column", "Cracked Moon Rock", "Purple Stain", "Pink Stain" }; java.util.Arrays.sort(kubes); JList kube = new JList(kubes); kube.setModel(kubesN); ListListener listlistener = new ListListener(); kube.addListSelectionListener(listlistener); for (int i = 0; i < kubes.length; i++) kubesN.addElement(kubes[i]); kube.setVisibleRowCount(5); kube.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); JScrollPane kubeView = new JScrollPane(kube);
ListSelectionListener:
private static class ListListener implements ListSelectionListener{ public void valueChanged(ListSelectionEvent e){ if (!e.getValueIsAdjusting()){ int index = kube.getSelectedIndex(); System.out.println(index); } } } }
37
« on: April 03, 2012, 05:02:06 am »
I forgot to introduce myself So here I am I've developed quite some things for the TI-Nspire (BASIC) and now learning Lua for even better programs I'm also learning java atm and did some C++ sometime ago, in a far, distant world, where everything is hard..... And I'm starting Astronomy this year. Well that's about it. [edit] I'm also a proud Minecraftian
|