New redrawing logic.
[kaya.git] / lib / animator_helper.rb
blob40ea8fde25b23431d083536466c40d33b1024412
1 require 'animations'
3 module AnimatorHelper
4   include Animations
5   
6   def move!(src, dst, path)
7     piece = board.move_item(src, dst)
8     movement(piece, src, dst, path)
9   end
10   
11   def disappear_on!(p, opts = {})
12     name = "disappear on #{p}"
13     if opts[:instant]
14       instant_disappear p, name
15     else
16       item = board.remove_item(p, :keep)
17       disappear(item, name)
18     end
19   end
20     
21   def appear_on!(p, piece, opts = {})
22     name = "appear #{piece} on #{p}"
23     if opts[:instant]
24       instant_appear p, piece, name
25     else
26       item = board.add_piece p, piece, :hidden => true
27       appear(item, name)
28     end
29   end
30   
31   def morph_on!(p, piece, opts = {})
32     name = "morph to #{piece} on #{p}"
33     if opts[:instant]
34       instant_appear p, piece, name
35     else
36       old_item = board.remove_item(p, :keep)
37       new_item = board.add_piece p, piece, :hidden => true
38       group appear(new_item, name + " (appear)"),
39             disappear(old_item, name + " (disappear)")
40     end
41   end
42 end