making xinput to actually work (tested with xbone gamepad)

This commit is contained in:
minjaesong
2019-02-09 18:33:54 +09:00
parent d891afa1cd
commit 1730ebd0d7
14 changed files with 207 additions and 65 deletions

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.Gdx
import com.badlogic.gdx.controllers.Controllers
import com.badlogic.gdx.graphics.Camera
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.github.strikerx3.jxinput.XInputDevice
import net.torvald.dataclass.CircularArray
import net.torvald.terrarum.*
import net.torvald.terrarum.AppLoader.printdbg
@@ -11,6 +12,8 @@ import net.torvald.terrarum.blockproperties.BlockPropUtil
import net.torvald.terrarum.blockstats.BlockStats
import net.torvald.terrarum.concurrent.ThreadParallel
import net.torvald.terrarum.console.Authenticator
import net.torvald.terrarum.controller.GdxControllerAdapter
import net.torvald.terrarum.controller.XinputControllerAdapter
import net.torvald.terrarum.gameactors.Actor
import net.torvald.terrarum.gameactors.ActorWithBody
import net.torvald.terrarum.gamecontroller.IngameController
@@ -269,7 +272,11 @@ open class Ingame(batch: SpriteBatch) : IngameInstance(batch) {
// make controls work
Gdx.input.inputProcessor = ingameController
Controllers.addListener(ingameController)
ingameController.gamepad =
if (AppLoader.getConfigBoolean("usexinput"))
XinputControllerAdapter(XInputDevice.getDeviceFor(0))
else
GdxControllerAdapter(Controllers.getControllers()[0])