working wire cutter (drops no wire)

This commit is contained in:
minjaesong
2021-09-18 21:01:06 +09:00
parent 097689f49f
commit 9e8bd5e4a9
8 changed files with 27 additions and 15 deletions

View File

@@ -1,14 +1,13 @@
package net.torvald.terrarum.modulebasegame.gameactors
import net.torvald.terrarum.ItemCodex
import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameitem.GameItem
import net.torvald.terrarum.gameitem.ItemID
import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.lock
import net.torvald.terrarum.modulebasegame.TerrarumIngame
import java.math.BigInteger
import java.util.concurrent.locks.ReentrantLock
import net.torvald.terrarum.*
/**
* Created by minjaesong on 2021-03-16.
@@ -109,10 +108,10 @@ open class FixtureInventory() {
existingItem.qty = newCount
}
else {
// unequip must be done before the entry removal
unequipFun(existingItem)
// depleted item; remove entry from inventory
itemList.remove(existingItem)
// do additional removal job (e.g. unequipping)
unequipFun(existingItem)
}
}
else {

View File

@@ -2,10 +2,10 @@ package net.torvald.terrarum.modulebasegame.gameactors
import net.torvald.terrarum.App
import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.WireCodex
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.faction.FactionFactory
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
import net.torvald.terrarum.*
/**
* Created by minjaesong on 2016-02-03.
@@ -77,7 +77,7 @@ object PlayerBuilderSigrid {
fun fillTestInventory(inventory: ActorInventory) {
App.tileMaker.tags.forEach { t, _ ->
inventory.add(t, 9995)
inventory.add(t, 5)
try {
inventory.add("wall@"+t, 9995) // this code will try to add nonexisting wall items, do not get surprised with NPEs
}

View File

@@ -20,9 +20,9 @@ class WireCutterAll(originalID: ItemID) : GameItem(originalID) {
override val originalName = "ITEM_WIRE_CUTTER"
override var baseMass = 0.1
override var baseToolSize: Double? = baseMass
override var stackable = true
override var stackable = false
override var inventoryCategory = Category.TOOL
override val isUnique = false
override val isUnique = true
override val isDynamic = false
override val material = Material()
override val itemImage: TextureRegion
@@ -35,7 +35,7 @@ class WireCutterAll(originalID: ItemID) : GameItem(originalID) {
override fun startPrimaryUse(delta: Float): Boolean {
val ingame = Terrarum.ingame!! as TerrarumIngame
val mouseTile = Point2i(Terrarum.mouseTileX, Terrarum.mouseTileY)
val wires = ingame.world.getAllWiresFrom(mouseTile.x, mouseTile.y)
val wires = ingame.world.getAllWiresFrom(mouseTile.x, mouseTile.y)?.cloneToList()
wires?.forEach {
ingame.world.removeTileWire(mouseTile.x, mouseTile.y, it, false)