Fixes crates getting collected by buildings or other crates

Long overdue fix for a regression I introduced.

Closes #5953. (Or should, it is very hard to test that specific case.)

Based on code from #6159.
(Tested NRE crash case reported in #6159. Buildings no longer collect crates dropped on them.)
Since you are cleaning up style issues here: this has unnecessary parenthesis and ambiguous syntax.
You'll want one of `((dupesMade < Info.MaxAmount && allowedWorthLeft > 0) || dupesMade < Info.MinAmount)` or `(dupesMade < Info.MaxAmount && (allowedWorthLeft > 0 || dupesMade < Info.MinAmount))`.