<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>gameobjects/mouse.png</filename>
    </added>
    <added>
      <filename>gameobjects/mouse.rb</filename>
    </added>
    <added>
      <filename>lib/spriter/gameobject.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -4,19 +4,34 @@
 
 require &quot;rubygems&quot; rescue nil
 require 'gosu'
+
 require &quot;lib/helpers&quot;
+require &quot;lib/spriter/gameobject&quot;
+require &quot;gameobjects/mouse&quot;
+
+
+def game
+  $game
+end
 
 class MyWindow &lt; Gosu::Window
   def initialize
     super 640, 480, false
-    
+    $game = self
     self.caption = &quot;Puit&quot;
-    @objects = []
+    @objects = [Mouse.new]
   end
   
   def update
     @objects.each_send :update
   end
+  
+  def draw
+    @objects.each_send :draw
+  end
 end
 
-MyWindow.new.show
+MyWindow.new
+
+
+game.show
\ No newline at end of file</diff>
      <filename>Main.rb</filename>
    </modified>
    <modified>
      <diff>@@ -4,4 +4,79 @@ class Array
       e.send what
     end
   end
-end
\ No newline at end of file
+end
+
+
+class Object
+  def to_yml(f)
+    File.open(f, &quot;w&quot;) do |e|
+      e.write self.to_yaml
+    end
+    self # return self so we can continue using that
+  end
+end
+    
+
+
+def load_image(name)
+  Gosu::Image.new(game, name)
+end
+
+def scatter(measure) # @to named_fractions
+  randomly_between(-measure..measure)
+end
+
+
+class String
+  def png
+    file_name = self
+    $images ||= {}
+    $images[file_name] ||= Gosu::Image.new(game, file_name)
+  end
+
+  def yml
+    $yaml ||= {}
+    $yaml[self] ||= YAML.load_file(self) rescue nil
+  end
+
+  def from_yml
+    yml
+  end
+
+  def draw(x,y,z)
+    file_name = self
+    $images ||= {}                               # level 1 ca$h
+    $images[file_name] ||= load_image(file_name) # level 2 ca$h ca$hed loaRDing
+  end
+  
+  def font(size=20)
+    cache_name = self + size.to_s
+    font_name = self
+    $fonts ||= {}
+    $fonts[cache_name] ||= Gosu::Font.new(game, font_name, size)
+  end
+
+  def play()
+    cache_name = self
+    $songs ||= {}
+    $songs[cache_name] ||= Gosu::Sample.new($game, cache_name)
+    $songs[cache_name].play
+  end
+  
+  def require # full directory wide require
+    Dir.glob(self).sort.reverse.each do |e|
+      require e
+    end
+  end
+
+  
+  def method_missing(method, *args) # and resend that method to that object
+    # INSTANT PWNZORING
+    # when unknown method, assume it an image or sound
+    # turns all strings into sound/image file system objects
+    $cache ||= {}
+    $cache[self] = Gosu::Image.new($game, self) rescue Gosu::Sample.new($game, self)
+    $cache[self].send method, args
+    #  &quot;resources/sprites/bla.png&quot;.draw(0,0)
+  end  
+end</diff>
      <filename>lib/helpers.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>56331058778d5f5c79648b700ee8ade691b661ab</id>
    </parent>
  </parents>
  <author>
    <name>Florian Hufsky</name>
    <email>hello@geeq.at</email>
  </author>
  <url>http://github.com/oneup/Puit/commit/3c65e585ab175628ad6378c7ca9ec3e73ebe3f1b</url>
  <id>3c65e585ab175628ad6378c7ca9ec3e73ebe3f1b</id>
  <committed-date>2009-10-08T16:56:47-07:00</committed-date>
  <authored-date>2009-10-08T16:56:47-07:00</authored-date>
  <message>mouse pointer, framework stuff</message>
  <tree>483a98419d4685cdf90520782f8e3947d8a7068b</tree>
  <committer>
    <name>Florian Hufsky</name>
    <email>hello@geeq.at</email>
  </committer>
</commit>
