Class: Termfront::DemoPlayer

Inherits:
Object
  • Object
show all
Defined in:
lib/termfront/demo_player.rb

Defined Under Namespace

Classes: DemoActor

Instance Method Summary collapse

Constructor Details

#initialize(stdout, renderer) ⇒ DemoPlayer

Returns a new instance of DemoPlayer.



7
8
9
10
# File 'lib/termfront/demo_player.rb', line 7

def initialize(stdout, renderer)
  @stdout = stdout
  @renderer = renderer
end

Instance Method Details

#play(action, mission:, stdin: nil) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/termfront/demo_player.rb', line 12

def play(action, mission:, stdin: nil)
  path = Array(action[:path])
  return if path.empty?

  duration = (action[:duration] || path.last[:t] || 0.0).to_f
  return if duration <= 0

  if stdin
    play_loop(stdin, action, mission, path, duration)
  else
    STDIN.raw { |raw| play_loop(raw, action, mission, path, duration) }
  end
end