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

@@ -2,21 +2,21 @@
"basegame:176": { /* A recipe for Wooden Platform */
"workbench": "", /* Optional workbench TAGS separated by commas (e.g. smelter, saw) */
"ingredients": [ /* Multiple ingredients denotes alternative recipes */
[2, 1, "$WOOD", 1, "$ROCK"] /* This recipe only requires one Wooden Plank */
[2, 1, "$WOOD", 5000, "$ROCK"] /* This recipe only requires one Wooden Plank */
]
},
"basegame:176": { /* alternative recipes can be added like this */
"workbench": "SOME_WORKBENCH",
"ingredients": [
[5, 1, "$ROCKWOOD"]
[5, 5000, "basegame:161"]
]
},
"basegame:161": {
"workbench": "",
"ingredients": [
[4, 1, "$WOOD"]
[4, 1, "$WOOD", 2, "$ROCK"]
]
}
}

View File

@@ -7,5 +7,8 @@ id;classname
7;net.torvald.terrarum.modulebasegame.gameitems.WireGraphDebugger
8;net.torvald.terrarum.modulebasegame.gameitems.ItemLogicSignalEmitter
9;net.torvald.terrarum.modulebasegame.gameitems.WireCutterAll
10;net.torvald.terrarum.modulebasegame.gameitems.ItemTypewriter
999;net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry
999998;net.torvald.terrarum.modulebasegame.gameitems.ItemTestDoor
999999;net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry
1 id classname
7 7 net.torvald.terrarum.modulebasegame.gameitems.WireGraphDebugger
8 8 net.torvald.terrarum.modulebasegame.gameitems.ItemLogicSignalEmitter
9 9 net.torvald.terrarum.modulebasegame.gameitems.WireCutterAll
10 10 net.torvald.terrarum.modulebasegame.gameitems.ItemTypewriter
11 999 999998 net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry net.torvald.terrarum.modulebasegame.gameitems.ItemTestDoor
12 999999 net.torvald.terrarum.modulebasegame.gameitems.ItemTapestry
13
14

Binary file not shown.

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

Binary file not shown.