Files
Terrarum/src/net/torvald/terrarum/modulebasegame/gameitems/OreItemBase.kt
2023-12-06 00:22:35 +09:00

209 lines
8.7 KiB
Kotlin

package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gameitems.GameItem
import net.torvald.terrarum.gameitems.ItemID
/**
* Created by minjaesong on 2023-10-11.
*/
open class OreItemBase(originalID: ItemID) : GameItem(originalID) {
override var baseMass = 10.0
override var baseToolSize: Double? = null
override var inventoryCategory = Category.GENERIC
override val isDynamic = false
override val materialId = "OORE"
override var equipPosition = EquipPosition.HAND_GRIP
override fun effectOnPickup(actor: ActorWithBody) {
val playerCodex = (actor.actorValue.getAsString(AVKey.ORE_DICT) ?: "").split(',').filter { it.isNotBlank() }.toMutableList()
if (playerCodex.binarySearch(originalID) < 0) {
playerCodex.add(originalID)
playerCodex.sort()
actor.actorValue[AVKey.ORE_DICT] = playerCodex.joinToString(",")
}
}
}
/* Wooden Log is a block */
class ItemLogsOak(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_LOGS_OAK"
override val materialId = "WOOD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,10)
init { tags.add("ACTINGBLOCK") }
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
return BlockBase.blockStartPrimaryUse(actor, this, "basegame:72", delta)
}
}
class ItemLogsEbony(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_LOGS_EBONY"
override val materialId = "WOOD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,10)
init { tags.add("ACTINGBLOCK") }
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
return BlockBase.blockStartPrimaryUse(actor, this, "basegame:73", delta)
}
}
class ItemLogsBirch(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_LOGS_BIRCH"
override val materialId = "WOOD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,10)
init { tags.add("ACTINGBLOCK") }
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
return BlockBase.blockStartPrimaryUse(actor, this, "basegame:74", delta)
}
}
class ItemLogsRosewood(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_LOGS_ROSEWOOD"
override val materialId = "WOOD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,10)
init { tags.add("ACTINGBLOCK") }
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
return BlockBase.blockStartPrimaryUse(actor, this, "basegame:75", delta)
}
}
class ItemSeedOak(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_SEED_OAK"
override val materialId = "OOZE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,11)
}
class ItemSeedEbony(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_SEED_EBONY"
override val materialId = "OOZE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,11)
}
class ItemSeedBirch(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_SEED_BIRCH"
override val materialId = "OOZE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,11)
}
class ItemSeedRosewood(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_SEED_ROSEWOOD"
override val materialId = "OOZE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,11)
}
class OreStick(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_WOOD_STICK"
override val materialId = "WOOD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,6)
}
class OreCopper(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_MALACHITE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,6)
}
class OreIron(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_HAEMATITE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,6)
}
class OreCoal(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_COAL"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,6)
}
class OreZinc(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_SPHALERITE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,6)
}
class OreTin(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_CASSITERITE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(5,6)
}
class OreGold(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_NATURAL_GOLD"
override val materialId: String = "AURM"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(6, 6)
}
class OreSilver(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_NATURAL_SILVER"
override val materialId: String = "ARGN"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(7,6)
}
class OreLead(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_ORE_GALENA"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,6)
}
class IngotSteel(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_IRON"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,5)
}
class IngotCopper(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_COPPER"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(1,5)
}
class IngotIron(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_IRON"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(2,5)
}
class ItemCoalCoke(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_COAL_COKE"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(9,6)
}
class IngotZinc(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_ZINC"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,5)
}
class IngotTin(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_TIN"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(5,5)
}
class IngotGold(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_GOLD"
override val materialId: String = "AURM"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(6, 5)
}
class IngotSilver(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_SILVER"
override val materialId: String = "ARGN"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(7,5)
}
class IngotLead(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "ITEM_INGOT_LEAD"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(8,5)
}
class ItemClayBall(originalID: ItemID) : OreItemBase(originalID) {
override var originalName = "BLOCK_CLAY"
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(11,6)
}