Upgrate Lua sample scripts to DawnBringer's 1.3 toolbox

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@2013 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2012-09-28 00:04:55 +00:00
parent effde4aee2
commit 5165312bff
5 changed files with 1368 additions and 115 deletions

View File

@ -11,7 +11,7 @@
run("../libs/dawnbringer_lib.lua") run("../libs/dawnbringer_lib.lua")
OK,tin,clz,fade,amt,brikeep,falloff,nobg,briweight = inputbox("Apply PenColor 2 Brush", OK,tin,clz,fade,amt,brikeep,falloff,nobg,nopen,briweight = inputbox("Apply PenColor 2 Brush",
"1. Tint", 1, 0,1,-1, "1. Tint", 1, 0,1,-1,
"2. Colorize", 0, 0,1,-1, "2. Colorize", 0, 0,1,-1,
@ -20,6 +20,7 @@ OK,tin,clz,fade,amt,brikeep,falloff,nobg,briweight = inputbox("Apply PenColor
"Preserve Brightness", 1, 0,1,0, "Preserve Brightness", 1, 0,1,0,
"Bri/Dark FallOff", 1, 0,1,0, "Bri/Dark FallOff", 1, 0,1,0,
"Exclude Background", 1,0,1,0, "Exclude Background", 1,0,1,0,
"Exclude PenColor", 0,0,1,0,
"ColMatch Bri-Weight %", 25, 0,100,0 "ColMatch Bri-Weight %", 25, 0,100,0
); );
@ -40,6 +41,10 @@ if OK == true then
if nobg == 1 then if nobg == 1 then
pal = db.stripIndexFromPalList(pal,bg) -- Remove background color from pallist pal = db.stripIndexFromPalList(pal,bg) -- Remove background color from pallist
end end
if nopen == 1 then
pal = db.stripIndexFromPalList(pal,fg) -- Remove Pencolor from pallist
end
amtA = amt / 100 amtA = amt / 100
amtR = 1 - amtA amtR = 1 - amtA

View File

@ -1,4 +1,4 @@
--3D-Palette viwer V0.7 (HSL-models added, 3D-World added, Pen-color only cycles thru unique colors, InputBox) --3D-Palette viewer V0.72 (HSL-models added, 3D-World added, Pen-color only cycles thru unique colors, InputBox)
--by Richard 'Dawnbringer' Fhager --by Richard 'Dawnbringer' Fhager
-- Mouse: Rotate Cube (Stops animation) -- Mouse: Rotate Cube (Stops animation)
@ -15,6 +15,8 @@
-- "-" (Num): Zoom Out -- "-" (Num): Zoom Out
-- Esc: Exit script -- Esc: Exit script
-- Drawing updated, rectangle missing, Sep11
run("../libs/dawnbringer_lib.lua") run("../libs/dawnbringer_lib.lua")
@ -25,7 +27,7 @@ BOX_BRI = 112 -- Brightest color used for box (0-255)
COLSIZE_BASE = 26 -- Colors base size (value to adjusted by palette-size, with 2 cols maxsize is v / 1.23) COLSIZE_BASE = 26 -- Colors base size (value to adjusted by palette-size, with 2 cols maxsize is v / 1.23)
-- --
OK,RGB,HSL,HSLC,BOX_BRI,COLSIZE_BASE,SET800x600 = inputbox("3D-Palette Viever Settings", OK,RGB,HSL,HSLC,BOX_BRI,COLSIZE_BASE,SET800x600 = inputbox("3D-Palette Viewer Settings",
"1. RGB space [F9]", 1, 0,1,-1, "1. RGB space [F9]", 1, 0,1,-1,
"2. HSL space [F10]", 0, 0,1,-1, "2. HSL space [F10]", 0, 0,1,-1,
@ -125,7 +127,7 @@ CX,CY = w/2, h/2
function initAndReset() function initAndReset()
XANG, YANG, ZANG, ZOOM, COLSIZE_ADJ, XD, YD, WORLD_X, WORLD_Y = 0,0,0,0,0,0,0,0,0 XANG, YANG, ZANG, ZOOM, COLSIZE_ADJ, XD, YD, WORLD_X, WORLD_Y, ZSELECT = 0,0,0,0,0,0,0,0,0,0
end end
initAndReset() initAndReset()
@ -210,6 +212,7 @@ function draw3Dline(x1,y1,z1,x2,y2,z2,div,mult,depthlist)
yt = y1 + yd*s -- + math.random()*8 yt = y1 + yd*s -- + math.random()*8
c = depthlist[depth] c = depthlist[depth]
if c == null then c = 1; end -- Something isn't perfect, error is super rare but this controls it if c == null then c = 1; end -- Something isn't perfect, error is super rare but this controls it
--db.line(xf,yf,xt,yt,c)
drawline(xf,yf,xt,yt,c) drawline(xf,yf,xt,yt,c)
xf = xt xf = xt
yf = yt yf = yt
@ -226,9 +229,9 @@ end
totz = minz * 2 totz = minz * 2
maxrad = CMAXSIZE - CMINSIZE maxrad = CMAXSIZE - CMINSIZE
q = 0 --q = 0
delay = 4 --delay = 4
move = 0.03 --move = 0.03
while 1 < 2 do while 1 < 2 do
@ -305,6 +308,16 @@ while 1 < 2 do
-- draw3Dline(x1,y1,z1,x2,y2,z2,BOX_LINE_DIV,BOX_DIV_MULT,box_div) -- draw3Dline(x1,y1,z1,x2,y2,z2,BOX_LINE_DIV,BOX_DIV_MULT,box_div)
--end --end
--c1 = math.min(FG,BG)
--c2 = math.max(FG,BG)
--p = colz[26]
--XP1,YP1,zp1,c1 = p[1],p[2],p[3],p[4]
--for n = #colz, 1, -1 do
-- p = colz[27]
-- XP2,YP2,zp2,c2 = p[1],p[2],p[3],p[4]
-- drawline(XP1,YP1,XP2,YP2,c1)
--end
-- sort on z -- sort on z
db.sorti(colz,3) db.sorti(colz,3)
@ -317,6 +330,7 @@ while 1 < 2 do
dorad = math.floor(radius - ZOOM*2 + COLSIZE_ADJ) dorad = math.floor(radius - ZOOM*2 + COLSIZE_ADJ)
if dorad >= 1 then if dorad >= 1 then
--db.drawCircle(XP,YP,dorad,c)
drawdisk(XP,YP,dorad,c) drawdisk(XP,YP,dorad,c)
--db.drawRectangle(XP,YP,dorad,dorad,c) --db.drawRectangle(XP,YP,dorad,dorad,c)
else putpicturepixel(XP,YP,c) else putpicturepixel(XP,YP,c)
@ -354,6 +368,7 @@ while 1 < 2 do
old_mouse_b = mouse_b; old_mouse_b = mouse_b;
updatescreen() updatescreen()
moved, key, mouse_x, mouse_y, mouse_b = waitinput(0) moved, key, mouse_x, mouse_y, mouse_b = waitinput(0)
if mouse_b == 1 then ANIM = 0; end if mouse_b == 1 then ANIM = 0; end
@ -367,6 +382,8 @@ while 1 < 2 do
if (key==284) then COLSIZE_ADJ = COLSIZE_ADJ + 0.5; end -- F3 if (key==284) then COLSIZE_ADJ = COLSIZE_ADJ + 0.5; end -- F3
if (key==285) then COLSIZE_ADJ = COLSIZE_ADJ - 0.5; end -- F4 if (key==285) then COLSIZE_ADJ = COLSIZE_ADJ - 0.5; end -- F4
--messagebox(key)
if (key==286) then if (key==286) then
--FG = (FG + 1) % 255; --FG = (FG + 1) % 255;
palcol = (palcol + 1) % #pal palcol = (palcol + 1) % #pal
@ -390,6 +407,18 @@ while 1 < 2 do
if (key==269) then ZOOM = ZOOM + 0.1; end if (key==269) then ZOOM = ZOOM + 0.1; end
if (key==270) then ZOOM = ZOOM - 0.1; end if (key==270) then ZOOM = ZOOM - 0.1; end
if (key==32) then
ZSELECT = (ZSELECT + math.pi/2) % (2*math.pi);
--YANG = ((YANG - math.pi/2) % (math.pi*2));
--XANG = ((XANG + math.pi/2) % (math.pi*2));
YANG = ((YANG + math.pi/2) % (math.pi*2));
XANG = ((XANG + math.pi/2) % (math.pi*2));
YANG = ((YANG - math.pi/2) % (math.pi*2));
end -- Rotate Z 90 Degrees
SPEED = math.pi / 100 SPEED = math.pi / 100
@ -411,7 +440,7 @@ while 1 < 2 do
end end
XANG = ((XANG - XD) % (math.pi*2)); XANG = ((XANG - XD) % (math.pi*2));
YANG = ((YANG + YD) % (math.pi*2)); YANG = ((YANG + YD) % (math.pi*2));
ZANG = 0 ZANG = ZSELECT
end end
if ANIM == 1 then if ANIM == 1 then
@ -424,8 +453,8 @@ while 1 < 2 do
--YANG = ((mouse_x - CX) / 200 % (math.pi*2)); --YANG = ((mouse_x - CX) / 200 % (math.pi*2));
--ZANG = 0 --ZANG = 0
statusmessage("x"..math.floor(XANG*57.3).."° y"..math.floor(YANG*57.3).."° z"..math.floor(ZANG*57.3).."° Zm: "..math.floor(-ZOOM*10).." ")
statusmessage("X: "..math.floor(XANG*57.3).."°, Y: "..math.floor(YANG*57.3).."°, Z: "..math.floor(ZANG*57.3).."°, Zoom: "..math.floor(-ZOOM*10).." ")
end end
end -- OK end -- OK

View File

@ -1,4 +1,4 @@
--ANIM: Sprite Animator v0.1 --ANIM: Sprite Animator v0.15
--Spare page holds data - Plays on current --Spare page holds data - Plays on current
--by Richard Fhager --by Richard Fhager
@ -11,8 +11,8 @@ OK, XS, YS, SPACE, FRAMES, XOFF, YOFF, FPS = inputbox("Sprite-Sheet Animator",
"Sprite Y-size", arg.YS, 1, 256,0, "Sprite Y-size", arg.YS, 1, 256,0,
"Spacing", arg.SPACE, 0, 32,0, "Spacing", arg.SPACE, 0, 32,0,
"# of Frames", arg.FRAMES,2, 100,0, "# of Frames", arg.FRAMES,2, 100,0,
"X-offset", arg.XOFF, 0, 256,0, "X-offset", arg.XOFF, 0, 800,0,
"Y-offset", arg.YOFF, 0, 256,0, "Y-offset", arg.YOFF, 0, 800,0,
"Play Speed (FPS)",arg.FPS, 1, 60,0 "Play Speed (FPS)",arg.FPS, 1, 60,0
); );
@ -21,7 +21,7 @@ if OK == true then
memory.save({XS=XS,YS=YS,SPACE=SPACE,FRAMES=FRAMES,XOFF=XOFF,YOFF=YOFF,FPS=FPS}) memory.save({XS=XS,YS=YS,SPACE=SPACE,FRAMES=FRAMES,XOFF=XOFF,YOFF=YOFF,FPS=FPS})
MAXPLAYS = 25 MAXPLAYS = 100
w,h = getpicturesize() w,h = getpicturesize()
OX = w / 2 - XS/2 OX = w / 2 - XS/2

File diff suppressed because it is too large Load Diff

View File

@ -1,47 +1,14 @@
--PICTURE: Rainbow - Dark to Bright --PICTURE: Rainbow - Dark to Bright v1.1
--by Richard Fhager --by Richard Fhager
--http://hem.fyristorg.com/dawnbringer/ --http://hem.fyristorg.com/dawnbringer/
-- Email: dawnbringer@hem.utfors.se -- Email: dawnbringer@hem.utfors.se
-- MSN: annassar@hotmail.com -- MSN: annassar@hotmail.com
-- --
-- Copyright 2010 Richard Fhager
--
-- This program is free software; you can redistribute it and/or
-- modify it under the terms of the GNU General Public License
-- as published by the Free Software Foundation; version 2
-- of the License. See <http://www.gnu.org/licenses/>
-- This script was adopted from Evalion, a Javascript codecrafting/imageprocessing project
-- http://goto.glocalnet.net/richard_fhager/evalion/evalion.html
--
--
function shiftHUE(r,g,b,deg) -- V1.3 R.Fhager 2007, adopted from Evalion
local c,h,mi,mx,d,s,p,i,f,q,t
c = {g,b,r}
mi = math.min(r,g,b)
mx = math.max(r,g,b); v = mx;
d = mx - mi;
s = 0; if mx ~= 0 then s = d/mx; end
p = 1; if g ~= mx then p = 2; if b ~= mx then p = 0; end; end
if s~=0 then
h=(deg/60+(6+p*2+(c[1+p]-c[1+(p+1)%3])/d))%6;
i=math.floor(h);
f=h-i;
p=v*(1-s);
q=v*(1-s*f);
t=v*(1-s*(1-f));
c={v,q,p,p,t,v}
r = c[1+i]
g = c[1+(i+4)%6]
b = c[1+(i+2)%6]
end
return r,g,b
end
--
--dofile("dawnbringer_lib.lua")
run("../libs/dawnbringer_lib.lua")
--> db.shiftHUE(r,g,b, deg)
w, h = getpicturesize() w, h = getpicturesize()
@ -56,13 +23,14 @@ for y = 0, h - 1, 1 do
g = (oy-0.5)*512 * oy g = (oy-0.5)*512 * oy
b = (oy-0.5)*512 * oy b = (oy-0.5)*512 * oy
r, g, b = shiftHUE(r,g,b,ox * 360); r, g, b = db.shiftHUE(r,g,b,ox * 360);
c = matchcolor(math.max(0,math.min(255,r)),math.max(0,math.min(255,g)),math.max(0,math.min(255,b))) c = matchcolor(r,g,b)
putpicturepixel(x, y, c); putpicturepixel(x, y, c);
end end
updatescreen(); if (waitbreak(0)==1) then return; end
end end