Entity location/collision messed up when anchored to other entities

Summary: Placing an item on the side of another item (using normal placement commands/ai) can result in the placed item’s collision region and location not matching its visual/selectable position. This can make it impossible to “chain” placeable_on_walls items together because the item_placer searches for potential “structure” entities at the projected location the cursor is positioned, but the entity it’s hovering over is actually “located” somewhere else according to radiant.entities and radiant.terrain.
Edit: it may also result in an inability to move/undeploy the item.

Steps to reproduce:

  1. Make sure you have some stackable items and some wall-placeable items.
  2. Instruct your hearthlings to stack a few of the stackable items.
  3. Instruct your hearthlings to place a wall-placeable item on the side of one of those items.

Expected Results: Sometimes it actually worked how I expected: the location / collision region of the placed entity matched where I placed it. But frequently…

Actual Results:

Notes: I spawned the items using the Debug Tools Item Stamper/Dropper, but spawned them as iconic and then had the hearthlings actually place them.

Version Number and Mods in use: 899 and 905, I turned off every non-base mod besides Debug Tools and Microworld.

Was trying to help out testing this one
And here are my results:

I ran extensive tests (at least 3 tries placing hanging objects on all 4 sides) with crate columns 1-tall, 2-tall, 3-tall, 4-tall and 5-tall. The object used was a clay wall oil lamp. No other mods (only debugtools), but objects were spawned as iconic and placed by hand. For 3+ crates stacking I placed ladders and removed them before placing lamps.

No issues

Issues on both levels

Issues on top and bottom, no issue on middle

Issues on top, bottom and 2nd crate, no issues on 3rd

Issues on top, bottom, 2nd and 3rd crates, no issue on 4th.

So apparently:

issues only happen if there is vertical stacking (didn’t happen on 1-tall)
After vertical stacking, it only works fine on the level before the last level - as long as that level isn’t the bottom

Now… what that means? I have no idea :joy:
But it does seem to be a pattern

Just noticed some weird behavior playing around with some of our entities in ACE. One is a cook’s powered grain mill that has two collision regions, the other three are 1-voxel mechanical axles. When each of the axles was placed on the mill, the mill (and its attached axles) moved over one voxel. And while the first axle’s location matches visually, the other ones are considered to be on the opposite side of the mill compared to where they visually appear.

image image image

1 Like

Any news on this? It kind of ruins one of my game systems because it means you can’t reliably place entities on other entities.