game item to load its own image if needed; common resource pool to assist that

This commit is contained in:
minjaesong
2019-03-10 17:46:48 +09:00
parent d895da9e96
commit 833d8814a7
21 changed files with 197 additions and 66 deletions

View File

@@ -1,17 +1,15 @@
package net.torvald.terrarum.modulebasegame
import net.torvald.terrarum.*
import net.torvald.terrarum.AppLoader.IS_DEVELOPMENT_BUILD
import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.ModuleEntryPoint
import net.torvald.terrarum.Point2d
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.terrarum.gameactors.ActorWBMovable
import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* The entry point for the module "Basegame"
@@ -27,6 +25,18 @@ class EntryPoint : ModuleEntryPoint() {
ModMgr.GameLanguageLoader.invoke("basegame")
// load common resources to the AssetsManager
AppLoader.resourcePool.addToLoadingList("basegame.items16", TextureRegionPack.javaClass) {
TextureRegionPack(ModMgr.getGdxFile("basegame", "items/items.tga"), 16, 16)
}
AppLoader.resourcePool.addToLoadingList("basegame.items24", TextureRegionPack.javaClass) {
TextureRegionPack(ModMgr.getGdxFile("basegame", "items/items24.tga"), 24, 24)
}
AppLoader.resourcePool.addToLoadingList("basegame.items48", TextureRegionPack.javaClass) {
TextureRegionPack(ModMgr.getGdxFile("basegame", "items/items48.tga"), 48, 48)
}
/////////////////////////////////
// load customised item loader //
/////////////////////////////////
@@ -77,7 +87,7 @@ class EntryPoint : ModuleEntryPoint() {
this.inventoryCategory == Category.WALL &&
this.dynamicID - ItemCodex.ITEM_WALLS.start == ingame.world.getTileFromWall(Terrarum.mouseTileX, Terrarum.mouseTileY) ||
this.inventoryCategory == Category.WIRE &&
this.dynamicID - ItemCodex.ITEM_WIRES.start == ingame.world.getTileFromWire(Terrarum.mouseTileX, Terrarum.mouseTileY)
1.shl(this.dynamicID - ItemCodex.ITEM_WIRES.start) and (ingame.world.getWires(Terrarum.mouseTileX, Terrarum.mouseTileY) ?: 0) != 0
)
return false

View File

@@ -214,6 +214,9 @@ object IngameRenderer {
// works but some UI elements have wrong transparency -> should be fixed with Terrarum.gdxCleanAndSetBlend -- Torvald 2019-01-12
blendNormal(batch)
batch.color = Color.WHITE
drawWires = false
}
@@ -232,6 +235,8 @@ object IngameRenderer {
internal var fboRGBexportRequested = false
var drawWires = false
private fun drawToRGB(
actorsRenderBehind: List<ActorWithBody>?,
actorsRenderMiddle: List<ActorWithBody>?,
@@ -274,7 +279,7 @@ object IngameRenderer {
}
setCameraPosition(0f, 0f)
BlocksDrawer.drawFront(batch.projectionMatrix, false) // blue coloured filter of water, etc.
BlocksDrawer.drawFront(batch.projectionMatrix, drawWires) // blue coloured filter of water, etc.
batch.inUse {
FeaturesDrawer.drawEnvOverlay(batch)

View File

@@ -1,5 +1,7 @@
package net.torvald.terrarum.modulebasegame.items
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.Point2d
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blockproperties.Block
@@ -10,6 +12,7 @@ import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.itemproperties.ItemID
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.Ingame
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* Created by minjaesong on 2017-07-17.
@@ -22,9 +25,11 @@ class PickaxeGeneric(override val originalID: ItemID) : GameItem() {
override var baseToolSize: Double? = 10.0
override var stackable = true
override var inventoryCategory = Category.TOOL
override var isUnique = false
override var isDynamic = true
override val isUnique = false
override val isDynamic = true
override var material = Material(0,0,0,0,0,0,0,0,1,0.0)
override val itemImage: TextureRegion?
get() = (AppLoader.resourcePool["basegame.items24"] as TextureRegionPack).get(2,0)
init {
super.equipPosition = GameItem.EquipPosition.HAND_GRIP

View File

@@ -0,0 +1,39 @@
package net.torvald.terrarum.modulebasegame.items
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.AppLoader
import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.itemproperties.ItemID
import net.torvald.terrarum.modulebasegame.IngameRenderer
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
/**
* Created by minjaesong on 2019-03-10.
*/
class WirePieceSignalWire(override val originalID: ItemID) : GameItem() {
override var dynamicID: ItemID = originalID
override val originalName = "ITEM_WIRE"
override var baseMass = 0.001
override var baseToolSize: Double? = null
override var stackable = true
override var inventoryCategory = Category.WIRE
override val isUnique = false
override val isDynamic = false
override val material = GameItem.NULL_MATERIAL
override val itemImage: TextureRegion?
get() = (AppLoader.resourcePool["basegame.items16"] as TextureRegionPack).get(1,9)
init {
super.equipPosition = GameItem.EquipPosition.HAND_GRIP
}
override fun startPrimaryUse(delta: Float): Boolean {
return super.startPrimaryUse(delta)
}
override fun effectWhenEquipped(delta: Float) {
IngameRenderer.drawWires = true
}
}

View File

@@ -176,9 +176,6 @@ object WorldGenerator {
//post-process
generateFloatingIslands()
//wire layer
Arrays.fill(world.wireArray, 0.toByte())
// determine spawn position
world.spawnY = getSpawnHeight(world.spawnX)