mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 10:34:06 +09:00
still WIP inventory impl, held item impl
Former-commit-id: 9468cfae21ff09c3dd30352a849910364e01d780 Former-commit-id: 50247ccebf3284f739877a1d6c6d8574449a9824
This commit is contained in:
@@ -20,9 +20,9 @@ object WriteCSV {
|
|||||||
val META_FILENAME_MAT = "worldinfo4"
|
val META_FILENAME_MAT = "worldinfo4"
|
||||||
|
|
||||||
fun write(saveDirectoryName: String): Boolean {
|
fun write(saveDirectoryName: String): Boolean {
|
||||||
val tileCSV = CSVFetcher.readCSVasString(TilePropCodex.CSV_PATH)
|
//val tileCSV = CSVFetcher.readCSVasString(TilePropCodex.CSV_PATH)
|
||||||
val itemCSV = CSVFetcher.readCSVasString(ItemPropCodex.CSV_PATH)
|
//val itemCSV = CSVFetcher.readCSVasString(ItemPropCodex.CSV_PATH)
|
||||||
val matCSV = CSVFetcher.readCSVasString(MaterialPropCodex.CSV_PATH)
|
//val matCSV = CSVFetcher.readCSVasString(MaterialPropCodex.CSV_PATH)
|
||||||
|
|
||||||
val pathTile = Paths.get("${Terrarum.defaultSaveDir}" +
|
val pathTile = Paths.get("${Terrarum.defaultSaveDir}" +
|
||||||
"/$saveDirectoryName/${META_FILENAME_TILE}")
|
"/$saveDirectoryName/${META_FILENAME_TILE}")
|
||||||
@@ -37,9 +37,9 @@ object WriteCSV {
|
|||||||
// TODO gzip
|
// TODO gzip
|
||||||
|
|
||||||
// write CSV to path
|
// write CSV to path
|
||||||
Files.write(tempPathTile, tileCSV.toByteArray(Charsets.UTF_8))
|
//Files.write(tempPathTile, tileCSV.toByteArray(Charsets.UTF_8))
|
||||||
Files.write(tempPathItem, itemCSV.toByteArray(Charsets.UTF_8))
|
//Files.write(tempPathItem, itemCSV.toByteArray(Charsets.UTF_8))
|
||||||
Files.write(tempPathMat, matCSV.toByteArray(Charsets.UTF_8))
|
//Files.write(tempPathMat, matCSV.toByteArray(Charsets.UTF_8))
|
||||||
|
|
||||||
// replace savemeta with tempfile
|
// replace savemeta with tempfile
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import net.torvald.terrarum.mapgenerator.RoguelikeRandomiser
|
|||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
import net.torvald.terrarum.itemproperties.ItemPropCodex
|
import net.torvald.terrarum.itemproperties.ItemPropCodex
|
||||||
import net.torvald.terrarum.itemproperties.MaterialPropCodex
|
import net.torvald.terrarum.itemproperties.MaterialPropCodex
|
||||||
|
import net.torvald.terrarum.tileproperties.TilePropCSV
|
||||||
import net.torvald.terrarum.tileproperties.TilePropCodex
|
import net.torvald.terrarum.tileproperties.TilePropCodex
|
||||||
import org.apache.commons.codec.digest.DigestUtils
|
import org.apache.commons.codec.digest.DigestUtils
|
||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
@@ -42,24 +43,17 @@ object WriteMeta {
|
|||||||
val savenameAsByteArray: ByteArray =
|
val savenameAsByteArray: ByteArray =
|
||||||
(savegameName ?: saveDirectoryName).toByteArray(Charsets.UTF_8)
|
(savegameName ?: saveDirectoryName).toByteArray(Charsets.UTF_8)
|
||||||
|
|
||||||
// define files to get hash
|
// define Strings to be hashed
|
||||||
val fileArray: Array<File> = arrayOf(
|
val props = arrayOf(
|
||||||
File(TilePropCodex.CSV_PATH)
|
TilePropCSV.text
|
||||||
, File(ItemPropCodex.CSV_PATH)
|
//, (item, mat, ...)
|
||||||
, File(MaterialPropCodex.CSV_PATH)
|
|
||||||
//,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// get and store hash from fileArray
|
// get and store hash from the list
|
||||||
for (file in fileArray) {
|
props.map { hashArray.add(DigestUtils.sha256(it)) }
|
||||||
val inputStream = FileInputStream(file)
|
|
||||||
val hash = DigestUtils.sha256(inputStream)
|
|
||||||
|
|
||||||
hashArray.add(hash)
|
|
||||||
}
|
|
||||||
|
|
||||||
// open file and delete it
|
// open file and delete it
|
||||||
val metaPath = Paths.get("${Terrarum.defaultSaveDir}" +
|
val metaPath = Paths.get("$Terrarum.defaultSaveDir" +
|
||||||
"/$saveDirectoryName/$META_FILENAME")
|
"/$saveDirectoryName/$META_FILENAME")
|
||||||
val metaTempPath = Files.createTempFile(metaPath.toString(), "_temp")
|
val metaTempPath = Files.createTempFile(metaPath.toString(), "_temp")
|
||||||
|
|
||||||
|
|||||||
@@ -188,8 +188,8 @@ constructor() : BasicGameState() {
|
|||||||
///////////////////////////
|
///////////////////////////
|
||||||
// input-related updates //
|
// input-related updates //
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
GameController.processInput(gc.input)
|
GameController.processInput(gc, delta, gc.input)
|
||||||
uiContainer.forEach { it.processInput(gc.input) }
|
uiContainer.forEach { it.processInput(gc, delta, gc.input) }
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////
|
////////////////////////////
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ class StateMonitorCheck : BasicGameState() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doOpening(gc: GameContainer, delta: Int) {
|
override fun doOpening(gc: GameContainer, delta: Int) {
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import net.torvald.terrarum.gameactors.*
|
|||||||
import net.torvald.terrarum.gameactors.faction.Faction
|
import net.torvald.terrarum.gameactors.faction.Faction
|
||||||
import net.torvald.terrarum.gamecontroller.EnumKeyFunc
|
import net.torvald.terrarum.gamecontroller.EnumKeyFunc
|
||||||
import net.torvald.terrarum.gamecontroller.KeyMap
|
import net.torvald.terrarum.gamecontroller.KeyMap
|
||||||
|
import net.torvald.terrarum.gameitem.InventoryItem
|
||||||
import net.torvald.terrarum.realestate.RealEstateUtility
|
import net.torvald.terrarum.realestate.RealEstateUtility
|
||||||
import org.dyn4j.geometry.Vector2
|
import org.dyn4j.geometry.Vector2
|
||||||
import org.lwjgl.input.Controller
|
import org.lwjgl.input.Controller
|
||||||
@@ -25,6 +26,12 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
|
|||||||
/** Must be set by PlayerFactory */
|
/** Must be set by PlayerFactory */
|
||||||
override var inventory: ActorInventory = ActorInventory()
|
override var inventory: ActorInventory = ActorInventory()
|
||||||
|
|
||||||
|
override var itemHolding: InventoryItem
|
||||||
|
get() = throw TODO("itemHolding")
|
||||||
|
set(value) {
|
||||||
|
throw TODO("itemHolding")
|
||||||
|
}
|
||||||
|
|
||||||
/** Must be set by PlayerFactory */
|
/** Must be set by PlayerFactory */
|
||||||
override var faction: HashSet<Faction> = HashSet()
|
override var faction: HashSet<Faction> = HashSet()
|
||||||
/**
|
/**
|
||||||
@@ -126,7 +133,7 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
|
|||||||
protected var isRightDown = false
|
protected var isRightDown = false
|
||||||
protected var isJumpDown = false
|
protected var isJumpDown = false
|
||||||
protected val isGamer: Boolean
|
protected val isGamer: Boolean
|
||||||
get() = this is Player
|
get() = this is Player // FIXME true iff composed by PlayableActorDelegate
|
||||||
|
|
||||||
|
|
||||||
override fun update(gc: GameContainer, delta: Int) {
|
override fun update(gc: GameContainer, delta: Int) {
|
||||||
@@ -174,7 +181,7 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
if (isGamer && Terrarum.hasController) {
|
if (isGamer && Terrarum.hasController) {
|
||||||
gamepad = Controllers.getController(0)
|
gamepad = Controllers.getController(0)
|
||||||
axisX = gamepad!!.getAxisValue(0)
|
axisX = gamepad!!.getAxisValue(0)
|
||||||
@@ -189,6 +196,24 @@ open class ActorHumanoid(birth: GameDate, death: GameDate? = null)
|
|||||||
if (Math.abs(axisRY) < Terrarum.CONTROLLER_DEADZONE) axisRY = 0f
|
if (Math.abs(axisRY) < Terrarum.CONTROLLER_DEADZONE) axisRY = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///////////////////
|
||||||
|
// MOUSE CONTROL //
|
||||||
|
///////////////////
|
||||||
|
// PRIMARY/SECONDARY IS FIXED TO LEFT/RIGHT BUTTON //
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Primary Use
|
||||||
|
*/
|
||||||
|
// Left mouse
|
||||||
|
if (isGamer && input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON)) {
|
||||||
|
itemHolding.primaryUse(gc, delta)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Right mouse
|
||||||
|
if (isGamer && input.isMouseButtonDown(Input.MOUSE_RIGHT_BUTTON)) {
|
||||||
|
itemHolding.secondaryUse(gc, delta)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* L-R stop
|
* L-R stop
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.torvald.terrarum.gameactors
|
package net.torvald.terrarum.gameactors
|
||||||
|
|
||||||
import org.dyn4j.geometry.Vector2
|
import org.dyn4j.geometry.Vector2
|
||||||
|
import org.newdawn.slick.GameContainer
|
||||||
import org.newdawn.slick.Input
|
import org.newdawn.slick.Input
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -10,7 +11,7 @@ import org.newdawn.slick.Input
|
|||||||
*/
|
*/
|
||||||
interface Controllable {
|
interface Controllable {
|
||||||
|
|
||||||
fun processInput(input: Input)
|
fun processInput(gc: GameContainer, delta: Int, input: Input)
|
||||||
|
|
||||||
fun keyPressed(key: Int, c: Char)
|
fun keyPressed(key: Int, c: Char)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class DroppedItem(private val item: InventoryItem) : ActorWithBody() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun update(gc: GameContainer, delta: Int) {
|
override fun update(gc: GameContainer, delta: Int) {
|
||||||
item.worldActorEffect(gc, delta)
|
item.effectWhenTakenOut(gc, delta)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun drawBody(gc: GameContainer, g: Graphics) {
|
override fun drawBody(gc: GameContainer, g: Graphics) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.torvald.terrarum.gameactors
|
package net.torvald.terrarum.gameactors
|
||||||
|
|
||||||
import net.torvald.terrarum.gameactors.ActorHumanoid
|
import net.torvald.terrarum.gameactors.ActorHumanoid
|
||||||
|
import org.newdawn.slick.GameContainer
|
||||||
import org.newdawn.slick.Input
|
import org.newdawn.slick.Input
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -16,8 +17,8 @@ class PlayableActorDelegate(val actor: ActorHumanoid) {
|
|||||||
throw IllegalArgumentException("Player must be 'Controllable'!")
|
throw IllegalArgumentException("Player must be 'Controllable'!")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun processInput(input: Input) {
|
fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
(actor as Controllable).processInput(input)
|
(actor as Controllable).processInput(gc, delta, input)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun keyPressed(key: Int, c: Char) {
|
fun keyPressed(key: Int, c: Char) {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package net.torvald.terrarum.gameactors
|
package net.torvald.terrarum.gameactors
|
||||||
|
|
||||||
|
import net.torvald.terrarum.gameitem.InventoryItem
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by minjaesong on 16-01-15.
|
* Created by minjaesong on 16-01-15.
|
||||||
*/
|
*/
|
||||||
@@ -7,4 +9,7 @@ interface Pocketed {
|
|||||||
|
|
||||||
var inventory: ActorInventory
|
var inventory: ActorInventory
|
||||||
|
|
||||||
|
/** Item currentry holding, like tools/weapons/scrolls/magic/etc. */
|
||||||
|
var itemHolding: InventoryItem
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -10,6 +10,7 @@ import net.torvald.terrarum.tileproperties.TileNameCode
|
|||||||
import net.torvald.terrarum.tileproperties.TilePropCodex
|
import net.torvald.terrarum.tileproperties.TilePropCodex
|
||||||
import net.torvald.terrarum.ui.UIHandler
|
import net.torvald.terrarum.ui.UIHandler
|
||||||
import org.dyn4j.geometry.Vector2
|
import org.dyn4j.geometry.Vector2
|
||||||
|
import org.newdawn.slick.GameContainer
|
||||||
import org.newdawn.slick.Input
|
import org.newdawn.slick.Input
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,38 +18,45 @@ import org.newdawn.slick.Input
|
|||||||
*/
|
*/
|
||||||
object GameController {
|
object GameController {
|
||||||
|
|
||||||
val mouseX: Float
|
// these four values can also be accessed with GameContainer.<varname>
|
||||||
|
// e.g. gc.mouseTileX
|
||||||
|
|
||||||
|
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise) */
|
||||||
|
internal val mouseX: Float
|
||||||
get() = (MapCamera.cameraX + Terrarum.appgc.input.mouseX / Terrarum.ingame.screenZoom)
|
get() = (MapCamera.cameraX + Terrarum.appgc.input.mouseX / Terrarum.ingame.screenZoom)
|
||||||
val mouseY: Float
|
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise)*/
|
||||||
|
internal val mouseY: Float
|
||||||
get() = (MapCamera.cameraY + Terrarum.appgc.input.mouseY / Terrarum.ingame.screenZoom)
|
get() = (MapCamera.cameraY + Terrarum.appgc.input.mouseY / Terrarum.ingame.screenZoom)
|
||||||
val mouseTileX: Int
|
/** currently pointing tile coordinate */
|
||||||
|
internal val mouseTileX: Int
|
||||||
get() = (mouseX / MapDrawer.TILE_SIZE).toInt()
|
get() = (mouseX / MapDrawer.TILE_SIZE).toInt()
|
||||||
val mouseTileY: Int
|
/** currently pointing tile coordinate */
|
||||||
|
internal val mouseTileY: Int
|
||||||
get() = (mouseY / MapDrawer.TILE_SIZE).toInt()
|
get() = (mouseY / MapDrawer.TILE_SIZE).toInt()
|
||||||
|
|
||||||
fun processInput(input: Input) {
|
fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
|
|
||||||
KeyToggler.update(input)
|
KeyToggler.update(input)
|
||||||
|
|
||||||
|
|
||||||
if (!Terrarum.ingame.consoleHandler.isTakingControl) {
|
if (!Terrarum.ingame.consoleHandler.isTakingControl) {
|
||||||
if (Terrarum.ingame.player is Player && (Terrarum.ingame.player as Player).vehicleRiding != null) {
|
if (Terrarum.ingame.player is Player && (Terrarum.ingame.player as Player).vehicleRiding != null) {
|
||||||
(Terrarum.ingame.player as Player).vehicleRiding!!.processInput(input)
|
(Terrarum.ingame.player as Player).vehicleRiding!!.processInput(gc, delta, input)
|
||||||
}
|
}
|
||||||
|
|
||||||
Terrarum.ingame.player.processInput(input)
|
Terrarum.ingame.player.processInput(gc, delta, input)
|
||||||
|
|
||||||
for (ui in Terrarum.ingame.uiContainer) {
|
for (ui in Terrarum.ingame.uiContainer) {
|
||||||
ui.processInput(input)
|
ui.processInput(gc, delta, input)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Terrarum.ingame.consoleHandler.processInput(input)
|
Terrarum.ingame.consoleHandler.processInput(gc, delta, input)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON)) {
|
// test tile remove
|
||||||
// test tile remove
|
/*if (input.isMouseButtonDown(Input.MOUSE_LEFT_BUTTON)) {
|
||||||
try {
|
try {
|
||||||
Terrarum.ingame.world.setTileTerrain(mouseTileX, mouseTileY, TileNameCode.AIR)
|
Terrarum.ingame.world.setTileTerrain(mouseTileX, mouseTileY, TileNameCode.AIR)
|
||||||
// terrarum.game.map.setTileWall(mouseTileX, mouseTileY, TileNameCode.AIR);
|
// terrarum.game.map.setTileWall(mouseTileX, mouseTileY, TileNameCode.AIR);
|
||||||
@@ -58,8 +66,8 @@ object GameController {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
// test tile place
|
||||||
else if (input.isMouseButtonDown(Input.MOUSE_RIGHT_BUTTON)) {
|
else if (input.isMouseButtonDown(Input.MOUSE_RIGHT_BUTTON)) {
|
||||||
// test tile place
|
|
||||||
try {
|
try {
|
||||||
Terrarum.ingame.world.setTileTerrain(
|
Terrarum.ingame.world.setTileTerrain(
|
||||||
mouseTileX, mouseTileY,
|
mouseTileX, mouseTileY,
|
||||||
@@ -69,7 +77,22 @@ object GameController {
|
|||||||
catch (e: ArrayIndexOutOfBoundsException) {
|
catch (e: ArrayIndexOutOfBoundsException) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}*/
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////
|
||||||
|
// MOUSE CONTROL //
|
||||||
|
///////////////////
|
||||||
|
// PRIMARY/SECONDARY IS FIXED TO LEFT/RIGHT BUTTON //
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////
|
||||||
|
// GAMEPAD CONTROL //
|
||||||
|
/////////////////////
|
||||||
}
|
}
|
||||||
|
|
||||||
fun keyPressed(key: Int, c: Char) {
|
fun keyPressed(key: Int, c: Char) {
|
||||||
@@ -109,13 +132,14 @@ object GameController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun mousePressed(button: Int, x: Int, y: Int) {
|
fun mousePressed(button: Int, x: Int, y: Int) {
|
||||||
if (button == 0) {
|
// bullet test
|
||||||
|
/*if (button == 0) {
|
||||||
Terrarum.ingame.addActor(ProjectileSimple(
|
Terrarum.ingame.addActor(ProjectileSimple(
|
||||||
0,
|
0,
|
||||||
Terrarum.ingame.player.centrePosition,
|
Terrarum.ingame.player.centrePosition,
|
||||||
Vector2(mouseX.toDouble(), mouseY.toDouble())
|
Vector2(mouseX.toDouble(), mouseY.toDouble())
|
||||||
))
|
))
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
fun mouseReleased(button: Int, x: Int, y: Int) {
|
fun mouseReleased(button: Int, x: Int, y: Int) {
|
||||||
@@ -138,3 +162,16 @@ object GameController {
|
|||||||
return KeyMap.getKeyCode(fn) == key
|
return KeyMap.getKeyCode(fn) == key
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise) */
|
||||||
|
val GameContainer.mouseX: Float
|
||||||
|
get() = GameController.mouseX
|
||||||
|
/** position of the mouse (pixelwise) relative to the world (also, currently pointing world-wise coordinate, if the world coordinate is pixel-wise) */
|
||||||
|
val GameContainer.mouseY: Float
|
||||||
|
get() = GameController.mouseY
|
||||||
|
/** currently pointing tile coordinate */
|
||||||
|
val GameContainer.mouseTileX: Int
|
||||||
|
get() = GameController.mouseTileX
|
||||||
|
/** currently pointing tile coordinate */
|
||||||
|
val GameContainer.mouseTileY: Int
|
||||||
|
get() = GameController.mouseTileY
|
||||||
|
|||||||
@@ -13,13 +13,6 @@ import org.newdawn.slick.GameContainer
|
|||||||
* Created by minjaesong on 16-09-08.
|
* Created by minjaesong on 16-09-08.
|
||||||
*/
|
*/
|
||||||
open class DynamicItem(val baseItemID: Int, val newMass: Double? = null, val newScale: Double? = null) : InventoryItem {
|
open class DynamicItem(val baseItemID: Int, val newMass: Double? = null, val newScale: Double? = null) : InventoryItem {
|
||||||
/**
|
|
||||||
* Effects applied (continuously or not) while thrown to the world,
|
|
||||||
* called by the proxy Actor
|
|
||||||
*/
|
|
||||||
override fun worldActorEffect(gc: GameContainer, delta: Int) {
|
|
||||||
throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates.
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal ID of an Item, Long
|
* Internal ID of an Item, Long
|
||||||
|
|||||||
@@ -1,54 +0,0 @@
|
|||||||
package net.torvald.terrarum.gameitem
|
|
||||||
|
|
||||||
import net.torvald.terrarum.tileproperties.TilePropCodex
|
|
||||||
import org.newdawn.slick.GameContainer
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by minjaesong on 16-03-15.
|
|
||||||
*/
|
|
||||||
class TileAsItem(tileNum: Int) : InventoryItem {
|
|
||||||
|
|
||||||
override var itemID: Int = 0
|
|
||||||
override var mass: Double = 0.0
|
|
||||||
override var scale: Double = 1.0
|
|
||||||
|
|
||||||
init {
|
|
||||||
itemID = tileNum
|
|
||||||
mass = TilePropCodex.getProp(tileNum).density / 1000.0
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun effectWhileInPocket(gc: GameContainer, delta_t: Int) {
|
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun effectWhenPickedUp(gc: GameContainer, delta_t: Int) {
|
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun primaryUse(gc: GameContainer, delta_t: Int) {
|
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun secondaryUse(gc: GameContainer, delta_t: Int) {
|
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun effectWhenThrown(gc: GameContainer, delta_t: Int) {
|
|
||||||
throw UnsupportedOperationException()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Effects applied (continuously or not) while thrown to the world
|
|
||||||
*/
|
|
||||||
override fun effectWhenTakenOut(gc: GameContainer, delta: Int) {
|
|
||||||
throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates.
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Effects applied (continuously or not) while thrown to the world,
|
|
||||||
* called by the proxy Actor
|
|
||||||
*/
|
|
||||||
override fun worldActorEffect(gc: GameContainer, delta: Int) {
|
|
||||||
throw UnsupportedOperationException("not implemented") //To change body of created functions use File | Settings | File Templates.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -5,6 +5,8 @@ import net.torvald.terrarum.KVHashMap
|
|||||||
import net.torvald.terrarum.gameactors.CanBeAnItem
|
import net.torvald.terrarum.gameactors.CanBeAnItem
|
||||||
import net.torvald.terrarum.gameitem.InventoryItem
|
import net.torvald.terrarum.gameitem.InventoryItem
|
||||||
import net.torvald.terrarum.Terrarum
|
import net.torvald.terrarum.Terrarum
|
||||||
|
import net.torvald.terrarum.gamecontroller.mouseTileX
|
||||||
|
import net.torvald.terrarum.gamecontroller.mouseTileY
|
||||||
import net.torvald.terrarum.gameitem.InventoryItemAdapter
|
import net.torvald.terrarum.gameitem.InventoryItemAdapter
|
||||||
import net.torvald.terrarum.gameworld.GameWorld
|
import net.torvald.terrarum.gameworld.GameWorld
|
||||||
import net.torvald.terrarum.tileproperties.TileProp
|
import net.torvald.terrarum.tileproperties.TileProp
|
||||||
@@ -46,7 +48,13 @@ object ItemPropCodex {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun secondaryUse(gc: GameContainer, delta: Int) {
|
override fun secondaryUse(gc: GameContainer, delta: Int) {
|
||||||
// TODO place block to the world
|
// TODO check if occupied by ANY ActorWithBodies
|
||||||
|
|
||||||
|
Terrarum.ingame.world.setTileTerrain(
|
||||||
|
gc.mouseTileX,
|
||||||
|
gc.mouseTileY,
|
||||||
|
i
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class BasicDebugInfoWindow : UICanvas {
|
|||||||
val ccR = GameFontBase.colToCode["r"]
|
val ccR = GameFontBase.colToCode["r"]
|
||||||
val ccM = GameFontBase.colToCode["m"]
|
val ccM = GameFontBase.colToCode["m"]
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ class ConsoleWindow : UICanvas, KeyboardControlled {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ constructor(override var width: Int, isBlackVariant: Boolean) : UICanvas {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ constructor() : UICanvas {
|
|||||||
handler!!.opacity = 0f
|
handler!!.opacity = 0f
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun sendNotification(message: Array<String>) {
|
fun sendNotification(message: Array<String>) {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ interface UICanvas {
|
|||||||
|
|
||||||
fun render(gc: GameContainer, g: Graphics)
|
fun render(gc: GameContainer, g: Graphics)
|
||||||
|
|
||||||
fun processInput(input: Input)
|
fun processInput(gc: GameContainer, delta: Int, input: Input)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Do not modify handler!!.openCloseCounter here.
|
* Do not modify handler!!.openCloseCounter here.
|
||||||
|
|||||||
@@ -190,9 +190,9 @@ constructor(val UI: UICanvas) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun processInput(input: Input) {
|
fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
if (isVisible) {
|
if (isVisible) {
|
||||||
UI.processInput(input)
|
UI.processInput(gc, delta, input)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ class UIPieMenu : UICanvas {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
if (handler!!.isOpened || handler!!.isOpening) {
|
if (handler!!.isOpened || handler!!.isOpening) {
|
||||||
val cursorPos = Vector2(input.mouseX.toDouble(), input.mouseY.toDouble())
|
val cursorPos = Vector2(input.mouseX.toDouble(), input.mouseY.toDouble())
|
||||||
val centre = Vector2(Terrarum.WIDTH / 2.0, Terrarum.HEIGHT / 2.0)
|
val centre = Vector2(Terrarum.WIDTH / 2.0, Terrarum.HEIGHT / 2.0)
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ class UIQuickBar : UICanvas, MouseControlled {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doOpening(gc: GameContainer, delta: Int) {
|
override fun doOpening(gc: GameContainer, delta: Int) {
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class UITextTerminal(val terminal: Terminal) : UICanvas, KeyboardControlled, Mou
|
|||||||
terminal.render(gc, terminalDisplay.graphics)
|
terminal.render(gc, terminalDisplay.graphics)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processInput(input: Input) {
|
override fun processInput(gc: GameContainer, delta: Int, input: Input) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user