mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
workign on the modloader in progress
This commit is contained in:
8
.idea/artifacts/ModuleBasegame.xml
generated
8
.idea/artifacts/ModuleBasegame.xml
generated
@@ -1,8 +0,0 @@
|
|||||||
<component name="ArtifactManager">
|
|
||||||
<artifact type="jar" name="ModuleBasegame">
|
|
||||||
<output-path>$PROJECT_DIR$/out/artifacts/ModuleBasegame</output-path>
|
|
||||||
<root id="archive" name="ModuleBasegame.jar">
|
|
||||||
<element id="module-output" name="ingamemodule_basegame" />
|
|
||||||
</root>
|
|
||||||
</artifact>
|
|
||||||
</component>
|
|
||||||
10
.idea/artifacts/ModuleComputers.xml
generated
Normal file
10
.idea/artifacts/ModuleComputers.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<component name="ArtifactManager">
|
||||||
|
<artifact type="jar" name="ModuleComputers">
|
||||||
|
<output-path>$PROJECT_DIR$/assets/mods/dwarventech</output-path>
|
||||||
|
<root id="archive" name="ModuleComputers.jar">
|
||||||
|
<element id="module-output" name="ModuleComputers" />
|
||||||
|
<element id="extracted-dir" path="$PROJECT_DIR$/ModuleComputers/lib/TerrarumTSVM.jar" path-in-jar="/" />
|
||||||
|
<element id="extracted-dir" path="$PROJECT_DIR$/ModuleComputers/lib/TerranVirtualDisk.jar" path-in-jar="/" />
|
||||||
|
</root>
|
||||||
|
</artifact>
|
||||||
|
</component>
|
||||||
10
.idea/libraries/ModuleComputersLib.xml
generated
Normal file
10
.idea/libraries/ModuleComputersLib.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="ModuleComputersLib">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="file://$PROJECT_DIR$/ModuleComputers/lib" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
<jarDirectory url="file://$PROJECT_DIR$/ModuleComputers/lib" recursive="false" />
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
11
.idea/libraries/TerranVirtualDisk.xml
generated
11
.idea/libraries/TerranVirtualDisk.xml
generated
@@ -1,11 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="TerranVirtualDisk">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$PROJECT_DIR$/lib/TerranVirtualDisk.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$PROJECT_DIR$/lib/TerranVirtualDisk-src.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
2
.idea/modules.xml
generated
2
.idea/modules.xml
generated
@@ -5,7 +5,7 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/ingamemodule_basegame/ingamemodule_basegame.iml" filepath="$PROJECT_DIR$/ingamemodule_basegame/ingamemodule_basegame.iml" />
|
<module fileurl="file://$PROJECT_DIR$/ModuleComputers/ModuleComputers.iml" filepath="$PROJECT_DIR$/ModuleComputers/ModuleComputers.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/terrarum.terrarum.iml" filepath="$PROJECT_DIR$/terrarum.terrarum.iml" />
|
<module fileurl="file://$PROJECT_DIR$/terrarum.terrarum.iml" filepath="$PROJECT_DIR$/terrarum.terrarum.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
10
.idea/runConfigurations.xml
generated
Normal file
10
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="RunConfigurationProducerService">
|
||||||
|
<option name="ignoredProducers">
|
||||||
|
<set>
|
||||||
|
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
|
||||||
|
</set>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
3
.idea/runConfigurations/App.xml
generated
3
.idea/runConfigurations/App.xml
generated
@@ -12,6 +12,9 @@
|
|||||||
</extension>
|
</extension>
|
||||||
<method v="2">
|
<method v="2">
|
||||||
<option name="Make" enabled="true" />
|
<option name="Make" enabled="true" />
|
||||||
|
<option name="BuildArtifacts" enabled="true">
|
||||||
|
<artifact name="ModuleComputers" />
|
||||||
|
</option>
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
</component>
|
</component>
|
||||||
17
ModuleComputers/ModuleComputers.iml
Normal file
17
ModuleComputers/ModuleComputers.iml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="ModuleComputersLib" level="project" />
|
||||||
|
<orderEntry type="module" module-name="terrarum.terrarum" />
|
||||||
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
|
<orderEntry type="library" name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" level="project" />
|
||||||
|
<orderEntry type="library" name="com.badlogicgames.gdx:gdx:1.10.0" level="project" />
|
||||||
|
<orderEntry type="library" name="graalvm-js-21.1.0 and graalvm-js-scriptengine-21.1.0" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
BIN
ModuleComputers/lib/TerranVirtualDisk.jar
Normal file
BIN
ModuleComputers/lib/TerranVirtualDisk.jar
Normal file
Binary file not shown.
BIN
ModuleComputers/lib/TerrarumTSVM.jar
Normal file
BIN
ModuleComputers/lib/TerrarumTSVM.jar
Normal file
Binary file not shown.
@@ -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() {
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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() {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<Int,Byte>(1024)
|
||||||
|
|
||||||
|
private fun getNearbyTilesPos(x: Int, y: Int): Array<Point2i> {
|
||||||
|
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:
|
||||||
|
*
|
||||||
|
* <Y> <X> <COL>
|
||||||
|
*
|
||||||
|
* 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<Int,Byte>(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
|
||||||
|
}}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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"
|
"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"
|
"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"
|
"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"
|
"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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";"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"
|
"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"
|
"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"
|
"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"
|
||||||
|
|||||||
|
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
"idst";"tens";"impf";"dsty";"fmod";"endurance";"tcond";"comments"
|
"idst";"tens";"impf";"dsty";"fmod";"endurance";"tcond";"comments"
|
||||||
"ROCK"; "15"; "210";"3000"; "1"; "0.42"; "1.0";"data is that of marble"
|
"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"
|
"CUPR"; "210"; "770";"8960"; "2"; "1.00";"401.0";"copper"
|
||||||
"EGLS"; "33";"1000";"2325"; "4"; "0.82"; "1.0";"elven glass/moldavite"
|
"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"
|
"IRON"; "350";"1085";"7874"; "5"; "1.42"; "1.0";"not wrought iron; just natural iron"
|
||||||
|
|||||||
|
@@ -21,8 +21,9 @@ releasedate=2017-07-14
|
|||||||
# The version, must follow Semver 2.0.0 scheme (https://semver.org/)
|
# The version, must follow Semver 2.0.0 scheme (https://semver.org/)
|
||||||
version=0.2.0
|
version=0.2.0
|
||||||
|
|
||||||
# External JARs the module might use, separate multiple by semicolon (;)
|
# External JAR that the module is compiled. If your module requires yet another library, the JAR must be compiled as a "Fatjar";
|
||||||
libraries=
|
# Due to security reasons, loading an arbitrary JAR is not allowed.
|
||||||
|
jar=
|
||||||
|
|
||||||
# Modules that must be pre-installed, separate multiple by semicolon (;)
|
# Modules that must be pre-installed, separate multiple by semicolon (;)
|
||||||
# Dependency syntax: "module's identification name (aka folder name) spaces allowed versionnumber"
|
# Dependency syntax: "module's identification name (aka folder name) spaces allowed versionnumber"
|
||||||
|
|||||||
BIN
assets/mods/dwarventech/ModuleComputers.jar
Normal file
BIN
assets/mods/dwarventech/ModuleComputers.jar
Normal file
Binary file not shown.
BIN
assets/mods/dwarventech/bios/pipboot.rom
Normal file
BIN
assets/mods/dwarventech/bios/pipboot.rom
Normal file
Binary file not shown.
13
assets/mods/dwarventech/bios/pipcode.bas
Normal file
13
assets/mods/dwarventech/bios/pipcode.bas
Normal file
@@ -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)
|
||||||
2
assets/mods/dwarventech/items/itemid.csv
Normal file
2
assets/mods/dwarventech/items/itemid.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
"id";"classname"
|
||||||
|
"1";"net.torvald.terrarum.modulecomputers.gameitems.ItemWearableWorldRadar"
|
||||||
|
@@ -3,7 +3,7 @@ description=Dwarven technicians are emerged from their hiding
|
|||||||
author=Terrarum
|
author=Terrarum
|
||||||
package=net.torvald.terrarum.modulecomputers
|
package=net.torvald.terrarum.modulecomputers
|
||||||
entrypoint=net.torvald.terrarum.modulecomputers.EntryPoint
|
entrypoint=net.torvald.terrarum.modulecomputers.EntryPoint
|
||||||
releasedate=2017-07-14
|
releasedate=2021-12-03
|
||||||
version=0.2.0
|
version=0.3.0
|
||||||
libraries=
|
jar=ModuleComputers.jar
|
||||||
dependency=basegame 0.2.*
|
dependency=basegame 0.2.*
|
||||||
|
|||||||
@@ -1,30 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="JAVA_MODULE" version="4">
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" name="com.badlogicgames.gdx:gdx:1.10.0" level="project" />
|
|
||||||
<orderEntry type="library" name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" level="project" />
|
|
||||||
<orderEntry type="library" name="GetCpuName-src" level="project" />
|
|
||||||
<orderEntry type="library" name="jxinput-1.0.0-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="prtree" level="project" />
|
|
||||||
<orderEntry type="library" name="TerranVirtualDisk-src" level="project" />
|
|
||||||
<orderEntry type="library" name="Terrarum_Joise" level="project" />
|
|
||||||
<orderEntry type="library" name="TerrarumSansBitmap" level="project" />
|
|
||||||
<orderEntry type="library" name="commons-codec:commons-codec:1.15" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-controllers-core-2.2.1-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-controllers-desktop-2.2.1-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="org.apache.commons:commons-csv:1.8" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-controllers-core-2.2.1" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-controllers-desktop-2.2.1" level="project" />
|
|
||||||
<orderEntry type="library" name="jxinput-1.0.0" level="project" />
|
|
||||||
<orderEntry type="library" name="TerranVirtualDisk" level="project" />
|
|
||||||
<orderEntry type="library" name="graal-sdk-21.1.0-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-platform-1.10.0-natives-desktop" level="project" />
|
|
||||||
<orderEntry type="library" name="graalvm-js-21.1.0 and graalvm-js-scriptengine-21.1.0" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
||||||
@@ -259,6 +259,14 @@ public class App implements ApplicationListener {
|
|||||||
private static FrameBuffer renderFBO;
|
private static FrameBuffer renderFBO;
|
||||||
|
|
||||||
public static HashSet<File> tempFilePool = new HashSet<>();
|
public static HashSet<File> tempFilePool = new HashSet<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>If your object is not Disposable, try following code:</p>
|
||||||
|
*
|
||||||
|
* <code>
|
||||||
|
* App.disposables.add(Disposable { vm.dispose() })
|
||||||
|
* </code>
|
||||||
|
*/
|
||||||
public static HashSet<Disposable> disposables = new HashSet<>();
|
public static HashSet<Disposable> disposables = new HashSet<>();
|
||||||
|
|
||||||
public static char gamepadLabelStart = 0xE000; // lateinit
|
public static char gamepadLabelStart = 0xE000; // lateinit
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package net.torvald.terrarum
|
package net.torvald.terrarum
|
||||||
|
|
||||||
import com.badlogic.gdx.Screen
|
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
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.ActorWithBody
|
||||||
import net.torvald.terrarum.gameactors.BlockMarkerActor
|
import net.torvald.terrarum.gameactors.BlockMarkerActor
|
||||||
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
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.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.modulebasegame.IngameRenderer
|
import net.torvald.terrarum.modulebasegame.IngameRenderer
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||||
|
|||||||
@@ -5,24 +5,29 @@ import com.badlogic.gdx.files.FileHandle
|
|||||||
import net.torvald.terrarum.App.*
|
import net.torvald.terrarum.App.*
|
||||||
import net.torvald.terrarum.blockproperties.BlockCodex
|
import net.torvald.terrarum.blockproperties.BlockCodex
|
||||||
import net.torvald.terrarum.blockproperties.WireCodex
|
import net.torvald.terrarum.blockproperties.WireCodex
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
import net.torvald.terrarum.itemproperties.ItemCodex
|
||||||
import net.torvald.terrarum.itemproperties.MaterialCodex
|
import net.torvald.terrarum.itemproperties.MaterialCodex
|
||||||
import net.torvald.terrarum.langpack.Lang
|
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.CSVFetcher
|
||||||
import net.torvald.terrarum.utils.JsonFetcher
|
import net.torvald.terrarum.utils.JsonFetcher
|
||||||
import org.apache.commons.csv.CSVFormat
|
import org.apache.commons.csv.CSVFormat
|
||||||
import org.apache.commons.csv.CSVParser
|
import org.apache.commons.csv.CSVParser
|
||||||
import org.apache.commons.csv.CSVRecord
|
import org.apache.commons.csv.CSVRecord
|
||||||
import java.io.File
|
import java.io.*
|
||||||
import java.io.FileInputStream
|
import java.net.URL
|
||||||
import java.io.FileNotFoundException
|
import java.net.URLClassLoader
|
||||||
import java.nio.file.FileSystems
|
import java.nio.file.FileSystems
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modules (or Mods) Resource Manager
|
* Modules (or Mods) Resource Manager
|
||||||
*
|
*
|
||||||
@@ -48,14 +53,14 @@ object ModMgr {
|
|||||||
val entryPoint: String,
|
val entryPoint: String,
|
||||||
val releaseDate: String,
|
val releaseDate: String,
|
||||||
val version: String,
|
val version: String,
|
||||||
val libraries: Array<String>,
|
val jar: String,
|
||||||
val dependencies: Array<String>
|
val dependencies: Array<String>
|
||||||
) {
|
) {
|
||||||
override fun toString() =
|
override fun toString() =
|
||||||
"\tModule #$order -- $properName | $version | $author\n" +
|
"\tModule #$order -- $properName | $version | $author\n" +
|
||||||
"\t$description | $releaseDate\n" +
|
"\t$description | $releaseDate\n" +
|
||||||
"\tEntry point: $entryPoint\n" +
|
"\tEntry point: $entryPoint\n" +
|
||||||
"\tExternal libraries: ${libraries.joinToString(", ")}\n" +
|
"\tJarfile: $jar\n" +
|
||||||
"\tDependencies: ${dependencies.joinToString("\n\t")}"
|
"\tDependencies: ${dependencies.joinToString("\n\t")}"
|
||||||
}
|
}
|
||||||
const val modDir = "./assets/mods"
|
const val modDir = "./assets/mods"
|
||||||
@@ -64,6 +69,8 @@ object ModMgr {
|
|||||||
val moduleInfo = HashMap<String, ModuleMetadata>()
|
val moduleInfo = HashMap<String, ModuleMetadata>()
|
||||||
val entryPointClasses = ArrayList<ModuleEntryPoint>()
|
val entryPointClasses = ArrayList<ModuleEntryPoint>()
|
||||||
|
|
||||||
|
val moduleClassloader = HashMap<String, URLClassLoader>()
|
||||||
|
|
||||||
val loadOrder = ArrayList<String>()
|
val loadOrder = ArrayList<String>()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@@ -102,10 +109,10 @@ object ModMgr {
|
|||||||
val entryPoint = modMetadata.getProperty("entrypoint")
|
val entryPoint = modMetadata.getProperty("entrypoint")
|
||||||
val releaseDate = modMetadata.getProperty("releasedate")
|
val releaseDate = modMetadata.getProperty("releasedate")
|
||||||
val version = modMetadata.getProperty("version")
|
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 dependency = modMetadata.getProperty("dependency").split(Regex(""";[ ]*""")).toTypedArray()
|
||||||
val isDir = FileSystems.getDefault().getPath("$modDir/$moduleName").toFile().isDirectory
|
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])
|
printdbg(this, moduleInfo[moduleName])
|
||||||
|
|
||||||
@@ -114,21 +121,44 @@ object ModMgr {
|
|||||||
if (entryPoint.isNotBlank()) {
|
if (entryPoint.isNotBlank()) {
|
||||||
var newClass: Class<*>? = null
|
var newClass: Class<*>? = null
|
||||||
try {
|
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<URL>(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) {
|
catch (e: Throwable) {
|
||||||
printdbgerr(this, "$moduleName has nonexisting entry point, skipping...")
|
printdbgerr(this, "$moduleName failed to load, skipping...")
|
||||||
printdbgerr(this, "\t$e")
|
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)
|
moduleInfo.remove(moduleName)
|
||||||
}
|
}
|
||||||
|
|
||||||
newClass?.let {
|
newClass?.let {
|
||||||
val newClassConstructor = newClass!!.getConstructor(/* no args defined */)
|
val newClassConstructor = newClass.getConstructor(/* no args defined */)
|
||||||
val newClassInstance = newClassConstructor.newInstance(/* no args defined */)
|
val newClassInstance = newClassConstructor.newInstance(/* no args defined */)
|
||||||
|
|
||||||
entryPointClasses.add(newClassInstance as ModuleEntryPoint)
|
entryPointClasses.add(newClassInstance as ModuleEntryPoint)
|
||||||
(newClassInstance as ModuleEntryPoint).invoke()
|
(newClassInstance as ModuleEntryPoint).invoke()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -150,7 +180,7 @@ object ModMgr {
|
|||||||
|
|
||||||
operator fun invoke() { }
|
operator fun invoke() { }
|
||||||
|
|
||||||
fun reloadModules() {
|
/*fun reloadModules() {
|
||||||
loadOrder.forEach {
|
loadOrder.forEach {
|
||||||
val moduleName = it
|
val moduleName = it
|
||||||
|
|
||||||
@@ -196,7 +226,7 @@ object ModMgr {
|
|||||||
moduleInfo.remove(moduleName)
|
moduleInfo.remove(moduleName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
private fun checkExistence(module: String) {
|
private fun checkExistence(module: String) {
|
||||||
if (!moduleInfo.containsKey(module))
|
if (!moduleInfo.containsKey(module))
|
||||||
@@ -309,7 +339,10 @@ object ModMgr {
|
|||||||
|
|
||||||
printdbg(this, "Reading item ${itemName} <<- internal #$internalID with className $className")
|
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 loadedClassConstructor = loadedClass.getConstructor(ItemID::class.java)
|
||||||
val loadedClassInstance = loadedClassConstructor.newInstance(itemName)
|
val loadedClassInstance = loadedClassConstructor.newInstance(itemName)
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import com.badlogic.gdx.graphics.Color
|
|||||||
import com.badlogic.gdx.graphics.Pixmap
|
import com.badlogic.gdx.graphics.Pixmap
|
||||||
import com.badlogic.gdx.graphics.Texture
|
import com.badlogic.gdx.graphics.Texture
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
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.terrarum.ui.*
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Camera
|
|||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
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.UIItemInventoryCellBase
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes.toItemCountText
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Camera
|
|||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
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.UIInventoryFull.Companion.INVEN_DEBUG_MODE
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellBase
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryCellCommonRes
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import net.torvald.terrarum.App
|
|||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.App.printmsg
|
import net.torvald.terrarum.App.printmsg
|
||||||
import net.torvald.terrarum.ReferencingRanges.PREFIX_VIRTUALTILE
|
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.FluidType
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.utils.CSVFetcher
|
import net.torvald.terrarum.utils.CSVFetcher
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package net.torvald.terrarum.blockproperties
|
|||||||
import net.torvald.gdx.graphics.Cvec
|
import net.torvald.gdx.graphics.Cvec
|
||||||
import net.torvald.random.XXHash32
|
import net.torvald.random.XXHash32
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameworld.fmod
|
import net.torvald.terrarum.gameworld.fmod
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package net.torvald.terrarum.blockproperties
|
|||||||
|
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.utils.CSVFetcher
|
import net.torvald.terrarum.utils.CSVFetcher
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
import org.apache.commons.csv.CSVRecord
|
import org.apache.commons.csv.CSVRecord
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package net.torvald.terrarum.blockproperties
|
package net.torvald.terrarum.blockproperties
|
||||||
|
|
||||||
import net.torvald.terrarum.Codex
|
import net.torvald.terrarum.Codex
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2021-07-28.
|
* Created by minjaesong on 2021-07-28.
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import net.torvald.terrarum.INGAME
|
|||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
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.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZEF
|
|||||||
import net.torvald.terrarum.blockproperties.Block
|
import net.torvald.terrarum.blockproperties.Block
|
||||||
import net.torvald.terrarum.blockproperties.BlockProp
|
import net.torvald.terrarum.blockproperties.BlockProp
|
||||||
import net.torvald.terrarum.gamecontroller.KeyToggler
|
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.BlockAddress
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package net.torvald.terrarum.gameactors
|
|||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FIXME Constructor is super expensive
|
* FIXME Constructor is super expensive
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package net.torvald.terrarum.gamecontroller
|
|||||||
|
|
||||||
import com.badlogic.gdx.Gdx
|
import com.badlogic.gdx.Gdx
|
||||||
import com.badlogic.gdx.Input
|
import com.badlogic.gdx.Input
|
||||||
import com.badlogic.gdx.Input.Keys
|
|
||||||
import com.badlogic.gdx.InputAdapter
|
import com.badlogic.gdx.InputAdapter
|
||||||
import com.badlogic.gdx.controllers.Controllers
|
import com.badlogic.gdx.controllers.Controllers
|
||||||
import com.badlogic.gdx.utils.GdxRuntimeException
|
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.controller.TerrarumController
|
||||||
import net.torvald.terrarum.floorInt
|
import net.torvald.terrarum.floorInt
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
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.gameworld.fmod
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar
|
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar
|
||||||
|
|||||||
@@ -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.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
@@ -9,7 +9,7 @@ import net.torvald.terrarum.blockproperties.Block
|
|||||||
import net.torvald.terrarum.blockproperties.Fluid
|
import net.torvald.terrarum.blockproperties.Fluid
|
||||||
import net.torvald.terrarum.gameactors.ActorID
|
import net.torvald.terrarum.gameactors.ActorID
|
||||||
import net.torvald.terrarum.gameactors.WireActor
|
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.modulebasegame.gameactors.IngamePlayer
|
||||||
import net.torvald.terrarum.realestate.LandUtil
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
import net.torvald.terrarum.utils.*
|
import net.torvald.terrarum.utils.*
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import net.torvald.terrarum.blockproperties.Block
|
|||||||
import net.torvald.terrarum.blockproperties.Fluid
|
import net.torvald.terrarum.blockproperties.Fluid
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameactors.Controllable
|
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
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame.Companion.inUpdateRange
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame.Companion.inUpdateRange
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.*
|
import net.torvald.terrarum.modulebasegame.gameactors.*
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import net.torvald.terrarum.ReferencingRanges
|
|||||||
import net.torvald.terrarum.ReferencingRanges.PREFIX_ACTORITEM
|
import net.torvald.terrarum.ReferencingRanges.PREFIX_ACTORITEM
|
||||||
import net.torvald.terrarum.ReferencingRanges.PREFIX_DYNAMICITEM
|
import net.torvald.terrarum.ReferencingRanges.PREFIX_DYNAMICITEM
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
|
import net.torvald.terrarum.modulebasegame.gameactors.CanBeAnItem
|
||||||
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
import net.torvald.terrarum.worlddrawer.BlocksDrawer
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import net.torvald.terrarum.blockproperties.Block
|
|||||||
import net.torvald.terrarum.blockproperties.BlockPropUtil
|
import net.torvald.terrarum.blockproperties.BlockPropUtil
|
||||||
import net.torvald.terrarum.gameactors.*
|
import net.torvald.terrarum.gameactors.*
|
||||||
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
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.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||||
import net.torvald.terrarum.gameworld.WorldTime
|
import net.torvald.terrarum.gameworld.WorldTime
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import net.torvald.terrarum.App.IS_DEVELOPMENT_BUILD
|
|||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.blockproperties.BlockProp
|
import net.torvald.terrarum.blockproperties.BlockProp
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
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.gameitems.BlockBase
|
||||||
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
|
import net.torvald.terrarum.modulebasegame.imagefont.WatchFont
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
|
|||||||
@@ -19,8 +19,8 @@ import net.torvald.terrarum.gameactors.*
|
|||||||
import net.torvald.terrarum.gamecontroller.IngameController
|
import net.torvald.terrarum.gamecontroller.IngameController
|
||||||
import net.torvald.terrarum.gamecontroller.KeyToggler
|
import net.torvald.terrarum.gamecontroller.KeyToggler
|
||||||
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.inInteractableRange
|
import net.torvald.terrarum.gameitems.inInteractableRange
|
||||||
import net.torvald.terrarum.gameparticles.ParticleBase
|
import net.torvald.terrarum.gameparticles.ParticleBase
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.gameworld.WorldSimulator
|
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.Worldgen
|
||||||
import net.torvald.terrarum.modulebasegame.worldgenerator.WorldgenParams
|
import net.torvald.terrarum.modulebasegame.worldgenerator.WorldgenParams
|
||||||
import net.torvald.terrarum.realestate.LandUtil
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
import net.torvald.terrarum.savegame.DiskSkimmer
|
|
||||||
import net.torvald.terrarum.savegame.VDUtil
|
import net.torvald.terrarum.savegame.VDUtil
|
||||||
import net.torvald.terrarum.savegame.VirtualDisk
|
import net.torvald.terrarum.savegame.VirtualDisk
|
||||||
import net.torvald.terrarum.serialise.Common
|
import net.torvald.terrarum.serialise.Common
|
||||||
@@ -174,11 +173,22 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
field = value
|
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...)
|
val getUIFixture = object : Id_UICanvasNullable { // quick workaround for the type erasure (you can't use lambda...)
|
||||||
override fun get(): UICanvas? {
|
override fun get(): UICanvas? {
|
||||||
return uiFixture
|
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 uiVitalPrimary: UICanvas
|
||||||
lateinit var uiVitalSecondary: UICanvas
|
lateinit var uiVitalSecondary: UICanvas
|
||||||
@@ -537,6 +547,7 @@ open class TerrarumIngame(batch: SpriteBatch) : IngameInstance(batch) {
|
|||||||
uiQuickBar,
|
uiQuickBar,
|
||||||
// uiBasicInfo, // temporarily commenting out: wouldn't make sense for v 0.3 release
|
// uiBasicInfo, // temporarily commenting out: wouldn't make sense for v 0.3 release
|
||||||
uiWatchTierOne,
|
uiWatchTierOne,
|
||||||
|
getWearableDeviceUI,
|
||||||
UIScreenZoom(),
|
UIScreenZoom(),
|
||||||
uiAutosaveNotifier,
|
uiAutosaveNotifier,
|
||||||
uiInventoryPlayer,
|
uiInventoryPlayer,
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ import net.torvald.terrarum.Terrarum
|
|||||||
import net.torvald.terrarum.console.ConsoleCommand
|
import net.torvald.terrarum.console.ConsoleCommand
|
||||||
import net.torvald.terrarum.console.Echo
|
import net.torvald.terrarum.console.Echo
|
||||||
import net.torvald.terrarum.console.EchoError
|
import net.torvald.terrarum.console.EchoError
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.Terrarum.PLAYER_REF_ID
|
import net.torvald.terrarum.Terrarum.PLAYER_REF_ID
|
||||||
import net.torvald.terrarum.gameactors.ActorID
|
import net.torvald.terrarum.gameactors.ActorID
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import net.torvald.terrarum.*
|
|||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.gameactors.*
|
import net.torvald.terrarum.gameactors.*
|
||||||
import net.torvald.terrarum.gameactors.faction.Faction
|
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.itemproperties.Material
|
||||||
import net.torvald.terrarum.realestate.LandUtil
|
import net.torvald.terrarum.realestate.LandUtil
|
||||||
import org.dyn4j.geometry.Vector2
|
import org.dyn4j.geometry.Vector2
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import net.torvald.terrarum.App
|
|||||||
import net.torvald.terrarum.ItemCodex
|
import net.torvald.terrarum.ItemCodex
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
import net.torvald.terrarum.gameactors.AVKey
|
||||||
import net.torvald.terrarum.gameactors.Actor
|
import net.torvald.terrarum.gameactors.Actor
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar
|
import net.torvald.terrarum.modulebasegame.ui.UIQuickslotBar
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package net.torvald.terrarum.modulebasegame.gameactors
|
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.
|
* Created by minjaesong on 2016-01-31.
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import net.torvald.terrarum.gameactors.AVKey
|
|||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameactors.PhysProperties
|
import net.torvald.terrarum.gameactors.PhysProperties
|
||||||
import net.torvald.terrarum.gameactors.drawBodyInGoodPosition
|
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.
|
* Created by minjaesong on 2016-03-15.
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import net.torvald.terrarum.blockproperties.Block
|
|||||||
import net.torvald.terrarum.gameactors.ActorID
|
import net.torvald.terrarum.gameactors.ActorID
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameactors.PhysProperties
|
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.gameworld.fmod
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
import org.dyn4j.geometry.Vector2
|
import org.dyn4j.geometry.Vector2
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package net.torvald.terrarum.modulebasegame.gameactors
|
|||||||
|
|
||||||
import net.torvald.terrarum.ItemCodex
|
import net.torvald.terrarum.ItemCodex
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.lock
|
import net.torvald.terrarum.lock
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import java.math.BigInteger
|
import java.math.BigInteger
|
||||||
|
|||||||
@@ -3,11 +3,10 @@ package net.torvald.terrarum.modulebasegame.gameactors
|
|||||||
import com.badlogic.gdx.graphics.Camera
|
import com.badlogic.gdx.graphics.Camera
|
||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.glutils.ShapeRenderer
|
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
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.langpack.Lang
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory.Companion.CAPACITY_MODE_COUNT
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory.Companion.CAPACITY_MODE_COUNT
|
||||||
import net.torvald.terrarum.modulebasegame.ui.*
|
import net.torvald.terrarum.modulebasegame.ui.*
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import net.torvald.terrarum.gameactors.AIControlled
|
|||||||
import net.torvald.terrarum.gameactors.AVKey
|
import net.torvald.terrarum.gameactors.AVKey
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameactors.ai.ActorAI
|
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
|
import net.torvald.terrarum.itemproperties.Material
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import net.torvald.terrarum.App
|
|||||||
import net.torvald.terrarum.ItemCodex
|
import net.torvald.terrarum.ItemCodex
|
||||||
import net.torvald.terrarum.gameactors.ActorValue
|
import net.torvald.terrarum.gameactors.ActorValue
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2016-01-15.
|
* Created by minjaesong on 2016-01-15.
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import net.torvald.terrarum.gameactors.ActorWithBody
|
|||||||
import net.torvald.terrarum.gameactors.Hitbox
|
import net.torvald.terrarum.gameactors.Hitbox
|
||||||
import net.torvald.terrarum.gameactors.Luminous
|
import net.torvald.terrarum.gameactors.Luminous
|
||||||
import net.torvald.terrarum.gameactors.PhysProperties
|
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.
|
* Created by minjaesong on 2016-04-26.
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package net.torvald.terrarum.modulebasegame.gameitems
|
|||||||
|
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameitem.inInteractableRange
|
import net.torvald.terrarum.gameitems.inInteractableRange
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import net.torvald.terrarum.CommonResourcePool
|
|||||||
import net.torvald.terrarum.ModMgr
|
import net.torvald.terrarum.ModMgr
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.itemproperties.Material
|
import net.torvald.terrarum.itemproperties.Material
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureLogicSignalEmitter
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion
|
|||||||
import net.torvald.terrarum.CommonResourcePool
|
import net.torvald.terrarum.CommonResourcePool
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameitem.inInteractableRange
|
import net.torvald.terrarum.gameitems.inInteractableRange
|
||||||
import net.torvald.terrarum.itemproperties.Material
|
import net.torvald.terrarum.itemproperties.Material
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureStorageChest
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureStorageChest
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
||||||
|
|||||||
@@ -5,9 +5,9 @@ import net.torvald.terrarum.CommonResourcePool
|
|||||||
import net.torvald.terrarum.ModMgr
|
import net.torvald.terrarum.ModMgr
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameitem.inInteractableRange
|
import net.torvald.terrarum.gameitems.inInteractableRange
|
||||||
import net.torvald.terrarum.itemproperties.Material
|
import net.torvald.terrarum.itemproperties.Material
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureTikiTorch
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZED
|
|||||||
import net.torvald.terrarum.blockproperties.Block
|
import net.torvald.terrarum.blockproperties.Block
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
import net.torvald.terrarum.gameactors.AVKey
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameitem.inInteractableRange
|
import net.torvald.terrarum.gameitems.inInteractableRange
|
||||||
import net.torvald.terrarum.itemproperties.Calculate
|
import net.torvald.terrarum.itemproperties.Calculate
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
|
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
|
||||||
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore.BASE_MASS_AND_SIZE
|
import net.torvald.terrarum.modulebasegame.gameitems.PickaxeCore.BASE_MASS_AND_SIZE
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ package net.torvald.terrarum.modulebasegame.gameitems
|
|||||||
|
|
||||||
import net.torvald.random.Fudge3
|
import net.torvald.random.Fudge3
|
||||||
import net.torvald.random.HQRNG
|
import net.torvald.random.HQRNG
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||||
import kotlin.math.pow
|
import kotlin.math.pow
|
||||||
|
|
||||||
|
|||||||
@@ -5,11 +5,10 @@ import net.torvald.terrarum.CommonResourcePool
|
|||||||
import net.torvald.terrarum.Point2i
|
import net.torvald.terrarum.Point2i
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.WireCodex
|
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.gameitem.inInteractableRange
|
import net.torvald.terrarum.gameitems.inInteractableRange
|
||||||
import net.torvald.terrarum.itemproperties.Material
|
import net.torvald.terrarum.itemproperties.Material
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
|
import net.torvald.terrarum.modulebasegame.gameactors.DroppedItem
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ import net.torvald.EMDASH
|
|||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameactors.BlockMarkerActor
|
import net.torvald.terrarum.gameactors.BlockMarkerActor
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
|
|
||||||
class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
|
class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ package net.torvald.terrarum.modulebasegame.gameitems
|
|||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.CommonResourcePool
|
import net.torvald.terrarum.CommonResourcePool
|
||||||
import net.torvald.terrarum.gameactors.ActorWithBody
|
import net.torvald.terrarum.gameactors.ActorWithBody
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.gameitem.ItemID
|
import net.torvald.terrarum.gameitems.ItemID
|
||||||
import net.torvald.terrarum.itemproperties.Material
|
import net.torvald.terrarum.itemproperties.Material
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package net.torvald.terrarum.modulebasegame.ui
|
package net.torvald.terrarum.modulebasegame.ui
|
||||||
|
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorHumanoid
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package net.torvald.terrarum.modulebasegame.ui
|
package net.torvald.terrarum.modulebasegame.ui
|
||||||
|
|
||||||
import net.torvald.terrarum.UIItemInventoryCatBar.Companion.CAT_ALL
|
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
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ import com.badlogic.gdx.Gdx
|
|||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.gameitem.GameItem
|
import net.torvald.terrarum.gameitems.GameItem
|
||||||
import net.torvald.terrarum.itemproperties.ItemCodex
|
|
||||||
import net.torvald.terrarum.toInt
|
import net.torvald.terrarum.toInt
|
||||||
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack
|
||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|||||||
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
import com.badlogic.gdx.graphics.g2d.TextureRegion
|
||||||
import net.torvald.terrarum.GdxColorMap
|
import net.torvald.terrarum.GdxColorMap
|
||||||
import net.torvald.terrarum.abs
|
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.UICanvas
|
||||||
import net.torvald.terrarum.ui.UIItem
|
import net.torvald.terrarum.ui.UIItem
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.Camera
|
|||||||
import com.badlogic.gdx.graphics.Color
|
import com.badlogic.gdx.graphics.Color
|
||||||
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
||||||
import net.torvald.terrarum.*
|
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.UIInventoryFull.Companion.itemListHeight
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericKeyDownFun
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericKeyDownFun
|
||||||
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun
|
import net.torvald.terrarum.modulebasegame.ui.UIItemInventoryItemGrid.Companion.createInvCellGenericTouchDownFun
|
||||||
|
|||||||
@@ -7,14 +7,12 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
|
|||||||
import net.torvald.terrarum.*
|
import net.torvald.terrarum.*
|
||||||
import net.torvald.terrarum.UIItemInventoryCatBar.Companion.CAT_ALL
|
import net.torvald.terrarum.UIItemInventoryCatBar.Companion.CAT_ALL
|
||||||
import net.torvald.terrarum.gameactors.AVKey
|
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.gameworld.fmod
|
||||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.ActorInventory
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
import net.torvald.terrarum.modulebasegame.gameactors.FixtureInventory
|
||||||
import net.torvald.terrarum.modulebasegame.gameactors.InventoryPair
|
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.modulebasegame.ui.UIInventoryFull.Companion.INVEN_DEBUG_MODE
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
import net.torvald.terrarum.ui.UICanvas
|
import net.torvald.terrarum.ui.UICanvas
|
||||||
@@ -395,7 +393,7 @@ class UIItemInventoryItemGrid(
|
|||||||
|
|
||||||
// filter items
|
// filter items
|
||||||
getInventory().forEach {
|
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)
|
inventorySortList.add(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import net.torvald.terrarum.App
|
|||||||
import net.torvald.terrarum.ItemCodex
|
import net.torvald.terrarum.ItemCodex
|
||||||
import net.torvald.terrarum.blendNormal
|
import net.torvald.terrarum.blendNormal
|
||||||
import net.torvald.terrarum.blockproperties.Block
|
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.BuildingMaker
|
||||||
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK
|
import net.torvald.terrarum.modulebasegame.ui.ItemSlotImageFactory.CELLCOLOUR_BLACK
|
||||||
import net.torvald.terrarum.ui.Toolkit
|
import net.torvald.terrarum.ui.Toolkit
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import net.torvald.terrarum.ui.UIItemModuleInfoCell
|
|||||||
/**
|
/**
|
||||||
* Created by minjaesong on 2017-08-01.
|
* Created by minjaesong on 2017-08-01.
|
||||||
*/
|
*/
|
||||||
class UITitleModules : UICanvas() {
|
class UITitleModules(val remoCon: UIRemoCon) : UICanvas() {
|
||||||
|
|
||||||
override var openCloseTime: Second = 0f
|
override var openCloseTime: Second = 0f
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ object UITitleRemoConYaml {
|
|||||||
- MENU_LABEL_LANGUAGE : net.torvald.terrarum.modulebasegame.ui.UITitleLanguage
|
- MENU_LABEL_LANGUAGE : net.torvald.terrarum.modulebasegame.ui.UITitleLanguage
|
||||||
- MENU_MODULES : net.torvald.terrarum.ModOptionsHost
|
- MENU_MODULES : net.torvald.terrarum.ModOptionsHost
|
||||||
- MENU_LABEL_RETURN+WRITETOCONFIG
|
- MENU_LABEL_RETURN+WRITETOCONFIG
|
||||||
|
- MENU_MODULES : net.torvald.terrarum.modulebasegame.ui.UITitleModules
|
||||||
- MENU_LABEL_CREDITS
|
- MENU_LABEL_CREDITS
|
||||||
- MENU_LABEL_COPYRIGHT : net.torvald.terrarum.modulebasegame.ui.UITitleCredits
|
- MENU_LABEL_COPYRIGHT : net.torvald.terrarum.modulebasegame.ui.UITitleCredits
|
||||||
- MENU_CREDIT_GPL_DNT : net.torvald.terrarum.modulebasegame.ui.UITitleGPL3
|
- MENU_CREDIT_GPL_DNT : net.torvald.terrarum.modulebasegame.ui.UITitleGPL3
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ package net.torvald.terrarum.utils
|
|||||||
|
|
||||||
|
|
||||||
import net.torvald.terrarum.gameactors.ActorValue
|
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.BlockAddress
|
||||||
import net.torvald.terrarum.gameworld.FluidType
|
import net.torvald.terrarum.gameworld.FluidType
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import net.torvald.terrarum.App.measureDebugTime
|
|||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.blockproperties.Block
|
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.GameWorld
|
||||||
import net.torvald.terrarum.gameworld.WorldSimulator
|
import net.torvald.terrarum.gameworld.WorldSimulator
|
||||||
import net.torvald.terrarum.gameworld.WorldTime
|
import net.torvald.terrarum.gameworld.WorldTime
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import net.torvald.terrarum.*
|
|||||||
import net.torvald.terrarum.App.printdbg
|
import net.torvald.terrarum.App.printdbg
|
||||||
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
|
||||||
import net.torvald.terrarum.blockproperties.Fluid
|
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 net.torvald.terrarum.gameworld.GameWorld
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
|
|||||||
@@ -11,21 +11,15 @@
|
|||||||
<orderEntry type="library" name="com.badlogicgames.gdx:gdx:1.10.0" level="project" />
|
<orderEntry type="library" name="com.badlogicgames.gdx:gdx:1.10.0" level="project" />
|
||||||
<orderEntry type="library" name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" level="project" />
|
<orderEntry type="library" name="com.badlogicgames.gdx:gdx-backend-lwjgl3:1.10.0" level="project" />
|
||||||
<orderEntry type="library" name="GetCpuName-src" level="project" />
|
<orderEntry type="library" name="GetCpuName-src" level="project" />
|
||||||
<orderEntry type="library" name="jxinput-1.0.0-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="prtree" level="project" />
|
<orderEntry type="library" name="prtree" level="project" />
|
||||||
<orderEntry type="library" name="TerranVirtualDisk-src" level="project" />
|
|
||||||
<orderEntry type="library" name="Terrarum_Joise" level="project" />
|
<orderEntry type="library" name="Terrarum_Joise" level="project" />
|
||||||
<orderEntry type="library" name="TerrarumSansBitmap" level="project" />
|
<orderEntry type="library" name="TerrarumSansBitmap" level="project" />
|
||||||
<orderEntry type="library" name="commons-codec:commons-codec:1.15" level="project" />
|
<orderEntry type="library" name="commons-codec:commons-codec:1.15" level="project" />
|
||||||
<orderEntry type="library" name="gdx-controllers-core-2.2.1-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-controllers-desktop-2.2.1-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="org.apache.commons:commons-csv:1.8" level="project" />
|
<orderEntry type="library" name="org.apache.commons:commons-csv:1.8" level="project" />
|
||||||
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
<orderEntry type="library" name="KotlinJavaRuntime" level="project" />
|
||||||
<orderEntry type="library" name="gdx-controllers-core-2.2.1" level="project" />
|
<orderEntry type="library" name="gdx-controllers-core-2.2.1" level="project" />
|
||||||
<orderEntry type="library" name="gdx-controllers-desktop-2.2.1" level="project" />
|
<orderEntry type="library" name="gdx-controllers-desktop-2.2.1" level="project" />
|
||||||
<orderEntry type="library" name="jxinput-1.0.0" level="project" />
|
<orderEntry type="library" name="jxinput-1.0.0" level="project" />
|
||||||
<orderEntry type="library" name="TerranVirtualDisk" level="project" />
|
|
||||||
<orderEntry type="library" name="graal-sdk-21.1.0-javadoc" level="project" />
|
|
||||||
<orderEntry type="library" name="gdx-platform-1.10.0-natives-desktop" level="project" />
|
<orderEntry type="library" name="gdx-platform-1.10.0-natives-desktop" level="project" />
|
||||||
<orderEntry type="library" name="graalvm-js-21.1.0 and graalvm-js-scriptengine-21.1.0" level="project" />
|
<orderEntry type="library" name="graalvm-js-21.1.0 and graalvm-js-scriptengine-21.1.0" level="project" />
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
Reference in New Issue
Block a user