Awesome! Thanks to both of you! The manual version is immediately helpful as a short term solution, but I really appreciate the discussion of the ruby. That might be incredibly helpful in the future.
When you position the subcomponents, don't include the containing block's X, Y, or Z attributes in the formulas (firepit!X + the rest of the position formula). If you do, everything displaces the amount that you move plus the additional distance.