From cf111d250700d73324e09768b2184d4bf0e42728 Mon Sep 17 00:00:00 2001 From: minjaesong Date: Tue, 20 Jun 2023 13:45:32 +0900 Subject: [PATCH] world portal writing current world to actorvalue 'worldportaldict' if it's not there --- .../terrarum/modulebasegame/ui/UIWorldPortal.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt index a520b7166..88409a08c 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortal.kt @@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.Color import com.badlogic.gdx.graphics.g2d.SpriteBatch import com.jme3.math.FastMath import net.torvald.terrarum.* +import net.torvald.terrarum.gameactors.AVKey import net.torvald.terrarum.gamecontroller.TerrarumKeyboardEvent import net.torvald.terrarum.langpack.Lang import net.torvald.terrarum.modulebasegame.gameactors.FixtureWorldPortal @@ -13,9 +14,11 @@ import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.YPOS_COR import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.drawBackground import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalHeight import net.torvald.terrarum.modulebasegame.ui.UIInventoryFull.Companion.internalWidth +import net.torvald.terrarum.serialise.toAscii85 import net.torvald.terrarum.ui.* import net.torvald.terrarumsansbitmap.gdx.TextureRegionPack import net.torvald.unicode.getKeycapPC +import java.util.UUID /** * Structure: @@ -95,11 +98,25 @@ class UIWorldPortal : UICanvas( transitionPanel.render(batch, camera) } + private fun addWorldToPlayersDict(uuid: UUID) { + val uuidstr = uuid.toAscii85() + INGAME.actorNowPlaying?.let { + val avList = (it.actorValue.getAsString(AVKey.WORLD_PORTAL_DICT) ?: "").split(',').filter { it.isNotBlank() }.toMutableList() + if (!avList.contains(uuidstr)) { + avList.add(uuidstr) + it.actorValue[AVKey.WORLD_PORTAL_DICT] = avList.joinToString(",") + } + } + } + override fun show() { super.show() transitionPanel.forcePosition(0) transitionPanel.show() INGAME.setTooltipMessage(null) + + // add current world to the player's worldportaldict + addWorldToPlayersDict(INGAME.world.worldIndex) } override fun hide() {