added a typewriter (no gui)

This commit is contained in:
minjaesong
2022-08-26 21:52:31 +09:00
parent d6ce5c791e
commit bf962376d4
7 changed files with 91 additions and 10 deletions

View File

@@ -0,0 +1,42 @@
package net.torvald.terrarum.modulebasegame.gameactors
import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.langpack.Lang
/**
* Created by minjaesong on 2022-08-26.
*/
class FixtureTypewriter : FixtureBase {
var typewriterKeymapName = "us_qwerty" // used to control the keyboard input behaviour
private set
private var carriagePosition = 0
// constructor used when new typewriter is created
constructor(keymapName: String) : this() {
typewriterKeymapName = keymapName
}
// constructor used when the game loads from the savefile
constructor() : super(
BlockBox(BlockBox.NO_COLLISION, 1, 1),
nameFun = { Lang["ITEM_TYPEWRITER"] }
) {
density = 2000.0
setHitboxDimension(16, 16, 8, 0)
makeNewSprite(FixtureBase.getSpritesheet("basegame", "sprites/fixtures/typewriter.tga", 32, 16)).let {
it.setRowsAndFrames(1,1)
}
actorValue[AVKey.BASEMASS] = 3.6
}
companion object {
const val TYPEWRITER_COLUMNS = 64
}
}

View File

@@ -0,0 +1,30 @@
package net.torvald.terrarum.modulebasegame.gameitems
import com.badlogic.gdx.graphics.g2d.TextureRegion
import net.torvald.terrarum.gameitems.ItemID
import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
/**
* Created by minjaesong on 2022-08-26.
*/
class ItemTypewriter(originalID: ItemID) : FixtureItemBase(originalID, "net.torvald.terrarum.modulebasegame.gameactors.FixtureTypewriter") {
override var dynamicID: ItemID = originalID
override val originalName = "ITEM_TYPEWRITER"
override var baseMass = FixtureTikiTorch.MASS
override var stackable = true
override var inventoryCategory = Category.MISC
override val isUnique = false
override val isDynamic = false
override val material = Material()
override val itemImage: TextureRegion
get() = getItemImageFromSheet("basegame", "sprites/fixtures/typewriter.tga", 32, 16)
override var baseToolSize: Double? = baseMass
init {
equipPosition = EquipPosition.HAND_GRIP
}
}

View File

@@ -56,8 +56,8 @@ object Common {
json.writeValue(obj?.toString())
}
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): BigInteger {
return BigInteger(jsonData.asString())
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): BigInteger? {
return if (jsonData.isNull) null else BigInteger(jsonData.asString())
}
})
// ZipCodedStr
@@ -186,8 +186,8 @@ object Common {
json.writeValue(obj.toString())
}
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): UUID {
return UUID.fromString(jsonData.asString())
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): UUID? {
return if (jsonData.isNull) null else UUID.fromString(jsonData.asString())
}
})
// HQRNG
@@ -209,8 +209,8 @@ object Common {
json.writeValue(bytesToZipdStr(obj.iterator()))
}
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): ByteArray {
return strToBytes(StringReader(jsonData.asString())).toByteArray()
override fun read(json: Json, jsonData: JsonValue, type: Class<*>?): ByteArray? {
return if (jsonData.isNull) return null else strToBytes(StringReader(jsonData.asString())).toByteArray()
}
})
}