simpler way of making item sprite

This commit is contained in:
minjaesong
2022-03-01 19:08:06 +09:00
parent 7e90387afc
commit 6906d24e59
11 changed files with 108 additions and 65 deletions

View File

@@ -1,10 +1,8 @@
package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.INGAME
import net.torvald.terrarum.ItemCodex
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.*
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID
@@ -12,6 +10,7 @@ import net.torvald.terrarum.gameitems.mouseInInteractableRange
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* Created by minjaesong on 2021-12-13.
@@ -70,4 +69,24 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G
// return true when placed, false when cannot be placed
}
/**
* Also see: [net.torvald.terrarum.modulebasegame.gameactors.FixtureBase.Companion]
*/
companion object {
/** Always use with Getter! */
fun getItemImageFromSheet(module: String, path: String, tileW: Int, tileH: Int): TextureRegion {
val id = "$module/${path.replace('\\','/')}"
return (CommonResourcePool.getOrPut(id) {
TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH, flipY = false)
} as TextureRegionPack).get(0,0)
}
/** Always use with Getter! */
fun getItemImageFromSingleImage(module: String, path: String): TextureRegion {
val id = "$module/${path.replace('\\','/')}"
return CommonResourcePool.getOrPut(id) {
TextureRegion(Texture(ModMgr.getGdxFile(module, path)))
} as TextureRegion
}
}
}

View File

@@ -1,9 +1,6 @@
package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.Texture
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.ItemID
@@ -22,11 +19,8 @@ class ItemLogicSignalEmitter(originalID: ItemID) : FixtureItemBase(originalID, "
override val isDynamic = false
override val material = Material()
override val itemImage: TextureRegion
get() = CommonResourcePool.getOrPut("basegame-sprites-fixtures-signal_source.tga") {
val t = TextureRegion(Texture(ModMgr.getGdxFile("basegame", "sprites/fixtures/signal_source.tga")))
t.flip(false, false)
/*return*/t
} as TextureRegion
get() = getItemImageFromSingleImage("basegame", "sprites/fixtures/signal_source.tga")
override var baseToolSize: Double? = baseMass
init {

View File

@@ -1,12 +1,9 @@
package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* Created by minjaesong on 2019-05-16.
@@ -22,9 +19,8 @@ class ItemTikiTorch(originalID: ItemID) : FixtureItemBase(originalID, "net.torva
override val isDynamic = false
override val material = Material()
override val itemImage: TextureRegion
get() = (CommonResourcePool.getOrPut("sprites-fixtures-tiki_torch.tga") {
TextureRegionPack(ModMgr.getGdxFile("basegame", "sprites/fixtures/tiki_torch.tga"), 16, 32, flipY = false)
} as TextureRegionPack).get(0,0)
get() = getItemImageFromSheet("basegame", "sprites/fixtures/tiki_torch.tga", 16, 32)
override var baseToolSize: Double? = baseMass
init {