mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 20:31:51 +09:00
58 lines
1.6 KiB
Kotlin
58 lines
1.6 KiB
Kotlin
package net.torvald.terrarum.itemproperties
|
|
|
|
import net.torvald.terrarum.Terrarum
|
|
import net.torvald.terrarum.gameactors.ai.toLua
|
|
import net.torvald.terrarum.modulebasegame.Ingame
|
|
import org.luaj.vm2.Globals
|
|
import org.luaj.vm2.LuaTable
|
|
import org.luaj.vm2.LuaValue
|
|
import org.luaj.vm2.lib.ThreeArgFunction
|
|
import org.luaj.vm2.lib.ZeroArgFunction
|
|
|
|
/**
|
|
* Created by minjaesong on 2017-04-16.
|
|
*/
|
|
class ItemEffectsLuaAPI(g: Globals) {
|
|
|
|
init {
|
|
g["getMouseTile"] = GetMouseTile()
|
|
g["getMousePos"] = GetMousePos()
|
|
|
|
|
|
|
|
g["world"] = LuaTable()
|
|
|
|
g["world"]["strikeEarth"] = StrikeEarth()
|
|
g["world"]["strikeWall"] = StrikeWall()
|
|
|
|
|
|
|
|
g["actor"] = LuaTable()
|
|
}
|
|
|
|
|
|
class GetMouseTile : ZeroArgFunction() {
|
|
override fun call(): LuaValue {
|
|
return LuaValue.tableOf(arrayOf(Terrarum.mouseTileX.toLua(), Terrarum.mouseTileY.toLua()))
|
|
}
|
|
}
|
|
class GetMousePos : ZeroArgFunction() {
|
|
override fun call(): LuaValue {
|
|
return LuaValue.tableOf(arrayOf(Terrarum.mouseX.toLua(), Terrarum.mouseY.toLua()))
|
|
}
|
|
}
|
|
|
|
class StrikeEarth : ThreeArgFunction() {
|
|
override fun call(x: LuaValue, y: LuaValue, power: LuaValue): LuaValue {
|
|
(Terrarum.ingame!!.world).inflictTerrainDamage(x.checkint(), y.checkint(), power.checkdouble())
|
|
return LuaValue.NONE
|
|
}
|
|
}
|
|
class StrikeWall : ThreeArgFunction() {
|
|
override fun call(x: LuaValue, y: LuaValue, power: LuaValue): LuaValue {
|
|
(Terrarum.ingame!!.world).inflictWallDamage(x.checkint(), y.checkint(), power.checkdouble())
|
|
return LuaValue.NONE
|
|
}
|
|
}
|
|
|
|
} |