mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-14 15:46:06 +09:00
tree-related items
This commit is contained in:
@@ -153,7 +153,7 @@ class IngameController(val terrarumIngame: TerrarumIngame) : InputAdapter() {
|
||||
// - using any item that is not fixture (blocks, picks)
|
||||
// DON'T unlatch when:
|
||||
// - performing barehand action
|
||||
if (!Terrarum.mouseDown || inventoryCategoryAllowClickAndDrag.contains(ItemCodex[itemOnGrip]?.inventoryCategory)) {
|
||||
if (!Terrarum.mouseDown || inventoryCategoryAllowClickAndDrag.contains(ItemCodex[itemOnGrip]?.inventoryCategory) || ItemCodex[itemOnGrip]?.tags?.contains("ACTINGBLOCK") == true) {
|
||||
worldPrimaryClickLatched = false
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.badlogic.gdx.graphics.Color
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.App.printdbg
|
||||
import net.torvald.terrarum.blockproperties.Block
|
||||
import net.torvald.terrarum.blockproperties.BlockCodex
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||
import net.torvald.terrarum.gameitems.GameItem
|
||||
@@ -107,7 +108,7 @@ object AxeCore {
|
||||
|
||||
if (propHere.hasTag("TREETRUNK")) {
|
||||
INGAME.world.setTileTerrain(x, y - upCtr, Block.AIR, false)
|
||||
PickaxeCore.dropItem(tileHere, x, y - upCtr) // todo use log item if applicable
|
||||
PickaxeCore.dropItem(propHere.drop, x, y - upCtr) // todo use log item if applicable
|
||||
}
|
||||
else if (propHere.hasTag("LEAVES")) {
|
||||
if (thisLeaf == null) thisLeaf = tileHere
|
||||
@@ -138,6 +139,8 @@ object AxeCore {
|
||||
|
||||
upCtr += 1
|
||||
}
|
||||
// drop the item under cursor
|
||||
PickaxeCore.dropItem(BlockCodex[tileBroken].drop, x, y) // todo use log item if applicable
|
||||
|
||||
PickaxeCore.makeDust(tile, x, y, 9)
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ object BlockBase {
|
||||
val heldProp = BlockCodex[itemID]
|
||||
|
||||
// check for collision with actors (solid terrain block only)
|
||||
if (gameItem.inventoryCategory == GameItem.Category.BLOCK && heldProp.isSolid) {
|
||||
if ((gameItem.inventoryCategory == GameItem.Category.BLOCK || gameItem.tags.contains("ACTINGBLOCK")) && heldProp.isSolid) {
|
||||
var ret1 = true
|
||||
ingame.actorContainerActive.filter { it is ActorWithBody }.forEach { val it = it as ActorWithBody
|
||||
if ((it is FixtureBase || it.physProp.usePhysics) && it.intTilewiseHitbox.intersects(mousePoint))
|
||||
|
||||
@@ -30,19 +30,79 @@ open class OreItemBase(originalID: ItemID) : GameItem(originalID) {
|
||||
}
|
||||
|
||||
/* Wooden Log is a block */
|
||||
class ItemOakLogs(originalID: ItemID) : OreItemBase(originalID) {
|
||||
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 ItemOakSeed(originalID: ItemID) : OreItemBase(originalID) {
|
||||
override var originalName = "ITEM_ACORN_OAK"
|
||||
override val materialId = "WOOD"
|
||||
|
||||
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user