mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-14 04:24:05 +09:00
91 lines
3.3 KiB
Kotlin
91 lines
3.3 KiB
Kotlin
package net.torvald.terrarum.modulebasegame.gameitems
|
|
|
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
|
import net.torvald.gdx.graphics.Cvec
|
|
import net.torvald.terrarum.BlockCodex
|
|
import net.torvald.terrarum.CommonResourcePool
|
|
import net.torvald.terrarum.INGAME
|
|
import net.torvald.terrarum.Terrarum
|
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
|
import net.torvald.terrarum.blockproperties.Block
|
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
|
import net.torvald.terrarum.gameitems.GameItem
|
|
import net.torvald.terrarum.gameitems.ItemID
|
|
|
|
/**
|
|
* Created by minjaesong on 2024-02-14.
|
|
*/
|
|
open class LightIngredientBase(originalID: ItemID) : GameItem(originalID) {
|
|
override var baseMass = 1.0
|
|
override var baseToolSize: Double? = null
|
|
override var inventoryCategory = Category.GENERIC
|
|
override val canBeDynamic = false
|
|
override val materialId = "OORE"
|
|
override var equipPosition = EquipPosition.HAND_GRIP
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Created by minjaesong on 2023-10-11.
|
|
*/
|
|
class OreStick(originalID: ItemID) : LightIngredientBase(originalID) {
|
|
override var originalName = "ITEM_WOOD_STICK"
|
|
override val materialId = "WOOD"
|
|
override var calories = 600.0
|
|
override var smokiness = 0.2f
|
|
override val itemImage: TextureRegion
|
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,6)
|
|
}
|
|
|
|
/**
|
|
* Created by minjaesong on 2023-12-01.
|
|
*/
|
|
class ItemClayBall(originalID: ItemID) : LightIngredientBase(originalID) {
|
|
override var originalName = "BLOCK_CLAY"
|
|
override val itemImage: TextureRegion
|
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(11,6)
|
|
}
|
|
|
|
/**
|
|
* Created by minjaesong on 2024-02-14.
|
|
*/
|
|
class ItemGunpowder(originalID: ItemID) : LightIngredientBase(originalID) {
|
|
override var originalName = "ITEM_GUNPOWDER"
|
|
override val itemImage: TextureRegion
|
|
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(0,12)
|
|
}
|
|
|
|
/**
|
|
* Created by minjaesong on 2024-02-15.
|
|
*/
|
|
class ItemTorch(originalID: ItemID) : LightIngredientBase(originalID) {
|
|
override var baseMass = 0.8 // from blocks.csv
|
|
override var inventoryCategory = Category.FIXTURE
|
|
|
|
override var originalName = "BLOCK_TORCH"
|
|
override val itemImage: TextureRegion
|
|
get() = FixtureItemBase.getItemImageFromSingleImage("basegame", "items/torch.tga")
|
|
override val itemImageEmissive: TextureRegion
|
|
get() = FixtureItemBase.getItemImageFromSingleImage("basegame", "items/torch_emsv.tga")
|
|
|
|
override fun getLumCol() = BlockCodex[Block.TORCH].getLumCol(0, 0)
|
|
|
|
override fun startPrimaryUse(actor: ActorWithBody, delta: Float): Long {
|
|
val mwx = (Terrarum.mouseX / TILE_SIZE).toInt()
|
|
val mwy = (Terrarum.mouseY / TILE_SIZE).toInt()
|
|
val wall = BlockCodex[INGAME.world.getTileFromWall(mwx, mwy)]
|
|
val terr1 = BlockCodex[INGAME.world.getTileFromTerrain(mwx - 1, mwy)]
|
|
val terr2 = BlockCodex[INGAME.world.getTileFromTerrain(mwx, mwy + 1)]
|
|
val terr3 = BlockCodex[INGAME.world.getTileFromTerrain(mwx + 1, mwy)]
|
|
|
|
if (wall.isSolid || terr1.isSolid || terr2.isSolid || terr3.isSolid)
|
|
return BlockBase.blockStartPrimaryUse(actor, this, "basegame:176", delta)
|
|
else
|
|
return -1L
|
|
}
|
|
|
|
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
|
|
BlockBase.blockEffectWhenEquipped(actor, delta)
|
|
}
|
|
} |