diff --git a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt index baeef4455..644c76fb2 100644 --- a/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt +++ b/src/net/torvald/terrarum/modulebasegame/gameitems/FixtureItemBase.kt @@ -59,12 +59,13 @@ open class FixtureItemBase(originalID: ItemID, val fixtureClassName: String) : G override fun effectWhileEquipped(actor: ActorWithBody, delta: Float) { // println("ghost: ${ghostItem}; ghostInit = $ghostInit; instance: $hash") - if (!ghostInit.get()) { - ghostItem.getAndSet(makeFixture()) - ghostInit.getAndSet(true) + if (!ghostInit.compareAndExchangeAcquire(false, true)) { + ghostItem.set(makeFixture()) // printdbg(this, "ghost item initialised: $ghostItem") + } + (INGAME as TerrarumIngame).blockMarkingActor.let { it.setGhost(ghostItem.get()) it.isVisible = true