block placing is now primary-use (left click/main trigger/screen tap)

This commit is contained in:
minjaesong
2019-02-12 01:20:12 +09:00
parent 9031ff0c2a
commit 33db76e3c8
4 changed files with 16 additions and 13 deletions

View File

@@ -133,9 +133,14 @@ abstract class GameItem : Comparable<GameItem>, Cloneable {
open fun effectWhenPickedUp(delta: Float) { } open fun effectWhenPickedUp(delta: Float) { }
/** /**
* Apply effects (continuously or not) while primary button (usually left mouse button) is down. * Apply effects (continuously or not) while primary button is down.
* The item will NOT be consumed, so you will want to consume it yourself by inventory.consumeItem(item) * The item will NOT be consumed, so you will want to consume it yourself by inventory.consumeItem(item)
* *
* Primary button refers to all of these:
* - Left mouse button (configurable)
* - Screen tap
* - XBox controller RT (fixed; LT is for jumping)
*
* @return true when used successfully, false otherwise * @return true when used successfully, false otherwise
* *
* note: DO NOT super() this! * note: DO NOT super() this!
@@ -146,9 +151,11 @@ abstract class GameItem : Comparable<GameItem>, Cloneable {
open fun startPrimaryUse(delta: Float): Boolean = false open fun startPrimaryUse(delta: Float): Boolean = false
/** /**
* Apply effects (continuously or not) while secondary button (usually right mouse button) is down * Apply effects (continuously or not) while secondary button is down
* The item will NOT be consumed, so you will want to consume it yourself by inventory.consumeItem(item) * The item will NOT be consumed, so you will want to consume it yourself by inventory.consumeItem(item)
* *
* NOTE: please refrain from using this; secondary button is currently undefined in the gamepad and touch input.
*
* @return true when used successfully, false otherwise * @return true when used successfully, false otherwise
* *
* note: DO NOT super() this! * note: DO NOT super() this!

View File

@@ -190,7 +190,7 @@ object ItemCodex {
override val equipPosition: Int = EquipPosition.HAND_GRIP override val equipPosition: Int = EquipPosition.HAND_GRIP
override fun startSecondaryUse(delta: Float): Boolean { override fun startPrimaryUse(delta: Float): Boolean {
val ingame = Terrarum.ingame!! as Ingame // must be in here val ingame = Terrarum.ingame!! as Ingame // must be in here
ingame.world.setFluid(Terrarum.mouseTileX, Terrarum.mouseTileY, Fluid.WATER, 4f) ingame.world.setFluid(Terrarum.mouseTileX, Terrarum.mouseTileY, Fluid.WATER, 4f)
return true return true
@@ -217,7 +217,7 @@ object ItemCodex {
override val equipPosition: Int = EquipPosition.HAND_GRIP override val equipPosition: Int = EquipPosition.HAND_GRIP
override fun startSecondaryUse(delta: Float): Boolean { override fun startPrimaryUse(delta: Float): Boolean {
val ingame = Terrarum.ingame!! as Ingame // must be in here val ingame = Terrarum.ingame!! as Ingame // must be in here
ingame.world.setFluid(Terrarum.mouseTileX, Terrarum.mouseTileY, Fluid.LAVA, 4f) ingame.world.setFluid(Terrarum.mouseTileX, Terrarum.mouseTileY, Fluid.LAVA, 4f)
return true return true

View File

@@ -2,17 +2,19 @@ package net.torvald.terrarum.modulebasegame
import net.torvald.terrarum.AppLoader.IS_DEVELOPMENT_BUILD import net.torvald.terrarum.AppLoader.IS_DEVELOPMENT_BUILD
import net.torvald.terrarum.AppLoader.printdbg import net.torvald.terrarum.AppLoader.printdbg
import net.torvald.terrarum.Point2d
import net.torvald.terrarum.ModMgr import net.torvald.terrarum.ModMgr
import net.torvald.terrarum.ModuleEntryPoint import net.torvald.terrarum.ModuleEntryPoint
import net.torvald.terrarum.Point2d
import net.torvald.terrarum.Terrarum import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.blockproperties.BlockCodex import net.torvald.terrarum.blockproperties.BlockCodex
import net.torvald.terrarum.gameactors.ActorWBMovable
import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.itemproperties.ItemCodex import net.torvald.terrarum.itemproperties.ItemCodex
import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.gameactors.ActorWBMovable
/** /**
* The entry point for the module "Basegame"
*
* Created by minjaesong on 2018-06-21. * Created by minjaesong on 2018-06-21.
*/ */
class EntryPoint : ModuleEntryPoint() { class EntryPoint : ModuleEntryPoint() {
@@ -52,11 +54,6 @@ class EntryPoint : ModuleEntryPoint() {
} }
override fun startPrimaryUse(delta: Float): Boolean { override fun startPrimaryUse(delta: Float): Boolean {
return false
// TODO base punch attack
}
override fun startSecondaryUse(delta: Float): Boolean {
val ingame = Terrarum.ingame!! as Ingame val ingame = Terrarum.ingame!! as Ingame
val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble()) val mousePoint = Point2d(Terrarum.mouseTileX.toDouble(), Terrarum.mouseTileY.toDouble())

View File

@@ -4,7 +4,6 @@ import net.torvald.terrarum.Terrarum
import net.torvald.terrarum.gameactors.AIControlled import net.torvald.terrarum.gameactors.AIControlled
import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gameactors.AVKey
import net.torvald.terrarum.gameactors.ai.ActorAI import net.torvald.terrarum.gameactors.ai.ActorAI
import net.torvald.terrarum.gameworld.GameWorld
import net.torvald.terrarum.itemproperties.GameItem import net.torvald.terrarum.itemproperties.GameItem
import net.torvald.terrarum.itemproperties.Material import net.torvald.terrarum.itemproperties.Material
import net.torvald.terrarum.modulebasegame.gameworld.time_t import net.torvald.terrarum.modulebasegame.gameworld.time_t
@@ -49,7 +48,7 @@ open class HumanoidNPC(
override val isDynamic = false override val isDynamic = false
override val material = Material(0,0,0,0,0,0,0,0,0,0.0) override val material = Material(0,0,0,0,0,0,0,0,0,0.0)
override fun startSecondaryUse(delta: Float): Boolean { override fun startPrimaryUse(delta: Float): Boolean {
try { try {
// place the actor to the world // place the actor to the world
this@HumanoidNPC.setPosition(Terrarum.mouseX, Terrarum.mouseY) this@HumanoidNPC.setPosition(Terrarum.mouseX, Terrarum.mouseY)