From fa3a12999175f3303d768b35978c492ea0e037cc Mon Sep 17 00:00:00 2001 From: minjaesong Date: Thu, 31 Oct 2024 10:53:11 +0900 Subject: [PATCH] worldportal ui fix --- .../terrarum/modulebasegame/gameactors/Electric.kt | 11 +++-------- .../modulebasegame/gameactors/FixtureWorldPortal.kt | 2 ++ .../terrarum/modulebasegame/ui/UIWorldPortalSearch.kt | 1 + src/net/torvald/terrarum/ui/UICanvas.kt | 1 + 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/Electric.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/Electric.kt index b26733b8a..7ea40af92 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/Electric.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/Electric.kt @@ -1,6 +1,7 @@ package net.torvald.terrarum.modulebasegame.gameactors import net.torvald.terrarum.* +import net.torvald.terrarum.App.printdbg import net.torvald.terrarum.gameactors.ActorID import net.torvald.terrarum.gameactors.PhysProperties import net.torvald.terrarum.ui.UICanvas @@ -167,15 +168,9 @@ open class Electric : FixtureBase { for (x in 0 until blockBox.width) { // get indices of "rising edges" // get indices of "falling edges" - - val wx = x + worldBlockPos!!.x - val wy = y + worldBlockPos!!.y - val new = WireCodex.getAllWiresThatAccepts(getWireSinkAt(x, y) ?: "").fold(Vector2()) { acc, (id, _) -> - INGAME.world.getWireEmitStateOf(wx, wy, id).let { - Vector2(acc.x + (it?.x ?: 0.0), acc.y + (it?.y ?: 0.0)) - } - } val index = pointToBlockBoxIndex(x, y) + val type = getWireSinkAt(index) ?: "" + val new = getWireStateAt(x, y, type) if (new.x - oldSinkStatus[index].x >= ELECTRIC_THRESHOLD_EDGE_DELTA && new.x >= ELECTRIC_THRESHOLD_HIGH) risingEdgeIndices.add(index) diff --git a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorldPortal.kt b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorldPortal.kt index 796ae1e5e..b357cecb9 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorldPortal.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameactors/FixtureWorldPortal.kt @@ -62,6 +62,8 @@ class FixtureWorldPortal : Electric { } override fun onRisingEdge(readFrom: BlockBoxIndex) { + printdbg(this, "readFrom=$readFrom; getWireSinkAt(readFrom)=${getWireSinkAt(readFrom)}") + if (getWireSinkAt(readFrom) != "digital_bit") return diff --git a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalSearch.kt b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalSearch.kt index e12f60fff..1117907ae 100644 --- a/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalSearch.kt +++ b/src/net/torvald/terrarum/modulebasegame/ui/UIWorldPortalSearch.kt @@ -136,6 +136,7 @@ class UIWorldPortalSearch(val full: UIWorldPortal) : UICanvas() { override fun show() { + clearTooltip() uiItems.forEach { it.show() } seedInput.clearText() seedInput.refreshPlaceholder() diff --git a/src/net/torvald/terrarum/ui/UICanvas.kt b/src/net/torvald/terrarum/ui/UICanvas.kt index fd8bd50e8..25e2fc7d3 100644 --- a/src/net/torvald/terrarum/ui/UICanvas.kt +++ b/src/net/torvald/terrarum/ui/UICanvas.kt @@ -136,6 +136,7 @@ abstract class UICanvas( /** A function that is run ONCE when the UI is requested to be opened; will work identical to [endOpening] if [openCloseTime] is zero */ open fun show() { + clearTooltip() openingClickLatched = true uiItems.forEach { it.show() } handler.subUIs.forEach { it.show() }