mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-08 12:51:51 +09:00
simpler way of making item sprite
This commit is contained in:
@@ -11,13 +11,13 @@ import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.cancel
|
||||
import kotlinx.coroutines.launch
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.BlockBox
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureBase
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||
import net.torvald.terrarum.ui.Toolkit
|
||||
import net.torvald.terrarum.ui.UICanvas
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
import net.torvald.tsvm.*
|
||||
import net.torvald.tsvm.peripheral.GraphicsAdapter
|
||||
import net.torvald.tsvm.peripheral.ReferenceGraphicsAdapter
|
||||
@@ -43,7 +43,7 @@ class FixtureHomeComputer : FixtureBase {
|
||||
density = 1400.0
|
||||
setHitboxDimension(TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE, 0, -1)
|
||||
|
||||
makeNewSprite(TextureRegionPack(CommonResourcePool.getAsTextureRegion("dwarventech-sprites-fixtures-desktop_computer.tga").texture, TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE))
|
||||
makeNewSprite(FixtureBase.getSpritesheet("dwarventech", "sprites/fixtures/desktop_computer.tga", TILE_SIZE, TILE_SIZE))
|
||||
sprite!!.setRowsAndFrames(1, 1)
|
||||
|
||||
actorValue[AVKey.BASEMASS] = 20.0
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package net.torvald.terrarum.modulecomputers.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.TerrarumAppConfiguration
|
||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||
import net.torvald.terrarum.gameitems.GameItem
|
||||
import net.torvald.terrarum.gameitems.ItemID
|
||||
import net.torvald.terrarum.gameitems.mouseInInteractableRange
|
||||
import net.torvald.terrarum.itemproperties.Material
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
|
||||
import net.torvald.terrarum.modulecomputers.gameactors.FixtureHomeComputer
|
||||
|
||||
/**
|
||||
@@ -26,19 +25,11 @@ class ItemHomeComputer(originalID: ItemID) : GameItem(originalID) {
|
||||
override val isDynamic = false
|
||||
override val material = Material()
|
||||
override val itemImage: TextureRegion
|
||||
get() = CommonResourcePool.getAsTextureRegion("dwarventech-sprites-fixtures-desktop_computer.tga")
|
||||
get() = FixtureItemBase.getItemImageFromSheet("dwarventech", "sprites/fixtures/desktop_computer.tga", TerrarumAppConfiguration.TILE_SIZE, TerrarumAppConfiguration.TILE_SIZE)
|
||||
override var baseToolSize: Double? = baseMass
|
||||
|
||||
|
||||
init {
|
||||
CommonResourcePool.addToLoadingList("dwarventech-sprites-fixtures-desktop_computer.tga") {
|
||||
// val t = TextureRegion(Texture(ModMgr.getGdxFile("dwarventech", "nonexisting_file!!!")))
|
||||
val t = TextureRegion(Texture(ModMgr.getGdxFile("dwarventech", "sprites/fixtures/desktop_computer.tga")))
|
||||
t.flip(false, false)
|
||||
/*return*/t
|
||||
}
|
||||
CommonResourcePool.loadAll()
|
||||
|
||||
equipPosition = EquipPosition.HAND_GRIP
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import net.torvald.terrarum.gameactors.PhysProperties
|
||||
import net.torvald.terrarum.gameitems.ItemID
|
||||
import net.torvald.terrarum.gameworld.fmod
|
||||
import net.torvald.terrarum.ui.UICanvas
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
import org.dyn4j.geometry.Vector2
|
||||
|
||||
typealias BlockBoxIndex = Int
|
||||
@@ -222,6 +223,18 @@ open class FixtureBase : ActorWithBody, CuedByTerrainChange {
|
||||
override fun flagDespawn() {
|
||||
if (canBeDespawned) flagDespawn = true
|
||||
}
|
||||
|
||||
/**
|
||||
* Also see: [net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase.Companion]
|
||||
*/
|
||||
companion object {
|
||||
fun getSpritesheet(module: String, path: String, tileW: Int, tileH: Int): TextureRegionPack {
|
||||
val id = "$module/${path.replace('\\','/')}"
|
||||
return (CommonResourcePool.getOrPut(id) {
|
||||
TextureRegionPack(ModMgr.getGdxFile(module, path), tileW, tileH, flipY = false)
|
||||
} as TextureRegionPack)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
interface CuedByTerrainChange {
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.torvald.terrarum.ModMgr
|
||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.gameitems.FixtureItemBase
|
||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||
import org.dyn4j.geometry.Vector2
|
||||
|
||||
@@ -23,6 +24,8 @@ class FixtureLogicSignalEmitter : FixtureBase, Electric {
|
||||
)
|
||||
|
||||
init {
|
||||
val itemImage = FixtureItemBase.getItemImageFromSingleImage("basegame", "sprites/fixtures/signal_source.tga")
|
||||
|
||||
CommonResourcePool.addToLoadingList("basegame-sprites-fixtures-signal_source.tga") {
|
||||
val t = TextureRegion(Texture(ModMgr.getGdxFile("basegame", "sprites/fixtures/signal_source.tga")))
|
||||
t.flip(false, false)
|
||||
@@ -33,7 +36,7 @@ class FixtureLogicSignalEmitter : FixtureBase, Electric {
|
||||
density = 1400.0
|
||||
setHitboxDimension(TILE_SIZE, TILE_SIZE, 0, -1)
|
||||
|
||||
makeNewSprite(TextureRegionPack(CommonResourcePool.getAsTextureRegion("basegame-sprites-fixtures-signal_source.tga").texture, TILE_SIZE, TILE_SIZE))
|
||||
makeNewSprite(TextureRegionPack(itemImage.texture, TILE_SIZE, TILE_SIZE))
|
||||
sprite!!.setRowsAndFrames(1, 1)
|
||||
|
||||
actorValue[AVKey.BASEMASS] = MASS
|
||||
|
||||
@@ -57,7 +57,7 @@ internal class FixtureTapestry : FixtureBase {
|
||||
val frame = CommonResourcePool.getOrPut("tapestries-common-frame_$tileFilename.tga") {
|
||||
Pixmap(ModMgr.getGdxFilesFromEveryMod("tapestries/common/frame_$tileFilename.tga").last().second)
|
||||
} as Pixmap
|
||||
val canvas = CommonResourcePool.getOrPut("tapestries-common-canvas") {
|
||||
val canvas = CommonResourcePool.getOrPut("tapestries-common-canvas.tga") {
|
||||
Pixmap(ModMgr.getGdxFilesFromEveryMod("tapestries/common/canvas.tga").last().second)
|
||||
} as Pixmap
|
||||
|
||||
|
||||
@@ -41,9 +41,6 @@ internal class FixtureTikiTorch : FixtureBase, Luminous {
|
||||
) {
|
||||
|
||||
// loading textures
|
||||
CommonResourcePool.addToLoadingList("sprites-fixtures-tiki_torch.tga") {
|
||||
TextureRegionPack(ModMgr.getGdxFile("basegame", "sprites/fixtures/tiki_torch.tga"), 16, 32, flipY = false)
|
||||
}
|
||||
CommonResourcePool.addToLoadingList("particles-tiki_smoke.tga") {
|
||||
TextureRegionPack(ModMgr.getGdxFile("basegame", "particles/bigger_smoke.tga"), 16, 16)
|
||||
}
|
||||
@@ -55,7 +52,7 @@ internal class FixtureTikiTorch : FixtureBase, Luminous {
|
||||
|
||||
lightBoxList.add(Lightbox(Hitbox(6.0, 5.0, 4.0, 3.0), color))
|
||||
|
||||
makeNewSprite(CommonResourcePool.getAsTextureRegionPack("sprites-fixtures-tiki_torch.tga"))
|
||||
makeNewSprite(FixtureBase.getSpritesheet("basegame", "sprites/fixtures/tiki_torch.tga", 16, 32))
|
||||
sprite!!.setRowsAndFrames(1, 2)
|
||||
|
||||
actorValue[AVKey.BASEMASS] = MASS
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
BIN
work_files/graphics/terrain/ores_sample.kra
LFS
Normal file
BIN
work_files/graphics/terrain/ores_sample.kra
LFS
Normal file
Binary file not shown.
@@ -7,7 +7,7 @@ digraph g {
|
||||
subgraph cluster_legend {
|
||||
label=Legend
|
||||
"raw materials" [style=filled,fillcolor=mistyrose]
|
||||
"manufactured materials" [shape=box,style=filled,fillcolor=lightsteelblue]
|
||||
"manufactured materials" [shape=trapezium,style=filled,fillcolor=lightsteelblue]
|
||||
concepts [shape=component]
|
||||
"useable items" [shape=box,style=filled,fillcolor=khaki]
|
||||
"ingredient only" [shape=box,style=filled]
|
||||
@@ -59,27 +59,32 @@ digraph g {
|
||||
}
|
||||
|
||||
/* raw materials */
|
||||
wood [style=filled,fillcolor=mistyrose]
|
||||
stone [style=filled,fillcolor=mistyrose]
|
||||
malachite [style=filled,fillcolor=mistyrose]
|
||||
hematite [style=filled,fillcolor=mistyrose]
|
||||
coal [style=filled,fillcolor=mistyrose]
|
||||
wood [style=filled,fillcolor="#d5bc89"]
|
||||
stone [style=filled,fillcolor="#babfc5"]
|
||||
coal [style=filled,fillcolor="#606060",fontcolor=white]
|
||||
quartz [style=filled,fillcolor=mistyrose]
|
||||
ilmenite [style=filled,fillcolor=mistyrose]
|
||||
gold [style=filled,fillcolor=mistyrose]
|
||||
sand [style=filled,fillcolor=mistyrose]
|
||||
sand [style=filled,fillcolor="#f0ecca"]
|
||||
|
||||
malachite [style=filled,fillcolor="#54b295",fontcolor=white]
|
||||
hematite [style=filled,fillcolor="#cb8c6d",fontcolor=white]
|
||||
ilmenite [style=filled,fillcolor="#df6e88",fontcolor=white] // kinda fake colour for playability
|
||||
gold [style=filled,fillcolor="#dbba5e"]
|
||||
sphalerite [style=filled,fillcolor="#5c9abb",fontcolor=white] // fluoresces lead-oxide yellow
|
||||
|
||||
/* manufactured materials */
|
||||
steel [shape=trapezium,style=filled,fillcolor=lightsteelblue]
|
||||
iron [shape=trapezium,style=filled,fillcolor=lightsteelblue]
|
||||
copper [shape=trapezium,style=filled,fillcolor=lightsteelblue]
|
||||
titanium [shape=trapezium,style=filled,fillcolor=lightsteelblue]
|
||||
glass [shape=trapezium,style=filled,fillcolor=lightsteelblue]
|
||||
steel [shape=trapezium,style=filled,fillcolor="#4e5152",fontcolor=white]
|
||||
iron [shape=trapezium,style=filled,fillcolor="#a08778",fontcolor=white]
|
||||
copper [shape=trapezium,style=filled,fillcolor="#d69544",fontcolor=white]
|
||||
titanium [shape=trapezium,style=filled,fillcolor="#daddd9"]
|
||||
glass [shape=trapezium,style=filled,fillcolor="#79b883",fontcolor=white]
|
||||
zinc [shape=trapezium,style=filled,fillcolor="#8a8d8e",fontcolor=white]
|
||||
brass [shape=trapezium,style=filled,fillcolor="#d6af44"]
|
||||
/* concepts */
|
||||
thermal [shape=component]
|
||||
electricity [shape=component]
|
||||
kinetic [shape=component]
|
||||
information [shape=component]
|
||||
"sequential logic" [shape=component] /* implies electronic memory */
|
||||
"sequential logic" [shape=component] // implies electronic memory
|
||||
radio [shape=component]
|
||||
telecommunication [shape=component]
|
||||
teleportation [shape=component]
|
||||
@@ -88,15 +93,16 @@ digraph g {
|
||||
networking [shape=component]
|
||||
"haute couture" [shape=component]
|
||||
"world portal" [shape=component]
|
||||
"hand tools" [shape=component] /* pickaxe, axe, etc. */
|
||||
"hand tools" [shape=component] // pickaxe, axe, etc.
|
||||
"weapons&armours" [shape=component]
|
||||
"motorised tools" [shape=component] /* drill, chainsaw, etc. */
|
||||
machines [shape=component] /* electric machines */
|
||||
"nonelectric machines" [shape=component]
|
||||
"motorised tools" [shape=component] // drill, chainsaw, etc.
|
||||
machines [shape=component] // electric machines
|
||||
"rotating machines" [shape=component] // machines whose main method of operaton is spinning (e.g. macerator, powder mixer, grindstone, gristmill)
|
||||
"electromechanical components" [shape=component] // e.g. signal-controlled clutch
|
||||
/* useable items */
|
||||
furnace [shape=box,style=filled,fillcolor=khaki]
|
||||
torch [shape=box,style=filled,fillcolor=khaki]
|
||||
"light fixture" [shape=box,style=filled,fillcolor=khaki] /* Both lamps and blinkenlight(s) */
|
||||
"light fixture" [shape=box,style=filled,fillcolor=khaki] // Both lamps and blinkenlight(s)
|
||||
furnitures [shape=box,style=filled,fillcolor=khaki]
|
||||
office [shape=box,style=filled,fillcolor=khaki]
|
||||
"logic gate" [shape=box,style=filled,fillcolor=khaki]
|
||||
@@ -107,13 +113,19 @@ digraph g {
|
||||
rtty [shape=box,style=filled,fillcolor=khaki]
|
||||
"digital billboard" [shape=box,style=filled,fillcolor=khaki]
|
||||
"CRT display" [shape=box,style=filled,fillcolor=khaki]
|
||||
"personal computer" [shape=box,style=filled,fillcolor=khaki] /* small computer with single integrated */
|
||||
mainframe [shape=box,style=filled,fillcolor=khaki] /* big computer that can have multiple terminals */
|
||||
|
||||
"personal computer" [shape=box,style=filled,fillcolor=khaki] // small computer with single integrated
|
||||
mainframe [shape=box,style=filled,fillcolor=khaki] // big computer that can have multiple terminals
|
||||
windmill [shape=box,style=filled,fillcolor=khaki]
|
||||
engine [shape=box,style=filled,fillcolor=khaki]
|
||||
motor [shape=box,style=filled,fillcolor=khaki]
|
||||
clutch [shape=box,style=filled,fillcolor=khaki]
|
||||
gear [shape=box,style=filled,fillcolor=khaki]
|
||||
shaft [shape=box,style=filled,fillcolor=khaki]
|
||||
belt [shape=box,style=filled,fillcolor=khaki]
|
||||
|
||||
/* ingredient items */
|
||||
engine [shape=box,style=filled]
|
||||
LED [shape=box,style=filled]
|
||||
"computing unit" [shape=box,style=filled] /* motherboard+cpu+ram+powersupply combined */
|
||||
"computing unit" [shape=box,style=filled] // motherboard+cpu+ram+powersupply combined
|
||||
"quartz oscillator" [shape=box,style=filled]
|
||||
"quartz lens" [shape=box,style=filled]
|
||||
|
||||
@@ -143,6 +155,7 @@ digraph g {
|
||||
electricity -> machines
|
||||
steel -> machines
|
||||
|
||||
brass -> furnitures
|
||||
wood -> furnitures
|
||||
wood -> "hand tools"
|
||||
iron -> "hand tools"
|
||||
@@ -221,6 +234,20 @@ digraph g {
|
||||
"weapons&armours" -> "arming sword" [lhead=cluster_weaponarmour]
|
||||
"motorised tools" -> breaker [lhead=cluster_electrictools]
|
||||
|
||||
kinetic -> "nonelectric machines"
|
||||
steel -> "nonelectric machines"
|
||||
kinetic -> "rotating machines"
|
||||
steel -> "rotating machines"
|
||||
|
||||
wood -> windmill -> kinetic
|
||||
electricity -> motor -> kinetic
|
||||
|
||||
kinetic -> shaft
|
||||
kinetic -> gear
|
||||
kinetic -> belt
|
||||
kinetic -> clutch
|
||||
|
||||
electricity -> "electromechanical components"
|
||||
kinetic -> "electromechanical components"
|
||||
|
||||
copper -> brass
|
||||
sphalerite -> zinc -> brass
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user