Class: Bestguigui::Assets

Inherits:
Object
  • Object
show all
Defined in:
lib/bestguigui_lab/assets.rb

Overview

Charge et met en cache les assets (images, sons, modèles 3D...) pour éviter de les recharger plusieurs fois.

Class Method Summary collapse

Class Method Details

.font(name = Gosu.default_font_name, size: 20) ⇒ Object



27
28
29
30
# File 'lib/bestguigui_lab/assets.rb', line 27

def self.font(name = Gosu.default_font_name, size: 20)
    path = name == Gosu.default_font_name ? name : resolve(name)
    @fonts[[path, size]]
end

.frames(name, tile_width, tile_height) ⇒ Object



35
# File 'lib/bestguigui_lab/assets.rb', line 35

def self.frames(name, tile_width, tile_height) = @frames[[resolve(name), tile_width, tile_height]]

.gem_sound(*relative_parts) ⇒ Object

Pour un fichier livre avec le kit (lib/bestguigui_lab/...), pas avec le projet de l'utilisateur : resout par rapport a la gem, pas Dir.pwd.



24
# File 'lib/bestguigui_lab/assets.rb', line 24

def self.gem_sound(*relative_parts) = @sounds[File.join(@gem_root, *relative_parts)]

.gltf_model(name, shading: :texture, rigid: false) ⇒ Object



33
# File 'lib/bestguigui_lab/assets.rb', line 33

def self.gltf_model(name, shading: :texture, rigid: false) = @gltf_models[[resolve(name), shading, rigid]]

.image(name) ⇒ Object



19
# File 'lib/bestguigui_lab/assets.rb', line 19

def self.image(name) = @images[resolve(name)]

.model(name, shading: :texture) ⇒ Object



32
# File 'lib/bestguigui_lab/assets.rb', line 32

def self.model(name, shading: :texture) = @models[[resolve(name), shading]]

.resolve(name) ⇒ Object



18
# File 'lib/bestguigui_lab/assets.rb', line 18

def self.resolve(name) = File.expand_path(name, @root)

.song(name) ⇒ Object



25
# File 'lib/bestguigui_lab/assets.rb', line 25

def self.song(name) = @songs[resolve(name)]

.sound(name) ⇒ Object



20
# File 'lib/bestguigui_lab/assets.rb', line 20

def self.sound(name) = @sounds[resolve(name)]

.texture(name) ⇒ Object



34
# File 'lib/bestguigui_lab/assets.rb', line 34

def self.texture(name) = @textures[resolve(name)]