mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-11 11:04:05 +09:00
worldportal: submitting teleportrequest works, needs UI refinement
This commit is contained in:
@@ -7,6 +7,7 @@ import com.jme3.math.FastMath
|
||||
import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.YPOS_CORRECTION
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.drawBackground
|
||||
@@ -34,6 +35,7 @@ class UIWorldPortal : UICanvas(
|
||||
override var width: Int = Toolkit.drawWidth
|
||||
override var height: Int = App.scr.height
|
||||
|
||||
internal lateinit var host: FixtureWorldPortal
|
||||
|
||||
|
||||
val controlHelpHeight = App.fontGame.lineHeight
|
||||
|
||||
@@ -11,6 +11,7 @@ import net.torvald.terrarum.*
|
||||
import net.torvald.terrarum.gameactors.AVKey
|
||||
import net.torvald.terrarum.gameworld.fmod
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.getCellCountVertically
|
||||
import net.torvald.terrarum.realestate.LandUtil.CHUNK_H
|
||||
@@ -86,7 +87,15 @@ class UIWorldPortalListing(val full: UIWorldPortal) : UICanvas() {
|
||||
readFromLang = true,
|
||||
hasBorder = true,
|
||||
alignment = UIItemTextButton.Companion.Alignment.CENTRE
|
||||
)
|
||||
).also {
|
||||
it.clickOnceListener = { _,_ ->
|
||||
if (selected?.worldInfo != null) {
|
||||
full.host.teleportRequest = FixtureWorldPortal.TeleportRequest(
|
||||
selected?.worldInfo?.diskSkimmer, null
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
private val buttonRename = UIItemTextButton(this,
|
||||
"MENU_LABEL_RENAME",
|
||||
hx + gridGap/2,
|
||||
|
||||
@@ -14,6 +14,7 @@ import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent
|
||||
import net.torvald.terrarum.langpack.Lang
|
||||
import net.torvald.terrarum.modulebasegame.TerrarumIngame
|
||||
import net.torvald.terrarum.modulebasegame.WorldgenLoadScreen
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal
|
||||
import net.torvald.terrarum.modulebasegame.gameactors.IngamePlayer
|
||||
import net.torvald.terrarum.modulebasegame.serialise.ReadActor
|
||||
import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.INVENTORY_CELLS_OFFSET_Y
|
||||
@@ -82,32 +83,15 @@ class UIWorldPortalSearch(val full: UIWorldPortal) : UICanvas() {
|
||||
|
||||
init {
|
||||
goButton.clickOnceListener = { _, _ ->
|
||||
// printdbg(this, "generate! Size=${sizeSelector.selection}, Name=${nameInput.getTextOrPlaceholder()}, Seed=${seedInput.getTextOrPlaceholder()}")
|
||||
|
||||
/*val ingame = TerrarumIngame(App.batch)
|
||||
val player = ReadActor.invoke(UILoadGovernor.playerDisk!!, ByteArray64Reader(UILoadGovernor.playerDisk!!.getFile(
|
||||
VDFileID.SAVEGAMEINFO
|
||||
)!!.bytes, Common.CHARSET)
|
||||
) as IngamePlayer
|
||||
val seed = try {
|
||||
seedInput.getTextOrPlaceholder().toLong()
|
||||
}
|
||||
catch (e: NumberFormatException) {
|
||||
XXHash64.hash(seedInput.getTextOrPlaceholder().toByteArray(Charsets.UTF_8), 10000)
|
||||
}
|
||||
val (wx, wy) = TerrarumIngame.NEW_WORLD_SIZE[sizeSelector.selection]
|
||||
val worldParam = TerrarumIngame.NewGameParams(
|
||||
player, TerrarumIngame.NewWorldParameters(
|
||||
wx, wy, seed, nameInput.getTextOrPlaceholder()
|
||||
)
|
||||
)
|
||||
ingame.gameLoadInfoPayload = worldParam
|
||||
ingame.gameLoadMode = TerrarumIngame.GameLoadMode.CREATE_NEW
|
||||
|
||||
Terrarum.setCurrentIngameInstance(ingame)
|
||||
val loadScreen = WorldgenLoadScreen(ingame, wx, wy)
|
||||
App.setLoadScreen(loadScreen)*/
|
||||
|
||||
val (wx, wy) = TerrarumIngame.WORLDPORTAL_NEW_WORLD_SIZE[sizeSelector.selection]
|
||||
val worldParam = TerrarumIngame.NewWorldParameters(wx, wy, seed, nameInput.getTextOrPlaceholder())
|
||||
full.host.teleportRequest = FixtureWorldPortal.TeleportRequest(null, worldParam)
|
||||
}
|
||||
backButton.clickOnceListener = { _, _ ->
|
||||
full.requestTransition(0)
|
||||
|
||||
Reference in New Issue
Block a user