Create ' .. costume .. '.png')         self.characters[char].sheets[costume]:setFilter('nearest', 'nearest')     end     return self.characters[char].sheets[costume] end  function Character:getOverworld()     return self:current().costumemap[ self.costume ].ow end  function Character:updateAnimation(dt)     self:animation():update(dt) end  function Character:animation()     return self.characters[self.name].animations[self.state][self.direction] end  function Character:warpUpdate(dt)     self:current().animations.warp:update(dt) end  function Character:respawn()     self.warpin = true     self:current().animations.warp:gotoFrame(1)     self:current().animations.warp:resume()     sound.playSfx( "respawn" )     Timer.add(0.30, function() self.warpin = false end) end  function Character:draw() end  function Character:getCategory()     return self:current().costumemap[ self.costume ].category end  function Character:findRelatedCostume( char )     --returns the requested character's costume that is most similar to the current character     local costumes = self.characters[ char ].categorytocostumes[ self:getCategory() ]     if costumes then return costumes[math.random(#costumes)].sheet end     return 'base' end  Character:reset()  return Character