diff --git a/.idea/artifacts/ModuleBasegame.xml b/.idea/artifacts/ModuleBasegame.xml deleted file mode 100644 index 7d8d1e492..000000000 --- a/.idea/artifacts/ModuleBasegame.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - $PROJECT_DIR$/out/artifacts/ModuleBasegame - - - - - \ No newline at end of file diff --git a/.idea/artifacts/ModuleComputers.xml b/.idea/artifacts/ModuleComputers.xml new file mode 100644 index 000000000..563b7d854 --- /dev/null +++ b/.idea/artifacts/ModuleComputers.xml @@ -0,0 +1,10 @@ + + + $PROJECT_DIR$/assets/mods/dwarventech + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/ModuleComputersLib.xml b/.idea/libraries/ModuleComputersLib.xml new file mode 100644 index 000000000..385a84f02 --- /dev/null +++ b/.idea/libraries/ModuleComputersLib.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/TerranVirtualDisk.xml b/.idea/libraries/TerranVirtualDisk.xml deleted file mode 100644 index e0e61d4e9..000000000 --- a/.idea/libraries/TerranVirtualDisk.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 4a174c960..83248ab4c 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -5,7 +5,7 @@ - + diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 000000000..797acea53 --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/App.xml b/.idea/runConfigurations/App.xml index 8a91989a2..2049f3459 100644 --- a/.idea/runConfigurations/App.xml +++ b/.idea/runConfigurations/App.xml @@ -12,6 +12,9 @@ \ No newline at end of file diff --git a/ModuleComputers/ModuleComputers.iml b/ModuleComputers/ModuleComputers.iml new file mode 100644 index 000000000..bcdc8911d --- /dev/null +++ b/ModuleComputers/ModuleComputers.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ModuleComputers/lib/TerranVirtualDisk.jar b/ModuleComputers/lib/TerranVirtualDisk.jar new file mode 100644 index 000000000..b6af461a4 Binary files /dev/null and b/ModuleComputers/lib/TerranVirtualDisk.jar differ diff --git a/ModuleComputers/lib/TerrarumTSVM.jar b/ModuleComputers/lib/TerrarumTSVM.jar new file mode 100644 index 000000000..1481ac707 Binary files /dev/null and b/ModuleComputers/lib/TerrarumTSVM.jar differ diff --git a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/EntryPoint.kt b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/EntryPoint.kt new file mode 100644 index 000000000..2886e94a5 --- /dev/null +++ b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/EntryPoint.kt @@ -0,0 +1,21 @@ +package net.torvald.terrarum.modulecomputers + +import net.torvald.terrarum.ModMgr +import net.torvald.terrarum.ModuleEntryPoint + +/** + * Created by minjaesong on 2021-12-03. + */ +class EntryPoint : ModuleEntryPoint() { + + private val moduleName = "dwarventech" + + override fun invoke() { + ModMgr.GameItemLoader.invoke(moduleName) + println("[${moduleName[0].uppercase()}${moduleName.substring(1)}] Dirtboard(tm) go drrrrr") + } + + override fun dispose() { + } + +} \ No newline at end of file diff --git a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameitems/ItemWearableWorldRadar.kt b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameitems/ItemWearableWorldRadar.kt new file mode 100644 index 000000000..b27eaa128 --- /dev/null +++ b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/gameitems/ItemWearableWorldRadar.kt @@ -0,0 +1,100 @@ +package net.torvald.terrarum.modulecomputers.gameitems + +import com.badlogic.gdx.graphics.Camera +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.g2d.SpriteBatch +import com.badlogic.gdx.graphics.g2d.TextureRegion +import com.badlogic.gdx.utils.Disposable +import net.torvald.terrarum.* +import net.torvald.terrarum.gameactors.ActorWithBody +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.itemproperties.Material +import net.torvald.terrarum.modulebasegame.TerrarumIngame +import net.torvald.terrarum.modulecomputers.tsvmperipheral.WorldRadar +import net.torvald.terrarum.ui.Toolkit +import net.torvald.terrarum.ui.UICanvas +import net.torvald.tsvm.PeripheralEntry +import net.torvald.tsvm.TheRealWorld +import net.torvald.tsvm.VM +import net.torvald.tsvm.peripheral.ExtDisp +import net.torvald.tsvm.peripheral.VMProgramRom + +/** + * Created by minjaesong on 2021-12-03. + */ +class ItemWearableWorldRadar(originalID: String) : GameItem(originalID) { + + override var dynamicID: ItemID = originalID + override val originalName = "ITEM_COMPUTER_DIRTBOARD_FAKETM" + override var baseMass = 2.0 + override var stackable = true + override var inventoryCategory = Category.TOOL + override val isUnique = false + override val isDynamic = true + override val material = Material() + override val itemImage: TextureRegion + get() = CommonResourcePool.getAsTextureRegion("basegame-sprites-fixtures-signal_source.tga") + override var baseToolSize: Double? = baseMass + + + val vm = VM(32768, TheRealWorld(), arrayOf( + VMProgramRom(ModMgr.getPath("dwarventech", "bios/pipboot.rom")), + VMProgramRom(ModMgr.getPath("dwarventech", "bios/pipcode.bas")) + )) + val ui = WearableWorldRadarUI(vm) + + init { + vm.getIO().blockTransferPorts[1].attachDevice(WorldRadar()) + vm.peripheralTable[1] = PeripheralEntry( + ExtDisp(vm, 160, 140), 32768, 1, 0 + ) + + App.disposables.add(Disposable { vm.dispose() }) + App.disposables.add(ui) + } + + override fun effectWhenEquipped(actor: ActorWithBody, delta: Float) { + (Terrarum.ingame!! as TerrarumIngame).wearableDeviceUI = ui + } + + override fun effectOnUnequip(actor: ActorWithBody, delta: Float) { + (Terrarum.ingame!! as TerrarumIngame).wearableDeviceUI = null + } +} + +class WearableWorldRadarUI(val device: VM) : UICanvas() { + + override var width = 160 + override var height = 140 + override var openCloseTime = 0f + + override fun updateUI(delta: Float) { + device.update(delta) + } + + override fun renderUI(batch: SpriteBatch, camera: Camera) { + batch.color = Color.WHITE + (device.peripheralTable[1].peripheral as? ExtDisp)?.render(batch, posX.toFloat(), posY.toFloat()) + + batch.color = Toolkit.Theme.COL_INACTIVE + Toolkit.drawBoxBorder(batch, posX-1, posY-1, width+2, height+2) + } + + override fun doOpening(delta: Float) { + } + + override fun doClosing(delta: Float) { + } + + override fun endOpening(delta: Float) { + } + + override fun endClosing(delta: Float) { + } + + override fun dispose() { + } + + +} \ No newline at end of file diff --git a/ModuleComputers/src/net/torvald/terrarum/modulecomputers/tsvmperipheral/WorldRadar.kt b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/tsvmperipheral/WorldRadar.kt new file mode 100644 index 000000000..01e084a7b --- /dev/null +++ b/ModuleComputers/src/net/torvald/terrarum/modulecomputers/tsvmperipheral/WorldRadar.kt @@ -0,0 +1,134 @@ +package net.torvald.terrarum.modulecomputers.tsvmperipheral + +import net.torvald.terrarum.IngameInstance +import net.torvald.terrarum.Point2i +import net.torvald.terrarum.Terrarum +import net.torvald.terrarum.blockproperties.Block +import net.torvald.tsvm.VM +import net.torvald.tsvm.peripheral.BlockTransferInterface +import net.torvald.tsvm.peripheral.TestDiskDrive +import net.torvald.tsvm.peripheral.trimNull +import java.io.ByteArrayOutputStream + +/** + * Created by minjaesong on 2021-12-02. + */ +class WorldRadar : BlockTransferInterface(false, true) { + + private val W = 162 + private val H = 142 + + private val AIR_OUT = 0.toByte() + private val GRASS_OUT = 2.toByte() + private val DIRT_OUT = 4.toByte() + private val STONE_OUT = 7.toByte() + + init { + statusCode = TestDiskDrive.STATE_CODE_STANDBY + } + + private val messageComposeBuffer = ByteArrayOutputStream(BLOCK_SIZE) // always use this and don't alter blockSendBuffer please + private var blockSendBuffer = ByteArray(1) + private var blockSendCount = 0 + + private fun resetBuf() { + blockSendCount = 0 + messageComposeBuffer.reset() + } + + + override fun hasNext(): Boolean { + return (blockSendCount * BLOCK_SIZE < blockSendBuffer.size) + } + + override fun startSendImpl(recipient: BlockTransferInterface): Int { + if (blockSendCount == 0) { + blockSendBuffer = messageComposeBuffer.toByteArray() + } + + val sendSize = if (blockSendBuffer.size - (blockSendCount * BLOCK_SIZE) < BLOCK_SIZE) + blockSendBuffer.size % BLOCK_SIZE + else BLOCK_SIZE + + recipient.writeout(ByteArray(sendSize) { + blockSendBuffer[blockSendCount * BLOCK_SIZE + it] + }) + + blockSendCount += 1 + + return sendSize + } + + private var oldCmdbuf = HashMap(1024) + + private fun getNearbyTilesPos(x: Int, y: Int): Array { + return arrayOf( + Point2i(x + 1, y), + Point2i(x, y + 1), + Point2i(x - 1, y), + Point2i(x, y - 1), + ) + } + override fun writeoutImpl(inputData: ByteArray) { + val inputString = inputData.trimNull().toString(VM.CHARSET) + + // prepare draw commands + /* + * draw command format: + * + * + * + * marking rules: + * + * : exposed = has at least 1 nonsolid on 4 sides + * + * 1. exposed grass -> 2 + * 2. exposed dirt -> 4 + * 3. exposed stone -> 7 + * 4. stone exposed to dirt/grass -> 7 + */ + if (inputString.startsWith("POLL")) { + resetBuf() + val cmdbuf = HashMap(1024) + + Terrarum.ingame?.let { ingame -> ingame.actorNowPlaying?.let { + + val px = it.intTilewiseHitbox.canonicalX.toInt() + val py = it.intTilewiseHitbox.canonicalY.toInt() + + for (y in 1..H - 2) { + for (x in 1..W - 2) { + val yx = (y - 1).shl(8) or x + val nearby = getNearbyTilesPos(px, py).map { ingame.world.getTileFromTerrain(it.x, it.y) } // up, left, right, down + val block = ingame.world.getTileFromTerrain(px, py) + val blockprop = Terrarum.blockCodex[block] + + if (blockprop.isSolid) { + // TODO create extension function nearby.contains { predicate :: ItemID -> Boolean } + if (blockprop.material == "GRSS" && nearby.contains(Block.AIR)) { + cmdbuf[yx] = GRASS_OUT + } + else if (blockprop.material == "DIRT" && nearby.contains(Block.AIR)) { + cmdbuf[yx] = DIRT_OUT + } + else if (blockprop.material == "ROCK" && (nearby.contains(Block.AIR) || nearby.contains(Block.GRASS) || nearby.contains(Block.DIRT))) { + cmdbuf[yx] = STONE_OUT + } + } + } + } + + (oldCmdbuf.keys union cmdbuf.keys).sorted().forEach { key -> + val value = (cmdbuf[key] ?: AIR_OUT).toInt() + val x = key % 256 + val y = key / 256 + messageComposeBuffer.write(y) + messageComposeBuffer.write(x) + messageComposeBuffer.write(value) + } + + oldCmdbuf = cmdbuf + }} + } + } +} \ No newline at end of file diff --git a/assets/mods/basegame/blocks/blocks.csv b/assets/mods/basegame/blocks/blocks.csv index a54d58639..e02e5135f 100644 --- a/assets/mods/basegame/blocks/blocks.csv +++ b/assets/mods/basegame/blocks/blocks.csv @@ -31,18 +31,18 @@ "85";"85";"BLOCK_SAND_GREEN";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"SAND";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" "96";"96";"BLOCK_GRAVEL";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" "97";"97";"BLOCK_GRAVEL_GREY";"0.1252";"0.1252";"0.1252";"0.1252";"24";"2400";"GRVL";"1";"0";"0";"0";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"112";"112";"BLOCK_ORE_MALACHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"113";"113";"BLOCK_ORE_HEMATITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"114";"114";"BLOCK_ORE_NATURAL_GOLD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"115";"115";"BLOCK_ORE_NATURAL_SILVER";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"116";"116";"BLOCK_ORE_RUTILE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"117";"117";"BLOCK_ORE_AURICHALCUMITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"128";"128";"BLOCK_GEM_RUBY";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"129";"129";"BLOCK_GEM_EMERALD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"130";"130";"BLOCK_GEM_SAPPHIRE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"131";"131";"BLOCK_GEM_TOPAZ";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"132";"132";"BLOCK_GEM_DIAMOND";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" -"133";"133";"BLOCK_GEM_AMETHYST";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"ROCK";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"112";"112";"BLOCK_ORE_MALACHITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"113";"113";"BLOCK_ORE_HEMATITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"114";"114";"BLOCK_ORE_NATURAL_GOLD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"115";"115";"BLOCK_ORE_NATURAL_SILVER";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"116";"116";"BLOCK_ORE_RUTILE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"117";"117";"BLOCK_ORE_AURICHALCUMITE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OORE";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"128";"128";"BLOCK_GEM_RUBY";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"129";"129";"BLOCK_GEM_EMERALD";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"130";"130";"BLOCK_GEM_SAPPHIRE";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"131";"131";"BLOCK_GEM_TOPAZ";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"132";"132";"BLOCK_GEM_DIAMOND";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" +"133";"133";"BLOCK_GEM_AMETHYST";"0.1252";"0.1252";"0.1252";"0.1252";"48";"2400";"OGEM";"1";"0";"0";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" "144";"144";"BLOCK_SNOW";"0.1252";"0.1252";"0.1252";"0.1252";"24";"500";"SNOW";"1";"0";"1";"N/A";"0";"4";"16";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" "145";"0";"BLOCK_ICE_FRAGILE";"0.0508";"0.0508";"0.0508";"0.0508";"5";"930";"ICEI";"1";"0";"0";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" "146";"146";"BLOCK_ICE_NATURAL";"0.1016";"0.1016";"0.1016";"0.1016";"35";"930";"ICEI";"1";"0";"1";"N/A";"0";"0";"4";"0.0000";"0.0000";"0.0000";"0.0000";"N/A";"N/A";"0.0" diff --git a/assets/mods/basegame/items/malicious.groovy b/assets/mods/basegame/items/malicious.groovy deleted file mode 100644 index bfd6f0970..000000000 --- a/assets/mods/basegame/items/malicious.groovy +++ /dev/null @@ -1,88 +0,0 @@ -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.itemproperties.Material -import org.jetbrains.annotations.NotNull -import org.jetbrains.annotations.Nullable - -/** - * Created by minjaesong on 2017-04-28. - */ - -static GameItem invoke(int id) { - - return new GameItem() { - @Override - int getDynamicID() { - return 0 - } - - @Override - void setDynamicID(int i) { - - } - - @Override - int getOriginalID() { - return 0 - } - - @Override - boolean isUnique() { - return false - } - - @Override - String getOriginalName() { - return null - } - - @Override - double getBaseMass() { - return 0 - } - - @Override - void setBaseMass(double v) { - - } - - @Override - Double getBaseToolSize() { - return null - } - - @Override - void setBaseToolSize(@Nullable Double aDouble) { - - } - - @Override - String getInventoryCategory() { - return null - } - - @Override - void setInventoryCategory(@NotNull String s) { - - } - - @Override - boolean getStackable() { - return false - } - - @Override - void setStackable(boolean b) { - - } - - @Override - boolean isDynamic() { - return false - } - - @Override - Material getMaterial() { - return null - } - } -} \ No newline at end of file diff --git a/assets/mods/basegame/items/testpick.nope b/assets/mods/basegame/items/testpick.nope deleted file mode 100644 index 7c32011a5..000000000 --- a/assets/mods/basegame/items/testpick.nope +++ /dev/null @@ -1,97 +0,0 @@ - -/** - * Created by minjaesong on 2017-04-26. - */ - - -import net.torvald.terrarum.Point2d -import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameactors.ActorWBMovable -import net.torvald.terrarum.itemproperties.Calculate -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.itemproperties.Material -import net.torvald.terrarum.blockproperties.Block -// following two are NOT UNUSED! -import org.jetbrains.annotations.NotNull - - - -static GameItem invoke(int id) { - return new TestPick(id) -} - - -class TestPick extends GameItem { - - int originalID - int dynamicID - String originalName = "GROOVY_PICK" - double baseMass = 10.0 - Double baseToolSize = 10.0 - boolean stackable = true - int maxDurability = 147 - float durability = maxDurability - int equipPosition = 9 //EquipPosition.HAND_GRIP - String inventoryCategory = "tool" //Category.TOOL - - // !! TEST MATERIAL !! - Material material = new Material(0,0,0,0,0,0,0,0,1,0.0) - - TestPick(int id) { - originalID = id - dynamicID = id - name = "Groovy Pickaxe" - } - - @Override - boolean isUnique() { - return false - } - - @Override - boolean isDynamic() { - return true - } - - @Override - boolean startPrimaryUse(float delta) { - int mouseTileX = Terrarum.getMouseTileX() - int mouseTileY = Terrarum.getMouseTileY() - - def mousePoint = new Point2d(mouseTileX, mouseTileY) - def actorvalue = Terrarum.ingame.playableActor.actorValue - - using = true - - // linear search filter (check for intersection with tilewise mouse point and tilewise hitbox) - // return false if hitting actors - Terrarum.ingame.actorContainer.forEach({ - if (it instanceof ActorWithPhysics && it.getHIntTilewiseHitbox.intersects(mousePoint)) - return false - }) - - // return false if here's no tile - if (Block.AIR == Terrarum.ingame.world.getTileFromTerrain(mouseTileX, mouseTileY)) - return false - - // filter passed, do the job - double swingDmgToFrameDmg = delta.toDouble() / actorvalue.getAsDouble(AVKey.ACTION_INTERVAL) - - Terrarum.ingame.world.inflictTerrainDamage( - mouseTileX, mouseTileY, - Calculate.pickaxePower(Terrarum.ingame.playableActor, material) * swingDmgToFrameDmg - ) - - return true - } - - @Override - boolean endPrimaryUse(float delta) { - using = false - // reset action timer to zero - Terrarum.ingame.playableActor.actorValue.set(AVKey.__ACTION_TIMER, 0.0) - return true - } -} - diff --git a/assets/mods/basegame/materials/materials.csv b/assets/mods/basegame/materials/materials.csv index 02021f213..2d22b2b0b 100644 --- a/assets/mods/basegame/materials/materials.csv +++ b/assets/mods/basegame/materials/materials.csv @@ -1,5 +1,7 @@ "idst";"tens";"impf";"dsty";"fmod";"endurance";"tcond";"comments" "ROCK"; "15"; "210";"3000"; "1"; "0.42"; "1.0";"data is that of marble" +"OORE"; "15"; "210";"3000"; "1"; "0.42"; "1.0";"data is that of marble" +"OGEM"; "15"; "210";"3000"; "1"; "0.42"; "1.0";"data is that of marble" "CUPR"; "210"; "770";"8960"; "2"; "1.00";"401.0";"copper" "EGLS"; "33";"1000";"2325"; "4"; "0.82"; "1.0";"elven glass/moldavite" "IRON"; "350";"1085";"7874"; "5"; "1.42"; "1.0";"not wrought iron; just natural iron" diff --git a/assets/mods/basegame/metadata.properties b/assets/mods/basegame/metadata.properties index a329703a0..46dcfcf44 100644 --- a/assets/mods/basegame/metadata.properties +++ b/assets/mods/basegame/metadata.properties @@ -21,8 +21,9 @@ releasedate=2017-07-14 # The version, must follow Semver 2.0.0 scheme (https://semver.org/) version=0.2.0 -# External JARs the module might use, separate multiple by semicolon (;) -libraries= +# External JAR that the module is compiled. If your module requires yet another library, the JAR must be compiled as a "Fatjar"; +# Due to security reasons, loading an arbitrary JAR is not allowed. +jar= # Modules that must be pre-installed, separate multiple by semicolon (;) # Dependency syntax: "module's identification name (aka folder name) spaces allowed versionnumber" diff --git a/assets/mods/dwarventech/ModuleComputers.jar b/assets/mods/dwarventech/ModuleComputers.jar new file mode 100644 index 000000000..dabfa6320 Binary files /dev/null and b/assets/mods/dwarventech/ModuleComputers.jar differ diff --git a/assets/mods/dwarventech/bios/pipboot.rom b/assets/mods/dwarventech/bios/pipboot.rom new file mode 100644 index 000000000..0b0b3ff72 Binary files /dev/null and b/assets/mods/dwarventech/bios/pipboot.rom differ diff --git a/assets/mods/dwarventech/bios/pipcode.bas b/assets/mods/dwarventech/bios/pipcode.bas new file mode 100644 index 000000000..a21e4bd4b --- /dev/null +++ b/assets/mods/dwarventech/bios/pipcode.bas @@ -0,0 +1,13 @@ +10 print("polling radar...") +20 s=cput(1,"POLL") +30 if s><0 then goto 900 +40 l=cget(1,0) +41 REM print("length: "+l+", pixels: "+l/3) +50 for i=0 to l-1 step 3 +60 m=peek(i)*160+peek(i+1) +62 p=peek(i+2) +63 poke(-1048576-m,p) +70 next +80 REM poke(-1070977,0) +90 goto 20 +900 print("Polling failed: "+s) diff --git a/assets/mods/dwarventech/items/itemid.csv b/assets/mods/dwarventech/items/itemid.csv new file mode 100644 index 000000000..c10ec57a0 --- /dev/null +++ b/assets/mods/dwarventech/items/itemid.csv @@ -0,0 +1,2 @@ + "id";"classname" +"1";"net.torvald.terrarum.modulecomputers.gameitems.ItemWearableWorldRadar" diff --git a/assets/mods/dwarventech/metadata.properties b/assets/mods/dwarventech/metadata.properties index 9b7cf1770..aff70f2b9 100644 --- a/assets/mods/dwarventech/metadata.properties +++ b/assets/mods/dwarventech/metadata.properties @@ -3,7 +3,7 @@ description=Dwarven technicians are emerged from their hiding author=Terrarum package=net.torvald.terrarum.modulecomputers entrypoint=net.torvald.terrarum.modulecomputers.EntryPoint -releasedate=2017-07-14 -version=0.2.0 -libraries= -dependency=basegame 0.2.* \ No newline at end of file +releasedate=2021-12-03 +version=0.3.0 +jar=ModuleComputers.jar +dependency=basegame 0.2.* diff --git a/ingamemodule_basegame/ingamemodule_basegame.iml b/ingamemodule_basegame/ingamemodule_basegame.iml deleted file mode 100644 index d3971979f..000000000 --- a/ingamemodule_basegame/ingamemodule_basegame.iml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/net/torvald/terrarum/App.java b/src/net/torvald/terrarum/App.java index 30dc21e96..d4919ed03 100644 --- a/src/net/torvald/terrarum/App.java +++ b/src/net/torvald/terrarum/App.java @@ -259,6 +259,14 @@ public class App implements ApplicationListener { private static FrameBuffer renderFBO; public static HashSet tempFilePool = new HashSet<>(); + + /** + *

If your object is not Disposable, try following code:

+ * + * + * App.disposables.add(Disposable { vm.dispose() }) + * + */ public static HashSet disposables = new HashSet<>(); public static char gamepadLabelStart = 0xE000; // lateinit diff --git a/src/net/torvald/terrarum/IngameInstance.kt b/src/net/torvald/terrarum/IngameInstance.kt index 5fedca0f4..d9cebb591 100644 --- a/src/net/torvald/terrarum/IngameInstance.kt +++ b/src/net/torvald/terrarum/IngameInstance.kt @@ -1,6 +1,5 @@ package net.torvald.terrarum -import com.badlogic.gdx.Screen import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE @@ -9,7 +8,7 @@ import net.torvald.terrarum.gameactors.ActorID import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.BlockMarkerActor import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.modulebasegame.IngameRenderer import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid diff --git a/src/net/torvald/terrarum/ModMgr.kt b/src/net/torvald/terrarum/ModMgr.kt index 561a14a4a..4de116322 100644 --- a/src/net/torvald/terrarum/ModMgr.kt +++ b/src/net/torvald/terrarum/ModMgr.kt @@ -5,24 +5,29 @@ import com.badlogic.gdx.files.FileHandle import net.torvald.terrarum.App.* import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.blockproperties.WireCodex -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.itemproperties.ItemCodex import net.torvald.terrarum.itemproperties.MaterialCodex import net.torvald.terrarum.langpack.Lang +import net.torvald.terrarum.savegame.ByteArray64GrowableOutputStream +import net.torvald.terrarum.savegame.ByteArray64OutputStream +import net.torvald.terrarum.savegame.ByteArray64Reader import net.torvald.terrarum.utils.CSVFetcher import net.torvald.terrarum.utils.JsonFetcher import org.apache.commons.csv.CSVFormat import org.apache.commons.csv.CSVParser import org.apache.commons.csv.CSVRecord -import java.io.File -import java.io.FileInputStream -import java.io.FileNotFoundException +import java.io.* +import java.net.URL +import java.net.URLClassLoader import java.nio.file.FileSystems import java.util.* + + /** * Modules (or Mods) Resource Manager * @@ -48,14 +53,14 @@ object ModMgr { val entryPoint: String, val releaseDate: String, val version: String, - val libraries: Array, + val jar: String, val dependencies: Array ) { override fun toString() = "\tModule #$order -- $properName | $version | $author\n" + "\t$description | $releaseDate\n" + "\tEntry point: $entryPoint\n" + - "\tExternal libraries: ${libraries.joinToString(", ")}\n" + + "\tJarfile: $jar\n" + "\tDependencies: ${dependencies.joinToString("\n\t")}" } const val modDir = "./assets/mods" @@ -64,6 +69,8 @@ object ModMgr { val moduleInfo = HashMap() val entryPointClasses = ArrayList() + val moduleClassloader = HashMap() + val loadOrder = ArrayList() init { @@ -102,10 +109,10 @@ object ModMgr { val entryPoint = modMetadata.getProperty("entrypoint") val releaseDate = modMetadata.getProperty("releasedate") val version = modMetadata.getProperty("version") - val libs = modMetadata.getProperty("libraries").split(Regex(""";[ ]*""")).toTypedArray() + val jar = modMetadata.getProperty("jar") val dependency = modMetadata.getProperty("dependency").split(Regex(""";[ ]*""")).toTypedArray() val isDir = FileSystems.getDefault().getPath("$modDir/$moduleName").toFile().isDirectory - moduleInfo[moduleName] = ModuleMetadata(index, isDir, properName, description, author, packageName, entryPoint, releaseDate, version, libs, dependency) + moduleInfo[moduleName] = ModuleMetadata(index, isDir, properName, description, author, packageName, entryPoint, releaseDate, version, jar, dependency) printdbg(this, moduleInfo[moduleName]) @@ -114,21 +121,44 @@ object ModMgr { if (entryPoint.isNotBlank()) { var newClass: Class<*>? = null try { - newClass = Class.forName(entryPoint) + + // FIXME creating new classloader somehow messes up with the default classloader??!!? + // if CommandDict fails with NullPointerException, it means it's trying to use a wrong classloader + // bypassing only reveals further issues related to the classloader, such as loading wrong copy if ItemCodex + // that does not contain entry "basegame:0" + + // for modules that has JAR defined +// if (jar.isNotBlank()) { +// val child = URLClassLoader(arrayOf(File("$modDir/$moduleName/$jar").toURI().toURL()), +// this.javaClass.classLoader +// ) +// moduleClassloader[moduleName] = child +// newClass = Class.forName(entryPoint, true, child) +// } + // for modules that are not (meant to be used by the "basegame" kind of modules) +// else { + newClass = Class.forName(entryPoint) +// } } - catch (e: ClassNotFoundException) { - printdbgerr(this, "$moduleName has nonexisting entry point, skipping...") + catch (e: Throwable) { + printdbgerr(this, "$moduleName failed to load, skipping...") printdbgerr(this, "\t$e") + val ba = ByteArray64GrowableOutputStream() + val sw = PrintStream(ba, true) + e.printStackTrace(sw) + val bw = ByteArray64Reader(ba.toByteArray64(), Charsets.UTF_8) + printdbgerr(this, bw.readText()) moduleInfo.remove(moduleName) } newClass?.let { - val newClassConstructor = newClass!!.getConstructor(/* no args defined */) + val newClassConstructor = newClass.getConstructor(/* no args defined */) val newClassInstance = newClassConstructor.newInstance(/* no args defined */) entryPointClasses.add(newClassInstance as ModuleEntryPoint) (newClassInstance as ModuleEntryPoint).invoke() } + } @@ -150,7 +180,7 @@ object ModMgr { operator fun invoke() { } - fun reloadModules() { + /*fun reloadModules() { loadOrder.forEach { val moduleName = it @@ -196,7 +226,7 @@ object ModMgr { moduleInfo.remove(moduleName) } } - } + }*/ private fun checkExistence(module: String) { if (!moduleInfo.containsKey(module)) @@ -309,7 +339,10 @@ object ModMgr { printdbg(this, "Reading item ${itemName} <<- internal #$internalID with className $className") - val loadedClass = Class.forName(className) + val loadedClass = if (moduleClassloader[module] != null) + Class.forName(className, true, moduleClassloader[module]) + else + Class.forName(className) val loadedClassConstructor = loadedClass.getConstructor(ItemID::class.java) val loadedClassInstance = loadedClassConstructor.newInstance(itemName) diff --git a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt index 7d1ea0d6d..11c2b56dd 100644 --- a/src/net/torvald/terrarum/UIItemInventoryCatBar.kt +++ b/src/net/torvald/terrarum/UIItemInventoryCatBar.kt @@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.Pixmap import com.badlogic.gdx.graphics.Texture import com.badlogic.gdx.graphics.g2d.SpriteBatch -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.ui.* import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import kotlin.math.roundToInt diff --git a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt index 14108aab8..a987c7a09 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElemSimple.kt @@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText diff --git a/src/net/torvald/terrarum/UIItemInventoryElemWide.kt b/src/net/torvald/terrarum/UIItemInventoryElemWide.kt index a42a9b2af..703baa4ba 100644 --- a/src/net/torvald/terrarum/UIItemInventoryElemWide.kt +++ b/src/net/torvald/terrarum/UIItemInventoryElemWide.kt @@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVEN_DEBUG_MODE import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes diff --git a/src/net/torvald/terrarum/blockproperties/BlockCodex.kt b/src/net/torvald/terrarum/blockproperties/BlockCodex.kt index 636f8c7a3..1cdf2d42c 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockCodex.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockCodex.kt @@ -5,7 +5,7 @@ import net.torvald.terrarum.App import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.App.printmsg import net.torvald.terrarum.ReferencingRanges.PREFIX_VIRTUALTILE -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.FluidType import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.utils.CSVFetcher diff --git a/src/net/torvald/terrarum/blockproperties/BlockProp.kt b/src/net/torvald/terrarum/blockproperties/BlockProp.kt index 27b79cd0d..aceec3290 100644 --- a/src/net/torvald/terrarum/blockproperties/BlockProp.kt +++ b/src/net/torvald/terrarum/blockproperties/BlockProp.kt @@ -3,7 +3,7 @@ package net.torvald.terrarum.blockproperties import net.torvald.gdx.graphics.Cvec import net.torvald.random.XXHash32 import net.torvald.terrarum.* -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.fmod /** diff --git a/src/net/torvald/terrarum/blockproperties/WireCodex.kt b/src/net/torvald/terrarum/blockproperties/WireCodex.kt index 73c7c7714..a73541794 100644 --- a/src/net/torvald/terrarum/blockproperties/WireCodex.kt +++ b/src/net/torvald/terrarum/blockproperties/WireCodex.kt @@ -2,8 +2,8 @@ package net.torvald.terrarum.blockproperties import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.utils.CSVFetcher import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import org.apache.commons.csv.CSVRecord diff --git a/src/net/torvald/terrarum/blockproperties/WireProp.kt b/src/net/torvald/terrarum/blockproperties/WireProp.kt index 48e5d6d3a..d1bfb266b 100644 --- a/src/net/torvald/terrarum/blockproperties/WireProp.kt +++ b/src/net/torvald/terrarum/blockproperties/WireProp.kt @@ -1,7 +1,7 @@ package net.torvald.terrarum.blockproperties import net.torvald.terrarum.Codex -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID /** * Created by minjaesong on 2021-07-28. diff --git a/src/net/torvald/terrarum/blockstats/BlockStats.kt b/src/net/torvald/terrarum/blockstats/BlockStats.kt index 5fab630d4..59be109b9 100644 --- a/src/net/torvald/terrarum/blockstats/BlockStats.kt +++ b/src/net/torvald/terrarum/blockstats/BlockStats.kt @@ -6,7 +6,7 @@ import net.torvald.terrarum.INGAME import net.torvald.terrarum.Terrarum import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.worlddrawer.BlocksDrawer diff --git a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt index 6f76f803e..364f98a3c 100644 --- a/src/net/torvald/terrarum/gameactors/ActorWithBody.kt +++ b/src/net/torvald/terrarum/gameactors/ActorWithBody.kt @@ -12,7 +12,7 @@ import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockProp import net.torvald.terrarum.gamecontroller.KeyToggler -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.BlockAddress import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid diff --git a/src/net/torvald/terrarum/gameactors/WireActor.kt b/src/net/torvald/terrarum/gameactors/WireActor.kt index 7405c83bc..a50227cb0 100644 --- a/src/net/torvald/terrarum/gameactors/WireActor.kt +++ b/src/net/torvald/terrarum/gameactors/WireActor.kt @@ -3,7 +3,7 @@ package net.torvald.terrarum.gameactors import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID /** * FIXME Constructor is super expensive diff --git a/src/net/torvald/terrarum/gamecontroller/IngameController.kt b/src/net/torvald/terrarum/gamecontroller/IngameController.kt index 6f08ed759..d604683c5 100644 --- a/src/net/torvald/terrarum/gamecontroller/IngameController.kt +++ b/src/net/torvald/terrarum/gamecontroller/IngameController.kt @@ -2,7 +2,6 @@ package net.torvald.terrarum.gamecontroller import com.badlogic.gdx.Gdx import com.badlogic.gdx.Input -import com.badlogic.gdx.Input.Keys import com.badlogic.gdx.InputAdapter import com.badlogic.gdx.controllers.Controllers import com.badlogic.gdx.utils.GdxRuntimeException @@ -15,7 +14,7 @@ import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.controller.TerrarumController import net.torvald.terrarum.floorInt import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar diff --git a/src/net/torvald/terrarum/gameitem/GameItem.kt b/src/net/torvald/terrarum/gameitems/GameItem.kt similarity index 99% rename from src/net/torvald/terrarum/gameitem/GameItem.kt rename to src/net/torvald/terrarum/gameitems/GameItem.kt index 5836cc900..ce6a16565 100644 --- a/src/net/torvald/terrarum/gameitem/GameItem.kt +++ b/src/net/torvald/terrarum/gameitems/GameItem.kt @@ -1,4 +1,4 @@ -package net.torvald.terrarum.gameitem +package net.torvald.terrarum.gameitems import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.TextureRegion diff --git a/src/net/torvald/terrarum/gameworld/GameWorld.kt b/src/net/torvald/terrarum/gameworld/GameWorld.kt index 1fa6db9b8..d5955eb83 100644 --- a/src/net/torvald/terrarum/gameworld/GameWorld.kt +++ b/src/net/torvald/terrarum/gameworld/GameWorld.kt @@ -9,7 +9,7 @@ import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.Fluid import net.torvald.terrarum.gameactors.ActorID import net.torvald.terrarum.gameactors.WireActor -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer import net.torvald.terrarum.realestate.LandUtil import net.torvald.terrarum.utils.* diff --git a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt b/src/net/torvald/terrarum/gameworld/WorldSimulator.kt index 72d40a900..e2f303b4a 100644 --- a/src/net/torvald/terrarum/gameworld/WorldSimulator.kt +++ b/src/net/torvald/terrarum/gameworld/WorldSimulator.kt @@ -7,7 +7,7 @@ import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.Fluid import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.Controllable -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.TerrarumIngame.Companion.inUpdateRange import net.torvald.terrarum.modulebasegame.gameactors.* diff --git a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt index d5c2e46cd..a15db0bc4 100644 --- a/src/net/torvald/terrarum/itemproperties/ItemCodex.kt +++ b/src/net/torvald/terrarum/itemproperties/ItemCodex.kt @@ -8,8 +8,8 @@ import net.torvald.terrarum.ReferencingRanges import net.torvald.terrarum.ReferencingRanges.PREFIX_ACTORITEM import net.torvald.terrarum.ReferencingRanges.PREFIX_DYNAMICITEM import net.torvald.terrarum.Terrarum -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem import net.torvald.terrarum.worlddrawer.BlocksDrawer diff --git a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt index 12dd60d7b..c6a6004b3 100644 --- a/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt +++ b/src/net/torvald/terrarum/modulebasegame/BuildingMaker.kt @@ -12,7 +12,7 @@ import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.blockproperties.BlockPropUtil import net.torvald.terrarum.gameactors.* import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid import net.torvald.terrarum.gameworld.WorldTime diff --git a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt index bb9ff7f35..20982153e 100644 --- a/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt +++ b/src/net/torvald/terrarum/modulebasegame/EntryPoint.kt @@ -5,7 +5,7 @@ import net.torvald.terrarum.App.IS_DEVELOPMENT_BUILD import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.blockproperties.BlockProp import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.modulebasegame.gameitems.BlockBase import net.torvald.terrarum.modulebasegame.imagefont.WatchFont import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack diff --git a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt index 9313a0f77..f80c307eb 100644 --- a/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt +++ b/src/net/torvald/terrarum/modulebasegame/TerrarumIngame.kt @@ -19,8 +19,8 @@ import net.torvald.terrarum.gameactors.* import net.torvald.terrarum.gamecontroller.IngameController import net.torvald.terrarum.gamecontroller.KeyToggler import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.inInteractableRange +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.inInteractableRange import net.torvald.terrarum.gameparticles.ParticleBase import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.WorldSimulator @@ -33,7 +33,6 @@ import net.torvald.terrarum.modulebasegame.worldgenerator.RoguelikeRandomiser import net.torvald.terrarum.modulebasegame.worldgenerator.Worldgen import net.torvald.terrarum.modulebasegame.worldgenerator.WorldgenParams import net.torvald.terrarum.realestate.LandUtil -import net.torvald.terrarum.savegame.DiskSkimmer import net.torvald.terrarum.savegame.VDUtil import net.torvald.terrarum.savegame.VirtualDisk import net.torvald.terrarum.serialise.Common @@ -174,11 +173,22 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { field = value } + var wearableDeviceUI: UICanvas? = null + set(value) { + field = value + value?.setPosition(100, 100) // TODO + } + val getUIFixture = object : Id_UICanvasNullable { // quick workaround for the type erasure (you can't use lambda...) override fun get(): UICanvas? { return uiFixture } } + val getWearableDeviceUI = object : Id_UICanvasNullable { // quick workaround for the type erasure (you can't use lambda...) + override fun get(): UICanvas? { + return wearableDeviceUI + } + } lateinit var uiVitalPrimary: UICanvas lateinit var uiVitalSecondary: UICanvas @@ -537,6 +547,7 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) { uiQuickBar, // uiBasicInfo, // temporarily commenting out: wouldn't make sense for v 0.3 release uiWatchTierOne, + getWearableDeviceUI, UIScreenZoom(), uiAutosaveNotifier, uiInventoryPlayer, diff --git a/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt index b319268f3..3f0ca4813 100644 --- a/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/console/Inventory.kt @@ -4,8 +4,7 @@ import net.torvald.terrarum.Terrarum import net.torvald.terrarum.console.ConsoleCommand import net.torvald.terrarum.console.Echo import net.torvald.terrarum.console.EchoError -import net.torvald.terrarum.gameitem.ItemID -import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.* import net.torvald.terrarum.Terrarum.PLAYER_REF_ID import net.torvald.terrarum.gameactors.ActorID diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt index 3fbae4e45..b7e8b27bb 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorHumanoid.kt @@ -8,7 +8,7 @@ import net.torvald.terrarum.* import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.gameactors.* import net.torvald.terrarum.gameactors.faction.Faction -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.realestate.LandUtil import org.dyn4j.geometry.Vector2 diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt index 15332834b..a2657a24a 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/ActorInventory.kt @@ -4,8 +4,8 @@ import net.torvald.terrarum.App import net.torvald.terrarum.ItemCodex import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.Actor -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar /** diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt index a430b8906..6ccc0c808 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/CanBeAnItem.kt @@ -1,6 +1,6 @@ package net.torvald.terrarum.modulebasegame.gameactors -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem /** * Created by minjaesong on 2016-01-31. diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt index 9ad4e15c4..0839ae33f 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/DroppedItem.kt @@ -10,7 +10,7 @@ import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.PhysProperties import net.torvald.terrarum.gameactors.drawBodyInGoodPosition -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID /** * Created by minjaesong on 2016-03-15. diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt index 098f09b70..1af2d4551 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureBase.kt @@ -7,7 +7,7 @@ import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.gameactors.ActorID import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.PhysProperties -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.ui.UICanvas import org.dyn4j.geometry.Vector2 diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt index 69858d9b5..e49b46af8 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureInventory.kt @@ -2,8 +2,8 @@ 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.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.lock import net.torvald.terrarum.modulebasegame.TerrarumIngame import java.math.BigInteger diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt index dbac0dd6b..2b1d7d8d1 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureStorageChest.kt @@ -3,11 +3,10 @@ package net.torvald.terrarum.modulebasegame.gameactors import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch -import com.badlogic.gdx.graphics.glutils.ShapeRenderer import net.torvald.terrarum.* import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory.Companion.CAPACITY_MODE_COUNT import net.torvald.terrarum.modulebasegame.ui.* diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt index e4287f0da..354dd1737 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/HumanoidNPC.kt @@ -6,7 +6,7 @@ import net.torvald.terrarum.gameactors.AIControlled import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.ai.ActorAI -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.itemproperties.Material /** diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt index 195b04978..eeb0cbf73 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/Pocketed.kt @@ -4,8 +4,8 @@ import net.torvald.terrarum.App import net.torvald.terrarum.ItemCodex import net.torvald.terrarum.gameactors.ActorValue import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID /** * Created by minjaesong on 2016-01-15. diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt index 42d40619a..c272e4eb6 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/WeaponSwung.kt @@ -5,7 +5,7 @@ import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.Hitbox import net.torvald.terrarum.gameactors.Luminous import net.torvald.terrarum.gameactors.PhysProperties -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID /** * Created by minjaesong on 2016-04-26. diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt index f5b2465a9..2d497f1ad 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/BlockBase.kt @@ -2,9 +2,9 @@ package net.torvald.terrarum.modulebasegame.gameitems import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID -import net.torvald.terrarum.gameitem.inInteractableRange +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.gameitems.inInteractableRange import net.torvald.terrarum.modulebasegame.TerrarumIngame /** diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt index 9df360604..f6b9fa49a 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemLogicSignalEmitter.kt @@ -6,8 +6,8 @@ import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt index b32188f65..a2853ac4b 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemStorageChest.kt @@ -4,9 +4,9 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID -import net.torvald.terrarum.gameitem.inInteractableRange +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.gameitems.inInteractableRange import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.gameactors.FixtureStorageChest import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt index d9fcf6377..048dccec7 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/ItemTikiTorch.kt @@ -5,9 +5,9 @@ import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.ModMgr import net.torvald.terrarum.Terrarum import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID -import net.torvald.terrarum.gameitem.inInteractableRange +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.gameitems.inInteractableRange import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt index c98723e0e..26578ea17 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/PickaxeGeneric.kt @@ -7,9 +7,9 @@ import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED import net.torvald.terrarum.blockproperties.Block import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID -import net.torvald.terrarum.gameitem.inInteractableRange +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.gameitems.inInteractableRange import net.torvald.terrarum.itemproperties.Calculate import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore.BASE_MASS_AND_SIZE diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WeaponMeleeCore.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WeaponMeleeCore.kt index abef264dd..8357b1307 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WeaponMeleeCore.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WeaponMeleeCore.kt @@ -2,8 +2,8 @@ package net.torvald.terrarum.modulebasegame.gameitems import net.torvald.random.Fudge3 import net.torvald.random.HQRNG -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid import kotlin.math.pow diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt index 57b432414..bcb6cff15 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WireCutterAll.kt @@ -5,11 +5,10 @@ import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.Point2i import net.torvald.terrarum.Terrarum import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE -import net.torvald.terrarum.WireCodex import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID -import net.torvald.terrarum.gameitem.inInteractableRange +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID +import net.torvald.terrarum.gameitems.inInteractableRange import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt index fc804c217..69e4a267f 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WireGraphDebugger.kt @@ -6,8 +6,8 @@ import net.torvald.EMDASH import net.torvald.terrarum.* import net.torvald.terrarum.gameactors.ActorWithBody import net.torvald.terrarum.gameactors.BlockMarkerActor -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.TerrarumIngame class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) { diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/WirePieceSignalWire.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/WirePieceSignalWire.kt index 37ebff00b..d2c0fe6b9 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/WirePieceSignalWire.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/WirePieceSignalWire.kt @@ -3,8 +3,8 @@ package net.torvald.terrarum.modulebasegame.gameitems import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.CommonResourcePool import net.torvald.terrarum.gameactors.ActorWithBody -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.GameItem +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.itemproperties.Material /** diff --git a/src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt b/src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt index 4af847e9c..327b891fe 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/AmmoMeterProxy.kt @@ -1,7 +1,6 @@ package net.torvald.terrarum.modulebasegame.ui -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid import net.torvald.terrarum.* diff --git a/src/net/torvald/terrarum/modulebasegame/ui/InventoryNegotiator.kt b/src/net/torvald/terrarum/modulebasegame/ui/InventoryNegotiator.kt index 0d0d4dcad..e57571ad4 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/InventoryNegotiator.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/InventoryNegotiator.kt @@ -1,7 +1,7 @@ package net.torvald.terrarum.modulebasegame.ui import net.torvald.terrarum.UIItemInventoryCatBar.Companion.CAT_ALL -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory /** diff --git a/src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageFactory.kt b/src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageFactory.kt index 6ea705386..029fc8c7e 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageFactory.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/ItemSlotImageFactory.kt @@ -4,8 +4,7 @@ import com.badlogic.gdx.Gdx import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion -import net.torvald.terrarum.gameitem.GameItem -import net.torvald.terrarum.itemproperties.ItemCodex +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.toInt import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import net.torvald.terrarum.* diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt index 5a08f2803..8ef3f41dc 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryCellBase.kt @@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.badlogic.gdx.graphics.g2d.TextureRegion import net.torvald.terrarum.GdxColorMap import net.torvald.terrarum.abs -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.ui.UICanvas import net.torvald.terrarum.ui.UIItem import kotlin.math.roundToInt diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt index d28350d75..913143959 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryEquippedView.kt @@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Camera import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.itemListHeight import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericKeyDownFun import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryItemGrid.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryItemGrid.kt index 8e43251b5..b43eb80ef 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryItemGrid.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIItemInventoryItemGrid.kt @@ -7,14 +7,12 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch import net.torvald.terrarum.* import net.torvald.terrarum.UIItemInventoryCatBar.Companion.CAT_ALL import net.torvald.terrarum.gameactors.AVKey -import net.torvald.terrarum.gameitem.GameItem +import net.torvald.terrarum.gameitems.GameItem import net.torvald.terrarum.gameworld.fmod import net.torvald.terrarum.modulebasegame.TerrarumIngame import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair -import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK_ACTIVE -import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.CELL_COL import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVEN_DEBUG_MODE import net.torvald.terrarum.ui.Toolkit import net.torvald.terrarum.ui.UICanvas @@ -395,7 +393,7 @@ class UIItemInventoryItemGrid( // filter items getInventory().forEach { - if ((filter.contains(ItemCodex[it.itm]!!.inventoryCategory) || filter[0] == CAT_ALL)) + if ((filter.contains((ItemCodex[it.itm]?.inventoryCategory ?: throw IllegalArgumentException("Unknown item: ${it.itm}"))) || filter[0] == CAT_ALL)) inventorySortList.add(it) } diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt index 8867e5238..4f6702075 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIPaletteSelector.kt @@ -9,7 +9,7 @@ import net.torvald.terrarum.App import net.torvald.terrarum.ItemCodex import net.torvald.terrarum.blendNormal import net.torvald.terrarum.blockproperties.Block -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.modulebasegame.BuildingMaker import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK import net.torvald.terrarum.ui.Toolkit diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt index 1cf70baef..391e6fa4b 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleModules.kt @@ -15,7 +15,7 @@ import net.torvald.terrarum.ui.UIItemModuleInfoCell /** * Created by minjaesong on 2017-08-01. */ -class UITitleModules : UICanvas() { +class UITitleModules(val remoCon: UIRemoCon) : UICanvas() { override var openCloseTime: Second = 0f diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt index 9e67e8a6d..15796ab3a 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UITitleRemoConYaml.kt @@ -20,6 +20,7 @@ object UITitleRemoConYaml { - MENU_LABEL_LANGUAGE : net.torvald.terrarum.modulebasegame.ui.UITitleLanguage - MENU_MODULES : net.torvald.terrarum.ModOptionsHost - MENU_LABEL_RETURN+WRITETOCONFIG +- MENU_MODULES : net.torvald.terrarum.modulebasegame.ui.UITitleModules - MENU_LABEL_CREDITS - MENU_LABEL_COPYRIGHT : net.torvald.terrarum.modulebasegame.ui.UITitleCredits - MENU_CREDIT_GPL_DNT : net.torvald.terrarum.modulebasegame.ui.UITitleGPL3 diff --git a/src/net/torvald/terrarum/utils/HashArray.kt b/src/net/torvald/terrarum/utils/HashArray.kt index d310f864b..8d205bcf2 100644 --- a/src/net/torvald/terrarum/utils/HashArray.kt +++ b/src/net/torvald/terrarum/utils/HashArray.kt @@ -2,7 +2,7 @@ package net.torvald.terrarum.utils import net.torvald.terrarum.gameactors.ActorValue -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.BlockAddress import net.torvald.terrarum.gameworld.FluidType import net.torvald.terrarum.gameworld.GameWorld diff --git a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt index 7997b0918..b409077b7 100644 --- a/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt +++ b/src/net/torvald/terrarum/worlddrawer/BlocksDrawer.kt @@ -9,7 +9,7 @@ import net.torvald.terrarum.App.measureDebugTime import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.blockproperties.Block -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.GameWorld import net.torvald.terrarum.gameworld.WorldSimulator import net.torvald.terrarum.gameworld.WorldTime diff --git a/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt b/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt index d2a8e1d02..7b3da2455 100644 --- a/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt +++ b/src/net/torvald/terrarum/worlddrawer/CreateTileAtlas.kt @@ -11,7 +11,7 @@ import net.torvald.terrarum.* import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE import net.torvald.terrarum.blockproperties.Fluid -import net.torvald.terrarum.gameitem.ItemID +import net.torvald.terrarum.gameitems.ItemID import net.torvald.terrarum.gameworld.GameWorld import kotlin.math.roundToInt diff --git a/terrarum.terrarum.iml b/terrarum.terrarum.iml index 4badc2ccd..d1cfc0d0e 100644 --- a/terrarum.terrarum.iml +++ b/terrarum.terrarum.iml @@ -11,21 +11,15 @@ - - - - - -