IceDragon200

Marshal Font Class (Take3)

Dec 3rd, 2011
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.93 KB | None | 0 0
  1. #==============================================================================#  
  2. # ** Color
  3. #==============================================================================#
  4. class Color
  5.  
  6.   #--------------------------------------------------------------------------#
  7.   # * overwrite-method :to_a
  8.   #--------------------------------------------------------------------------#  
  9.   def to_a()
  10.     return self.red, self.green, self.blue, self.alpha
  11.   end
  12.  
  13. end
  14.  
  15. #==============================================================================#  
  16. # ** YGG
  17. #==============================================================================#
  18. module YGG
  19.  
  20.   #--------------------------------------------------------------------------#
  21.   # * new-method :__dump_font
  22.   #--------------------------------------------------------------------------#  
  23.   def self.__dump_font( font )
  24.     color = Color.new( 0, 0, 0 )
  25.     color.set( *font.color.to_a )
  26.     shad_color = Color.new( 0, 0, 0 )
  27.     shad_color.set( *font.shadow_color.to_a )
  28.     return Marshal.dump(
  29.     {
  30.       :color        => color,
  31.       :shad_color   => shad_color,
  32.       :name         => font.name.to_a.clone,
  33.       :size         => font.size.to_i,
  34.       :bold         => font.bold,
  35.       :italic       => font.italic,
  36.       :shadow       => font.shadow,
  37.     } )
  38.   end
  39.  
  40. end  
  41.  
  42. #==============================================================================#  
  43. # ** Font
  44. #==============================================================================#
  45. class Font
  46.  
  47.   #--------------------------------------------------------------------------#
  48.   # * Public Instance Variable(s)
  49.   #--------------------------------------------------------------------------#    
  50.   attr_writer :shadow_color
  51.  
  52.   #--------------------------------------------------------------------------#
  53.   # * new-method :shadow_color
  54.   #--------------------------------------------------------------------------#  
  55.   def shadow_color()
  56.     @shadow_color ||= Color.new( 0, 0, 0 )
  57.     return @shadow_color
  58.   end
  59.  
  60.   #--------------------------------------------------------------------------#
  61.   # * new-method :_dump
  62.   #--------------------------------------------------------------------------#  
  63.   def _dump( depth )
  64.     puts depth
  65.     return YGG.__dump_font( self )
  66.   end
  67.  
  68.   #--------------------------------------------------------------------------#
  69.   # * new-class-method :_load
  70.   #--------------------------------------------------------------------------#
  71.   def self._load( str )
  72.     settings          = Marshal.load( str )
  73.     font              = ::Font.new()
  74.     font.color        = settings[:color]
  75.     font.shadow_color = settings[:shad_color]
  76.     font.name         = settings[:name]
  77.     font.size         = settings[:size]
  78.     font.bold         = settings[:bold]
  79.     font.italic       = settings[:italic]
  80.     font.shadow       = settings[:shadow]
  81.     return font
  82.   end
  83.  
  84. end
Advertisement
Add Comment
Please, Sign In to add comment