mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
209 lines
8.7 KiB
Kotlin
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)
|
|
} |