tree-related items

This commit is contained in:
minjaesong
2023-11-13 20:56:07 +09:00
parent 4de2f9e34c
commit 18f133439b
6 changed files with 86 additions and 17 deletions

View File

@@ -28,16 +28,16 @@
"51";"51";"51";"BLOCK_PLANK_ROSEWOOD";"0.1252";"0.1252";"0.1252";"0.1252";"17";"900";"WOOD";"1";"1";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"WOOD,NORANDTILE"
# small punchable trees
"64";"48";"64";"BLOCK_TRUNK_NORMAL";"0.0312";"0.0312";"0.0312";"0.0312";"16";"740";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"65";"49";"65";"BLOCK_TRUNK_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"19";"1200";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"66";"50";"66";"BLOCK_TRUNK_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"15";"670";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"67";"51";"67";"BLOCK_TRUNK_ROSEWOOD";"0.0312";"0.0312";"0.0312";"0.0312";"17";"900";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"64";"48";"48";"BLOCK_TRUNK_NORMAL";"0.0312";"0.0312";"0.0312";"0.0312";"16";"740";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"65";"49";"49";"BLOCK_TRUNK_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"19";"1200";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"66";"50";"50";"BLOCK_TRUNK_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"15";"670";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
"67";"51";"51";"BLOCK_TRUNK_ROSEWOOD";"0.0312";"0.0312";"0.0312";"0.0312";"17";"900";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREESMALL,NATURAL"
# large non-punchable trees
"72";"72";"72";"BLOCK_TRUNK_NORMAL";"0.0312";"0.0312";"0.0312";"0.0312";"16";"740";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"73";"73";"73";"BLOCK_TRUNK_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"19";"1200";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"74";"74";"74";"BLOCK_TRUNK_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"15";"670";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"75";"75";"75";"BLOCK_TRUNK_ROSEWOOD";"0.0312";"0.0312";"0.0312";"0.0312";"17";"900";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"72";"item@basegame:168";"item@basegame:168";"BLOCK_TRUNK_NORMAL";"0.0312";"0.0312";"0.0312";"0.0312";"16";"740";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"73";"item@basegame:169";"item@basegame:169";"BLOCK_TRUNK_EBONY";"0.0312";"0.0312";"0.0312";"0.0312";"19";"1200";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"74";"item@basegame:170";"item@basegame:170";"BLOCK_TRUNK_BIRCH";"0.0312";"0.0312";"0.0312";"0.0312";"15";"670";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
"75";"item@basegame:171";"item@basegame:171";"BLOCK_TRUNK_ROSEWOOD";"0.0312";"0.0312";"0.0312";"0.0312";"17";"900";"WOOD";"0";"0";"N/A";"0";"0";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0";"TREE,TREETRUNK,TREELARGE,NATURAL"
# sabulous
"80";"80";"80";"BLOCK_SAND";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.06";"SAND,NATURAL,WARM"
Can't render this file because it contains an unexpected character in line 17 and column 2.

View File

@@ -32,10 +32,16 @@ id;classname
#144; gems
# tree seeds by tree species
160;net.torvald.terrarum.modulebasegame.gameitems.ItemOakSeed
160;net.torvald.terrarum.modulebasegame.gameitems.ItemSeedOak
161;net.torvald.terrarum.modulebasegame.gameitems.ItemSeedEbony
162;net.torvald.terrarum.modulebasegame.gameitems.ItemSeedBirch
163;net.torvald.terrarum.modulebasegame.gameitems.ItemSeedRosewood
# tree logs
168;net.torvald.terrarum.modulebasegame.gameitems.ItemOakLogs
168;net.torvald.terrarum.modulebasegame.gameitems.ItemLogsOak
169;net.torvald.terrarum.modulebasegame.gameitems.ItemLogsEbony
170;net.torvald.terrarum.modulebasegame.gameitems.ItemLogsBirch
171;net.torvald.terrarum.modulebasegame.gameitems.ItemLogsRosewood
256;net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorOak
1 id classname
32 160 net.torvald.terrarum.modulebasegame.gameitems.ItemOakSeed net.torvald.terrarum.modulebasegame.gameitems.ItemSeedOak
33 # tree logs 161 net.torvald.terrarum.modulebasegame.gameitems.ItemSeedEbony
34 168 162 net.torvald.terrarum.modulebasegame.gameitems.ItemOakLogs net.torvald.terrarum.modulebasegame.gameitems.ItemSeedBirch
35 256 163 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorOak net.torvald.terrarum.modulebasegame.gameitems.ItemSeedRosewood
36 # tree logs
37 168 net.torvald.terrarum.modulebasegame.gameitems.ItemLogsOak
38 169 net.torvald.terrarum.modulebasegame.gameitems.ItemLogsEbony
39 257 170 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorEbony net.torvald.terrarum.modulebasegame.gameitems.ItemLogsBirch
40 258 171 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorBirch net.torvald.terrarum.modulebasegame.gameitems.ItemLogsRosewood
41 259 256 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorRosewood net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorOak
42 257 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorEbony
43 258 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorBirch
44 259 net.torvald.terrarum.modulebasegame.gameitems.ItemSwingingDoorRosewood
45 320 net.torvald.terrarum.modulebasegame.gameitems.ItemWorldPortal
46 999999 net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry
47

View File

@@ -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
}

View File

@@ -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)
}

View File

@@ -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))

View File

@@ -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"