fix: multimeter's block cursor would break fixture ghost

This commit is contained in:
minjaesong
2024-03-19 04:55:37 +09:00
parent f696a54d2d
commit b856574d20
5 changed files with 23 additions and 7 deletions

View File

@@ -66,6 +66,13 @@
]
},
"item@basegame:7": { /* multimeter */
"workbench": "soldering",
"ingredients": [
[2, 5, "item@basegame:112", 5, "item@basegame:117", 5, "item@basegame:177", 5, "$SEMICONDUCTOR", 1, "item@basegame:50"] /* 5 copper, 5 gold, 5 brass, 5 iron, 5 tin, 1 soldering wire (temporary) */
]
},
"item@basegame:35": { /* copper bulb */
"workbench": "soldering",
"ingredients": [

View File

@@ -187,7 +187,6 @@ open class IngameInstance(val batch: FlippingSpriteBatch, val isMultiplayer: Boo
blockMarkingActor.let {
it.unsetGhost()
it.setGhostColourNone()
}
gameInitialised = true

View File

@@ -25,7 +25,7 @@ import kotlin.math.floor
class BlockMarkerActor : ActorWithBody(Actor.RenderOrder.OVERLAY, physProp = PhysProperties.MOBILE_OBJECT()), NoSerialise {
enum class MarkerMode {
FIXTURE_GHOST, BLOCK_MARKER
FIXTURE_GHOST, BLOCK_MARKER, HIDDEN
}
private val defaultSize = 16.0
@@ -45,12 +45,14 @@ class BlockMarkerActor : ActorWithBody(Actor.RenderOrder.OVERLAY, physProp = Phy
init {
this.isVisible = false
this.isVisible = true
renderOrder = Actor.RenderOrder.OVERLAY // for some reason the constructor didn't work
}
override fun drawBody(frameDelta: Float, batch: SpriteBatch) {
this.isVisible = true
if (isVisible) {
if (markerMode == MarkerMode.FIXTURE_GHOST) {
if (INGAME.actorNowPlaying != null) {
@@ -114,6 +116,16 @@ class BlockMarkerActor : ActorWithBody(Actor.RenderOrder.OVERLAY, physProp = Phy
ghost = null
setGhostColourNone()
hitbox.setDimension(TILE_SIZED, TILE_SIZED)
markerMode = MarkerMode.HIDDEN
}
fun hideMarker() {
unsetGhost()
}
fun showMarker(shape: Int) {
markerShape = shape
markerMode = MarkerMode.BLOCK_MARKER
}
fun setGhostColourNone() { ghostColour = Color.WHITE }

View File

@@ -93,7 +93,6 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G
(INGAME as TerrarumIngame).blockMarkingActor.let {
it.unsetGhost()
it.setGhostColourNone()
}
}

View File

@@ -37,9 +37,8 @@ class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) {
(Terrarum.ingame!! as TerrarumIngame).selectedWireRenderClass = "wire_render_all"
blockMarker.markerShape = 3
blockMarker.showMarker(3)
blockMarker.markerColour = Color.YELLOW
blockMarker.isVisible = true
blockMarker.update(delta)
val mx = Terrarum.mouseTileX
@@ -77,7 +76,7 @@ class WireGraphDebugger(originalID: ItemID) : GameItem(originalID) {
override fun effectOnUnequip(actor: ActorWithBody) {
(Terrarum.ingame!! as TerrarumIngame).selectedWireRenderClass = ""
(Terrarum.ingame!! as TerrarumIngame).setTooltipMessage(null)
blockMarker.isVisible = false
blockMarker.hideMarker()
UIItemInventoryCellCommonRes.tooltipShowing.remove(tooltipHash)
}
}