Ancient Spellcraft

Ancient Spellcraft

7M Downloads

[Bug] Conceal Object makes the block interact oddly with player and attached items

KnightCa opened this issue · 5 comments

commented

Is there an existing issue for this?

  • I have searched the existing issues

Observed behaviour

After using Conceal Object on a block, the block interacts oddly with the player and items attached to it.

Examples:

  1. Used on a Crafting Table or Anvil, you cannot interact with the interface while it is "gone"
  2. Used on a Grass block under flowers/grass, the grass and flowers pop off the "gone" block.

On the other hand:

  1. Ladders connected to the "gone" block stay in place
  2. Vines stay on "gone" blocks.

Expected behaviour

I expected the block to become invisible, but continue to interact with the player and attached objects in the same way.

Steps to reproduce

  1. Join Server
  2. Cast Conceal Object on a Grass block under grass, notice what happens to grass.
  3. Cast Conceal Object on a Crafting Table or Anvil and try to interact with it

Crashlog

No response

Environment (Singleplayer/Server, etc.)

Issue present on both sides

Mod version

1.5.10

Forge version

1.12.2-forge-14.23.5.2860

Other mods

No response

commented

Expected behaviour

I expected the block to become invisible, but continue to interact with the player and attached objects in the same way.

Sadly this isn't possible. You can't retain the original block and disable its rendering.
The concealed block is an invisible technical block that stores the data of the replaced block. I can make right-clicking it restore the original block, and therefore end the spell's effect, but that also means you need to cast the spell again after each interaction. Another possibility would be to render a more translucent variant of the replaced block, (perhaps only for the caster) when the caster steps close to its position.
Yet another possibility is to use a secondary block somewhere nearby that places an invisible tileentity that stores the info of "block xyz was revealed, hide it again once the caster is not within N blocks distance to it". I don't like this, it's too unpredictable where it could be placed.
Yet another possibility is to store this info in playerdata. E.g. if the player approaches a concealed block, said block's tileentity registers itself into the player's playerdata, then reverts to its usual block form. The playerdata would periodically check the registered blocks, and revert them based on proximity. I think this last option would make this spell quite useful

commented
commented

Interactions are not possible against the original block if with the facade block in place, so a translucent block cannot be used for anything

commented
commented

Correct