Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define (texture-anim-monter-tabj size unir ini src)
- (let*
- (
- (_layers (gimp-image-get-layers src))
- (total (car _layers))
- (layers (cadr _layers) )
- (dst (car (gimp-image-new size size RGB)))
- (layer (car (gimp-layer-new dst size size RGBA-IMAGE "sprites" 100 NORMAL)))
- (srcWidth (car (gimp-image-width src)))
- (srcHeight (car (gimp-image-height src)))
- (fLayer 0)
- (divX 0)
- (divY 0)
- (passX 0)
- (passY 0)
- (offset ())
- (x 0)
- (y 0)
- (i 0)
- )
- ; arredonda divisoes horizontais para o maior numero
- ;(set! divX
- ; (/
- ; (* size size)
- ; (* (max srcWidth srcHeight )
- ; (max srcWidth srcHeight ))
- ; )
- ;)
- ;(set! divX (* -1 (floor (* -1 (sqrt divX) ))) )
- (set! divX (floor (/ size srcWidth) ) )
- (set! passX (/ size divX))
- ; arredonda divisoes horizontais para o menor numero
- ;(set! divY (floor (/ size (car (gimp-image-height src))) ) )
- ;(set! divY (* -1 (floor (* -1 (/ size srcHeight) ) ) ) )
- (set! divY (floor (/ size srcHeight) ) )
- (set! passY (/ size divY))
- ; The following is done for all scripts
- (gimp-image-undo-disable dst)
- (gimp-image-add-layer dst layer 0)
- (set! i 0)
- (set! x 0)
- (set! y 0)
- ; verifica se comeca no primeiro quadro
- (while (> ini 1)
- (set! ini (- ini 1))
- (let*
- (
- (lin (floor (/ ini divX)) )
- (my (* lin passY ))
- (mx (* (- ini (* lin divX) ) passX ) )
- )
- (set! x mx)
- (set! y my)
- ;(car (gimp-image-width src))
- )
- (set! ini 1)
- )
- (while (< i total)
- ;(gimp-message (number->string (- (- total i) 1) ))
- ; manipula a imagem
- (gimp-image-set-active-layer src (vector-ref layers (- (- total i) 1) ))
- (set! offset
- (cond ( (gimp-drawable-is-layer (vector-ref layers (- (- total i) 1) ) )
- (gimp-drawable-offsets (vector-ref layers (- (- total i) 1) ) )
- ) (else '(0 0) )
- ) )
- (gimp-edit-copy (vector-ref layers (- (- total i) 1)))
- (set! fLayer (car (gimp-edit-paste layer TRUE)) )
- (gimp-floating-sel-to-layer fLayer)
- (gimp-image-set-active-layer dst fLayer)
- (gimp-layer-set-offsets fLayer (+ x (car offset) ) (+ y (car (cdr offset)) ))
- ;(gimp-message (number->string (car offset) ) )
- ;(set! x (+ x (car (gimp-image-width src))))
- (set! x (+ x passX ))
- (set! x
- (cond
- (
- (> (+ x passX) size)
- (set! y (+ y passY))
- 0
- )
- (else
- x
- )
- )
- )
- (set! i (+ i 1))
- )
- (while (= unir TRUE)
- (gimp-image-merge-visible-layers dst CLIP-TO-IMAGE)
- (set! unir FALSE)
- )
- ; guias
- (set! i 0)
- (set! x 0)
- (while (<= i divX)
- (set! x (cond ( (> x size) size ) (else x)) )
- (gimp-image-add-vguide dst x)
- (set! x (+ x passX))
- (set! i (+ i 1))
- )
- (set! i 0)
- (set! y 0)
- (while (<= i divY)
- (set! y (cond ( (> y size) size ) (else y)) )
- (gimp-image-add-hguide dst y)
- (set! y (+ y passY))
- (set! i (+ i 1))
- )
- (gimp-display-new dst)
- (gimp-image-undo-enable dst)
- (gimp-message
- (string-append (string-append "tilex=" (car (strbreakup (number->string divX) ".")) )
- (string-append " tiley=" (car (strbreakup (number->string divY) "."))) ) )
- )
- )
- (script-fu-register "texture-anim-monter-tabj"
- "Serializador de textura"
- "Monta textura para animação"
- "By marcosbitetti <[email protected]>"
- "http://www.wildwitchproject.com/"
- "2012-07-24"
- ""
- SF-VALUE "size" "512"
- SF-TOGGLE "Imagem única" TRUE
- SF-VALUE "Iniciar na posição" "1"
- SF-IMAGE "src" 0
- )
- (script-fu-menu-register "texture-anim-monter-tabj" "<Toolbox>/Xtns/Game Design")
Advertisement
Add Comment
Please, Sign In to add comment