class MineSkin::Preview::Skin2D

2D preview of skin

Public Class Methods

new(skin_data) click to toggle source

Initializes object with skin data @param [MineSkin::SkinData] skin_data Skin Data

# File lib/mineskin/preview/skin2d.rb, line 13
def initialize(skin_data)
  @skin_data = skin_data
end

Public Instance Methods

render(width, background: 'white') click to toggle source

Renders preview @param width Width of preview @param [String] background Optional background color (default white) @return [Magick::Image] Preview

# File lib/mineskin/preview/skin2d.rb, line 21
def render(width, background: 'white')
  @unit = image_unit size: width, count: 12
  @image = Magick::Image.new(width, 5 * width / 6) do
    self.background_color = background
  end
  render_head!
  render_body!
  render_legs!
  render_arms!
  @image
end

Protected Instance Methods

render_arms!() click to toggle source
# File lib/mineskin/preview/skin2d.rb, line 52
def render_arms!
  composite_texture! @skin_data.left_arm.front, 4, 3, @skin_data.unit
  composite_texture! @skin_data.right_arm.front, 1, 3, @skin_data.unit
  composite_texture! @skin_data.left_arm.back, 7, 3, @skin_data.unit
  composite_texture! @skin_data.right_arm.back, 10, 3, @skin_data.unit
end
render_body!() click to toggle source
# File lib/mineskin/preview/skin2d.rb, line 40
def render_body!
  composite_texture! @skin_data.body.front, 2, 3, @skin_data.unit
  composite_texture! @skin_data.body.back, 8, 3, @skin_data.unit
end
render_head!() click to toggle source
# File lib/mineskin/preview/skin2d.rb, line 35
def render_head!
  composite_texture! @skin_data.head.front, 2, 1, @skin_data.unit
  composite_texture! @skin_data.head.back, 8, 1, @skin_data.unit
end
render_legs!() click to toggle source
# File lib/mineskin/preview/skin2d.rb, line 45
def render_legs!
  composite_texture! @skin_data.left_leg.front, 3, 6, @skin_data.unit
  composite_texture! @skin_data.right_leg.front, 2, 6, @skin_data.unit
  composite_texture! @skin_data.left_leg.back, 8, 6, @skin_data.unit
  composite_texture! @skin_data.right_leg.back, 9, 6, @skin_data.unit
end