75 lines
2.8 KiB
Kotlin
75 lines
2.8 KiB
Kotlin
package gay.pizza.CavesOfJolk
|
|
|
|
import com.badlogic.gdx.assets.AssetManager
|
|
import com.badlogic.gdx.assets.loaders.TextureLoader
|
|
import com.badlogic.gdx.assets.loaders.resolvers.InternalFileHandleResolver
|
|
import com.badlogic.gdx.audio.Sound
|
|
import com.badlogic.gdx.graphics.Texture
|
|
import com.badlogic.gdx.graphics.g2d.BitmapFont
|
|
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator
|
|
import com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGeneratorLoader
|
|
import com.badlogic.gdx.graphics.g2d.freetype.FreetypeFontLoader
|
|
import com.badlogic.gdx.graphics.g3d.Model
|
|
|
|
|
|
class Resources private constructor()
|
|
{
|
|
companion object
|
|
{
|
|
@Volatile private var _instance: Resources? = null
|
|
|
|
val instance get() = _instance ?: synchronized(this) { _instance ?: Resources().also { _instance = it } }
|
|
val assetManager get() = instance.assetManager
|
|
}
|
|
|
|
private val assetManager: AssetManager = AssetManager()
|
|
|
|
init
|
|
{
|
|
val resolver = InternalFileHandleResolver()
|
|
assetManager.setLoader(FreeTypeFontGenerator::class.java, FreeTypeFontGeneratorLoader(resolver))
|
|
assetManager.setLoader(BitmapFont::class.java, ".ttf", FreetypeFontLoader(resolver))
|
|
}
|
|
|
|
val linearMipped = TextureLoader.TextureParameter().apply {
|
|
minFilter = Texture.TextureFilter.MipMapLinearLinear
|
|
magFilter = Texture.TextureFilter.Linear
|
|
wrapU = Texture.TextureWrap.Repeat
|
|
wrapV = Texture.TextureWrap.Repeat
|
|
genMipMaps = true
|
|
}
|
|
|
|
val linearClamp = TextureLoader.TextureParameter().apply {
|
|
minFilter = Texture.TextureFilter.Linear
|
|
magFilter = Texture.TextureFilter.Linear
|
|
wrapU = Texture.TextureWrap.ClampToEdge
|
|
wrapV = Texture.TextureWrap.ClampToEdge
|
|
}
|
|
|
|
fun loadAssets()
|
|
{
|
|
assetManager.load("colin.png", Texture::class.java)
|
|
assetManager.load("jolkmeup.jpg", Texture::class.java, linearClamp)
|
|
assetManager.loadFont("Comic Sans MS.ttf", 20)
|
|
assetManager.load("suzanne.g3db", Model::class.java)
|
|
assetManager.load("nut.wav", Sound::class.java)
|
|
assetManager.load("cobblestone.png", Texture::class.java, linearMipped)
|
|
assetManager.load("cobblestone_normal.png", Texture::class.java, linearMipped)
|
|
assetManager.load("cobblestone_specular.png", Texture::class.java, linearMipped)
|
|
assetManager.load("knux.g3db", Model::class.java)
|
|
assetManager.load("toybox.g3db", Model::class.java)
|
|
assetManager.load("cobblestone_bump.png", Texture::class.java, linearMipped)
|
|
assetManager.load("toybox_albedo.png", Texture::class.java, linearMipped)
|
|
assetManager.load("toybox_normal.png", Texture::class.java, linearMipped)
|
|
assetManager.load("toybox_displace.png", Texture::class.java, linearMipped)
|
|
}
|
|
}
|
|
|
|
fun AssetManager.loadFont(filePath: String, size: Int)
|
|
{
|
|
val fontParam = FreetypeFontLoader.FreeTypeFontLoaderParameter()
|
|
fontParam.fontFileName = filePath
|
|
fontParam.fontParameters.size = size
|
|
this.load(filePath, BitmapFont::class.java, fontParam)
|
|
}
|