Sha256: 36b5966236245c8e1faaf1891f5ec4369d3839168fdb1871abe24b9c2180ab5a
Contents?: true
Size: 1019 Bytes
Versions: 1
Compression:
Stored size: 1019 Bytes
Contents
require 'curses' require 'falling/view' module Falling class MapView < View def initialize(universe:) Falling.logger.info "Initializing MapView." @universe = universe super() end # FIXME: Add smart camera centering. def refresh active_area. to_a[0, height]. each_with_index do |row_string, row_index| window.setpos row_offset + row_index, column_offset window.addstr row_string[0, width] end super end private attr_reader :universe def active_area universe.active_area end def column_offset if active_area.width <= width (width - active_area.width) / 2 else 0 end end def row_offset if active_area.height <= height (height - active_area.height) / 2 else 0 end end def calculate_geometry! @width = Curses.cols * 3 / 5 @height = Curses.lines @row = 0 @column = 0 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
falling-0.0.1 | lib/falling/map_view.rb |