private bool CanPlace(IPlaceable placeable, Position position, Position3D position3D) { if (position3D == null) { return(false); } if (!placeable.CanPlace(position, this)) { return(false); } List <IPlaceable> overlappingContent = GetContent(position); if (overlappingContent == null) { return(false); } foreach (IPlaceable currentOccupant in overlappingContent) { if (!placeable.CanColocate(placeable)) { return(false); } } return(true); }