axe items

This commit is contained in:
minjaesong
2023-11-14 00:15:45 +09:00
parent c3bfbb7cad
commit c1deeea59e
3 changed files with 125 additions and 1 deletions

View File

@@ -17,6 +17,10 @@ id;classname
16;net.torvald.terrarum.modulebasegame.gameitems.ItemWorkbench
17;net.torvald.terrarum.modulebasegame.gameitems.ItemCoalCoke
18;net.torvald.terrarum.modulebasegame.gameitems.OreStick
19;net.torvald.terrarum.modulebasegame.gameitems.AxeCopper
20;net.torvald.terrarum.modulebasegame.gameitems.AxeIron
21;net.torvald.terrarum.modulebasegame.gameitems.AxeSteel
22;net.torvald.terrarum.modulebasegame.gameitems.AxeWood
# ores
128;net.torvald.terrarum.modulebasegame.gameitems.OreCopper
1 id classname
17 16 net.torvald.terrarum.modulebasegame.gameitems.ItemWorkbench
18 17 net.torvald.terrarum.modulebasegame.gameitems.ItemCoalCoke
19 18 net.torvald.terrarum.modulebasegame.gameitems.OreStick
20 19 net.torvald.terrarum.modulebasegame.gameitems.AxeCopper
21 20 net.torvald.terrarum.modulebasegame.gameitems.AxeIron
22 21 net.torvald.terrarum.modulebasegame.gameitems.AxeSteel
23 22 net.torvald.terrarum.modulebasegame.gameitems.AxeWood
24 # ores
25 128 net.torvald.terrarum.modulebasegame.gameitems.OreCopper
26 129 net.torvald.terrarum.modulebasegame.gameitems.OreIron

View File

@@ -1,6 +1,7 @@
package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.*
import net.torvald.terrarum.App.printdbg
import net.torvald.terrarum.blockproperties.Block
@@ -15,6 +16,8 @@ import net.torvald.terrarum.itemproperties.Calculate
import net.torvald.terrarum.itemproperties.Item
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
import net.torvald.terrarum.modulebasegame.gameitems.AxeCore.BASE_MASS_AND_SIZE
import net.torvald.terrarum.modulebasegame.gameitems.AxeCore.TOOL_DURABILITY_BASE
import net.torvald.terrarum.worlddrawer.CreateTileAtlas
import org.dyn4j.geometry.Vector2
import kotlin.math.roundToInt
@@ -188,4 +191,121 @@ object AxeCore {
const val BASE_MASS_AND_SIZE = 10.0 // of iron pick
const val TOOL_DURABILITY_BASE = 350 // of iron pick
}
/**
* Created by minjaesong on 2023-11-14.
*/
class AxeCopper(originalID: ItemID) : GameItem(originalID) {
internal constructor() : this("-uninitialised-")
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
override var inventoryCategory = Category.TOOL
override val isDynamic = true
override val materialId = "CUPR"
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(3,0)
init {
equipPosition = GameItem.EquipPosition.HAND_GRIP
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
durability = maxDurability.toFloat()
tags.add("AXE")
originalName = "ITEM_HATCHET_COPPER"
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L
override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this)
// override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY)
override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) }
}
/**
* Created by minjaesong on 2023-11-14.
*/
class AxeIron(originalID: ItemID) : GameItem(originalID) {
internal constructor() : this("-uninitialised-")
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
override var inventoryCategory = Category.TOOL
override val isDynamic = true
override val materialId = "IRON"
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(4,0)
init {
equipPosition = GameItem.EquipPosition.HAND_GRIP
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
durability = maxDurability.toFloat()
tags.add("AXE")
originalName = "ITEM_HATCHET_IRON"
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L
override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this)
// override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY)
override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) }
}
/**
* Created by minjaesong on 2023-11-14.
*/
class AxeSteel(originalID: ItemID) : GameItem(originalID) {
internal constructor() : this("-uninitialised-")
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
override var inventoryCategory = Category.TOOL
override val isDynamic = true
override val materialId = "STAL"
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(5,0)
init {
equipPosition = GameItem.EquipPosition.HAND_GRIP
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
durability = maxDurability.toFloat()
tags.add("AXE")
originalName = "ITEM_HATCHET_STEEL"
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L
override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this)
// override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY)
override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) }
}
/**
* Created by minjaesong on 2023-11-14.
*/
class AxeWood(originalID: ItemID) : GameItem(originalID) {
internal constructor() : this("-uninitialised-")
override var baseToolSize: Double? = BASE_MASS_AND_SIZE
override var inventoryCategory = Category.TOOL
override val isDynamic = true
override val materialId = "WOOD"
override var baseMass = material.density.toDouble() / MaterialCodex["IRON"].density * BASE_MASS_AND_SIZE
override val itemImage: TextureRegion
get() = CommonResourcePool.getAsItemSheet("basegame.items").get(9,4)
init {
equipPosition = GameItem.EquipPosition.HAND_GRIP
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
durability = maxDurability.toFloat()
tags.add("AXE")
originalName = "ITEM_HATCHET_WOODEN"
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =
if (AxeCore.startPrimaryUse(actor, delta, this, Terrarum.mouseTileX, Terrarum.mouseTileY)) 0L else -1L
override fun endPrimaryUse(actor: ActorWithBody, delta: Float) = AxeCore.endPrimaryUse(actor, this)
// override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) = AxeCore.showOresTooltip(actor, this, Terrarum.mouseTileX, Terrarum.mouseTileY)
override fun effectOnUnequip(actor: ActorWithBody) { INGAME.setTooltipMessage(null) }
}

View File

@@ -313,7 +313,7 @@ class PickaxeWood(originalID: ItemID) : GameItem(originalID) {
maxDurability = (TOOL_DURABILITY_BASE * material.enduranceMod).roundToInt()
durability = maxDurability.toFloat()
tags.add("PICK")
originalName = "ITEM_PICK_WOOD"
originalName = "ITEM_PICK_WOODEN"
}
override fun startPrimaryUse(actor: ActorWithBody, delta: Float) =